Mercurial > sdl-ios-xcode
changeset 4868:d6adaafcfb10
Fixed compiling with Visual Studio 2008
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sun, 29 Aug 2010 14:22:22 -0700 |
parents | ba7492f9e2b8 |
children | 2b1bcf74e4c4 |
files | VisualC/SDL/SDL_VS2008.vcproj src/events/SDL_gesture.c src/events/SDL_touch.c src/haptic/nds/SDL_syshaptic.c src/stdlib/SDL_stdlib.c src/video/win32/SDL_win32events.c src/video/win32/SDL_win32video.h |
diffstat | 7 files changed, 94 insertions(+), 52 deletions(-) [+] |
line wrap: on
line diff
--- 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 @@ /> <Tool Name="VCLinkerTool" - AdditionalDependencies="msimg32.lib winmm.lib" + AdditionalDependencies="msimg32.lib winmm.lib imm32.lib version.lib" OutputFile="$(IntDir)\SDL.dll" IgnoreAllDefaultLibraries="true" GenerateDebugInformation="true" @@ -249,7 +249,7 @@ /> <Tool Name="VCLinkerTool" - AdditionalDependencies="msimg32.lib winmm.lib" + AdditionalDependencies="msimg32.lib winmm.lib imm32.lib version.lib" OutputFile="$(IntDir)\SDL.dll" IgnoreAllDefaultLibraries="true" SubSystem="2" @@ -840,6 +840,14 @@ > </File> <File + RelativePath="..\..\src\events\SDL_gesture.c" + > + </File> + <File + RelativePath="..\..\src\events\SDL_gesture_c.h" + > + </File> + <File RelativePath="..\..\src\stdlib\SDL_getenv.c" > </File> @@ -1004,6 +1012,14 @@ > </File> <File + RelativePath="..\..\src\video\SDL_shape.c" + > + </File> + <File + RelativePath="..\..\src\video\SDL_shape_internals.h" + > + </File> + <File RelativePath="..\..\src\stdlib\SDL_stdlib.c" > </File> @@ -1096,6 +1112,14 @@ > </File> <File + RelativePath="..\..\src\events\SDL_touch.c" + > + </File> + <File + RelativePath="..\..\src\events\SDL_touch_c.h" + > + </File> + <File RelativePath="..\..\src\video\SDL_video.c" > </File> @@ -1168,6 +1192,14 @@ > </File> <File + RelativePath="..\..\src\video\win32\SDL_win32shape.c" + > + </File> + <File + RelativePath="..\..\src\video\win32\SDL_win32shape.h" + > + </File> + <File RelativePath="..\..\src\video\win32\SDL_win32video.c" > </File>
--- 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;i<DOLLARNPOINTS;i++) { @@ -88,6 +88,7 @@ } printf("\n"); } +#endif int SDL_RecordGesture(SDL_TouchID touchId) { int i; @@ -177,7 +178,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++; } @@ -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;i<numPoints;i++) { float px = points[i].x; float py = points[i].y; - points[i].x = (float)((px - centroid.x)*cos(ang) - - (py - centroid.y)*sin(ang) + centroid.x); - points[i].y = (float)((px - centroid.x)*sin(ang) + - (py - centroid.y)*cos(ang) + centroid.y); + points[i].x = (float)((px - centroid.x)*SDL_cos(ang) - + (py - centroid.y)*SDL_sin(ang) + centroid.x); + points[i].y = (float)((px - centroid.x)*SDL_sin(ang) + + (py - centroid.y)*SDL_cos(ang) + centroid.y); if(points[i].x < xmin) xmin = points[i].x; @@ -389,10 +390,10 @@ SDL_FloatPoint points[DOLLARNPOINTS]; int numPoints = dollarNormalize(path,points); - //SDL_PrintPath(points); int i; - float bestDiff = 10000; + + //PrintPath(points); *bestTempl = -1; for(i = 0;i < touch->numDollarTemplates;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
--- 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: */
--- 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;
--- 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)
--- 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 <stdio.h> #include "wmmsg.h" #endif -//#include <stdio.h> /* 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; }
--- 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 <windows.h>