mirror of https://github.com/axmolengine/axmol.git
Merge pull request #1465 from dumganhar/iss1511-glframebuffer-check
issue #1511: fixes as follows: [1] OpenGL framebuffer access violation fix [2] Fixing include paths to be able to compile cocos2d-x using external Visual Studio solution [3] Application built in release mode will get writable directory in system disk. [4] Multi-Touch support for win7/8 tablet or ultrabook.
This commit is contained in:
commit
08507dba31
|
@ -157,6 +157,19 @@ void CCEGLViewProtocol::setScissorInPoints(float x , float y , float w , float h
|
|||
(GLsizei)(h * m_fScaleY));
|
||||
}
|
||||
|
||||
void CCEGLViewProtocol::setViewName(const char* pszViewName)
|
||||
{
|
||||
if (pszViewName != NULL && strlen(pszViewName) > 0)
|
||||
{
|
||||
strncpy(m_szViewName, pszViewName, sizeof(m_szViewName));
|
||||
}
|
||||
}
|
||||
|
||||
const char* CCEGLViewProtocol::getViewName()
|
||||
{
|
||||
return m_szViewName;
|
||||
}
|
||||
|
||||
void CCEGLViewProtocol::handleTouchesBegin(int num, int ids[], float xs[], float ys[])
|
||||
{
|
||||
CCSet set;
|
||||
|
|
|
@ -5,16 +5,16 @@
|
|||
|
||||
enum ResolutionPolicy
|
||||
{
|
||||
// The entire application is visible in the specified area without trying to preserve the original aspect ratio.
|
||||
// The entire application is visible in the specified area without trying to preserve the original aspect ratio.
|
||||
// Distortion can occur, and the application may appear stretched or compressed.
|
||||
kResolutionExactFit,
|
||||
// The entire application fills the specified area, without distortion but possibly with some cropping,
|
||||
// The entire application fills the specified area, without distortion but possibly with some cropping,
|
||||
// while maintaining the original aspect ratio of the application.
|
||||
kResolutionNoBorder,
|
||||
// The entire application is visible in the specified area without distortion while maintaining the original
|
||||
// The entire application is visible in the specified area without distortion while maintaining the original
|
||||
// aspect ratio of the application. Borders can appear on two sides of the application.
|
||||
kResolutionShowAll,
|
||||
|
||||
|
||||
kResolutionUnKnown,
|
||||
};
|
||||
|
||||
|
@ -38,45 +38,45 @@ public:
|
|||
|
||||
/** Force destroying EGL view, subclass must implement this method. */
|
||||
virtual void end() = 0;
|
||||
|
||||
|
||||
/** Get whether opengl render system is ready, subclass must implement this method. */
|
||||
virtual bool isOpenGLReady() = 0;
|
||||
|
||||
|
||||
/** Exchanges the front and back buffers, subclass must implement this method. */
|
||||
virtual void swapBuffers() = 0;
|
||||
|
||||
|
||||
/** Open or close IME keyboard , subclass must implement this method. */
|
||||
virtual void setIMEKeyboardState(bool bOpen) = 0;
|
||||
|
||||
/**
|
||||
/**
|
||||
* Get design resolution size.
|
||||
* If setDesignResolutionSize wasn't invoked, the result of this function return is the same as 'getFrameSize'
|
||||
*/
|
||||
|
||||
virtual const CCSize& getSize() const;
|
||||
|
||||
|
||||
/**
|
||||
* Get the frame size of EGL view.
|
||||
* In general, it returns the screen size since the EGL view is a fullscreen view.
|
||||
*/
|
||||
virtual const CCSize& getFrameSize() const;
|
||||
|
||||
|
||||
/**
|
||||
* Set the frame size of EGL view.
|
||||
*/
|
||||
virtual void setFrameSize(float width, float height);
|
||||
|
||||
|
||||
/**
|
||||
* Get the visible area size of opengl viewport.
|
||||
*/
|
||||
virtual CCSize getVisibleSize() const;
|
||||
|
||||
|
||||
/**
|
||||
* Get the visible origin point of opengl viewport.
|
||||
*/
|
||||
virtual CCPoint getVisibleOrigin() const;
|
||||
|
||||
/**
|
||||
|
||||
/**
|
||||
* Set the design resolution size.
|
||||
* Behavior undefined when enableRetina == true.
|
||||
* @param width Design resolution width.
|
||||
|
@ -87,20 +87,24 @@ public:
|
|||
* [3] kCCResolutionShowAll Full screen with black border: if the design resolution ratio of width to height is different from the screen resolution ratio, two black borders will be shown.
|
||||
*/
|
||||
virtual void setDesignResolutionSize(float width, float height, ResolutionPolicy resolutionPolicy);
|
||||
|
||||
|
||||
/** Set touch delegate */
|
||||
virtual void setTouchDelegate(EGLTouchDelegate * pDelegate);
|
||||
|
||||
|
||||
/**
|
||||
* Set opengl view port rectangle with points.
|
||||
*/
|
||||
virtual void setViewPortInPoints(float x , float y , float w , float h);
|
||||
|
||||
|
||||
/**
|
||||
* Set Scissor rectangle with points.
|
||||
*/
|
||||
virtual void setScissorInPoints(float x , float y , float w , float h);
|
||||
|
||||
virtual void setViewName(const char* pszViewName);
|
||||
|
||||
const char* getViewName();
|
||||
|
||||
/** Touch events are handled by default; if you want to customize your handlers, please override these functions: */
|
||||
virtual void handleTouchesBegin(int num, int ids[], float xs[], float ys[]);
|
||||
virtual void handleTouchesMove(int num, int ids[], float xs[], float ys[]);
|
||||
|
@ -111,19 +115,19 @@ public:
|
|||
* Get the opengl view port rectangle.
|
||||
*/
|
||||
const CCRect& getViewPortRect() const;
|
||||
|
||||
|
||||
/**
|
||||
* Get scale factor of the horizontal direction.
|
||||
*/
|
||||
float getScaleX() const;
|
||||
|
||||
|
||||
/**
|
||||
* Get scale factor of the vertical direction.
|
||||
*/
|
||||
float getScaleY() const;
|
||||
private:
|
||||
void getSetOfTouchesEndOrCancel(CCSet& set, int num, int ids[], float xs[], float ys[]);
|
||||
|
||||
|
||||
protected:
|
||||
EGLTouchDelegate* m_pDelegate;
|
||||
|
||||
|
@ -135,7 +139,7 @@ protected:
|
|||
CCRect m_obViewPortRect;
|
||||
// the view name
|
||||
char m_szViewName[50];
|
||||
|
||||
|
||||
float m_fScaleX;
|
||||
float m_fScaleY;
|
||||
ResolutionPolicy m_eResolutionPolicy;
|
||||
|
|
|
@ -35,12 +35,43 @@ THE SOFTWARE.
|
|||
|
||||
NS_CC_BEGIN
|
||||
|
||||
#if(WINVER >= 0x0601)
|
||||
// Windows Touch define
|
||||
#define MOUSEEVENTF_FROMTOUCH 0xFF515700
|
||||
|
||||
// Windows Touch functions
|
||||
// Workaround to be able tu run app on Windows XP
|
||||
typedef WINUSERAPI BOOL (WINAPI *RegisterTouchWindowFn)(_In_ HWND hwnd, _In_ ULONG ulFlags);
|
||||
typedef WINUSERAPI BOOL (WINAPI *UnregisterTouchWindowFn)(_In_ HWND hwnd);
|
||||
typedef WINUSERAPI LPARAM (WINAPI *GetMessageExtraInfoFn)(VOID);
|
||||
typedef WINUSERAPI BOOL (WINAPI *GetTouchInputInfoFn)(_In_ HTOUCHINPUT hTouchInput, _In_ UINT cInputs, __out_ecount(cInputs) PTOUCHINPUT pInputs, _In_ int cbSize);
|
||||
typedef WINUSERAPI BOOL (WINAPI *CloseTouchInputHandleFn)(_In_ HTOUCHINPUT hTouchInput);
|
||||
|
||||
static RegisterTouchWindowFn s_pfRegisterTouchWindowFunction = NULL;
|
||||
static UnregisterTouchWindowFn s_pfUnregisterTouchWindowFunction = NULL;
|
||||
static GetMessageExtraInfoFn s_pfGetMessageExtraInfoFunction = NULL;
|
||||
static GetTouchInputInfoFn s_pfGetTouchInputInfoFunction = NULL;
|
||||
static CloseTouchInputHandleFn s_pfCloseTouchInputHandleFunction = NULL;
|
||||
|
||||
bool CheckTouchSupport()
|
||||
{
|
||||
s_pfRegisterTouchWindowFunction = (RegisterTouchWindowFn)GetProcAddress(GetModuleHandle(TEXT("user32.dll")), "RegisterTouchWindow");
|
||||
s_pfUnregisterTouchWindowFunction = (UnregisterTouchWindowFn)GetProcAddress(GetModuleHandle(TEXT("user32.dll")), "UnregisterTouchWindow");
|
||||
s_pfGetMessageExtraInfoFunction = (GetMessageExtraInfoFn)GetProcAddress(GetModuleHandle(TEXT("user32.dll")), "GetMessageExtraInfo");
|
||||
s_pfGetTouchInputInfoFunction = (GetTouchInputInfoFn)GetProcAddress(GetModuleHandle(TEXT("user32.dll")), "GetTouchInputInfo");
|
||||
s_pfCloseTouchInputHandleFunction = (CloseTouchInputHandleFn)GetProcAddress(GetModuleHandle(TEXT("user32.dll")), "CloseTouchInputHandle");
|
||||
|
||||
return (s_pfRegisterTouchWindowFunction && s_pfUnregisterTouchWindowFunction && s_pfGetMessageExtraInfoFunction && s_pfGetTouchInputInfoFunction && s_pfCloseTouchInputHandleFunction);
|
||||
}
|
||||
|
||||
#endif /* #if(WINVER >= 0x0601) */
|
||||
|
||||
static void SetupPixelFormat(HDC hDC)
|
||||
{
|
||||
int pixelFormat;
|
||||
|
||||
PIXELFORMATDESCRIPTOR pfd =
|
||||
{
|
||||
{
|
||||
sizeof(PIXELFORMATDESCRIPTOR), // size
|
||||
1, // version
|
||||
PFD_SUPPORT_OPENGL | // OpenGL window
|
||||
|
@ -65,6 +96,68 @@ static void SetupPixelFormat(HDC hDC)
|
|||
SetPixelFormat(hDC, pixelFormat, &pfd);
|
||||
}
|
||||
|
||||
bool glew_dynamic_binding()
|
||||
{
|
||||
const char *gl_extensions = (const char*)glGetString(GL_EXTENSIONS);
|
||||
|
||||
// If the current opengl driver doesn't have framebuffers methods, check if an extension exists
|
||||
if (glGenFramebuffers == NULL)
|
||||
{
|
||||
CCLog("OpenGL: glGenFramebuffers is NULL, try to detect an extension\n");
|
||||
if (strstr(gl_extensions, "ARB_framebuffer_object"))
|
||||
{
|
||||
CCLog("OpenGL: ARB_framebuffer_object is supported\n");
|
||||
|
||||
glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC) wglGetProcAddress("glIsRenderbuffer");
|
||||
glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC) wglGetProcAddress("glBindRenderbuffer");
|
||||
glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC) wglGetProcAddress("glDeleteRenderbuffers");
|
||||
glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC) wglGetProcAddress("glGenRenderbuffers");
|
||||
glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC) wglGetProcAddress("glRenderbufferStorage");
|
||||
glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC) wglGetProcAddress("glGetRenderbufferParameteriv");
|
||||
glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC) wglGetProcAddress("glIsFramebuffer");
|
||||
glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC) wglGetProcAddress("glBindFramebuffer");
|
||||
glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC) wglGetProcAddress("glDeleteFramebuffers");
|
||||
glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC) wglGetProcAddress("glGenFramebuffers");
|
||||
glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC) wglGetProcAddress("glCheckFramebufferStatus");
|
||||
glFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC) wglGetProcAddress("glFramebufferTexture1D");
|
||||
glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC) wglGetProcAddress("glFramebufferTexture2D");
|
||||
glFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC) wglGetProcAddress("glFramebufferTexture3D");
|
||||
glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC) wglGetProcAddress("glFramebufferRenderbuffer");
|
||||
glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) wglGetProcAddress("glGetFramebufferAttachmentParameteriv");
|
||||
glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC) wglGetProcAddress("glGenerateMipmap");
|
||||
}
|
||||
else
|
||||
if (strstr(gl_extensions, "EXT_framebuffer_object"))
|
||||
{
|
||||
CCLog("OpenGL: EXT_framebuffer_object is supported\n");
|
||||
glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC) wglGetProcAddress("glIsRenderbufferEXT");
|
||||
glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC) wglGetProcAddress("glBindRenderbufferEXT");
|
||||
glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC) wglGetProcAddress("glDeleteRenderbuffersEXT");
|
||||
glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC) wglGetProcAddress("glGenRenderbuffersEXT");
|
||||
glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC) wglGetProcAddress("glRenderbufferStorageEXT");
|
||||
glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC) wglGetProcAddress("glGetRenderbufferParameterivEXT");
|
||||
glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC) wglGetProcAddress("glIsFramebufferEXT");
|
||||
glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC) wglGetProcAddress("glBindFramebufferEXT");
|
||||
glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC) wglGetProcAddress("glDeleteFramebuffersEXT");
|
||||
glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC) wglGetProcAddress("glGenFramebuffersEXT");
|
||||
glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC) wglGetProcAddress("glCheckFramebufferStatusEXT");
|
||||
glFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC) wglGetProcAddress("glFramebufferTexture1DEXT");
|
||||
glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC) wglGetProcAddress("glFramebufferTexture2DEXT");
|
||||
glFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC) wglGetProcAddress("glFramebufferTexture3DEXT");
|
||||
glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC) wglGetProcAddress("glFramebufferRenderbufferEXT");
|
||||
glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) wglGetProcAddress("glGetFramebufferAttachmentParameterivEXT");
|
||||
glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC) wglGetProcAddress("glGenerateMipmapEXT");
|
||||
}
|
||||
else
|
||||
{
|
||||
CCLog("OpenGL: No framebuffers extension is supported\n");
|
||||
CCLog("OpenGL: Any call to Fbo will crash!\n");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// impliment CCEGLView
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
@ -95,6 +188,7 @@ CCEGLView::CCEGLView()
|
|||
, m_windowHeight(0)
|
||||
, m_windowTouchScaleX(1.0f)
|
||||
, m_windowTouchScaleY(1.0f)
|
||||
, m_bSupportTouch(false)
|
||||
{
|
||||
strcpy(m_szViewName, "Cocos2dxWin32");
|
||||
}
|
||||
|
@ -119,16 +213,17 @@ bool CCEGLView::initGL()
|
|||
if ( atof((const char*)glVersion) < 1.5 )
|
||||
{
|
||||
char strComplain[256] = {0};
|
||||
sprintf(strComplain,
|
||||
"Your OpenGL version is %s, but Cocos2d-x requires OpenGL 1.5 or higher on Windows. Please upgrade the driver of your video card",
|
||||
sprintf(strComplain,
|
||||
"OpenGL 1.5 or higher is required (your version is %s). Please upgrade the driver of your video card.",
|
||||
glVersion);
|
||||
CCMessageBox(strComplain, "OpenGL version tooooooooooold");
|
||||
CCMessageBox(strComplain, "OpenGL version too old");
|
||||
return false;
|
||||
}
|
||||
|
||||
GLenum GlewInitResult = glewInit();
|
||||
if (GLEW_OK != GlewInitResult)
|
||||
if (GLEW_OK != GlewInitResult)
|
||||
{
|
||||
fprintf(stderr,"ERROR: %s\n",glewGetErrorString(GlewInitResult));
|
||||
CCMessageBox((char *)glewGetErrorString(GlewInitResult), "OpenGL error");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -136,7 +231,7 @@ bool CCEGLView::initGL()
|
|||
{
|
||||
CCLog("Ready for GLSL");
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
CCLog("Not totally ready :(");
|
||||
}
|
||||
|
@ -149,6 +244,13 @@ bool CCEGLView::initGL()
|
|||
{
|
||||
CCLog("OpenGL 2.0 not supported");
|
||||
}
|
||||
|
||||
if(glew_dynamic_binding() == false)
|
||||
{
|
||||
CCMessageBox("No OpenGL framebuffer support. Please upgrade the driver of your video card.", "OpenGL error");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -162,10 +264,10 @@ void CCEGLView::destroyGL()
|
|||
}
|
||||
}
|
||||
|
||||
bool CCEGLView::Create(LPCTSTR pTitle, int w, int h)
|
||||
bool CCEGLView::Create()
|
||||
{
|
||||
bool bRet = false;
|
||||
do
|
||||
do
|
||||
{
|
||||
CC_BREAK_IF(m_hWnd);
|
||||
|
||||
|
@ -173,7 +275,7 @@ bool CCEGLView::Create(LPCTSTR pTitle, int w, int h)
|
|||
WNDCLASS wc; // Windows Class Structure
|
||||
|
||||
// Redraw On Size, And Own DC For Window.
|
||||
wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
|
||||
wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
|
||||
wc.lpfnWndProc = _WindowProc; // WndProc Handles Messages
|
||||
wc.cbClsExtra = 0; // No Extra Window Data
|
||||
wc.cbWndExtra = 0; // No Extra Window Data
|
||||
|
@ -181,10 +283,10 @@ bool CCEGLView::Create(LPCTSTR pTitle, int w, int h)
|
|||
wc.hIcon = LoadIcon( NULL, IDI_WINLOGO ); // Load The Default Icon
|
||||
wc.hCursor = LoadCursor( NULL, IDC_ARROW ); // Load The Arrow Pointer
|
||||
wc.hbrBackground = NULL; // No Background Required For GL
|
||||
wc.lpszMenuName = m_menu; //
|
||||
wc.lpszMenuName = m_menu; //
|
||||
wc.lpszClassName = kWindowClassName; // Set The Class Name
|
||||
|
||||
CC_BREAK_IF(! RegisterClass(&wc) && 1410 != GetLastError());
|
||||
CC_BREAK_IF(! RegisterClass(&wc) && 1410 != GetLastError());
|
||||
|
||||
// center window position
|
||||
RECT rcDesktop;
|
||||
|
@ -200,8 +302,8 @@ bool CCEGLView::Create(LPCTSTR pTitle, int w, int h)
|
|||
wszBuf, // Window Title
|
||||
WS_CAPTION | WS_POPUPWINDOW | WS_MINIMIZEBOX, // Defined Window Style
|
||||
0, 0, // Window Position
|
||||
0, // Window Width
|
||||
0, // Window Height
|
||||
100, // Window Width
|
||||
100, // Window Height
|
||||
NULL, // No Parent Window
|
||||
NULL, // No Menu
|
||||
hInstance, // Instance
|
||||
|
@ -209,15 +311,22 @@ bool CCEGLView::Create(LPCTSTR pTitle, int w, int h)
|
|||
|
||||
CC_BREAK_IF(! m_hWnd);
|
||||
|
||||
resize(w, h);
|
||||
|
||||
bRet = initGL();
|
||||
if(!bRet) destroyGL();
|
||||
CC_BREAK_IF(!bRet);
|
||||
|
||||
|
||||
s_pMainWindow = this;
|
||||
bRet = true;
|
||||
} while (0);
|
||||
|
||||
#if(WINVER >= 0x0601)
|
||||
m_bSupportTouch = CheckTouchSupport();
|
||||
if(m_bSupportTouch)
|
||||
{
|
||||
m_bSupportTouch = (s_pfRegisterTouchWindowFunction(m_hWnd, 0) != 0);
|
||||
}
|
||||
#endif /* #if(WINVER >= 0x0601) */
|
||||
|
||||
return bRet;
|
||||
}
|
||||
|
||||
|
@ -228,6 +337,11 @@ LRESULT CCEGLView::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
|
|||
switch (message)
|
||||
{
|
||||
case WM_LBUTTONDOWN:
|
||||
#if(WINVER >= 0x0601)
|
||||
// Don't process message generated by Windows Touch
|
||||
if (m_bSupportTouch && (s_pfGetMessageExtraInfoFunction() & MOUSEEVENTF_FROMTOUCH) == MOUSEEVENTF_FROMTOUCH) break;
|
||||
#endif /* #if(WINVER >= 0x0601) */
|
||||
|
||||
if (m_pDelegate && MK_LBUTTON == wParam)
|
||||
{
|
||||
POINT point = {(short)LOWORD(lParam), (short)HIWORD(lParam)};
|
||||
|
@ -246,6 +360,10 @@ LRESULT CCEGLView::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
|
|||
break;
|
||||
|
||||
case WM_MOUSEMOVE:
|
||||
#if(WINVER >= 0x0601)
|
||||
// Don't process message generated by Windows Touch
|
||||
if (m_bSupportTouch && (s_pfGetMessageExtraInfoFunction() & MOUSEEVENTF_FROMTOUCH) == MOUSEEVENTF_FROMTOUCH) break;
|
||||
#endif /* #if(WINVER >= 0x0601) */
|
||||
if (MK_LBUTTON == wParam && m_bCaptured)
|
||||
{
|
||||
POINT point = {(short)LOWORD(lParam), (short)HIWORD(lParam)};
|
||||
|
@ -258,6 +376,10 @@ LRESULT CCEGLView::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
|
|||
break;
|
||||
|
||||
case WM_LBUTTONUP:
|
||||
#if(WINVER >= 0x0601)
|
||||
// Don't process message generated by Windows Touch
|
||||
if (m_bSupportTouch && (s_pfGetMessageExtraInfoFunction() & MOUSEEVENTF_FROMTOUCH) == MOUSEEVENTF_FROMTOUCH) break;
|
||||
#endif /* #if(WINVER >= 0x0601) */
|
||||
if (m_bCaptured)
|
||||
{
|
||||
POINT point = {(short)LOWORD(lParam), (short)HIWORD(lParam)};
|
||||
|
@ -271,6 +393,49 @@ LRESULT CCEGLView::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
|
|||
m_bCaptured = false;
|
||||
}
|
||||
break;
|
||||
#if(WINVER >= 0x0601)
|
||||
case WM_TOUCH:
|
||||
{
|
||||
BOOL bHandled = FALSE;
|
||||
UINT cInputs = LOWORD(wParam);
|
||||
PTOUCHINPUT pInputs = new TOUCHINPUT[cInputs];
|
||||
if (pInputs)
|
||||
{
|
||||
if (s_pfGetTouchInputInfoFunction((HTOUCHINPUT)lParam, cInputs, pInputs, sizeof(TOUCHINPUT)))
|
||||
{
|
||||
for (UINT i=0; i < cInputs; i++)
|
||||
{
|
||||
TOUCHINPUT ti = pInputs[i];
|
||||
POINT input;
|
||||
input.x = TOUCH_COORD_TO_PIXEL(ti.x);
|
||||
input.y = TOUCH_COORD_TO_PIXEL(ti.y);
|
||||
ScreenToClient(m_hWnd, &input);
|
||||
CCPoint pt(input.x/CC_CONTENT_SCALE_FACTOR(), input.y/CC_CONTENT_SCALE_FACTOR());
|
||||
CCPoint tmp = ccp(pt.x, m_obScreenSize.height - pt.y);
|
||||
if (m_obViewPortRect.equals(CCRectZero) || m_obViewPortRect.containsPoint(tmp))
|
||||
{
|
||||
pt.x *= m_windowTouchScaleX;
|
||||
pt.y *= m_windowTouchScaleY;
|
||||
|
||||
if (ti.dwFlags & TOUCHEVENTF_DOWN)
|
||||
handleTouchesBegin(1, reinterpret_cast<int*>(&ti.dwID), &pt.x, &pt.y);
|
||||
else if (ti.dwFlags & TOUCHEVENTF_MOVE)
|
||||
handleTouchesMove(1, reinterpret_cast<int*>(&ti.dwID), &pt.x, &pt.y);
|
||||
else if (ti.dwFlags & TOUCHEVENTF_UP)
|
||||
handleTouchesEnd(1, reinterpret_cast<int*>(&ti.dwID), &pt.x, &pt.y);
|
||||
}
|
||||
}
|
||||
bHandled = TRUE;
|
||||
}
|
||||
delete [] pInputs;
|
||||
}
|
||||
if (bHandled)
|
||||
{
|
||||
s_pfCloseTouchInputHandleFunction((HTOUCHINPUT)lParam);
|
||||
}
|
||||
}
|
||||
break;
|
||||
#endif /* #if(WINVER >= 0x0601) */
|
||||
case WM_SIZE:
|
||||
switch (wParam)
|
||||
{
|
||||
|
@ -386,6 +551,12 @@ void CCEGLView::end()
|
|||
{
|
||||
if (m_hWnd)
|
||||
{
|
||||
#if(WINVER >= 0x0601)
|
||||
if(m_bSupportTouch)
|
||||
{
|
||||
s_pfUnregisterTouchWindowFunction(m_hWnd);
|
||||
}
|
||||
#endif /* #if(WINVER >= 0x0601) */
|
||||
DestroyWindow(m_hWnd);
|
||||
m_hWnd = NULL;
|
||||
}
|
||||
|
@ -451,13 +622,15 @@ void CCEGLView::resize(int width, int height)
|
|||
m_windowTouchScaleX = frameSize.width / width;
|
||||
m_windowTouchScaleY = frameSize.height / height;
|
||||
|
||||
#ifdef _DEBUG
|
||||
TCHAR buff[MAX_PATH + 1];
|
||||
memset(buff, 0, sizeof(buff));
|
||||
swprintf_s(buff, MAX_PATH, L"%s - %0.0fx%0.0f - %0.2f",
|
||||
kWindowClassName, frameSize.width, frameSize.height, 1.0f / m_windowTouchScaleX);
|
||||
SetWindowText(m_hWnd, buff);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
AdjustWindowRectEx(&rcClient, GetWindowLong(m_hWnd, GWL_STYLE), false, GetWindowLong(m_hWnd, GWL_EXSTYLE));
|
||||
|
||||
// change width and height
|
||||
|
@ -467,7 +640,6 @@ void CCEGLView::resize(int width, int height)
|
|||
|
||||
void CCEGLView::setFrameSize(float width, float height)
|
||||
{
|
||||
Create((LPCTSTR)m_szViewName, (int)width, (int)height);
|
||||
CCEGLViewProtocol::setFrameSize(width, height);
|
||||
|
||||
resize(width, height); // adjust window size for menubar
|
||||
|
@ -512,7 +684,13 @@ CCEGLView* CCEGLView::sharedOpenGLView()
|
|||
if (s_pEglView == NULL)
|
||||
{
|
||||
s_pEglView = new CCEGLView();
|
||||
if(!s_pEglView->Create())
|
||||
{
|
||||
delete s_pEglView;
|
||||
s_pEglView = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
return s_pEglView;
|
||||
}
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@ public:
|
|||
void setWndProc(CUSTOM_WND_PROC proc);
|
||||
|
||||
private:
|
||||
virtual bool Create(LPCTSTR pTitle, int w, int h);
|
||||
virtual bool Create();
|
||||
bool initGL();
|
||||
void destroyGL();
|
||||
public:
|
||||
|
@ -81,6 +81,7 @@ private:
|
|||
HDC m_hDC;
|
||||
HGLRC m_hRC;
|
||||
LPFN_ACCELEROMETER_KEYHOOK m_lpfnAccelerometerKeyHook;
|
||||
bool m_bSupportTouch;
|
||||
|
||||
LPCWSTR m_menu;
|
||||
CUSTOM_WND_PROC m_wndproc;
|
||||
|
|
|
@ -24,6 +24,7 @@ THE SOFTWARE.
|
|||
#define __CC_PLATFORM_FILEUTILS_CPP__
|
||||
#include "platform/CCFileUtilsCommon_cpp.h"
|
||||
#include <windows.h>
|
||||
#include <Shlobj.h>
|
||||
#include "CCDirector.h"
|
||||
#include "CCApplication.h"
|
||||
|
||||
|
@ -39,10 +40,10 @@ static void _CheckPath()
|
|||
if (! s_pszResourcePath[0])
|
||||
{
|
||||
WCHAR wszPath[MAX_PATH] = {0};
|
||||
int nNum = WideCharToMultiByte(CP_ACP, 0, wszPath,
|
||||
GetCurrentDirectoryW(sizeof(wszPath), wszPath),
|
||||
int nNum = WideCharToMultiByte(CP_ACP, 0, wszPath,
|
||||
GetCurrentDirectoryW(sizeof(wszPath), wszPath),
|
||||
s_pszResourcePath, MAX_PATH, NULL, NULL);
|
||||
s_pszResourcePath[nNum] = '\\';
|
||||
s_pszResourcePath[nNum] = '\\';
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -64,7 +65,7 @@ void CCFileUtils::purgeFileUtils()
|
|||
{
|
||||
s_pFileUtils->purgeCachedEntries();
|
||||
}
|
||||
|
||||
|
||||
CC_SAFE_DELETE(s_pFileUtils);
|
||||
}
|
||||
|
||||
|
@ -85,7 +86,7 @@ const char* CCFileUtils::fullPathFromRelativePath(const char *pszRelativePath)
|
|||
// path start with "x:", is absolute path
|
||||
pRet->m_sString = pszRelativePath;
|
||||
}
|
||||
else if (strlen(pszRelativePath) > 0
|
||||
else if (strlen(pszRelativePath) > 0
|
||||
&& ('/' == pszRelativePath[0] || '\\' == pszRelativePath[0]))
|
||||
{
|
||||
// path start with '/' or '\', is absolute path without driver name
|
||||
|
@ -122,7 +123,7 @@ const char* CCFileUtils::fullPathFromRelativePath(const char *pszRelativePath)
|
|||
{ // Can't find the file, return the relative path.
|
||||
pRet->m_sString = pszRelativePath;
|
||||
}
|
||||
|
||||
|
||||
return pRet->m_sString.c_str();
|
||||
}
|
||||
|
||||
|
@ -141,7 +142,7 @@ unsigned char* CCFileUtils::getFileData(const char* pszFileName, const char* psz
|
|||
unsigned char* pBuffer = NULL;
|
||||
CCAssert(pszFileName != NULL && pSize != NULL && pszMode != NULL, "Invaild parameters.");
|
||||
*pSize = 0;
|
||||
do
|
||||
do
|
||||
{
|
||||
// read the file from hardware
|
||||
FILE *fp = fopen(pszFileName, pszMode);
|
||||
|
@ -168,17 +169,48 @@ unsigned char* CCFileUtils::getFileData(const char* pszFileName, const char* psz
|
|||
|
||||
string CCFileUtils::getWriteablePath()
|
||||
{
|
||||
// return the path that the exe file saved in
|
||||
// Get full path of executable, e.g. c:\Program Files (x86)\My Game Folder\MyGame.exe
|
||||
char full_path[_MAX_PATH + 1];
|
||||
::GetModuleFileNameA(NULL, full_path, _MAX_PATH + 1);
|
||||
|
||||
char full_path[_MAX_PATH + 1];
|
||||
::GetModuleFileNameA(NULL, full_path, _MAX_PATH + 1);
|
||||
// Debug app uses executable directory; Non-debug app uses local app data directory
|
||||
#ifndef _DEBUG
|
||||
// Get filename of executable only, e.g. MyGame.exe
|
||||
char *base_name = strrchr(full_path, '\\');
|
||||
|
||||
string ret((char*)full_path);
|
||||
if(base_name)
|
||||
{
|
||||
char app_data_path[_MAX_PATH + 1];
|
||||
|
||||
// remove xxx.exe
|
||||
ret = ret.substr(0, ret.rfind("\\") + 1);
|
||||
// Get local app data directory, e.g. C:\Documents and Settings\username\Local Settings\Application Data
|
||||
if (SUCCEEDED(SHGetFolderPathA(NULL, CSIDL_LOCAL_APPDATA, NULL, SHGFP_TYPE_CURRENT, app_data_path)))
|
||||
{
|
||||
string ret((char*)app_data_path);
|
||||
|
||||
return ret;
|
||||
// Adding executable filename, e.g. C:\Documents and Settings\username\Local Settings\Application Data\MyGame.exe
|
||||
ret += base_name;
|
||||
|
||||
// Remove ".exe" extension, e.g. C:\Documents and Settings\username\Local Settings\Application Data\MyGame
|
||||
ret = ret.substr(0, ret.rfind("."));
|
||||
|
||||
ret += "\\";
|
||||
|
||||
// Create directory
|
||||
if (SUCCEEDED(SHCreateDirectoryExA(NULL, ret.c_str(), NULL)))
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif // not defined _DEBUG
|
||||
|
||||
// If fetching of local app data directory fails, use the executable one
|
||||
string ret((char*)full_path);
|
||||
|
||||
// remove xxx.exe
|
||||
ret = ret.substr(0, ret.rfind("\\") + 1);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
NS_CC_END
|
||||
|
|
|
@ -57,7 +57,7 @@
|
|||
</PreBuildEvent>
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..;..\platform\win32;..\platform\third_party\win32\iconv;..\platform\third_party\win32\zlib;..\platform\third_party\win32\libpng;..\platform\third_party\win32\libjpeg;..\platform\third_party\win32\libtiff;..\platform\third_party\win32\libxml2;..\platform\third_party\win32\pthread;..\platform\third_party\win32\OGLES;..\include;..\kazmath\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..;$(ProjectDir)..\platform\win32;$(ProjectDir)..\platform\third_party\win32\iconv;$(ProjectDir)..\platform\third_party\win32\zlib;$(ProjectDir)..\platform\third_party\win32\libpng;$(ProjectDir)..\platform\third_party\win32\libjpeg;$(ProjectDir)..\platform\third_party\win32\libtiff;$(ProjectDir)..\platform\third_party\win32\libxml2;$(ProjectDir)..\platform\third_party\win32\pthread;$(ProjectDir)..\platform\third_party\win32\OGLES;..\include;$(ProjectDir)..\kazmath\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;COCOS2DXWIN32_EXPORTS;GL_GLEXT_PROTOTYPES;COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
|
@ -70,7 +70,7 @@
|
|||
</ClCompile>
|
||||
<PreLinkEvent>
|
||||
<Command>if not exist "$(OutDir)" mkdir "$(OutDir)"
|
||||
xcopy /Y /Q "$(ProjectDir)..\..\cocos2dx\platform\third_party\win32\libraries\*.*" "$(OutDir)"
|
||||
xcopy /Y /Q "$(ProjectDir)..\platform\third_party\win32\libraries\*.*" "$(OutDir)"
|
||||
</Command>
|
||||
</PreLinkEvent>
|
||||
<Link>
|
||||
|
@ -95,7 +95,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\cocos2dx\platform\third_party\win32\libraries\*.
|
|||
</Command>
|
||||
</PreBuildEvent>
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>..;..\platform\win32;..\platform\third_party\win32\iconv;..\platform\third_party\win32\zlib;..\platform\third_party\win32\libpng;..\platform\third_party\win32\libjpeg;..\platform\third_party\win32\libtiff;..\platform\third_party\win32\libxml2;..\platform\third_party\win32\pthread;..\platform\third_party\win32\OGLES;..\include;..\kazmath\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..;$(ProjectDir)..\platform\win32;$(ProjectDir)..\platform\third_party\win32\iconv;$(ProjectDir)..\platform\third_party\win32\zlib;$(ProjectDir)..\platform\third_party\win32\libpng;$(ProjectDir)..\platform\third_party\win32\libjpeg;$(ProjectDir)..\platform\third_party\win32\libtiff;$(ProjectDir)..\platform\third_party\win32\libxml2;$(ProjectDir)..\platform\third_party\win32\pthread;$(ProjectDir)..\platform\third_party\win32\OGLES;..\include;$(ProjectDir)..\kazmath\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;COCOS2DXWIN32_EXPORTS;GL_GLEXT_PROTOTYPES;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
|
@ -106,7 +106,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\cocos2dx\platform\third_party\win32\libraries\*.
|
|||
</ClCompile>
|
||||
<PreLinkEvent>
|
||||
<Command>if not exist "$(OutDir)" mkdir "$(OutDir)"
|
||||
xcopy /Y /Q "$(SolutionDir)cocos2dx\platform\third_party\win32\libraries\*.*" "$(OutDir)"
|
||||
xcopy /Y /Q "$(ProjectDir)..\platform\third_party\win32\libraries\*.*" "$(OutDir)"
|
||||
</Command>
|
||||
</PreLinkEvent>
|
||||
<Link>
|
||||
|
|
|
@ -67,7 +67,7 @@
|
|||
<ClCompile>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)cocos2dx;$(SolutionDir)cocos2dx\include;$(SolutionDir)cocos2dx\kazmath\include;$(SolutionDir)cocos2dx\platform\win32;$(SolutionDir)cocos2dx\platform\third_party\win32;$(SolutionDir)cocos2dx\platform\third_party\win32\pthread;$(SolutionDir)cocos2dx\platform\third_party\win32\OGLES;..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\cocos2dx;$(ProjectDir)..\..\cocos2dx\include;$(ProjectDir)..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\cocos2dx\platform\third_party\win32\pthread;$(ProjectDir)..\..\cocos2dx\platform\third_party\win32\OGLES;..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)cocos2dx;$(SolutionDir)cocos2dx\include;$(SolutionDir)cocos2dx\kazmath\include;$(SolutionDir)cocos2dx\platform\win32;$(SolutionDir)cocos2dx\platform\third_party\win32\OGLES;..\Classes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\cocos2dx;$(ProjectDir)..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32\OGLES;..\Classes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
|
@ -81,7 +81,7 @@
|
|||
<ClCompile>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)cocos2dx;$(SolutionDir)cocos2dx\include;$(SolutionDir)cocos2dx\kazmath\include;$(SolutionDir)cocos2dx\platform\win32;$(SolutionDir)cocos2dx\platform\third_party\win32\OGLES;..\Classes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\cocos2dx;$(ProjectDir)..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32\OGLES;..\Classes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
|
|
|
@ -63,7 +63,7 @@
|
|||
</Midl>
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>.;..\Classes;$(SolutionDir)scripting\lua\cocos2dx_support;$(SolutionDir)scripting\lua\lua;$(SolutionDir)scripting\lua\tolua;$(SolutionDir)scripting\lua\src;$(SolutionDir)cocos2dx;$(SolutionDir)cocos2dx\include;$(SolutionDir)cocos2dx\kazmath\include;$(SolutionDir)cocos2dx\platform\win32;$(SolutionDir)cocos2dx\platform\third_party\win32\OGLES;$(SolutionDir)CocosDenshion\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\Classes;$(ProjectDir)..\..\..\scripting\lua\cocos2dx_support;$(ProjectDir)..\..\..\scripting\lua\lua;$(ProjectDir)..\..\..\scripting\lua\tolua;$(ProjectDir)..\..\..\scripting\lua\src;$(ProjectDir)..\..\..\cocos2dx;$(ProjectDir)..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\CocosDenshion\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;STRICT;_DEBUG;COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
|
@ -101,7 +101,7 @@
|
|||
<ProxyFileName>HelloLua_p.c</ProxyFileName>
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>.;..\Classes;$(SolutionDir)scripting\lua\cocos2dx_support;$(SolutionDir)scripting\lua\lua;$(SolutionDir)scripting\lua\tolua;$(SolutionDir)scripting\lua\src;$(SolutionDir)cocos2dx;$(SolutionDir)cocos2dx\include;$(SolutionDir)cocos2dx\kazmath\include;$(SolutionDir)cocos2dx\platform\win32;$(SolutionDir)cocos2dx\platform\third_party\win32\OGLES;$(SolutionDir)CocosDenshion\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\Classes;$(ProjectDir)..\..\..\scripting\lua\cocos2dx_support;$(ProjectDir)..\..\..\scripting\lua\lua;$(ProjectDir)..\..\..\scripting\lua\tolua;$(ProjectDir)..\..\..\scripting\lua\src;$(ProjectDir)..\..\..\cocos2dx;$(ProjectDir)..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\CocosDenshion\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;STRICT;NDEBUG;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ExceptionHandling>
|
||||
</ExceptionHandling>
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)cocos2dx;$(SolutionDir)cocos2dx\include;$(SolutionDir)cocos2dx\kazmath\include;$(SolutionDir)cocos2dx\platform\win32;$(SolutionDir)cocos2dx\platform\third_party\win32;$(SolutionDir)cocos2dx\platform\third_party\win32\OGLES;$(SolutionDir)external;$(SolutionDir)external\chipmunk\include\chipmunk;$(SolutionDir)CocosDenshion\include;$(SolutionDir)extensions;..\Classes;..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\cocos2dx;$(ProjectDir)..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\external;$(ProjectDir)..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\CocosDenshion\include;$(ProjectDir)..\..\..\extensions;..\Classes;..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USE_MATH_DEFINES;GL_GLEXT_PROTOTYPES;COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
|
@ -81,7 +81,7 @@
|
|||
<ClCompile>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)cocos2dx;$(SolutionDir)cocos2dx\include;$(SolutionDir)cocos2dx\kazmath\include;$(SolutionDir)cocos2dx\platform\win32;$(SolutionDir)cocos2dx\platform\third_party\win32;$(SolutionDir)cocos2dx\platform\third_party\win32\OGLES;$(SolutionDir)external;$(SolutionDir)external\chipmunk\include\chipmunk;$(SolutionDir)CocosDenshion\include;$(SolutionDir)extensions;..\Classes;..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\cocos2dx;$(ProjectDir)..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\external;$(ProjectDir)..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\CocosDenshion\include;$(ProjectDir)..\..\..\extensions;..\Classes;..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USE_MATH_DEFINES;GL_GLEXT_PROTOTYPES;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
|
|
|
@ -63,7 +63,7 @@
|
|||
</Midl>
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>.;..\Classes;$(SolutionDir)scripting\javascript\spidermonkey-win32\include;$(SolutionDir)external\chipmunk\include\chipmunk;$(SolutionDir)scripting\javascript\bindings;$(SolutionDir)extensions;$(SolutionDir)cocos2dx;$(SolutionDir)cocos2dx\include;$(SolutionDir)cocos2dx\kazmath\include;$(SolutionDir)cocos2dx\platform\win32;$(SolutionDir)cocos2dx\platform\third_party\win32;$(SolutionDir)cocos2dx\platform\third_party\win32\OGLES;$(SolutionDir)CocosDenshion\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\Classes;$(ProjectDir)..\..\..\scripting\javascript\spidermonkey-win32\include;$(ProjectDir)..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\extensions;$(ProjectDir)..\..\..\scripting\javascript\bindings;$(ProjectDir)..\..\..\cocos2dx;$(ProjectDir)..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\CocosDenshion\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;STRICT;_DEBUG;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
|
@ -81,7 +81,7 @@
|
|||
</ResourceCompile>
|
||||
<PreLinkEvent>
|
||||
<Command>if not exist "$(OutDir)" mkdir "$(OutDir)"
|
||||
xcopy /Y /Q "$(SolutionDir)scripting\javascript\spidermonkey-win32\lib\*.*" "$(OutDir)"
|
||||
xcopy /Y /Q "$(ProjectDir)..\..\..\scripting\javascript\spidermonkey-win32\lib\*.*" "$(OutDir)"
|
||||
</Command>
|
||||
</PreLinkEvent>
|
||||
<Link>
|
||||
|
@ -120,7 +120,7 @@ if exist filelist.txt del /f /q filelist.txt
|
|||
<ProxyFileName>testjs_p.c</ProxyFileName>
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>.;..\Classes;$(SolutionDir)scripting\javascript\spidermonkey-win32\include;$(SolutionDir)external\chipmunk\include\chipmunk;$(SolutionDir)scripting\javascript\bindings;$(SolutionDir)extensions;$(SolutionDir)cocos2dx;$(SolutionDir)cocos2dx\include;$(SolutionDir)cocos2dx\kazmath\include;$(SolutionDir)cocos2dx\platform\win32;$(SolutionDir)cocos2dx\platform\third_party\win32;$(SolutionDir)cocos2dx\platform\third_party\win32\OGLES;$(SolutionDir)CocosDenshion\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\Classes;$(ProjectDir)..\..\..\scripting\javascript\spidermonkey-win32\include;$(ProjectDir)..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\extensions;$(ProjectDir)..\..\..\scripting\javascript\bindings;$(ProjectDir)..\..\..\cocos2dx;$(ProjectDir)..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\CocosDenshion\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;STRICT;NDEBUG;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ExceptionHandling>
|
||||
</ExceptionHandling>
|
||||
|
@ -139,7 +139,7 @@ if exist filelist.txt del /f /q filelist.txt
|
|||
</ResourceCompile>
|
||||
<PreLinkEvent>
|
||||
<Command>if not exist "$(OutDir)" mkdir "$(OutDir)"
|
||||
xcopy /Y /Q "$(SolutionDir)scripting\javascript\spidermonkey-win32\lib\*.*" "$(OutDir)"
|
||||
xcopy /Y /Q "$(ProjectDir)..\..\..\scripting\javascript\spidermonkey-win32\lib\*.*" "$(OutDir)"
|
||||
</Command>
|
||||
</PreLinkEvent>
|
||||
<Link>
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>.;..\Classes;$(SolutionDir)scripting\lua\cocos2dx_support;$(SolutionDir)scripting\lua\lua;$(SolutionDir)scripting\lua\tolua;$(SolutionDir)scripting\lua\src;$(SolutionDir)cocos2dx;$(SolutionDir)cocos2dx\include;$(SolutionDir)cocos2dx\kazmath\include;$(SolutionDir)cocos2dx\platform\win32;$(SolutionDir)cocos2dx\platform\third_party\win32;$(SolutionDir)cocos2dx\platform\third_party\win32\OGLES;$(SolutionDir)external;$(SolutionDir)external\chipmunk\include\chipmunk;$(SolutionDir)CocosDenshion\include;$(SolutionDir)scripting\lua\cocos2dx_support;$(SolutionDir)scripting\lua\tolua;$(SolutionDir)scripting\lua\lua;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\Classes;$(ProjectDir)..\..\..\scripting\lua\cocos2dx_support;$(ProjectDir)..\..\..\scripting\lua\lua;$(ProjectDir)..\..\..\scripting\lua\tolua;$(ProjectDir)..\..\..\scripting\lua\src;$(ProjectDir)..\..\..\cocos2dx;$(ProjectDir)..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\external;$(ProjectDir)..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\CocosDenshion\include;$(ProjectDir)..\..\..\scripting\lua\cocos2dx_support;$(ProjectDir)..\..\..\scripting\lua\tolua;$(ProjectDir)..\..\..\scripting\lua\lua;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
|
@ -87,13 +87,13 @@
|
|||
</DllDataFileName>
|
||||
</Midl>
|
||||
<PreBuildEvent>
|
||||
<Command>xcopy $(SolutionDir)samples\TestCpp\Resources $(SolutionDir)samples\TestLua\Resources /e /Y</Command>
|
||||
<Command>xcopy $(ProjectDir)..\..\TestCpp\Resources $(ProjectDir)..\..\TestLua\Resources /e /Y</Command>
|
||||
<Message>copy files from TestCpp to TestLua</Message>
|
||||
</PreBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>.;..\Classes;$(SolutionDir)cocos2dx;$(SolutionDir)cocos2dx\include;$(SolutionDir)cocos2dx\kazmath\include;$(SolutionDir)cocos2dx\platform\win32;$(SolutionDir)cocos2dx\platform\third_party\win32;$(SolutionDir)cocos2dx\platform\third_party\win32\OGLES;$(SolutionDir)external;$(SolutionDir)external\chipmunk\include\chipmunk;$(SolutionDir)CocosDenshion\include;$(SolutionDir)scripting\lua\cocos2dx_support;$(SolutionDir)scripting\lua\tolua;$(SolutionDir)scripting\lua\lua;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\Classes;$(ProjectDir)..\..\..\scripting\lua\cocos2dx_support;$(ProjectDir)..\..\..\scripting\lua\lua;$(ProjectDir)..\..\..\scripting\lua\tolua;$(ProjectDir)..\..\..\scripting\lua\src;$(ProjectDir)..\..\..\cocos2dx;$(ProjectDir)..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\external;$(ProjectDir)..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\CocosDenshion\include;$(ProjectDir)..\..\..\scripting\lua\cocos2dx_support;$(ProjectDir)..\..\..\scripting\lua\tolua;$(ProjectDir)..\..\..\scripting\lua\lua;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
|
@ -129,7 +129,7 @@
|
|||
</DllDataFileName>
|
||||
</Midl>
|
||||
<PreBuildEvent>
|
||||
<Command>xcopy $(SolutionDir)samples\TestCpp\Resources $(SolutionDir)samples\TestLua\Resources /e /Y</Command>
|
||||
<Command>xcopy $(ProjectDir)..\..\TestCpp\Resources $(ProjectDir)..\..\TestLua\Resources /e /Y</Command>
|
||||
<Message>copy files from TestCpp to TestLua</Message>
|
||||
</PreBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)scripting\lua\tolua;$(SolutionDir)scripting\lua\lua;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\tolua;$(ProjectDir)..\lua;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
|
@ -74,7 +74,7 @@
|
|||
<ClCompile>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)scripting\lua\tolua;$(SolutionDir)scripting\lua\lua;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\tolua;$(ProjectDir)..\lua;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBLUA_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
|
|
Loading…
Reference in New Issue