From 30a164c31adda071c4e3959e6f598708387a6543 Mon Sep 17 00:00:00 2001 From: halx99 Date: Fri, 13 May 2022 21:06:17 +0800 Subject: [PATCH] Improvements and bug fixes Improve ResizableBufferAdapter style Improve extesnion adxelua Improve code quality Fix lua-tests BillBoardTest Sync texture pixel format enum values for adxelua Fix luaval_to_vec2 parameter location Improve windows workflow Improve cmake scripts Take care Texture2D::setDefaultAlphaPixelFormat use --- cmake/Modules/CocosBuildHelpers.cmake | 2 +- cmake/Modules/CocosBuildSet.cmake | 2 +- core/2d/CCPlistSpriteSheetLoader.cpp | 5 +- core/2d/CCSprite.cpp | 17 ++++- core/2d/CCSprite.h | 4 ++ core/CMakeLists.txt | 4 +- core/base/CCData.h | 6 ++ core/base/CCDirector.cpp | 6 +- core/platform/CCFileUtils.cpp | 5 +- core/platform/CCFileUtils.h | 63 +++---------------- core/platform/win32/CCFileUtils-win32.cpp | 2 +- core/renderer/CCTexture2D.cpp | 4 +- core/renderer/CCTextureCache.cpp | 21 +++++-- core/renderer/CCTextureCache.h | 8 ++- extensions/CMakeLists.txt | 4 +- extensions/DragonBones/CCFactory.cpp | 7 +-- .../lua-bindings/manual/CCLuaValue.h | 14 +++++ .../lua-bindings/manual/Cocos2dxLuaLoader.cpp | 14 ----- .../manual/LuaBasicConversions.cpp | 4 +- .../manual/cocos2d/lua_cocos2dx_manual.cpp | 30 ++++----- .../script/cocos2d/Cocos2dConstants.lua | 52 +++++++++------ .../script/cocos2d/DeprecatedCocos2dEnum.lua | 24 +++---- .../lua-bindings/script/framework/display.lua | 4 +- tests/cpp-tests/CMakeLists.txt | 29 +++++---- .../SpriteFrameCacheTest.cpp | 7 +-- .../Classes/Texture2dTest/Texture2dTest.cpp | 35 +++-------- .../src/BillBoardTest/BillBoardTest.lua | 6 +- 27 files changed, 183 insertions(+), 196 deletions(-) diff --git a/cmake/Modules/CocosBuildHelpers.cmake b/cmake/Modules/CocosBuildHelpers.cmake index 4609fdb668..66705fa811 100644 --- a/cmake/Modules/CocosBuildHelpers.cmake +++ b/cmake/Modules/CocosBuildHelpers.cmake @@ -348,7 +348,7 @@ function(setup_cocos_app_config app_name) if(BUILD_SHARED_LIBS) target_compile_definitions(${app_name} PRIVATE SPINEPLUGIN_API=DLLIMPORT) # spine dll endif() - target_link_libraries(${app_name} ${CC_EXTENSION_LIBS}) + target_link_libraries(${app_name} ${_AX_EXTENSION_LIBS}) if(XCODE AND AX_USE_ALSOFT AND ALSOFT_OSX_FRAMEWORK) # Embedded soft_oal embedded framework diff --git a/cmake/Modules/CocosBuildSet.cmake b/cmake/Modules/CocosBuildSet.cmake index 2529c9dae4..010d7aa2c4 100644 --- a/cmake/Modules/CocosBuildSet.cmake +++ b/cmake/Modules/CocosBuildSet.cmake @@ -32,7 +32,7 @@ message(STATUS "HOST_SYSTEM:" ${CMAKE_HOST_SYSTEM_NAME}) option(AX_ENABLE_EXT_LUA "Build lua libraries" OFF) # hold the extensions list to auto link to app -set(CC_EXTENSION_LIBS "" CACHE INTERNAL "extensions for auto link to target application") +set(_AX_EXTENSION_LIBS "" CACHE INTERNAL "extensions for auto link to target application") # include helper functions include(CocosBuildHelpers) diff --git a/core/2d/CCPlistSpriteSheetLoader.cpp b/core/2d/CCPlistSpriteSheetLoader.cpp index 1406327d30..4d7d30fdff 100644 --- a/core/2d/CCPlistSpriteSheetLoader.cpp +++ b/core/2d/CCPlistSpriteSheetLoader.cpp @@ -354,10 +354,7 @@ void PlistSpriteSheetLoader::addSpriteFramesWithDictionary(ValueMap& dict, if (pixelFormatIt != pixelFormats.end()) { const backend::PixelFormat pixelFormat = (*pixelFormatIt).second; - const backend::PixelFormat currentPixelFormat = Texture2D::getDefaultAlphaPixelFormat(); - Texture2D::setDefaultAlphaPixelFormat(pixelFormat); - texture = Director::getInstance()->getTextureCache()->addImage(texturePath); - Texture2D::setDefaultAlphaPixelFormat(currentPixelFormat); + texture = Director::getInstance()->getTextureCache()->addImage(texturePath, pixelFormat); } else { diff --git a/core/2d/CCSprite.cpp b/core/2d/CCSprite.cpp index 76e0da408e..04825315fd 100644 --- a/core/2d/CCSprite.cpp +++ b/core/2d/CCSprite.cpp @@ -4,7 +4,8 @@ Copyright (c) 2010-2012 cocos2d-x.org Copyright (c) 2011 Zynga Inc. Copyright (c) 2013-2016 Chukong Technologies Inc. Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. -Copyright (c) 2021 Bytedance Inc. +Copyright (c) 2020 C4games Ltd. +Copyright (c) 2021-2022 Bytedance Inc. https://adxeproject.github.io/ @@ -73,9 +74,14 @@ Sprite* Sprite::createWithTexture(Texture2D* texture, const Rect& rect, bool rot } Sprite* Sprite::create(std::string_view filename) +{ + return Sprite::create(filename, Texture2D::getDefaultAlphaPixelFormat()); +} + +Sprite* Sprite::create(std::string_view filename, PixelFormat format) { Sprite* sprite = new Sprite(); - if (sprite->initWithFile(filename)) + if (sprite->initWithFile(filename, format)) { sprite->autorelease(); return sprite; @@ -168,6 +174,11 @@ bool Sprite::initWithTexture(Texture2D* texture, const Rect& rect) } bool Sprite::initWithFile(std::string_view filename) +{ + return initWithFile(filename, Texture2D::getDefaultAlphaPixelFormat()); +} + +bool Sprite::initWithFile(std::string_view filename, PixelFormat format) { if (filename.empty()) { @@ -177,7 +188,7 @@ bool Sprite::initWithFile(std::string_view filename) _fileName = filename; - Texture2D* texture = _director->getTextureCache()->addImage(filename); + Texture2D* texture = _director->getTextureCache()->addImage(filename, format); if (texture) { Rect rect = Rect::ZERO; diff --git a/core/2d/CCSprite.h b/core/2d/CCSprite.h index 747cb97a77..b5e9145079 100644 --- a/core/2d/CCSprite.h +++ b/core/2d/CCSprite.h @@ -4,6 +4,8 @@ Copyright (c) 2010-2012 cocos2d-x.org Copyright (c) 2011 Zynga Inc. Copyright (c) 2013-2016 Chukong Technologies Inc. Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. +Copyright (c) 2020 C4games Ltd. +Copyright (c) 2021-2022 Bytedance Inc. https://adxeproject.github.io/ @@ -130,6 +132,7 @@ public: * @return An autoreleased sprite object. */ static Sprite* create(std::string_view filename); + static Sprite* create(std::string_view filename, PixelFormat format); /** * Creates a polygon sprite with a polygon info. @@ -601,6 +604,7 @@ public: * @lua init */ virtual bool initWithFile(std::string_view filename); + virtual bool initWithFile(std::string_view filename, PixelFormat format); /** * Initializes a sprite with an image filename, and a rect. diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index 9133f18bd6..88478eacd5 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -196,10 +196,10 @@ endif() # engine extensions add_subdirectory(${ADXE_ROOT_PATH}/extensions ${ENGINE_BINARY_PATH}/extensions) -if(MSVC_IDE) +if(MSVC) target_sources(${ADXE_CORE_LIB} PRIVATE ../thirdparty/yasio/yasio.natvis) target_sources(${ADXE_CORE_LIB} PRIVATE ../thirdparty/robin-map/tsl-robin-map.natvis) - target_compile_options(${ADXE_CORE_LIB} PRIVATE "/Zm2000") + target_compile_options(${ADXE_CORE_LIB} PUBLIC "/Zm2000") endif() # copy all thirdparty libraries to ${CMAKE_BINARY_DIR}/lib/$ diff --git a/core/base/CCData.h b/core/base/CCData.h index 0679cc826f..53f54ee0b1 100644 --- a/core/base/CCData.h +++ b/core/base/CCData.h @@ -44,6 +44,12 @@ class CC_DLL Data friend class Properties; public: + + /* stl compatible */ + using value_type = uint8_t; + size_t size() const { return _size; } + uint8_t* data() const { return _bytes; } + /** * This parameter is defined for convenient reference if a null Data object is needed. */ diff --git a/core/base/CCDirector.cpp b/core/base/CCDirector.cpp index 474a70c666..816ae77a9c 100644 --- a/core/base/CCDirector.cpp +++ b/core/base/CCDirector.cpp @@ -1261,8 +1261,6 @@ void Director::createStatsLabel() FileUtils::getInstance()->purgeCachedEntries(); } - backend::PixelFormat currentFormat = Texture2D::getDefaultAlphaPixelFormat(); - Texture2D::setDefaultAlphaPixelFormat(backend::PixelFormat::RGBA4); unsigned char* data = nullptr; ssize_t dataLength = 0; getFPSImageData(&data, &dataLength); @@ -1277,7 +1275,7 @@ void Director::createStatsLabel() return; } - texture = _textureCache->addImage(image, "/cc_fps_images"); + texture = _textureCache->addImage(image, "/cc_fps_images", PixelFormat::RGBA4); CC_SAFE_RELEASE(image); /* @@ -1305,8 +1303,6 @@ void Director::createStatsLabel() _drawnVerticesLabel->setIgnoreContentScaleFactor(true); _drawnVerticesLabel->setScale(scaleFactor); - Texture2D::setDefaultAlphaPixelFormat(currentFormat); - auto safeOrigin = getSafeAreaRect().origin; const int height_spacing = (int)(22 / CC_CONTENT_SCALE_FACTOR()); _drawnVerticesLabel->setPosition(Vec2(0, height_spacing * 2.0f) + safeOrigin); diff --git a/core/platform/CCFileUtils.cpp b/core/platform/CCFileUtils.cpp index 65af76d198..dcdcd63da0 100644 --- a/core/platform/CCFileUtils.cpp +++ b/core/platform/CCFileUtils.cpp @@ -58,7 +58,8 @@ THE SOFTWARE. #define DECLARE_GUARD (void)0 -#if CC_TARGET_PLATFORM != CC_PLATFORM_IOS && (CC_TARGET_PLATFORM != CC_PLATFORM_ANDROID || (defined(__NDK_MAJOR__) && __NDK_MAJOR__ >= 22) ) +#if CC_TARGET_PLATFORM != CC_PLATFORM_IOS && \ + (CC_TARGET_PLATFORM != CC_PLATFORM_ANDROID || (defined(__NDK_MAJOR__) && __NDK_MAJOR__ >= 22)) # define ADXE_HAVE_STDFS 1 # include namespace stdfs = std::filesystem; @@ -989,7 +990,7 @@ void FileUtils::loadFilenameLookupDictionaryFromFile(std::string_view filename) const std::string fullPath = fullPathForFilename(filename); if (!fullPath.empty()) { - ValueMap dict = FileUtils::getInstance()->getValueMapFromFile(fullPath); + ValueMap dict = getValueMapFromFile(fullPath); if (!dict.empty()) { ValueMap& metadata = dict["metadata"].asValueMap(); diff --git a/core/platform/CCFileUtils.h b/core/platform/CCFileUtils.h index aca8cb6ce9..f3ae92e349 100644 --- a/core/platform/CCFileUtils.h +++ b/core/platform/CCFileUtils.h @@ -58,62 +58,22 @@ public: virtual ~ResizableBuffer() {} virtual void resize(size_t size) = 0; virtual void* buffer() const = 0; + virtual size_t size() const = 0; }; template -class ResizableBufferAdapter -{}; - -template -class ResizableBufferAdapter> : public ResizableBuffer +class ResizableBufferAdapter : public ResizableBuffer { - typedef std::basic_string BufferType; - BufferType* _buffer; + T* _buffer; public: - explicit ResizableBufferAdapter(BufferType* buffer) : _buffer(buffer) {} - virtual void resize(size_t size) override { _buffer->resize((size + sizeof(CharT) - 1) / sizeof(CharT)); } - virtual void* buffer() const override + explicit ResizableBufferAdapter(T* buffer) : _buffer(buffer) {} + virtual void resize(size_t size) override { - // can not invoke string::front() if it is empty - - if (_buffer->empty()) - return nullptr; - else - return &_buffer->front(); + _buffer->resize((size + sizeof(typename T::value_type) - 1) / sizeof(typename T::value_type)); } -}; - -template -class ResizableBufferAdapter> : public ResizableBuffer -{ - typedef std::vector BufferType; - BufferType* _buffer; - -public: - explicit ResizableBufferAdapter(BufferType* buffer) : _buffer(buffer) {} - virtual void resize(size_t size) override { _buffer->resize((size + sizeof(T) - 1) / sizeof(T)); } - virtual void* buffer() const override - { - // can not invoke vector::front() if it is empty - - if (_buffer->empty()) - return nullptr; - else - return &_buffer->front(); - } -}; - -template <> -class ResizableBufferAdapter : public ResizableBuffer -{ - typedef Data BufferType; - BufferType* _buffer; - -public: - explicit ResizableBufferAdapter(BufferType* buffer) : _buffer(buffer) {} - virtual void resize(size_t size) override { _buffer->resize(size); } - virtual void* buffer() const override { return _buffer->getBytes(); } + virtual void* buffer() const override { return _buffer->data(); } + virtual size_t size() const override { return _buffer->size() * sizeof(typename T::value_type); } }; /** Helper class to handle file operations. */ @@ -240,7 +200,6 @@ public: * virtual void* buffer() const override { * // your code here * } - * }; * NS_CC_END * @endcode * @@ -255,13 +214,11 @@ public: * - Status::TooLarge when there file to be read is too large (> 2^32-1), the buffer will not changed. * - Status::ObtainSizeFailed when failed to obtain the file size, the buffer will not changed. */ - template >::value>::type> + template Status getContents(std::string_view filename, T* buffer) const { ResizableBufferAdapter buf(buffer); - return getContents(filename, &buf); + return getContents(filename, static_cast(&buf)); } virtual Status getContents(std::string_view filename, ResizableBuffer* buffer) const; diff --git a/core/platform/win32/CCFileUtils-win32.cpp b/core/platform/win32/CCFileUtils-win32.cpp index e3e7d06f9b..e9ff75b8af 100644 --- a/core/platform/win32/CCFileUtils-win32.cpp +++ b/core/platform/win32/CCFileUtils-win32.cpp @@ -112,7 +112,7 @@ bool FileUtilsWin32::init() _checkExePath(); bool startedFromSelfLocation = s_workingDir == s_exeDir; - if (!startedFromSelfLocation) + if (!startedFromSelfLocation || !isDirectoryExistInternal(AX_PC_RESOURCES_DIR)) _defaultResRootPath = s_workingDir; else { diff --git a/core/renderer/CCTexture2D.cpp b/core/renderer/CCTexture2D.cpp index c4efa9e0be..030a570f16 100644 --- a/core/renderer/CCTexture2D.cpp +++ b/core/renderer/CCTexture2D.cpp @@ -3,7 +3,7 @@ Copyright (c) 2008 Apple Inc. All Rights Reserved. Copyright (c) 2010-2012 cocos2d-x.org Copyright (c) 2013-2016 Chukong Technologies Inc. Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. -Copyright (c) 2020 C4games Ltd +Copyright (c) 2020 C4games Ltd. Copyright (c) 2021-2022 Bytedance Inc. https://adxeproject.github.io/ @@ -60,7 +60,7 @@ NS_CC_BEGIN // If the image has alpha, you can create RGBA8 (32-bit) or RGBA4 (16-bit) or RGB5A1 (16-bit) // Default is: RGBA8888 (32-bit textures) -static backend::PixelFormat g_defaultAlphaPixelFormat = backend::PixelFormat::BGRA8; +static backend::PixelFormat g_defaultAlphaPixelFormat = backend::PixelFormat::RGBA8; Texture2D::Texture2D() : _pixelFormat(backend::PixelFormat::NONE) diff --git a/core/renderer/CCTextureCache.cpp b/core/renderer/CCTextureCache.cpp index 1f5215832e..f32e736fba 100644 --- a/core/renderer/CCTextureCache.cpp +++ b/core/renderer/CCTextureCache.cpp @@ -4,7 +4,8 @@ Copyright (c) 2010-2012 cocos2d-x.org Copyright (c) 2011 Zynga Inc. Copyright (c) 2013-2016 Chukong Technologies Inc. Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. -Copyright (c) 2020 C4games Ltd +Copyright (c) 2020 C4games Ltd. +Copyright (c) 2021-2022 Bytedance Inc. https://adxeproject.github.io/ @@ -355,7 +356,7 @@ void TextureCache::addImageAsyncCallBack(float /*dt*/) // ETC1 ALPHA supports. if (asyncStruct->imageAlpha.getFileType() == Image::Format::ETC1) { - texture->updateWithImage(&asyncStruct->imageAlpha, Texture2D::getDefaultAlphaPixelFormat(), 1); + texture->updateWithImage(&asyncStruct->imageAlpha, asyncStruct->pixelFormat, 1); } } else @@ -384,6 +385,11 @@ void TextureCache::addImageAsyncCallBack(float /*dt*/) } Texture2D* TextureCache::addImage(std::string_view path) +{ + return addImage(path, Texture2D::getDefaultAlphaPixelFormat()); +} + +Texture2D* TextureCache::addImage(std::string_view path, PixelFormat format) { Texture2D* texture = nullptr; Image* image = nullptr; @@ -412,7 +418,7 @@ Texture2D* TextureCache::addImage(std::string_view path) texture = new Texture2D(); - if (texture->initWithImage(image)) + if (texture->initWithImage(image, format)) { #if CC_ENABLE_CACHE_TEXTURE_DATA // cache the texture file name @@ -430,7 +436,7 @@ Texture2D* TextureCache::addImage(std::string_view path) Image imageAlpha; if (imageAlpha.initWithImageFile(alphaFullPath)) { - texture->updateWithImage(&imageAlpha, Texture2D::getDefaultAlphaPixelFormat(), 1); + texture->updateWithImage(&imageAlpha, format, 1); } } @@ -462,6 +468,11 @@ void TextureCache::parseNinePatchImage(cocos2d::Image* image, cocos2d::Texture2D } Texture2D* TextureCache::addImage(Image* image, std::string_view key) +{ + return addImage(image, key, Texture2D::getDefaultAlphaPixelFormat()); +} + +Texture2D* TextureCache::addImage(Image* image, std::string_view key, PixelFormat format) { CCASSERT(image != nullptr, "TextureCache: image MUST not be nil"); CCASSERT(image->getData() != nullptr, "TextureCache: image MUST not be nil"); @@ -478,7 +489,7 @@ Texture2D* TextureCache::addImage(Image* image, std::string_view key) } texture = new Texture2D(); - if (texture->initWithImage(image)) + if (texture->initWithImage(image, format)) { _textures.emplace(key, texture); } diff --git a/core/renderer/CCTextureCache.h b/core/renderer/CCTextureCache.h index 8da17ea9e1..62c78b30b2 100644 --- a/core/renderer/CCTextureCache.h +++ b/core/renderer/CCTextureCache.h @@ -4,6 +4,8 @@ Copyright (c) 2010-2012 cocos2d-x.org Copyright (c) 2011 Zynga Inc. Copyright (c) 2013-2016 Chukong Technologies Inc. Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. +Copyright (c) 2020 C4games Ltd. +Copyright (c) 2021-2022 Bytedance Inc. https://adxeproject.github.io/ @@ -93,16 +95,19 @@ public: @param filepath The file path. */ Texture2D* addImage(std::string_view filepath); + Texture2D* addImage(std::string_view filepath, PixelFormat format); /** Returns a Texture2D object given a file image. * If the file image was not previously loaded, it will create a new Texture2D object and it will return it. - * Otherwise it will load a texture in a new thread, and when the image is loaded, the callback will be called with + * Otherwise it will load a texture in a offthread, and when the image is loaded, the callback will be called with the Texture2D as a parameter. * The callback will be called from the main thread, so it is safe to create any cocos2d object from the callback. * Supported image extensions: .png, .jpg @param filepath The file path. @param callback A callback function would be invoked after the image is loaded. @since v0.8 + + @remark Please don't invoke Texture2D::setDefaultAlphaPixelFormat in main GL thread before invoke this API. */ virtual void addImageAsync(std::string_view filepath, const std::function& callback); @@ -130,6 +135,7 @@ public: * If "key" is nil, then a new texture will be created each time. */ Texture2D* addImage(Image* image, std::string_view key); + Texture2D* addImage(Image* image, std::string_view key, PixelFormat format); /** Returns an already created texture. Returns nil if the texture doesn't exist. @param key It's the related/absolute path of the file image. diff --git a/extensions/CMakeLists.txt b/extensions/CMakeLists.txt index eefa1440a6..e841c7e589 100644 --- a/extensions/CMakeLists.txt +++ b/extensions/CMakeLists.txt @@ -53,7 +53,7 @@ function(setup_cocos_extension_config target_name) ) if(NOT opt_DNTLINK) - set(CC_EXTENSION_LIBS "${target_name};${CC_EXTENSION_LIBS}" CACHE INTERNAL "extensions for auto link to target application") + set(_AX_EXTENSION_LIBS "${target_name};${_AX_EXTENSION_LIBS}" CACHE INTERNAL "extensions for auto link to target application") endif() if(XCODE OR VS) @@ -122,4 +122,4 @@ if(AX_ENABLE_EXT_LUA) endif() -message(STATUS "CC_EXTENSION_LIBS:${CC_EXTENSION_LIBS}") +message(STATUS "Enabled adxe extensions:${_AX_EXTENSION_LIBS}") diff --git a/extensions/DragonBones/CCFactory.cpp b/extensions/DragonBones/CCFactory.cpp index ee24fc555c..5bd44b844f 100644 --- a/extensions/DragonBones/CCFactory.cpp +++ b/extensions/DragonBones/CCFactory.cpp @@ -96,12 +96,7 @@ TextureAtlasData* CCFactory::_buildTextureAtlasData(TextureAtlasData* textureAtl } #endif - cocos2d::Texture2D::setDefaultAlphaPixelFormat(pixelFormat); - texture = textureCache->addImage(textureAtlasData->imagePath); - if (texture != nullptr) - { - cocos2d::Texture2D::setDefaultAlphaPixelFormat(defaultPixelFormat); - } + texture = textureCache->addImage(textureAtlasData->imagePath, pixelFormat); } static_cast(textureAtlasData)->setRenderTexture(texture); diff --git a/extensions/scripting/lua-bindings/manual/CCLuaValue.h b/extensions/scripting/lua-bindings/manual/CCLuaValue.h index 7ee3a554c2..fb191a8676 100644 --- a/extensions/scripting/lua-bindings/manual/CCLuaValue.h +++ b/extensions/scripting/lua-bindings/manual/CCLuaValue.h @@ -263,6 +263,20 @@ private: void copy(const LuaValue& rhs); }; +inline std::string adxelua_tostr(lua_State* L, int arg) +{ + size_t l = 0; + const char* s = lua_tolstring(L, arg, &l); + return std::string{s, l}; +} + +inline std::string_view adxelua_tosv(lua_State* L, int arg) +{ + size_t l = 0; + const char* s = lua_tolstring(L, arg, &l); + return std::string_view{s, l}; +} + NS_CC_END // end group diff --git a/extensions/scripting/lua-bindings/manual/Cocos2dxLuaLoader.cpp b/extensions/scripting/lua-bindings/manual/Cocos2dxLuaLoader.cpp index d3cb78c6ab..2459dab81d 100644 --- a/extensions/scripting/lua-bindings/manual/Cocos2dxLuaLoader.cpp +++ b/extensions/scripting/lua-bindings/manual/Cocos2dxLuaLoader.cpp @@ -35,20 +35,6 @@ THE SOFTWARE. using namespace cocos2d; -static std::string adxelua_tostr(lua_State* L, int arg) -{ - size_t l = 0; - const char* s = lua_tolstring(L, arg, &l); - return std::string{s, l}; -} - -static cxx17::string_view adxelua_tosv(lua_State* L, int arg) -{ - size_t l = 0; - const char* s = lua_tolstring(L, arg, &l); - return cxx17::string_view{s, l}; -} - extern "C" { int cocos2dx_lua_loader(lua_State* L) { diff --git a/extensions/scripting/lua-bindings/manual/LuaBasicConversions.cpp b/extensions/scripting/lua-bindings/manual/LuaBasicConversions.cpp index d0e63fca21..9603a15c37 100644 --- a/extensions/scripting/lua-bindings/manual/LuaBasicConversions.cpp +++ b/extensions/scripting/lua-bindings/manual/LuaBasicConversions.cpp @@ -360,8 +360,8 @@ bool luaval_to_vec2(lua_State* L, int lo, cocos2d::Vec2* outValue, const char* f } // assertion: since we only have vec2, you should never passing rect as vec2 to native - const auto objlen = lua_objlen(L, -1); - assert(objlen == 2); + const auto objlen = lua_objlen(L, lo); + assert(objlen != 4); if (ok) { diff --git a/extensions/scripting/lua-bindings/manual/cocos2d/lua_cocos2dx_manual.cpp b/extensions/scripting/lua-bindings/manual/cocos2d/lua_cocos2dx_manual.cpp index 586cdf0d76..785a2d4a30 100644 --- a/extensions/scripting/lua-bindings/manual/cocos2d/lua_cocos2dx_manual.cpp +++ b/extensions/scripting/lua-bindings/manual/cocos2d/lua_cocos2dx_manual.cpp @@ -1,7 +1,7 @@ /**************************************************************************** Copyright (c) 2013-2016 Chukong Technologies Inc. Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. - Copyright (c) 2021 Bytedance Inc. + Copyright (c) 2021-2022 Bytedance Inc. https://adxeproject.github.io/ @@ -245,11 +245,11 @@ static int tolua_cocos2d_MenuItemImage_create(lua_State* tolua_S) ok = true; break; } - const std::string normalImage = ((const std::string)tolua_tocppstring(tolua_S, 2, 0)); - const std::string selectedImage = ((const std::string)tolua_tocppstring(tolua_S, 3, 0)); - MenuItemImage* tolua_ret = (MenuItemImage*)MenuItemImage::create(normalImage, selectedImage); - int nID = (tolua_ret) ? (int)tolua_ret->_ID : -1; - int* pLuaID = (tolua_ret) ? &tolua_ret->_luaID : NULL; + auto normalImage = adxelua_tosv(tolua_S, 2); + auto selectedImage = adxelua_tosv(tolua_S, 3); + MenuItemImage* tolua_ret = (MenuItemImage*)MenuItemImage::create(normalImage, selectedImage); + int nID = (tolua_ret) ? (int)tolua_ret->_ID : -1; + int* pLuaID = (tolua_ret) ? &tolua_ret->_luaID : NULL; toluafix_pushusertype_ccobject(tolua_S, nID, pLuaID, (void*)tolua_ret, "cc.MenuItemImage"); return 1; } @@ -266,9 +266,9 @@ static int tolua_cocos2d_MenuItemImage_create(lua_State* tolua_S) break; } #endif - const std::string normalImage = ((const std::string)tolua_tocppstring(tolua_S, 2, 0)); - const std::string selectedImage = ((const std::string)tolua_tocppstring(tolua_S, 3, 0)); - const std::string disabledImage = ((const std::string)tolua_tocppstring(tolua_S, 4, 0)); + auto normalImage = adxelua_tosv(tolua_S, 2); + auto selectedImage = adxelua_tosv(tolua_S, 3); + auto disabledImage = adxelua_tosv(tolua_S, 4); MenuItemImage* tolua_ret = (MenuItemImage*)MenuItemImage::create(normalImage, selectedImage, disabledImage); int nID = (tolua_ret) ? (int)tolua_ret->_ID : -1; @@ -352,7 +352,7 @@ static int tolua_cocos2d_MenuItemFont_create(lua_State* tolua_S) goto tolua_lerror; } #endif - const std::string value = ((const std::string)tolua_tocppstring(tolua_S, 2, 0)); + auto value = adxelua_tosv(tolua_S, 2); MenuItemFont* tolua_ret = (MenuItemFont*)MenuItemFont::create(value); int nID = (tolua_ret) ? (int)tolua_ret->_ID : -1; int* pLuaID = (tolua_ret) ? &tolua_ret->_luaID : NULL; @@ -2293,7 +2293,7 @@ static int lua_cocos2dx_Node_enumerateChildren(lua_State* tolua_S) } #endif - std::string name = (std::string)tolua_tocppstring(tolua_S, 2, 0); + std::string name = adxelua_tostr(tolua_S, 2); LUA_FUNCTION handler = toluafix_ref_function(tolua_S, 3, 0); cobj->enumerateChildren(name, [=](Node* node) -> bool { @@ -4631,7 +4631,7 @@ static int tolua_cocos2d_LuaEventListenerCustom_create(lua_State* tolua_S) goto tolua_lerror; } #endif - const std::string eventName = ((const std::string)tolua_tocppstring(tolua_S, 2, 0)); + auto eventName = adxelua_tosv(tolua_S, 2); LUA_FUNCTION handler = toluafix_ref_function(tolua_S, 3, 0); cocos2d::EventListenerCustom* tolua_ret = LuaEventListenerCustom::create(eventName); ScriptHandlerMgr::getInstance()->addObjectHandler((void*)tolua_ret, handler, @@ -7428,7 +7428,7 @@ static int tolua_cocos2d_utils_captureScreen(lua_State* tolua_S) #endif { LUA_FUNCTION handler = toluafix_ref_function(tolua_S, 2, 0); - std::string fileName = tolua_tocppstring(tolua_S, 3, ""); + auto fileName = adxelua_tosv(tolua_S, 3); cocos2d::utils::captureScreen( [=](bool succeed, std::string_view name) { auto stack = LuaEngine::getInstance()->getLuaStack(); @@ -7460,7 +7460,7 @@ static int tolua_cocos2d_utils_findChildren(lua_State* tolua_S) #endif { cocos2d::Node* node = static_cast(tolua_tousertype(tolua_S, 2, nullptr)); - std::string name = tolua_tocppstring(tolua_S, 3, ""); + auto name = adxelua_tosv(tolua_S, 3); std::vector children = cocos2d::utils::findChildren(*node, name); lua_newtable(tolua_S); int index = 1; @@ -7495,7 +7495,7 @@ static int tolua_cocos2d_utils_findChild(lua_State* tolua_S) #endif { cocos2d::Node* node = static_cast(tolua_tousertype(tolua_S, 1, nullptr)); - std::string name = tolua_tocppstring(tolua_S, 2, ""); + auto name = adxelua_tosv(tolua_S, 2); auto obj = cocos2d::utils::findChild(node, name); int ID = (obj) ? (int)obj->_ID : -1; int* luaID = (obj) ? &obj->_luaID : NULL; diff --git a/extensions/scripting/lua-bindings/script/cocos2d/Cocos2dConstants.lua b/extensions/scripting/lua-bindings/script/cocos2d/Cocos2dConstants.lua index 66a2b4c1c6..d8ba7cabd2 100644 --- a/extensions/scripting/lua-bindings/script/cocos2d/Cocos2dConstants.lua +++ b/extensions/scripting/lua-bindings/script/cocos2d/Cocos2dConstants.lua @@ -90,25 +90,39 @@ cc.TEXT_ALIGNMENT_CENTER = 0x1 cc.TEXT_ALIGNMENT_LEFT = 0x0 cc.TEXT_ALIGNMENT_RIGHT = 0x2 -cc.TEXTURE2_D_PIXEL_FORMAT_AUTO = 0x0 -cc.TEXTURE2_D_PIXEL_FORMAT_BGR_A8888 = 0x1 -cc.TEXTURE2_D_PIXEL_FORMAT_RGB_A8888 = 0x2 -cc.TEXTURE2_D_PIXEL_FORMAT_RG_B888 = 0x3 -cc.TEXTURE2_D_PIXEL_FORMAT_RG_B565 = 0x4 -cc.TEXTURE2_D_PIXEL_FORMAT_A8 = 0x5 -cc.TEXTURE2_D_PIXEL_FORMAT_I8 = 0x6 -cc.TEXTURE2_D_PIXEL_FORMAT_A_I88 = 0x7 -cc.TEXTURE2_D_PIXEL_FORMAT_RGB_A4444 = 0x8 -cc.TEXTURE2_D_PIXEL_FORMAT_RGB5_A1 = 0x9 -cc.TEXTURE2_D_PIXEL_FORMAT_PVRTC4 = 0xa -cc.TEXTURE2_D_PIXEL_FORMAT_PVRTC4A = 0xb -cc.TEXTURE2_D_PIXEL_FORMAT_PVRTC2 = 0xc -cc.TEXTURE2_D_PIXEL_FORMAT_PVRTC2A = 0xd -cc.TEXTURE2_D_PIXEL_FORMAT_ETC = 0xe -cc.TEXTURE2_D_PIXEL_FORMAT_S3TC_DXT1 = 0xf -cc.TEXTURE2_D_PIXEL_FORMAT_S3TC_DXT3 = 0x10 -cc.TEXTURE2_D_PIXEL_FORMAT_S3TC_DXT5 = 0x11 -cc.TEXTURE2_D_PIXEL_FORMAT_DEFAULT = 0x0 +cc.TEXTURE_PF_PVRTC4 = 0 +cc.TEXTURE_PF_PVRTC4A = 1 +cc.TEXTURE_PF_PVRTC2 = 2 +cc.TEXTURE_PF_PVRTC2A = 3 +cc.TEXTURE_PF_ETC1 = 4 +cc.TEXTURE_PF_ETC2_RGB = 5 +cc.TEXTURE_PF_ETC2_RGBA = 6 +cc.TEXTURE_PF_S3TC_DXT1 = 7 +cc.TEXTURE_PF_S3TC_DXT3 = 8 +cc.TEXTURE_PF_S3TC_DXT5 = 9 +cc.TEXTURE_PF_ATC_RGB = 10 +cc.TEXTURE_PF_ATC_EXPLICIT_ALPHA = 11 +cc.TEXTURE_PF_ATC_INTERPOLATED_ALPHA = 12 +cc.TEXTURE_PF_ASTC4x4 = 13 --!< ASTC 4x4 8.0 BPP +cc.TEXTURE_PF_ASTC5x5 = 14 --!< ASTC 5x5 5.12 BPP +cc.TEXTURE_PF_ASTC6x6 = 15 --!< ASTC 6x6 3.56 BPP +cc.TEXTURE_PF_ASTC8x5 = 16 --!< ASTC 8x5 3.20 BPP +cc.TEXTURE_PF_ASTC8x6 = 17 --!< ASTC 8x6 2.67 BPP +cc.TEXTURE_PF_ASTC8x8 = 18 --!< ASTC 8x8 2.0 BPP +cc.TEXTURE_PF_ASTC10x5 = 19 --!< ASTC 10x5 2.56 BPP +cc.TEXTURE_PF_RGBA8 = 20 +cc.TEXTURE_PF_BGRA8 = 21 +cc.TEXTURE_PF_RGB8 = 22 +cc.TEXTURE_PF_RGB565 = 23 -- !render as BGR565 +cc.TEXTURE_PF_RGBA4 = 24 -- !render as ABGR4 +cc.TEXTURE_PF_RGB5A1 = 25 -- !render as BGR5A1 +cc.TEXTURE_PF_A8 = 26 +cc.TEXTURE_PF_L8 = 27 +cc.TEXTURE_PF_LA8 = 28 +cc.TEXTURE_PF_D24S8 = 29 +cc.TEXTURE_PF_COUNT = 30 +cc.TEXTURE_PF_NONE = 0xffff + cc.TOUCHES_ALL_AT_ONCE = 0x0 cc.TOUCHES_ONE_BY_ONE = 0x1 cc.TRANSITION_ORIENTATION_DOWN_OVER = 0x1 diff --git a/extensions/scripting/lua-bindings/script/cocos2d/DeprecatedCocos2dEnum.lua b/extensions/scripting/lua-bindings/script/cocos2d/DeprecatedCocos2dEnum.lua index 995e7a7062..66e2065652 100644 --- a/extensions/scripting/lua-bindings/script/cocos2d/DeprecatedCocos2dEnum.lua +++ b/extensions/scripting/lua-bindings/script/cocos2d/DeprecatedCocos2dEnum.lua @@ -13,17 +13,17 @@ _G.kCCDirectorProjectionDefault = cc.DIRECTOR_PROJECTION_DEFAULT _G.kCCNodeTagInvalid = cc.NODE_TAG_INVALID _G.kCCNodeOnEnter = cc.NODE_ON_ENTER _G.kCCNodeOnExit = cc.NODE_ON_EXIT -_G.kCCTexture2DPixelFormat_RGBA8888 = cc.TEXTURE2_D_PIXEL_FORMAT_RGB_A8888 -_G.kCCTexture2DPixelFormat_RGB888 = cc.TEXTURE2_D_PIXEL_FORMAT_RG_B888 -_G.kCCTexture2DPixelFormat_RGB565 = cc.TEXTURE2_D_PIXEL_FORMAT_RG_B565 -_G.kCCTexture2DPixelFormat_A8 = cc.TEXTURE2_D_PIXEL_FORMAT_A8 -_G.kCCTexture2DPixelFormat_I8 = cc.TEXTURE2_D_PIXEL_FORMAT_I8 -_G.kCCTexture2DPixelFormat_AI88 = cc.TEXTURE2_D_PIXEL_FORMAT_A_I88 -_G.kCCTexture2DPixelFormat_RGBA4444 = cc.TEXTURE2_D_PIXEL_FORMAT_RGB_A4444 -_G.kCCTexture2DPixelFormat_RGB5A1 = cc.TEXTURE2_D_PIXEL_FORMAT_RGB5_A1 -_G.kCCTexture2DPixelFormat_PVRTC4 = cc.TEXTURE2_D_PIXEL_FORMAT_PVRTC4 -_G.kCCTexture2DPixelFormat_PVRTC2 = cc.TEXTURE2_D_PIXEL_FORMAT_PVRTC2 -_G.kCCTexture2DPixelFormat_Default = cc.TEXTURE2_D_PIXEL_FORMAT_DEFAULT +-- _G.kCCTexture2DPixelFormat_RGBA8888 = cc.TEXTURE_PF_RGBA8 +-- _G.kCCTexture2DPixelFormat_RGB888 = cc.TEXTURE_PF_RGB8 +-- _G.kCCTexture2DPixelFormat_RGB565 = cc.TEXTURE_PF_RGB565 +-- _G.kCCTexture2DPixelFormat_A8 = cc.TEXTURE_PF_A8 +-- _G.kCCTexture2DPixelFormat_I8 = cc.TEXTURE_PF_I8 +-- _G.kCCTexture2DPixelFormat_AI88 = cc.TEXTURE_PF_LA8 +-- _G.kCCTexture2DPixelFormat_RGBA4444 = cc.TEXTURE_PF_RGBA4 +-- _G.kCCTexture2DPixelFormat_RGB5A1 = cc.TEXTURE_PF_RGB5A1 +-- _G.kCCTexture2DPixelFormat_PVRTC4 = cc.TEXTURE_PF_PVRTC4 +-- _G.kCCTexture2DPixelFormat_PVRTC2 = cc.TEXTURE_PF_PVRTC2 +-- _G.kCCTexture2DPixelFormat_Default = cc.TEXTURE_PF_RGBA8 _G.kCCImageFormatPNG = cc.IMAGE_FORMAT_PNG _G.kCCImageFormatJPEG = cc.IMAGE_FORMAT_JPEG _G.kCCTouchesOneByOne = cc.TOUCHES_ONE_BY_ONE @@ -73,4 +73,4 @@ _G.kTargetIphone = cc.PLATFORM_OS_IPHONE _G.kTargetIpad = cc.PLATFORM_OS_IPAD _G.kTargetBlackBerry = cc.PLATFORM_OS_BLACKBERRY -cc.TEXTURE_PIXELFORMAT_DEFAULT = cc.TEXTURE2_D_PIXEL_FORMAT_DEFAULT +cc.TEXTURE_PIXELFORMAT_DEFAULT = cc.TEXTURE_PF_RGBA8 diff --git a/extensions/scripting/lua-bindings/script/framework/display.lua b/extensions/scripting/lua-bindings/script/framework/display.lua index a06288a5b6..014aa0e496 100644 --- a/extensions/scripting/lua-bindings/script/framework/display.lua +++ b/extensions/scripting/lua-bindings/script/framework/display.lua @@ -378,7 +378,7 @@ function display.newSprite(source, x, y, params) sprite = spriteClass:create(source, params.rect, params.capInsets) end if display.TEXTURES_PIXEL_FORMAT[source] then - cc.Texture2D:setDefaultAlphaPixelFormat(cc.TEXTURE2_D_PIXEL_FORMAT_BGR_A8888) + cc.Texture2D:setDefaultAlphaPixelFormat(cc.TEXTURE_PF_BGRA8) end break elseif sourceType ~= "userdata" then @@ -503,7 +503,7 @@ function display.loadSpriteFrames(dataFilename, imageFilename, callback) spriteFrameCache:addSpriteFramesAsync(dataFilename, imageFilename, callback) end if display.TEXTURES_PIXEL_FORMAT[imageFilename] then - cc.Texture2D:setDefaultAlphaPixelFormat(cc.TEXTURE2_D_PIXEL_FORMAT_BGR_A8888) + cc.Texture2D:setDefaultAlphaPixelFormat(cc.TEXTURE_PF_BGRA8) end end diff --git a/tests/cpp-tests/CMakeLists.txt b/tests/cpp-tests/CMakeLists.txt index 817331890e..f84b83051b 100644 --- a/tests/cpp-tests/CMakeLists.txt +++ b/tests/cpp-tests/CMakeLists.txt @@ -2,6 +2,15 @@ cmake_minimum_required(VERSION 3.10) set(APP_NAME cpp-tests) + +# "too large PDB" error often occurs in cpp-tests when using default "/Zi" +if (MSVC) + string(REPLACE "/Zi" "/Z7" CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}") + string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") + string(REPLACE "/Zi" "/Z7" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}") + string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") +endif() + project(${APP_NAME}) if(NOT DEFINED BUILD_ENGINE_DONE) @@ -503,15 +512,15 @@ if(WINDOWS OR MACOSX OR LINUX) Classes/ChipmunkTestBed/demo/Slice.c Classes/ChipmunkTestBed/demo/Unicycle.c Classes/ChipmunkTestBed/demo/Tumble.c) - if(WINDOWS) - set_source_files_properties(${TESTBED_C_SORUCES} PROPERTIES COMPILE_FLAGS "/TP") - else() - set_source_files_properties(${TESTBED_C_SORUCES} PROPERTIES LANGUAGE CXX) - endif() - list(APPEND GAME_SOURCE - ${TESTBED_C_SORUCES} - Classes/ChipmunkTestBed/ChipmunkTestBed.cpp - ) + if(WINDOWS) + set_source_files_properties(${TESTBED_C_SORUCES} PROPERTIES COMPILE_FLAGS "/TP") + else() + set_source_files_properties(${TESTBED_C_SORUCES} PROPERTIES LANGUAGE CXX) + endif() + list(APPEND GAME_SOURCE + ${TESTBED_C_SORUCES} + Classes/ChipmunkTestBed/ChipmunkTestBed.cpp + ) endif() @@ -566,8 +575,6 @@ if(APPLE) # For code-signing, set the DEVELOPMENT_TEAM: #set_xcode_property(${APP_NAME} DEVELOPMENT_TEAM "GRLXXXX2K9") elseif(WINDOWS) - # "too large PDB" error often occurs in cpp-tests when using default "/Zi" - target_compile_options(${APP_NAME} PRIVATE /Z7) cocos_copy_target_dll(${APP_NAME}) endif() diff --git a/tests/cpp-tests/Classes/SpriteFrameCacheTest/SpriteFrameCacheTest.cpp b/tests/cpp-tests/Classes/SpriteFrameCacheTest/SpriteFrameCacheTest.cpp index 9f8917013f..4d00703f66 100644 --- a/tests/cpp-tests/Classes/SpriteFrameCacheTest/SpriteFrameCacheTest.cpp +++ b/tests/cpp-tests/Classes/SpriteFrameCacheTest/SpriteFrameCacheTest.cpp @@ -2,6 +2,8 @@ Copyright (c) 2012 cocos2d-x.org Copyright (c) 2013-2016 Chukong Technologies Inc. Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. + Copyright (c) 2020 C4games Ltd. + Copyright (c) 2021-2022 Bytedance Inc. https://adxeproject.github.io/ @@ -322,10 +324,7 @@ protected: if (pixelFormatIt != pixelFormats.end()) { const backend::PixelFormat pixelFormat = (*pixelFormatIt).second; - const backend::PixelFormat currentPixelFormat = Texture2D::getDefaultAlphaPixelFormat(); - Texture2D::setDefaultAlphaPixelFormat(pixelFormat); - texture = Director::getInstance()->getTextureCache()->addImage(texturePath); - Texture2D::setDefaultAlphaPixelFormat(currentPixelFormat); + texture = Director::getInstance()->getTextureCache()->addImage(texturePath, pixelFormat); } else { diff --git a/tests/cpp-tests/Classes/Texture2dTest/Texture2dTest.cpp b/tests/cpp-tests/Classes/Texture2dTest/Texture2dTest.cpp index c6ed068825..036469fc79 100644 --- a/tests/cpp-tests/Classes/Texture2dTest/Texture2dTest.cpp +++ b/tests/cpp-tests/Classes/Texture2dTest/Texture2dTest.cpp @@ -2,6 +2,8 @@ Copyright (c) 2012 cocos2d-x.org Copyright (c) 2013-2016 Chukong Technologies Inc. Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. + Copyright (c) 2020 C4games Ltd. + Copyright (c) 2021-2022 Bytedance Inc. https://adxeproject.github.io/ @@ -1593,8 +1595,7 @@ void TexturePixelFormat::onEnter() addChild(background, -1); // RGBA 8888 image (32-bit) - Texture2D::setDefaultAlphaPixelFormat(backend::PixelFormat::RGBA8); - auto sprite1 = Sprite::create("Images/test-rgba1.png"); + auto sprite1 = Sprite::create("Images/test-rgba1.png", PixelFormat::RGBA8); sprite1->setPosition(Vec2(1 * s.width / 7, s.height / 2 + 32)); addChild(sprite1, 0); @@ -1602,8 +1603,7 @@ void TexturePixelFormat::onEnter() Director::getInstance()->getTextureCache()->removeTexture(sprite1->getTexture()); // RGBA 4444 image (16-bit) - Texture2D::setDefaultAlphaPixelFormat(backend::PixelFormat::RGBA4); - auto sprite2 = Sprite::create("Images/test-rgba1.png"); + auto sprite2 = Sprite::create("Images/test-rgba1.png", PixelFormat::RGBA4); sprite2->setPosition(Vec2(2 * s.width / 7, s.height / 2 - 32)); addChild(sprite2, 0); @@ -1611,8 +1611,7 @@ void TexturePixelFormat::onEnter() Director::getInstance()->getTextureCache()->removeTexture(sprite2->getTexture()); // RGB5A1 image (16-bit) - Texture2D::setDefaultAlphaPixelFormat(backend::PixelFormat::RGB5A1); - auto sprite3 = Sprite::create("Images/test-rgba1.png"); + auto sprite3 = Sprite::create("Images/test-rgba1.png", PixelFormat::RGB5A1); sprite3->setPosition(Vec2(3 * s.width / 7, s.height / 2 + 32)); addChild(sprite3, 0); @@ -1620,8 +1619,7 @@ void TexturePixelFormat::onEnter() Director::getInstance()->getTextureCache()->removeTexture(sprite3->getTexture()); // RGB888 image - Texture2D::setDefaultAlphaPixelFormat(backend::PixelFormat::RGB8); - auto sprite4 = Sprite::create("Images/test-rgba1.png"); + auto sprite4 = Sprite::create("Images/test-rgba1.png", PixelFormat::RGB8); sprite4->setPosition(Vec2(4 * s.width / 7, s.height / 2 - 32)); addChild(sprite4, 0); @@ -1629,8 +1627,7 @@ void TexturePixelFormat::onEnter() Director::getInstance()->getTextureCache()->removeTexture(sprite4->getTexture()); // RGB565 image (16-bit) - Texture2D::setDefaultAlphaPixelFormat(backend::PixelFormat::RGB565); - auto sprite5 = Sprite::create("Images/test-rgba1.png"); + auto sprite5 = Sprite::create("Images/test-rgba1.png", PixelFormat::RGB565); sprite5->setPosition(Vec2(5 * s.width / 7, s.height / 2 + 32)); addChild(sprite5, 0); @@ -1638,8 +1635,7 @@ void TexturePixelFormat::onEnter() Director::getInstance()->getTextureCache()->removeTexture(sprite5->getTexture()); // A8 image (8-bit) - Texture2D::setDefaultAlphaPixelFormat(backend::PixelFormat::A8); - auto sprite6 = Sprite::create("Images/test-rgba1.png"); + auto sprite6 = Sprite::create("Images/test-rgba1.png", PixelFormat::A8); sprite6->setPosition(Vec2(6 * s.width / 7, s.height / 2 - 32)); addChild(sprite6, 0); @@ -1661,8 +1657,6 @@ void TexturePixelFormat::onEnter() sprite4->runAction(seq_4ever4); sprite5->runAction(seq_4ever5); - // restore default - Texture2D::setDefaultAlphaPixelFormat(backend::PixelFormat::RGBA8); log("%s\n", Director::getInstance()->getTextureCache()->getCachedTextureInfo().c_str()); } @@ -2212,8 +2206,6 @@ TexturePVRv3Premult::TexturePVRv3Premult() pvr2->setPosition(Vec2(size.width / 4 * 2, size.height / 2)); transformSprite(pvr2); - // PNG - Texture2D::setDefaultAlphaPixelFormat(backend::PixelFormat::RGBA8); Director::getInstance()->getTextureCache()->removeTextureForKey("Images/grossinis_sister1-testalpha.png"); auto png = Sprite::create("Images/grossinis_sister1-testalpha.png"); addChild(png, 0); @@ -2369,8 +2361,7 @@ std::string TextureATITCInterpolated::subtitle() const static void addImageToDemo(TextureDemo& demo, float x, float y, const char* path, backend::PixelFormat format) { - Texture2D::setDefaultAlphaPixelFormat(format); - auto sprite = Sprite::create(path); + auto sprite = Sprite::create(path, format); sprite->setPosition(Vec2(x, y)); demo.addChild(sprite, 0); @@ -2398,8 +2389,6 @@ void TextureConvertRGB888::onEnter() addImageToDemo(*this, 7 * s.width / 9, s.height / 2 + 32, img, backend::PixelFormat::RGBA4); addImageToDemo(*this, 8 * s.width / 9, s.height / 2 - 32, img, backend::PixelFormat::RGB5A1); - // restore default - Texture2D::setDefaultAlphaPixelFormat(backend::PixelFormat::RGBA8); log("%s\n", Director::getInstance()->getTextureCache()->getCachedTextureInfo().c_str()); } @@ -2432,8 +2421,6 @@ void TextureConvertRGBA8888::onEnter() addImageToDemo(*this, 7 * s.width / 9, s.height / 2 + 32, img, backend::PixelFormat::RGBA4); addImageToDemo(*this, 8 * s.width / 9, s.height / 2 - 32, img, backend::PixelFormat::RGB5A1); - // restore default - Texture2D::setDefaultAlphaPixelFormat(backend::PixelFormat::RGBA8); log("%s\n", Director::getInstance()->getTextureCache()->getCachedTextureInfo().c_str()); } @@ -2466,8 +2453,6 @@ void TextureConvertL8::onEnter() addImageToDemo(*this, 7 * s.width / 9, s.height / 2 + 32, img, backend::PixelFormat::RGBA4); addImageToDemo(*this, 8 * s.width / 9, s.height / 2 - 32, img, backend::PixelFormat::RGB5A1); - // restore default - Texture2D::setDefaultAlphaPixelFormat(backend::PixelFormat::RGBA8); log("%s\n", Director::getInstance()->getTextureCache()->getCachedTextureInfo().c_str()); } @@ -2500,8 +2485,6 @@ void TextureConvertLA8::onEnter() addImageToDemo(*this, 7 * s.width / 9, s.height / 2 + 32, img, backend::PixelFormat::RGBA4); addImageToDemo(*this, 8 * s.width / 9, s.height / 2 - 32, img, backend::PixelFormat::RGB5A1); - // restore default - Texture2D::setDefaultAlphaPixelFormat(backend::PixelFormat::RGBA8); log("%s\n", Director::getInstance()->getTextureCache()->getCachedTextureInfo().c_str()); } diff --git a/tests/lua-tests/src/BillBoardTest/BillBoardTest.lua b/tests/lua-tests/src/BillBoardTest/BillBoardTest.lua index 46b8a073bb..7fff9d43c4 100644 --- a/tests/lua-tests/src/BillBoardTest/BillBoardTest.lua +++ b/tests/lua-tests/src/BillBoardTest/BillBoardTest.lua @@ -82,8 +82,8 @@ function BillBoardTest:init() cameraRightDir.y=0 local cameraPos= self._camera:getPosition3D() - cameraPos = cc.vec3add(cameraPos, cc.vec2mul(cameraDir, newPos.y * 0.5)) - cameraPos = cc.vec3add(cameraPos, cc.vec2mul(cameraRightDir, newPos.x * 0.5)) + cameraPos = cc.vec3add(cameraPos, cc.vec3mul(cameraDir, newPos.y * 0.5)) + cameraPos = cc.vec3add(cameraPos, cc.vec3mul(cameraRightDir, newPos.x * 0.5)) self._camera:setPosition3D(cameraPos) end end, cc.Handler.EVENT_TOUCHES_MOVED) @@ -143,7 +143,7 @@ function BillBoardTest:init() self:addNewAniBillBoardWithCoords(cc.vec3(-140,0,0)) self:addNewAniBillBoardWithCoords(cc.vec3(-180,0,0)) - self._camera:setPosition(cc.vec3(0, 130, 230)) + self._camera:setPosition3D(cc.vec3(0, 130, 230)) self._camera:lookAt(cc.vec3(0, 0, 100), cc.vec3(0, 1, 0)) local ttfConfig = {}