diff --git a/cocos/2d/TGAlib.cpp b/cocos/2d/TGAlib.cpp index 9320b887ce..bd6c510e08 100644 --- a/cocos/2d/TGAlib.cpp +++ b/cocos/2d/TGAlib.cpp @@ -272,7 +272,7 @@ tImageTGA* tgaLoadBuffer(unsigned char* buffer, long size) // this is the function to call when we want to load an image tImageTGA * tgaLoad(const char *filename) { - long size = 0; + ssize_t size = 0; unsigned char* buffer = FileUtils::getInstance()->getFileData(filename, "rb", &size); if (buffer != nullptr) diff --git a/cocos/2d/ZipUtils.cpp b/cocos/2d/ZipUtils.cpp index 6ac9272f24..0a6be7e39b 100644 --- a/cocos/2d/ZipUtils.cpp +++ b/cocos/2d/ZipUtils.cpp @@ -306,7 +306,7 @@ bool ZipUtils::isCCZFile(const char *path) // load file into memory unsigned char* compressed = NULL; - long fileLen = 0; + ssize_t fileLen = 0; compressed = FileUtils::getInstance()->getFileData(path, "rb", &fileLen); if(compressed == NULL || fileLen == 0) @@ -321,7 +321,7 @@ bool ZipUtils::isCCZFile(const char *path) return ret; } -bool ZipUtils::isCCZBuffer(const unsigned char *buffer, long len) +bool ZipUtils::isCCZBuffer(const unsigned char *buffer, ssize_t len) { if (static_cast(len) < sizeof(struct CCZHeader)) { @@ -338,7 +338,7 @@ bool ZipUtils::isGZipFile(const char *path) // load file into memory unsigned char* compressed = NULL; - long fileLen = 0; + ssize_t fileLen = 0; compressed = FileUtils::getInstance()->getFileData(path, "rb", &fileLen); if(NULL == compressed || 0 == fileLen) @@ -352,7 +352,7 @@ bool ZipUtils::isGZipFile(const char *path) return ret; } -bool ZipUtils::isGZipBuffer(const unsigned char *buffer, long len) +bool ZipUtils::isGZipBuffer(const unsigned char *buffer, ssize_t len) { if (len < 2) { @@ -461,7 +461,7 @@ int ZipUtils::inflateCCZFile(const char *path, unsigned char **out) // load file into memory unsigned char* compressed = NULL; - long fileLen = 0; + ssize_t fileLen = 0; compressed = FileUtils::getInstance()->getFileData(path, "rb", &fileLen); if(NULL == compressed || 0 == fileLen) diff --git a/cocos/2d/ZipUtils.h b/cocos/2d/ZipUtils.h index 1d2275633b..da5ec54673 100644 --- a/cocos/2d/ZipUtils.h +++ b/cocos/2d/ZipUtils.h @@ -31,6 +31,9 @@ THE SOFTWARE. #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) #include "platform/android/CCFileUtilsAndroid.h" +#elif(CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) +// for import ssize_t on win32 platform +#include "CCStdC.h" #endif namespace cocos2d diff --git a/cocos/2d/platform/win32/CCFileUtilsWin32.cpp b/cocos/2d/platform/win32/CCFileUtilsWin32.cpp index a417f34fa1..73e18f59a8 100644 --- a/cocos/2d/platform/win32/CCFileUtilsWin32.cpp +++ b/cocos/2d/platform/win32/CCFileUtilsWin32.cpp @@ -121,7 +121,7 @@ bool FileUtilsWin32::isAbsolutePath(const std::string& strPath) const return false; } -unsigned char* FileUtilsWin32::getFileData(const char* filename, const char* mode, long* size) +unsigned char* FileUtilsWin32::getFileData(const char* filename, const char* mode, ssize_t* size) { unsigned char * pBuffer = NULL; CCASSERT(filename != NULL && size != NULL && mode != NULL, "Invalid parameters."); diff --git a/cocos/2d/platform/win32/CCFileUtilsWin32.h b/cocos/2d/platform/win32/CCFileUtilsWin32.h index 5c88d97cf9..6eec9dd60e 100644 --- a/cocos/2d/platform/win32/CCFileUtilsWin32.h +++ b/cocos/2d/platform/win32/CCFileUtilsWin32.h @@ -58,7 +58,7 @@ protected: * @return Upon success, a pointer to the data is returned, otherwise NULL. * @warning Recall: you are responsible for calling delete[] on any Non-NULL pointer returned. */ - virtual unsigned char* getFileData(const char* filename, const char* mode, long * size) override; + virtual unsigned char* getFileData(const char* filename, const char* mode, ssize_t * size) override; /** * Gets full path for filename, resolution directory and search path. diff --git a/cocos/2d/platform/win32/CCStdC.h b/cocos/2d/platform/win32/CCStdC.h index 1090404d89..027c8bf3cb 100644 --- a/cocos/2d/platform/win32/CCStdC.h +++ b/cocos/2d/platform/win32/CCStdC.h @@ -25,6 +25,11 @@ THE SOFTWARE. #ifndef __CC_STD_C_H__ #define __CC_STD_C_H__ +//typedef SSIZE_T ssize_t; +// ssize_t was redefined as int in libwebsockets.h. +// Therefore, to avoid conflict, we needs the same definition. +typedef int ssize_t; + #include "CCPlatformMacros.h" #include diff --git a/cocos/base/CCAutoreleasePool.cpp b/cocos/base/CCAutoreleasePool.cpp index e55c8c9b97..8c32f4c42b 100644 --- a/cocos/base/CCAutoreleasePool.cpp +++ b/cocos/base/CCAutoreleasePool.cpp @@ -64,7 +64,7 @@ void AutoreleasePool::clear() int nIndex = _managedObjectArray.size() - 1; #endif - _managedObjectArray.forEachReverse([](Object* obj){ + _managedObjectArray.forEachReverse([&](Object* obj){ --(obj->_autoReleaseCount); //(*it)->release(); //delete (*it); diff --git a/cocos/base/CCVector.h b/cocos/base/CCVector.h index 292d70f47b..cddc02c25d 100644 --- a/cocos/base/CCVector.h +++ b/cocos/base/CCVector.h @@ -51,7 +51,7 @@ public: reserve(capacity); } - virtual ~Vector() + ~Vector() { CCLOGINFO("In the destructor of Vector."); clear(); diff --git a/cocos/editor-support/cocosbuilder/CCBReader.cpp b/cocos/editor-support/cocosbuilder/CCBReader.cpp index bd58dde191..db5733a19a 100644 --- a/cocos/editor-support/cocosbuilder/CCBReader.cpp +++ b/cocos/editor-support/cocosbuilder/CCBReader.cpp @@ -218,7 +218,7 @@ Node* CCBReader::readNodeGraphFromFile(const char *pCCBFileName, Object *pOwner, } std::string strPath = FileUtils::getInstance()->fullPathForFilename(strCCBFileName.c_str()); - long size = 0; + ssize_t size = 0; unsigned char * pBytes = FileUtils::getInstance()->getFileData(strPath.c_str(), "rb", &size); Data *data = new Data(pBytes, size); diff --git a/cocos/editor-support/cocosbuilder/CCNodeLoader.cpp b/cocos/editor-support/cocosbuilder/CCNodeLoader.cpp index 8d8d991aa9..3dceb6b7dc 100644 --- a/cocos/editor-support/cocosbuilder/CCNodeLoader.cpp +++ b/cocos/editor-support/cocosbuilder/CCNodeLoader.cpp @@ -923,7 +923,7 @@ Node * NodeLoader::parsePropTypeCCBFile(Node * pNode, Node * pParent, CCBReader // Load sub file std::string path = FileUtils::getInstance()->fullPathForFilename(ccbFileName.c_str()); - long size = 0; + ssize_t size = 0; unsigned char * pBytes = FileUtils::getInstance()->getFileData(path.c_str(), "rb", &size); CCBReader * reader = new CCBReader(pCCBReader); diff --git a/cocos/editor-support/cocostudio/CCDataReaderHelper.cpp b/cocos/editor-support/cocostudio/CCDataReaderHelper.cpp index 00e1d7f3f4..b462ef72de 100644 --- a/cocos/editor-support/cocostudio/CCDataReaderHelper.cpp +++ b/cocos/editor-support/cocostudio/CCDataReaderHelper.cpp @@ -291,7 +291,7 @@ void DataReaderHelper::addDataFromFile(const char *filePath) size_t startPos = filePathStr.find_last_of("."); std::string str = &filePathStr[startPos]; - long size; + ssize_t size; std::string fullPath = CCFileUtils::getInstance()->fullPathForFilename(filePath); char *pFileContent = (char *)CCFileUtils::getInstance()->getFileData(fullPath.c_str() , "r", &size); @@ -391,7 +391,7 @@ void DataReaderHelper::addDataFromFileAsync(const char *imagePath, const char *p std::string str = &filePathStr[startPos]; std::string fullPath = CCFileUtils::getInstance()->fullPathForFilename(filePath); - long size; + ssize_t size; // XXX fileContent is being leaked data->fileContent = (char *)CCFileUtils::getInstance()->getFileData(fullPath.c_str() , "r", &size); diff --git a/cocos/editor-support/cocostudio/CCSGUIReader.cpp b/cocos/editor-support/cocostudio/CCSGUIReader.cpp index 9cc6348635..625627fff1 100644 --- a/cocos/editor-support/cocostudio/CCSGUIReader.cpp +++ b/cocos/editor-support/cocostudio/CCSGUIReader.cpp @@ -128,7 +128,7 @@ UIWidget* GUIReader::widgetFromJsonFile(const char *fileName) jsonpath = CCFileUtils::getInstance()->fullPathForFilename(fileName); int pos = jsonpath.find_last_of('/'); m_strFilePath = jsonpath.substr(0,pos+1); - long size = 0; + ssize_t size = 0; des = (char*)(CCFileUtils::getInstance()->getFileData(jsonpath.c_str(),"r" , &size)); if(nullptr == des || strcmp(des, "") == 0) { diff --git a/cocos/editor-support/cocostudio/CCSSceneReader.cpp b/cocos/editor-support/cocostudio/CCSSceneReader.cpp index 385c147e27..d682c504b7 100644 --- a/cocos/editor-support/cocostudio/CCSSceneReader.cpp +++ b/cocos/editor-support/cocostudio/CCSSceneReader.cpp @@ -47,7 +47,7 @@ namespace cocostudio { cocos2d::Node* SceneReader::createNodeWithSceneFile(const char* pszFileName) { - long size = 0; + ssize_t size = 0; char* pData = 0; cocos2d::Node *pNode = nullptr; do @@ -215,7 +215,7 @@ namespace cocostudio { { file_path = reDir.substr(0, pos+1); } - long size = 0; + ssize_t size = 0; char *des = (char*)(cocos2d::FileUtils::getInstance()->getFileData(pPath.c_str(),"r" , &size)); JsonDictionary *jsonDict = new JsonDictionary(); jsonDict->initWithDescription(des); @@ -285,7 +285,7 @@ namespace cocostudio { if (nResType == 0) { pAttribute = ComAttribute::create(); - long size = 0; + ssize_t size = 0; char* pData = 0; pData = (char*)(cocos2d::FileUtils::getInstance()->getFileData(pPath.c_str(), "r", &size)); if(pData != nullptr && strcmp(pData, "") != 0) diff --git a/cocos/editor-support/spine/extension.h b/cocos/editor-support/spine/extension.h index f5d1a2ac9b..a8f64b1b19 100644 --- a/cocos/editor-support/spine/extension.h +++ b/cocos/editor-support/spine/extension.h @@ -54,6 +54,11 @@ #ifndef SPINE_EXTENSION_H_ #define SPINE_EXTENSION_H_ +// for import ssize_t on win32 platform +#if defined(_MSC_VER) +#include "CCStdC.h" +#endif + /* All allocation uses these. */ #define MALLOC(TYPE,COUNT) ((TYPE*)_malloc(sizeof(TYPE) * COUNT)) #define CALLOC(TYPE,COUNT) ((TYPE*)_calloc(1, sizeof(TYPE) * COUNT)) diff --git a/cocos/scripting/lua/bindings/CCLuaEngine.cpp b/cocos/scripting/lua/bindings/CCLuaEngine.cpp index ae047fbca8..7671034043 100644 --- a/cocos/scripting/lua/bindings/CCLuaEngine.cpp +++ b/cocos/scripting/lua/bindings/CCLuaEngine.cpp @@ -56,7 +56,6 @@ bool LuaEngine::init(void) { _stack = LuaStack::create(); _stack->retain(); - extendLuaObject(); executeScriptFile("DeprecatedEnum.lua"); executeScriptFile("DeprecatedClass.lua"); executeScriptFile("Deprecated.lua"); @@ -670,56 +669,6 @@ int LuaEngine::handlerControlEvent(void* data) return ret; } -void LuaEngine::extendLuaObject() -{ - if ( NULL == _stack || NULL == _stack->getLuaState()) - return; - - lua_State* lua_S = _stack->getLuaState(); - extendWebsocket(lua_S); - extendGLNode(lua_S); - - _stack->clean(); -} - -void LuaEngine::extendWebsocket(lua_State* lua_S) -{ -#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) - if (NULL == lua_S) - return; - - lua_pushstring(lua_S,"WebSocket"); - lua_rawget(lua_S,LUA_REGISTRYINDEX); - if (lua_istable(lua_S,-1)) - { - lua_pushstring(lua_S,"registerScriptHandler"); - lua_pushcfunction(lua_S,tolua_Cocos2d_WebSocket_registerScriptHandler00); - lua_rawset(lua_S,-3); - lua_pushstring(lua_S,"unregisterScriptHandler"); - lua_pushcfunction(lua_S,tolua_Cocos2d_WebSocket_unregisterScriptHandler00); - lua_rawset(lua_S,-3); - } -#endif -} - -void LuaEngine::extendGLNode(lua_State* lua_S) -{ - if (NULL == lua_S) - return; - - lua_pushstring(lua_S,"GLNode"); - lua_rawget(lua_S,LUA_REGISTRYINDEX); - if (lua_istable(lua_S,-1)) - { - lua_pushstring(lua_S,"registerScriptDrawHandler"); - lua_pushcfunction(lua_S,tolua_Cocos2d_GLNode_registerScriptDrawHandler00); - lua_rawset(lua_S,-3); - lua_pushstring(lua_S,"unregisterScriptDrawHandler"); - lua_pushcfunction(lua_S,tolua_Cocos2d_GLNode_unregisterScriptDrawHandler00); - lua_rawset(lua_S,-3); - } -} - int LuaEngine::sendEventReturnArray(ScriptEvent* message,int numResults,Array& resultArray) { if (nullptr == message || numResults <= 0) diff --git a/cocos/scripting/lua/bindings/CCLuaEngine.h b/cocos/scripting/lua/bindings/CCLuaEngine.h index e4a1ba395e..bcb1e2327c 100644 --- a/cocos/scripting/lua/bindings/CCLuaEngine.h +++ b/cocos/scripting/lua/bindings/CCLuaEngine.h @@ -117,7 +117,6 @@ public: virtual int sendEvent(ScriptEvent* message); virtual int sendEventReturnArray(ScriptEvent* message,int numResults,Array& resultArray); - void extendLuaObject(); private: LuaEngine(void) : _stack(NULL) @@ -140,8 +139,6 @@ private: int handleAssetsManagerEvent(void* data); int handleCocoStudioEventListener(void* data); int handleArmatureWrapper(void* data); - void extendWebsocket(lua_State* lua_S); - void extendGLNode(lua_State* lua_S); private: static LuaEngine* _defaultEngine; LuaStack *_stack; diff --git a/cocos/scripting/lua/bindings/CCLuaStack.cpp b/cocos/scripting/lua/bindings/CCLuaStack.cpp index 1bd3584d40..5b0925e376 100644 --- a/cocos/scripting/lua/bindings/CCLuaStack.cpp +++ b/cocos/scripting/lua/bindings/CCLuaStack.cpp @@ -150,6 +150,7 @@ bool LuaStack::init(void) register_all_cocos2dx_extension_manual(_state); register_all_cocos2dx_manual_deprecated(_state); register_all_cocos2dx_coco_studio_manual(_state); + register_glnode_manual(_state); #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_MAC) LuaObjcBridge::luaopen_luaoc(_state); #endif @@ -160,6 +161,7 @@ bool LuaStack::init(void) #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) tolua_web_socket_open(_state); + register_web_socket_manual(_state); #endif register_xml_http_request(_state); diff --git a/cocos/scripting/lua/bindings/LuaOpengl.cpp.REMOVED.git-id b/cocos/scripting/lua/bindings/LuaOpengl.cpp.REMOVED.git-id index bc4c41058d..d93e528fb1 100644 --- a/cocos/scripting/lua/bindings/LuaOpengl.cpp.REMOVED.git-id +++ b/cocos/scripting/lua/bindings/LuaOpengl.cpp.REMOVED.git-id @@ -1 +1 @@ -4456a3ba6fbd68175b40e607c6bc19bdfc378ce1 \ No newline at end of file +19467d03b8f48f5f1933d53c756dfda6ab9e7126 \ No newline at end of file diff --git a/cocos/scripting/lua/bindings/LuaOpengl.h b/cocos/scripting/lua/bindings/LuaOpengl.h index d0e755a3a8..3ab56c56fe 100644 --- a/cocos/scripting/lua/bindings/LuaOpengl.h +++ b/cocos/scripting/lua/bindings/LuaOpengl.h @@ -19,5 +19,6 @@ class GLNode:public cocos2d::Node TOLUA_API int tolua_Cocos2d_CCDrawNode_drawPolygon00(lua_State* tolua_S); TOLUA_API int tolua_opengl_open(lua_State* tolua_S); +TOLUA_API int register_glnode_manual(lua_State* tolua_S); #endif //__LUA_OPENGL_H__ diff --git a/cocos/scripting/lua/bindings/LuaScriptHandlerMgr.cpp b/cocos/scripting/lua/bindings/LuaScriptHandlerMgr.cpp index d627be2e18..b4476970df 100644 --- a/cocos/scripting/lua/bindings/LuaScriptHandlerMgr.cpp +++ b/cocos/scripting/lua/bindings/LuaScriptHandlerMgr.cpp @@ -213,110 +213,6 @@ void ScriptHandlerMgr::removeObjectAllHandlers(void* object) NS_CC_END -#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) -int tolua_Cocos2d_WebSocket_registerScriptHandler00(lua_State* tolua_S) -{ -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if ( - !tolua_isusertype(tolua_S,1,"WebSocket",0,&tolua_err) || - !toluafix_isfunction(tolua_S,2,"LUA_FUNCTION",0,&tolua_err) || - !tolua_isnumber(tolua_S,3,0,&tolua_err) || - !tolua_isnoobj(tolua_S,4,&tolua_err) - ) - goto tolua_lerror; - else -#endif - { - LuaWebSocket* self = (LuaWebSocket*) tolua_tousertype(tolua_S,1,0); - if (NULL != self ) { - int handler = ( toluafix_ref_function(tolua_S,2,0)); - ScriptHandlerMgr::HandlerType handlerType = (ScriptHandlerMgr::HandlerType)((int)tolua_tonumber(tolua_S,3,0) + (int)ScriptHandlerMgr::HandlerType::WEBSOCKET_OPEN); - ScriptHandlerMgr::getInstance()->addObjectHandler((void*)self, handler, handlerType); - } - } - return 0; -#ifndef TOLUA_RELEASE -tolua_lerror: - tolua_error(tolua_S,"#ferror in function 'registerScriptHandler'.",&tolua_err); - return 0; -#endif -} - -int tolua_Cocos2d_WebSocket_unregisterScriptHandler00(lua_State* tolua_S) -{ -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if ( - !tolua_isusertype(tolua_S,1,"WebSocket",0,&tolua_err) || - !tolua_isnumber(tolua_S,2,0,&tolua_err) || - !tolua_isnoobj(tolua_S,3,&tolua_err) - ) - goto tolua_lerror; - else -#endif - { - LuaWebSocket* self = (LuaWebSocket*) tolua_tousertype(tolua_S,1,0); - if (NULL != self ) { - ScriptHandlerMgr::HandlerType handlerType = (ScriptHandlerMgr::HandlerType)((int)tolua_tonumber(tolua_S,2,0) + (int)ScriptHandlerMgr::HandlerType::WEBSOCKET_OPEN); - - ScriptHandlerMgr::getInstance()->removeObjectHandler((void*)self, handlerType); - } - } - return 0; -#ifndef TOLUA_RELEASE -tolua_lerror: - tolua_error(tolua_S,"#ferror in function 'unregisterScriptHandler'.",&tolua_err); - return 0; -#endif -} -#endif - -int tolua_Cocos2d_GLNode_registerScriptDrawHandler00(lua_State* tolua_S) -{ -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!tolua_isusertype(tolua_S,1,"GLNode",0,&tolua_err) || - (tolua_isvaluenil(tolua_S,2,&tolua_err) || !toluafix_isfunction(tolua_S,2,"LUA_FUNCTION",0,&tolua_err)) || - !tolua_isnoobj(tolua_S,3,&tolua_err)) - goto tolua_lerror; - else -#endif - { - GLNode* glNode = (GLNode*) tolua_tousertype(tolua_S,1,0); - LUA_FUNCTION handler = ( toluafix_ref_function(tolua_S,2,0)); - ScriptHandlerMgr::getInstance()->addObjectHandler((void*)glNode, handler, ScriptHandlerMgr::HandlerType::GL_NODE_DRAW); - } - return 0; -#ifndef TOLUA_RELEASE -tolua_lerror: - tolua_error(tolua_S,"#ferror in function 'registerScriptDrawHandler'.",&tolua_err); - return 0; -#endif -} - - -int tolua_Cocos2d_GLNode_unregisterScriptDrawHandler00(lua_State* tolua_S) -{ -#ifndef TOLUA_RELEASE - tolua_Error tolua_err; - if (!tolua_isusertype(tolua_S,1,"GLNode",0,&tolua_err) || - !tolua_isnoobj(tolua_S,2,&tolua_err)) - goto tolua_lerror; - else -#endif - { - GLNode* glNode = (GLNode*)tolua_tousertype(tolua_S,1,0); - ScriptHandlerMgr::getInstance()->removeObjectHandler((void*)glNode,ScriptHandlerMgr::HandlerType::GL_NODE_DRAW); - } - return 0; -#ifndef TOLUA_RELEASE -tolua_lerror: - tolua_error(tolua_S,"#ferror in function 'unregisterScriptDrawHandler'.",&tolua_err); - return 0; -#endif -} - static void tolua_reg_script_handler_mgr_type(lua_State* tolua_S) { diff --git a/cocos/scripting/lua/bindings/LuaScriptHandlerMgr.h b/cocos/scripting/lua/bindings/LuaScriptHandlerMgr.h index 8d567019e2..11c138226a 100644 --- a/cocos/scripting/lua/bindings/LuaScriptHandlerMgr.h +++ b/cocos/scripting/lua/bindings/LuaScriptHandlerMgr.h @@ -134,11 +134,6 @@ private: NS_CC_END -#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) -TOLUA_API int tolua_Cocos2d_WebSocket_registerScriptHandler00(lua_State* tolua_S); -TOLUA_API int tolua_Cocos2d_WebSocket_unregisterScriptHandler00(lua_State* tolua_S); -#endif - TOLUA_API int tolua_Cocos2d_GLNode_registerScriptDrawHandler00(lua_State* tolua_S); TOLUA_API int tolua_Cocos2d_GLNode_unregisterScriptDrawHandler00(lua_State* tolua_S); diff --git a/cocos/scripting/lua/bindings/Lua_web_socket.cpp b/cocos/scripting/lua/bindings/Lua_web_socket.cpp index 736c081344..a541001ec8 100644 --- a/cocos/scripting/lua/bindings/Lua_web_socket.cpp +++ b/cocos/scripting/lua/bindings/Lua_web_socket.cpp @@ -368,4 +368,82 @@ TOLUA_API int tolua_web_socket_open(lua_State* tolua_S){ return 1; } +int tolua_Cocos2d_WebSocket_registerScriptHandler00(lua_State* tolua_S) +{ +#ifndef TOLUA_RELEASE + tolua_Error tolua_err; + if ( + !tolua_isusertype(tolua_S,1,"WebSocket",0,&tolua_err) || + !toluafix_isfunction(tolua_S,2,"LUA_FUNCTION",0,&tolua_err) || + !tolua_isnumber(tolua_S,3,0,&tolua_err) || + !tolua_isnoobj(tolua_S,4,&tolua_err) + ) + goto tolua_lerror; + else +#endif + { + LuaWebSocket* self = (LuaWebSocket*) tolua_tousertype(tolua_S,1,0); + if (NULL != self ) { + int handler = ( toluafix_ref_function(tolua_S,2,0)); + ScriptHandlerMgr::HandlerType handlerType = (ScriptHandlerMgr::HandlerType)((int)tolua_tonumber(tolua_S,3,0) + (int)ScriptHandlerMgr::HandlerType::WEBSOCKET_OPEN); + ScriptHandlerMgr::getInstance()->addObjectHandler((void*)self, handler, handlerType); + } + } + return 0; +#ifndef TOLUA_RELEASE +tolua_lerror: + tolua_error(tolua_S,"#ferror in function 'registerScriptHandler'.",&tolua_err); + return 0; +#endif +} + +int tolua_Cocos2d_WebSocket_unregisterScriptHandler00(lua_State* tolua_S) +{ +#ifndef TOLUA_RELEASE + tolua_Error tolua_err; + if ( + !tolua_isusertype(tolua_S,1,"WebSocket",0,&tolua_err) || + !tolua_isnumber(tolua_S,2,0,&tolua_err) || + !tolua_isnoobj(tolua_S,3,&tolua_err) + ) + goto tolua_lerror; + else +#endif + { + LuaWebSocket* self = (LuaWebSocket*) tolua_tousertype(tolua_S,1,0); + if (NULL != self ) { + ScriptHandlerMgr::HandlerType handlerType = (ScriptHandlerMgr::HandlerType)((int)tolua_tonumber(tolua_S,2,0) + (int)ScriptHandlerMgr::HandlerType::WEBSOCKET_OPEN); + + ScriptHandlerMgr::getInstance()->removeObjectHandler((void*)self, handlerType); + } + } + return 0; +#ifndef TOLUA_RELEASE +tolua_lerror: + tolua_error(tolua_S,"#ferror in function 'unregisterScriptHandler'.",&tolua_err); + return 0; +#endif +} + +TOLUA_API int register_web_socket_manual(lua_State* tolua_S) +{ + if (nullptr == tolua_S) + return 0 ; + + lua_pushstring(tolua_S,"WebSocket"); + lua_rawget(tolua_S,LUA_REGISTRYINDEX); + if (lua_istable(tolua_S,-1)) + { + lua_pushstring(tolua_S,"registerScriptHandler"); + lua_pushcfunction(tolua_S,tolua_Cocos2d_WebSocket_registerScriptHandler00); + lua_rawset(tolua_S,-3); + lua_pushstring(tolua_S,"unregisterScriptHandler"); + lua_pushcfunction(tolua_S,tolua_Cocos2d_WebSocket_unregisterScriptHandler00); + lua_rawset(tolua_S,-3); + } + lua_pop(tolua_S, 1); + + return 1; +} + #endif//(CC_TARGET_PLATFORM == CC_PLATFORM_IOS ... diff --git a/cocos/scripting/lua/bindings/Lua_web_socket.h b/cocos/scripting/lua/bindings/Lua_web_socket.h index 3754262deb..98c9c73130 100644 --- a/cocos/scripting/lua/bindings/Lua_web_socket.h +++ b/cocos/scripting/lua/bindings/Lua_web_socket.h @@ -31,6 +31,7 @@ public: }; TOLUA_API int tolua_web_socket_open(lua_State* tolua_S); +TOLUA_API int register_web_socket_manual(lua_State* tolua_S); #endif //(CC_TARGET_PLATFORM == CC_PLATFORM_IOS ... diff --git a/cocos/scripting/lua/bindings/lua_cocos2dx_coco_studio_manual.cpp b/cocos/scripting/lua/bindings/lua_cocos2dx_coco_studio_manual.cpp index 71e1e59a93..fa5d3d8df5 100644 --- a/cocos/scripting/lua/bindings/lua_cocos2dx_coco_studio_manual.cpp +++ b/cocos/scripting/lua/bindings/lua_cocos2dx_coco_studio_manual.cpp @@ -130,6 +130,7 @@ static void extendUIWidget(lua_State* L) { tolua_function(L, "addTouchEventListener", lua_cocos2dx_UIWidget_addTouchEventListener); } + lua_pop(L, 1); } static int lua_cocos2dx_UICheckBox_addEventListenerCheckBox(lua_State* L) @@ -198,6 +199,7 @@ static void extendUICheckBox(lua_State* L) { tolua_function(L, "addEventListenerCheckBox", lua_cocos2dx_UICheckBox_addEventListenerCheckBox); } + lua_pop(L, 1); } static int lua_cocos2dx_UISlider_addEventListenerSlider(lua_State* L) @@ -266,6 +268,7 @@ static void extendUISlider(lua_State* L) { tolua_function(L, "addEventListenerSlider", lua_cocos2dx_UISlider_addEventListenerSlider); } + lua_pop(L, 1); } static int lua_cocos2dx_UITextField_addEventListenerTextField(lua_State* L) @@ -334,6 +337,7 @@ static void extendUITextField(lua_State* L) { tolua_function(L, "addEventListenerTextField", lua_cocos2dx_UITextField_addEventListenerTextField); } + lua_pop(L, 1); } static int lua_cocos2dx_UIPageView_addEventListenerPageView(lua_State* L) @@ -402,6 +406,7 @@ static void extendUIPageView(lua_State* L) { tolua_function(L, "addEventListenerPageView", lua_cocos2dx_UIPageView_addEventListenerPageView); } + lua_pop(L, 1); } static int lua_cocos2dx_UIListView_addEventListenerListView(lua_State* L) @@ -470,6 +475,7 @@ static void extendUIListView(lua_State* L) { tolua_function(L, "addEventListenerListView", lua_cocos2dx_UIListView_addEventListenerListView); } + lua_pop(L, 1); } static int lua_cocos2dx_UILayoutParameter_setMargin(lua_State* L) @@ -608,6 +614,7 @@ static void extendLayoutParameter(lua_State* L) tolua_function(L, "setMargin", lua_cocos2dx_UILayoutParameter_setMargin); tolua_function(L, "getMargin", lua_cocos2dx_UILayoutParameter_getMargin); } + lua_pop(L, 1); } class LuaArmatureWrapper:public Object @@ -806,6 +813,7 @@ static void extendArmatureAnimation(lua_State* L) tolua_function(L, "setMovementEventCallFunc", lua_cocos2dx_ArmatureAnimation_setMovementEventCallFunc); tolua_function(L, "setFrameEventCallFunc", lua_cocos2dx_ArmatureAnimation_setFrameEventCallFunc); } + lua_pop(L, 1); } static int lua_cocos2dx_ArmatureDataManager_addArmatureFileInfoAsyncCallFunc(lua_State* L) @@ -896,6 +904,7 @@ static void extendArmatureDataManager(lua_State* L) { tolua_function(L, "addArmatureFileInfoAsync", lua_cocos2dx_ArmatureDataManager_addArmatureFileInfoAsyncCallFunc); } + lua_pop(L, 1); } int register_all_cocos2dx_coco_studio_manual(lua_State* L) diff --git a/cocos/scripting/lua/bindings/lua_cocos2dx_deprecated.cpp b/cocos/scripting/lua/bindings/lua_cocos2dx_deprecated.cpp index 950f89c420..bad4c5d654 100644 --- a/cocos/scripting/lua/bindings/lua_cocos2dx_deprecated.cpp +++ b/cocos/scripting/lua/bindings/lua_cocos2dx_deprecated.cpp @@ -1991,6 +1991,7 @@ static void extendAnimationDeprecated(lua_State* tolua_S) lua_pushcfunction(tolua_S,tolua_cocos2d_Animation_createWithSpriteFrames_deprecated01); lua_rawset(tolua_S,-3); } + lua_pop(tolua_S, 1); } static int tolua_cocos2d_Sequence_createWithTwoActions(lua_State* tolua_S) @@ -2058,6 +2059,7 @@ static int extendSequenceDeprecated(lua_State* tolua_S) tolua_function(tolua_S, "createWithTwoActions",tolua_cocos2d_Sequence_createWithTwoActions); tolua_function(tolua_S, "create", tolua_Cocos2d_Sequence_create_deprecated00); } + lua_pop(tolua_S, 1); return 1; } @@ -2159,7 +2161,7 @@ static int extendSpawnDeprecated(lua_State* tolua_S) { tolua_function(tolua_S, "createWithTwoActions", tolua_cocos2d_Spawn_createWithTwoActions_deprcated00); } - + lua_pop(tolua_S, 1); return 1; } @@ -2264,7 +2266,7 @@ static int extendMenuDeprecated(lua_State* tolua_S) tolua_function(tolua_S, "alignItemsInColumnsWithArray", tolua_cocos2d_Menu_alignItemsInColumnsWithArray00); tolua_function(tolua_S, "alignItemsInRowsWithArray", tolua_cocos2d_Menu_alignItemsInRowsWithArray00); } - + lua_pop(tolua_S, 1); return 1; } @@ -2306,6 +2308,7 @@ static int extendLayerMultiplexDeprecated(lua_State* tolua_S) { tolua_function(tolua_S, "createWithArray", tolua_cocos2d_LayerMultiplex_createWithArray00); } + lua_pop(tolua_S, 1); return 1; } diff --git a/cocos/scripting/lua/bindings/lua_cocos2dx_extension_manual.cpp b/cocos/scripting/lua/bindings/lua_cocos2dx_extension_manual.cpp index 99c1dc75b4..673f721d29 100644 --- a/cocos/scripting/lua/bindings/lua_cocos2dx_extension_manual.cpp +++ b/cocos/scripting/lua/bindings/lua_cocos2dx_extension_manual.cpp @@ -212,6 +212,7 @@ static void extendScrollView(lua_State* tolua_S) lua_pushcfunction(tolua_S,tolua_cocos2d_ScrollView_unregisterScriptHandler ); lua_rawset(tolua_S,-3); } + lua_pop(tolua_S, 1); } static int tolua_cocos2d_Control_registerControlEventHandler(lua_State* tolua_S) @@ -336,6 +337,7 @@ static void extendControl(lua_State* tolua_S) lua_pushcfunction(tolua_S,tolua_cocos2d_control_unregisterControlEventHandler ); lua_rawset(tolua_S,-3); } + lua_pop(tolua_S, 1); } static int tolua_cocos2d_EditBox_registerScriptEditBoxHandler(lua_State* tolua_S) @@ -440,6 +442,7 @@ static void extendEditBox(lua_State* tolua_S) lua_pushcfunction(tolua_S,tolua_cocos2d_EditBox_unregisterScriptEditBoxHandler ); lua_rawset(tolua_S,-3); } + lua_pop(tolua_S, 1); } static int tolua_cocos2d_CCBProxy_create(lua_State* tolua_S) @@ -786,6 +789,7 @@ static void extendCCBReader(lua_State* tolua_S) lua_pushcfunction(tolua_S,tolua_cocos2d_CCBReader_load ); lua_rawset(tolua_S,-3); } + lua_pop(tolua_S, 1); } @@ -852,6 +856,7 @@ static void extendCCBAnimationManager(lua_State* tolua_S) lua_pushcfunction(tolua_S,tolua_cocos2d_CCBAnimationManager_setCallFuncForLuaCallbackNamed ); lua_rawset(tolua_S,-3); } + lua_pop(tolua_S, 1); } #define KEY_TABLEVIEW_DATA_SOURCE "TableViewDataSource" @@ -1328,6 +1333,7 @@ static void extendTableView(lua_State* L) tolua_function(L, "registerScriptHandler", lua_cocos2d_TableView_registerScriptHandler); tolua_function(L, "unregisterScriptHandler", lua_cocos2d_TableView_unregisterScriptHandler); } + lua_pop(L, 1); } static int lua_cocos2dx_extension_Bone_setIgnoreMovementBoneData(lua_State* L) @@ -1424,6 +1430,7 @@ static void extendBone(lua_State* L) tolua_function(L, "setIgnoreMovementBoneData", lua_cocos2dx_extension_Bone_setIgnoreMovementBoneData); tolua_function(L, "getIgnoreMovementBoneData", lua_cocos2dx_extension_Bone_getIgnoreMovementBoneData); } + lua_pop(L, 1); } class LuaAssetsManagerDelegateProtocol:public Object, public AssetsManagerDelegateProtocol @@ -1540,6 +1547,7 @@ static void extendAssetsManager(lua_State* L) { tolua_function(L, "setDelegate", lua_cocos2dx_AssetsManager_setDelegate); } + lua_pop(L, 1); } int register_all_cocos2dx_extension_manual(lua_State* tolua_S) diff --git a/cocos/scripting/lua/bindings/lua_cocos2dx_manual.cpp.REMOVED.git-id b/cocos/scripting/lua/bindings/lua_cocos2dx_manual.cpp.REMOVED.git-id index 304adce6ee..f6d3f63b06 100644 --- a/cocos/scripting/lua/bindings/lua_cocos2dx_manual.cpp.REMOVED.git-id +++ b/cocos/scripting/lua/bindings/lua_cocos2dx_manual.cpp.REMOVED.git-id @@ -1 +1 @@ -71bf75a1f1e308193a359970e79f9b939e2541f4 \ No newline at end of file +c1e3182aeb1023c573f64314788fbccb8da2de43 \ No newline at end of file diff --git a/samples/Cpp/TestCpp/proj.win32/TestCpp.vcxproj b/samples/Cpp/TestCpp/proj.win32/TestCpp.vcxproj index cfd32fc8e8..b526f9588d 100644 --- a/samples/Cpp/TestCpp/proj.win32/TestCpp.vcxproj +++ b/samples/Cpp/TestCpp/proj.win32/TestCpp.vcxproj @@ -138,6 +138,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\websockets\prebuilt\win32\*.*" "$ + @@ -278,6 +279,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\websockets\prebuilt\win32\*.*" "$ + diff --git a/samples/Cpp/TestCpp/proj.win32/TestCpp.vcxproj.filters b/samples/Cpp/TestCpp/proj.win32/TestCpp.vcxproj.filters index dafeb94a8f..c0fcb15592 100644 --- a/samples/Cpp/TestCpp/proj.win32/TestCpp.vcxproj.filters +++ b/samples/Cpp/TestCpp/proj.win32/TestCpp.vcxproj.filters @@ -304,6 +304,9 @@ {8e8124bd-adb2-4a8f-8727-9868a9c42d80} + + {709f8a27-ecc2-4fe2-abd2-f13da4b70fe8} + @@ -703,6 +706,9 @@ Classes\InputTest + + Classes\ConsoleTest + @@ -1294,5 +1300,8 @@ Classes\Box2DTestBed\Tests + + Classes\ConsoleTest + \ No newline at end of file