# HG changeset patch # User Sam Lantinga # Date 1283116942 25200 # Node ID d6adaafcfb10b4d5d491500012263e6960de8f9b # Parent ba7492f9e2b8388b0cf253b149e236db3cc2c8da Fixed compiling with Visual Studio 2008 diff -r ba7492f9e2b8 -r d6adaafcfb10 VisualC/SDL/SDL_VS2008.vcproj --- a/VisualC/SDL/SDL_VS2008.vcproj Sun Aug 29 12:00:09 2010 -0700 +++ b/VisualC/SDL/SDL_VS2008.vcproj Sun Aug 29 14:22:22 2010 -0700 @@ -76,7 +76,7 @@ /> + + + + @@ -1004,6 +1012,14 @@ > + + + + @@ -1096,6 +1112,14 @@ > + + + + @@ -1168,6 +1192,14 @@ > + + + + diff -r ba7492f9e2b8 -r d6adaafcfb10 src/events/SDL_gesture.c --- a/src/events/SDL_gesture.c Sun Aug 29 12:00:09 2010 -0700 +++ b/src/events/SDL_gesture.c Sun Aug 29 14:22:22 2010 -0700 @@ -44,7 +44,6 @@ #define ENABLE_DOLLAR -//PHI = ((sqrt(5)-1)/2) #define PHI 0.618033989 typedef struct { @@ -80,7 +79,8 @@ int SDL_numGestureTouches = 0; SDL_bool recordAll; -void SDL_PrintPath(SDL_FloatPoint *path) { +#if 0 +static void PrintPath(SDL_FloatPoint *path) { int i; printf("Path:"); for(i=0;idollarTemplate[inTouch->numDollarTemplates]; - memcpy(templ->path,path,DOLLARNPOINTS*sizeof(SDL_FloatPoint)); + SDL_memcpy(templ->path,path,DOLLARNPOINTS*sizeof(SDL_FloatPoint)); templ->hash = SDL_HashDollar(templ->path); inTouch->numDollarTemplates++; } @@ -196,7 +197,7 @@ templ = &inTouch->dollarTemplate[inTouch->numDollarTemplates]; - memcpy(templ->path,path,DOLLARNPOINTS*sizeof(SDL_FloatPoint)); + SDL_memcpy(templ->path,path,DOLLARNPOINTS*sizeof(SDL_FloatPoint)); templ->hash = SDL_HashDollar(templ->path); inTouch->numDollarTemplates++; return inTouch->numDollarTemplates - 1; @@ -222,14 +223,14 @@ DOLLARNPOINTS) break; if(touchId >= 0) { - printf("Adding loaded gesture to 1 touch\n"); + //printf("Adding loaded gesture to 1 touch\n"); if(SDL_AddDollarGesture(touch,templ.path)) loaded++; } else { - printf("Adding to: %i touches\n",SDL_numGestureTouches); + //printf("Adding to: %i touches\n",SDL_numGestureTouches); for(i = 0;i < SDL_numGestureTouches; i++) { touch = &SDL_gestureTouch[i]; - printf("Adding loaded gesture to + touches\n"); + //printf("Adding loaded gesture to + touches\n"); //TODO: What if this fails? SDL_AddDollarGesture(touch,templ.path); } @@ -247,9 +248,9 @@ SDL_FloatPoint p; int i; for(i = 0; i < DOLLARNPOINTS; i++) { - p.x = (float)(points[i].x * cos(ang) - points[i].y * sin(ang)); - p.y = (float)(points[i].x * sin(ang) + points[i].y * cos(ang)); - dist += (float)(sqrt((p.x-templ[i].x)*(p.x-templ[i].x)+ + p.x = (float)(points[i].x * SDL_cos(ang) - points[i].y * SDL_sin(ang)); + p.y = (float)(points[i].x * SDL_sin(ang) + points[i].y * SDL_cos(ang)); + dist += (float)(SDL_sqrt((p.x-templ[i].x)*(p.x-templ[i].x)+ (p.y-templ[i].y)*(p.y-templ[i].y))); } return dist/DOLLARNPOINTS; @@ -267,7 +268,7 @@ float f1 = dollarDifference(points,templ,x1); float x2 = (float)((1-PHI)*ta + PHI*tb); float f2 = dollarDifference(points,templ,x2); - while(fabs(ta-tb) > dt) { + while(SDL_fabs(ta-tb) > dt) { if(f1 < f2) { tb = x2; x2 = x1; @@ -310,7 +311,7 @@ path.p[i-1].x; float dy = path.p[i ].y - path.p[i-1].y; - path.length += (float)(sqrt(dx*dx+dy*dy)); + path.length += (float)(SDL_sqrt(dx*dx+dy*dy)); } } @@ -322,7 +323,7 @@ //printf("(%f,%f)\n",path.p[path.numPoints-1].x,path.p[path.numPoints-1].y); for(i = 1;i < path.numPoints;i++) { - float d = (float)(sqrt((path.p[i-1].x-path.p[i].x)*(path.p[i-1].x-path.p[i].x)+ + float d = (float)(SDL_sqrt((path.p[i-1].x-path.p[i].x)*(path.p[i-1].x-path.p[i].x)+ (path.p[i-1].y-path.p[i].y)*(path.p[i-1].y-path.p[i].y))); //printf("d = %f dist = %f/%f\n",d,dist,interval); while(dist + d > interval) { @@ -339,7 +340,7 @@ dist += d; } if(numPoints < DOLLARNPOINTS-1) { - printf("ERROR: NumPoints = %i\n",numPoints); + SDL_SetError("ERROR: NumPoints = %i\n",numPoints); return 0; } //copy the last point @@ -356,16 +357,16 @@ ymin = centroid.y; ymax = centroid.y; - ang = (float)(atan2(centroid.y - points[0].y, + ang = (float)(SDL_atan2(centroid.y - points[0].y, centroid.x - points[0].x)); for(i = 0;inumDollarTemplates;i++) { float diff = bestDollarDifference(points,touch->dollarTemplate[i].path); @@ -430,10 +431,10 @@ int SDL_GestureRemoveTouch(SDL_TouchID id) { int i; - for(i = 0;i < SDL_numGestureTouches; i++) { - if(SDL_gestureTouch[i].id == id) { + for (i = 0; i < SDL_numGestureTouches; i++) { + if (SDL_gestureTouch[i].id == id) { SDL_numGestureTouches--; - SDL_gestureTouch[i] = SDL_gestureTouch[SDL_numGestureTouches]; + SDL_memcpy(&SDL_gestureTouch[i], &SDL_gestureTouch[SDL_numGestureTouches], sizeof(SDL_gestureTouch[i])); return 1; } } @@ -528,7 +529,7 @@ if(inTouch->recording) { inTouch->recording = SDL_FALSE; dollarNormalize(inTouch->dollarPath,path); - //SDL_PrintPath(path); + //PrintPath(path); if(recordAll) { index = SDL_AddDollarGesture(NULL,path); for(i = 0;i < SDL_numGestureTouches; i++) @@ -579,7 +580,7 @@ (path->p[path->numPoints].x-path->p[path->numPoints-1].x); pathDy = (path->p[path->numPoints].y-path->p[path->numPoints-1].y); - path->length += (float)sqrt(pathDx*pathDx + pathDy*pathDy); + path->length += (float)SDL_sqrt(pathDx*pathDx + pathDy*pathDy); path->numPoints++; } #endif @@ -596,20 +597,20 @@ //lv = inTouch->gestureLast[j].cv; lv.x = lastP.x - lastCentroid.x; lv.y = lastP.y - lastCentroid.y; - lDist = (float)sqrt(lv.x*lv.x + lv.y*lv.y); + lDist = (float)SDL_sqrt(lv.x*lv.x + lv.y*lv.y); //printf("lDist = %f\n",lDist); v.x = x - inTouch->centroid.x; v.y = y - inTouch->centroid.y; //inTouch->gestureLast[j].cv = v; - Dist = (float)sqrt(v.x*v.x+v.y*v.y); - // cos(dTheta) = (v . lv)/(|v| * |lv|) + Dist = (float)SDL_sqrt(v.x*v.x+v.y*v.y); + // SDL_cos(dTheta) = (v . lv)/(|v| * |lv|) //Normalize Vectors to simplify angle calculation lv.x/=lDist; lv.y/=lDist; v.x/=Dist; v.y/=Dist; - dtheta = (float)atan2(lv.x*v.y - lv.y*v.x,lv.x*v.x + lv.y*v.y); + dtheta = (float)SDL_atan2(lv.x*v.y - lv.y*v.x,lv.x*v.x + lv.y*v.y); dDist = (Dist - lDist); if(lDist == 0) {dDist = 0;dtheta = 0;} //To avoid impossible values diff -r ba7492f9e2b8 -r d6adaafcfb10 src/events/SDL_touch.c --- a/src/events/SDL_touch.c Sun Aug 29 12:00:09 2010 -0700 +++ b/src/events/SDL_touch.c Sun Aug 29 14:22:22 2010 -0700 @@ -366,7 +366,10 @@ return posted; } else { - if(finger == NULL) {printf("Finger not found...\n");return 0;} + if(finger == NULL) { + SDL_SetError("Finger not found."); + return 0; + } posted = 0; if (SDL_GetEventState(SDL_FINGERUP) == SDL_ENABLE) { SDL_Event event; @@ -552,12 +555,14 @@ } int SDL_TouchNotFoundError(SDL_TouchID id) { - int i; - printf("ERROR: Cannot send touch on non-existent device with id: %li make sure SDL_AddTouch has been called\n",id); + //int i; + SDL_SetError("ERROR: Cannot send touch on non-existent device with id: %li make sure SDL_AddTouch has been called\n",id); +#if 0 printf("ERROR: There are %i touches installed with Id's:\n",SDL_num_touch); for(i=0;i < SDL_num_touch;i++) { printf("ERROR: %li\n",SDL_touchPads[i]->id); } +#endif return 0; } /* vi: set ts=4 sw=4 expandtab: */ diff -r ba7492f9e2b8 -r d6adaafcfb10 src/haptic/nds/SDL_syshaptic.c --- a/src/haptic/nds/SDL_syshaptic.c Sun Aug 29 12:00:09 2010 -0700 +++ b/src/haptic/nds/SDL_syshaptic.c Sun Aug 29 14:22:22 2010 -0700 @@ -52,8 +52,9 @@ GBA_BUS[0x0020000] = 0x1500; GBA_BUS[0x0E20000] = 0x1500; GBA_BUS[0x0FE0000] = 0x1500; -} void +} +void NDS_EZF_CloseNorWrite() { GBA_BUS[0x0FF0000] = 0xD200; diff -r ba7492f9e2b8 -r d6adaafcfb10 src/stdlib/SDL_stdlib.c --- a/src/stdlib/SDL_stdlib.c Sun Aug 29 12:00:09 2010 -0700 +++ b/src/stdlib/SDL_stdlib.c Sun Aug 29 14:22:22 2010 -0700 @@ -39,6 +39,12 @@ #else +void +__declspec(naked) +_chkstk() +{ +} + /* Float to long */ void __declspec(naked) diff -r ba7492f9e2b8 -r d6adaafcfb10 src/video/win32/SDL_win32events.c --- a/src/video/win32/SDL_win32events.c Sun Aug 29 12:00:09 2010 -0700 +++ b/src/video/win32/SDL_win32events.c Sun Aug 29 14:22:22 2010 -0700 @@ -20,11 +20,6 @@ slouken@libsdl.org */ -#if (_WIN32_WINNT < 0x601) -#undef _WIN32_WINNT -#define _WIN32_WINNT 0x601 -#endif - #include "SDL_config.h" #include "SDL_win32video.h" @@ -35,12 +30,11 @@ -#define WMMSG_DEBUG +/*#define WMMSG_DEBUG*/ #ifdef WMMSG_DEBUG #include #include "wmmsg.h" #endif -//#include /* Masks for processing the windows KEYDOWN and KEYUP messages */ #define REPEATED_KEYMASK (1<<30) @@ -61,6 +55,12 @@ #ifndef WM_INPUT #define WM_INPUT 0x00ff #endif +#ifndef WM_GESTURE +#define WM_GESTURE 0x0119 +#endif +#ifndef WM_TOUCH +#define WM_TOUCH 0x0240 +#endif static WPARAM RemapVKEY(WPARAM wParam, LPARAM lParam) @@ -138,8 +138,8 @@ fprintf(log, " -- 0x%X, 0x%X\n", wParam, lParam); fclose(log); } +#endif -#endif if (IME_HandleMessage(hwnd, msg, wParam, &lParam, data->videodata)) return 0; @@ -522,6 +522,7 @@ { //printf("Got Touch Event!\n"); +#ifdef WMMSG_DEBUG FILE *log = fopen("wmmsg.txt", "a"); fprintf(log, "Received Touch Message: %p ", hwnd); if (msg > MAX_WMMSG) { @@ -531,6 +532,7 @@ } fprintf(log, "WM_TOUCH = %d -- 0x%X, 0x%X\n",msg, wParam, lParam); fclose(log); +#endif } break; @@ -538,6 +540,7 @@ { //printf("Got Touch Event!\n"); +#ifdef WMMSG_DEBUG FILE *log = fopen("wmmsg.txt", "a"); fprintf(log, "Received Gesture Message: %p ", hwnd); if (msg > MAX_WMMSG) { @@ -547,7 +550,7 @@ } fprintf(log, "WM_GESTURE = %d -- 0x%X, 0x%X\n",msg, wParam, lParam); fclose(log); - +#endif } break; } diff -r ba7492f9e2b8 -r d6adaafcfb10 src/video/win32/SDL_win32video.h --- a/src/video/win32/SDL_win32video.h Sun Aug 29 12:00:09 2010 -0700 +++ b/src/video/win32/SDL_win32video.h Sun Aug 29 14:22:22 2010 -0700 @@ -32,13 +32,7 @@ #define UNICODE #endif #undef WINVER -//#define WINVER 0x500 /* Need 0x410 for AlphaBlend() and 0x500 for EnumDisplayDevices() */ -#define WINVER 0x601 /* Need 0x600 (_WIN32_WINNT_WIN7) for WM_Touch */ -#if (_WIN32_WINNT < 0x601) -#undef _WIN32_WINNT -#define _WIN32_WINNT 0x601 -#endif - +#define WINVER 0x500 /* Need 0x410 for AlphaBlend() and 0x500 for EnumDisplayDevices() */ #include