Fixed Y axis inversion on iOS; positive is up, negative is down.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
diff --git a/Xcode-iOS/Demos/src/accelerometer.c b/Xcode-iOS/Demos/src/accelerometer.c
index 115de62..bf3b86a 100644
--- a/Xcode-iOS/Demos/src/accelerometer.c
+++ b/Xcode-iOS/Demos/src/accelerometer.c
@@ -31,19 +31,19 @@ static SDL_Texture *ship = 0; /* texture for spaceship */
static SDL_Texture *space = 0; /* texture for space (background */
void
-render(SDL_Renderer *renderer)
+render(SDL_Renderer *renderer, int w, int h)
{
/* get joystick (accelerometer) axis values and normalize them */
float ax = SDL_JoystickGetAxis(accelerometer, 0);
- float ay = -SDL_JoystickGetAxis(accelerometer, 1);
+ float ay = SDL_JoystickGetAxis(accelerometer, 1);
/* ship screen constraints */
Uint32 minx = 0.0f;
- Uint32 maxx = SCREEN_WIDTH - shipData.rect.w;
+ Uint32 maxx = w - shipData.rect.w;
Uint32 miny = 0.0f;
- Uint32 maxy = SCREEN_HEIGHT - shipData.rect.h;
+ Uint32 maxy = h - shipData.rect.h;
#define SINT16_MAX ((float)(0x7FFF))
@@ -162,8 +162,9 @@ main(int argc, char *argv[])
SDL_Renderer *renderer;
Uint32 startFrame; /* time frame began to process */
Uint32 endFrame; /* time frame ended processing */
- Uint32 delay; /* time to pause waiting to draw next frame */
+ Sint32 delay; /* time to pause waiting to draw next frame */
int done; /* should we clean up and exit? */
+ int w, h;
/* initialize SDL */
if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK) < 0) {
@@ -175,6 +176,8 @@ main(int argc, char *argv[])
SDL_WINDOW_OPENGL |
SDL_WINDOW_BORDERLESS);
renderer = SDL_CreateRenderer(window, 0, 0);
+
+ SDL_GetWindowSize(window, &w, &h);
/* print out some info about joysticks and try to open accelerometer for use */
printf("There are %d joysticks available\n", SDL_NumJoysticks());
@@ -196,8 +199,8 @@ main(int argc, char *argv[])
initializeTextures(renderer);
/* setup ship */
- shipData.x = (SCREEN_WIDTH - shipData.rect.w) / 2;
- shipData.y = (SCREEN_HEIGHT - shipData.rect.h) / 2;
+ shipData.x = (w - shipData.rect.w) / 2;
+ shipData.y = (h - shipData.rect.h) / 2;
shipData.vx = 0.0f;
shipData.vy = 0.0f;
@@ -211,7 +214,7 @@ main(int argc, char *argv[])
done = 1;
}
}
- render(renderer);
+ render(renderer, w, h);
endFrame = SDL_GetTicks();
/* figure out how much time we have left, and then sleep */
diff --git a/src/joystick/iphoneos/SDL_sysjoystick.m b/src/joystick/iphoneos/SDL_sysjoystick.m
index 231c851..6082389 100644
--- a/src/joystick/iphoneos/SDL_sysjoystick.m
+++ b/src/joystick/iphoneos/SDL_sysjoystick.m
@@ -106,7 +106,7 @@ SDL_SYS_JoystickUpdate(SDL_Joystick * joystick)
[[SDLUIAccelerationDelegate sharedDelegate] setHasNewData: NO];
SDL_PrivateJoystickAxis(joystick, 0, orientation[0]);
- SDL_PrivateJoystickAxis(joystick, 1, orientation[1]);
+ SDL_PrivateJoystickAxis(joystick, 1, -orientation[1]);
SDL_PrivateJoystickAxis(joystick, 2, orientation[2]);
}