Backed out the viewport and cliprect changes in 9fb5a9ccac
This ended up being lots of application code churn without any real benefit in practice.
This commit is contained in:
@@ -75,8 +75,8 @@ static const struct
|
||||
{ 400, 5, 180.0 }, /* SDL_GAMEPAD_ELEMENT_AXIS_RIGHT_TRIGGER */
|
||||
};
|
||||
|
||||
static SDL_Rect touchpad_area = {
|
||||
148, 20, 216, 118
|
||||
static SDL_FRect touchpad_area = {
|
||||
148.0f, 20.0f, 216.0f, 118.0f
|
||||
};
|
||||
|
||||
typedef struct
|
||||
@@ -1935,7 +1935,7 @@ GamepadButton *CreateGamepadButton(SDL_Renderer *renderer, const char *label)
|
||||
SDL_GetTextureSize(ctx->background, &ctx->background_width, &ctx->background_height);
|
||||
|
||||
ctx->label = SDL_strdup(label);
|
||||
ctx->label_width = (FONT_CHARACTER_SIZE * SDL_strlen(label));
|
||||
ctx->label_width = (float)(FONT_CHARACTER_SIZE * SDL_strlen(label));
|
||||
ctx->label_height = (float)FONT_CHARACTER_SIZE;
|
||||
}
|
||||
return ctx;
|
||||
|
||||
@@ -302,7 +302,7 @@ static int keyboard_getSetModState(void *arg)
|
||||
currentState = result;
|
||||
|
||||
/* Set random state */
|
||||
newState = SDLTest_RandomIntegerInRange(0, allStates);
|
||||
newState = (SDL_Keymod)SDLTest_RandomIntegerInRange(0, allStates);
|
||||
SDL_SetModState(newState);
|
||||
SDLTest_AssertPass("Call to SDL_SetModState(0x%.4x)", newState);
|
||||
result = SDL_GetModState();
|
||||
|
||||
@@ -155,7 +155,7 @@ static int render_testPrimitives(void *arg)
|
||||
checkFailCount1++;
|
||||
}
|
||||
|
||||
ret = SDL_RenderPoint(renderer, x, y);
|
||||
ret = SDL_RenderPoint(renderer, (float)x, (float)y);
|
||||
if (ret != 0) {
|
||||
checkFailCount2++;
|
||||
}
|
||||
@@ -258,7 +258,7 @@ static int render_testPrimitivesBlend(void *arg)
|
||||
checkFailCount2++;
|
||||
}
|
||||
|
||||
ret = SDL_RenderLine(renderer, 0.0f, 0.0f, i, 59.0f);
|
||||
ret = SDL_RenderLine(renderer, 0.0f, 0.0f, (float)i, 59.0f);
|
||||
if (ret != 0) {
|
||||
checkFailCount3++;
|
||||
}
|
||||
@@ -282,7 +282,7 @@ static int render_testPrimitivesBlend(void *arg)
|
||||
checkFailCount2++;
|
||||
}
|
||||
|
||||
ret = SDL_RenderLine(renderer, 0.0f, 0.0f, 79.0f, i);
|
||||
ret = SDL_RenderLine(renderer, 0.0f, 0.0f, 79.0f, (float)i);
|
||||
if (ret != 0) {
|
||||
checkFailCount3++;
|
||||
}
|
||||
@@ -308,7 +308,7 @@ static int render_testPrimitivesBlend(void *arg)
|
||||
checkFailCount2++;
|
||||
}
|
||||
|
||||
ret = SDL_RenderPoint(renderer, i, j);
|
||||
ret = SDL_RenderPoint(renderer, (float)i, (float)j);
|
||||
if (ret != 0) {
|
||||
checkFailCount3++;
|
||||
}
|
||||
@@ -342,7 +342,7 @@ static int render_testPrimitivesBlend(void *arg)
|
||||
*/
|
||||
static int render_testPrimitivesWithViewport(void *arg)
|
||||
{
|
||||
SDL_FRect viewport;
|
||||
SDL_Rect viewport;
|
||||
SDL_Surface *surface;
|
||||
|
||||
/* Clear surface. */
|
||||
@@ -489,8 +489,8 @@ static int render_testBlitColor(void *arg)
|
||||
}
|
||||
|
||||
/* Blitting. */
|
||||
rect.x = i;
|
||||
rect.y = j;
|
||||
rect.x = (float)i;
|
||||
rect.y = (float)j;
|
||||
ret = SDL_RenderTexture(renderer, tface, NULL, &rect);
|
||||
if (ret != 0) {
|
||||
checkFailCount2++;
|
||||
@@ -768,8 +768,8 @@ static int render_testBlitBlend(void *arg)
|
||||
}
|
||||
|
||||
/* Blitting. */
|
||||
rect.x = i;
|
||||
rect.y = j;
|
||||
rect.x = (float)i;
|
||||
rect.y = (float)j;
|
||||
ret = SDL_RenderTexture(renderer, tface, NULL, &rect);
|
||||
if (ret != 0) {
|
||||
checkFailCount4++;
|
||||
@@ -803,7 +803,7 @@ static int render_testBlitBlend(void *arg)
|
||||
static int render_testViewport(void *arg)
|
||||
{
|
||||
SDL_Surface *referenceSurface;
|
||||
SDL_FRect viewport;
|
||||
SDL_Rect viewport;
|
||||
|
||||
viewport.x = TESTRENDER_SCREEN_W / 3;
|
||||
viewport.y = TESTRENDER_SCREEN_H / 3;
|
||||
@@ -813,12 +813,7 @@ static int render_testViewport(void *arg)
|
||||
/* Create expected result */
|
||||
referenceSurface = SDL_CreateSurface(TESTRENDER_SCREEN_W, TESTRENDER_SCREEN_H, RENDER_COMPARE_FORMAT);
|
||||
CHECK_FUNC(SDL_FillSurfaceRect, (referenceSurface, NULL, RENDER_COLOR_CLEAR))
|
||||
SDL_Rect v;
|
||||
v.x = (int)viewport.x;
|
||||
v.y = (int)viewport.y;
|
||||
v.w = (int)viewport.w;
|
||||
v.h = (int)viewport.h;
|
||||
CHECK_FUNC(SDL_FillSurfaceRect, (referenceSurface, &v, RENDER_COLOR_GREEN))
|
||||
CHECK_FUNC(SDL_FillSurfaceRect, (referenceSurface, &viewport, RENDER_COLOR_GREEN))
|
||||
|
||||
/* Clear surface. */
|
||||
clearScreen();
|
||||
@@ -865,7 +860,7 @@ static int render_testViewport(void *arg)
|
||||
static int render_testClipRect(void *arg)
|
||||
{
|
||||
SDL_Surface *referenceSurface;
|
||||
SDL_FRect cliprect;
|
||||
SDL_Rect cliprect;
|
||||
|
||||
cliprect.x = TESTRENDER_SCREEN_W / 3;
|
||||
cliprect.y = TESTRENDER_SCREEN_H / 3;
|
||||
@@ -875,12 +870,7 @@ static int render_testClipRect(void *arg)
|
||||
/* Create expected result */
|
||||
referenceSurface = SDL_CreateSurface(TESTRENDER_SCREEN_W, TESTRENDER_SCREEN_H, RENDER_COMPARE_FORMAT);
|
||||
CHECK_FUNC(SDL_FillSurfaceRect, (referenceSurface, NULL, RENDER_COLOR_CLEAR))
|
||||
SDL_Rect c;
|
||||
c.x = (int)cliprect.x;
|
||||
c.y = (int)cliprect.y;
|
||||
c.w = (int)cliprect.w;
|
||||
c.h = (int)cliprect.h;
|
||||
CHECK_FUNC(SDL_FillSurfaceRect, (referenceSurface, &c, RENDER_COLOR_GREEN))
|
||||
CHECK_FUNC(SDL_FillSurfaceRect, (referenceSurface, &cliprect, RENDER_COLOR_GREEN))
|
||||
|
||||
/* Clear surface. */
|
||||
clearScreen();
|
||||
@@ -927,9 +917,9 @@ static int render_testClipRect(void *arg)
|
||||
static int render_testLogicalSize(void *arg)
|
||||
{
|
||||
SDL_Surface *referenceSurface;
|
||||
SDL_FRect viewport;
|
||||
SDL_Rect viewport;
|
||||
SDL_FRect rect;
|
||||
float w, h;
|
||||
int w, h;
|
||||
const int factor = 2;
|
||||
|
||||
viewport.x = ((TESTRENDER_SCREEN_W / 4) / factor) * factor;
|
||||
@@ -940,12 +930,7 @@ static int render_testLogicalSize(void *arg)
|
||||
/* Create expected result */
|
||||
referenceSurface = SDL_CreateSurface(TESTRENDER_SCREEN_W, TESTRENDER_SCREEN_H, RENDER_COMPARE_FORMAT);
|
||||
CHECK_FUNC(SDL_FillSurfaceRect, (referenceSurface, NULL, RENDER_COLOR_CLEAR))
|
||||
SDL_Rect v;
|
||||
v.x = (int)viewport.x;
|
||||
v.y = (int)viewport.y;
|
||||
v.w = (int)viewport.w;
|
||||
v.h = (int)viewport.h;
|
||||
CHECK_FUNC(SDL_FillSurfaceRect, (referenceSurface, &v, RENDER_COLOR_GREEN))
|
||||
CHECK_FUNC(SDL_FillSurfaceRect, (referenceSurface, &viewport, RENDER_COLOR_GREEN))
|
||||
|
||||
/* Clear surface. */
|
||||
clearScreen();
|
||||
@@ -956,10 +941,10 @@ static int render_testLogicalSize(void *arg)
|
||||
SDL_LOGICAL_PRESENTATION_LETTERBOX,
|
||||
SDL_SCALEMODE_NEAREST))
|
||||
CHECK_FUNC(SDL_SetRenderDrawColor, (renderer, 0, 255, 0, SDL_ALPHA_OPAQUE))
|
||||
rect.x = viewport.x / factor;
|
||||
rect.y = viewport.y / factor;
|
||||
rect.w = viewport.w / factor;
|
||||
rect.h = viewport.h / factor;
|
||||
rect.x = (float)viewport.x / factor;
|
||||
rect.y = (float)viewport.y / factor;
|
||||
rect.w = (float)viewport.w / factor;
|
||||
rect.h = (float)viewport.h / factor;
|
||||
CHECK_FUNC(SDL_RenderFillRect, (renderer, &rect))
|
||||
CHECK_FUNC(SDL_SetRenderLogicalPresentation, (renderer, 0, 0,
|
||||
SDL_LOGICAL_PRESENTATION_DISABLED,
|
||||
@@ -1002,11 +987,7 @@ static int render_testLogicalSize(void *arg)
|
||||
|
||||
/* Create expected result */
|
||||
CHECK_FUNC(SDL_FillSurfaceRect, (referenceSurface, NULL, RENDER_COLOR_CLEAR))
|
||||
v.x = (int)viewport.x;
|
||||
v.y = (int)viewport.y;
|
||||
v.w = (int)viewport.w;
|
||||
v.h = (int)viewport.h;
|
||||
CHECK_FUNC(SDL_FillSurfaceRect, (referenceSurface, &v, RENDER_COLOR_GREEN))
|
||||
CHECK_FUNC(SDL_FillSurfaceRect, (referenceSurface, &viewport, RENDER_COLOR_GREEN))
|
||||
|
||||
/* Clear surface. */
|
||||
clearScreen();
|
||||
|
||||
@@ -234,7 +234,8 @@ int SDL_AppIterate(void *appstate)
|
||||
SDL_SetRenderDrawColor(renderer, 0x99, 0x99, 0x99, 255);
|
||||
SDL_RenderClear(renderer);
|
||||
|
||||
float win_w, win_h, tw, th;
|
||||
int win_w, win_h;
|
||||
float tw, th;
|
||||
SDL_FRect d;
|
||||
Uint64 timestampNS = 0;
|
||||
SDL_Surface *frame_next = camera ? SDL_AcquireCameraFrame(camera, ×tampNS) : NULL;
|
||||
|
||||
@@ -2088,7 +2088,7 @@ int main(int argc, char *argv[])
|
||||
SDL_RenderPresent(screen);
|
||||
|
||||
/* scale for platforms that don't give you the window size you asked for. */
|
||||
SDL_SetRenderLogicalPresentation(screen, SCREEN_WIDTH, SCREEN_HEIGHT,
|
||||
SDL_SetRenderLogicalPresentation(screen, (int)SCREEN_WIDTH, (int)SCREEN_HEIGHT,
|
||||
SDL_LOGICAL_PRESENTATION_LETTERBOX,
|
||||
SDL_SCALEMODE_LINEAR);
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ static void DrawPoints(SDL_Renderer *renderer)
|
||||
{
|
||||
int i;
|
||||
float x, y;
|
||||
SDL_FRect viewport;
|
||||
SDL_Rect viewport;
|
||||
|
||||
/* Query the sizes */
|
||||
SDL_GetRenderViewport(renderer, &viewport);
|
||||
@@ -75,8 +75,8 @@ static void DrawPoints(SDL_Renderer *renderer)
|
||||
SDL_SetRenderDrawColor(renderer, 255, (Uint8)current_color,
|
||||
(Uint8)current_color, (Uint8)current_alpha);
|
||||
|
||||
x = (float)(rand() % (int)viewport.w);
|
||||
y = (float)(rand() % (int)viewport.h);
|
||||
x = (float)(rand() % viewport.w);
|
||||
y = (float)(rand() % viewport.h);
|
||||
SDL_RenderPoint(renderer, x, y);
|
||||
}
|
||||
}
|
||||
@@ -85,7 +85,7 @@ static void DrawLines(SDL_Renderer *renderer)
|
||||
{
|
||||
int i;
|
||||
float x1, y1, x2, y2;
|
||||
SDL_FRect viewport;
|
||||
SDL_Rect viewport;
|
||||
|
||||
/* Query the sizes */
|
||||
SDL_GetRenderViewport(renderer, &viewport);
|
||||
@@ -118,15 +118,15 @@ static void DrawLines(SDL_Renderer *renderer)
|
||||
(Uint8)current_color, (Uint8)current_alpha);
|
||||
|
||||
if (i == 0) {
|
||||
SDL_RenderLine(renderer, 0.0f, 0.0f, (viewport.w - 1), (viewport.h - 1));
|
||||
SDL_RenderLine(renderer, 0.0f, (viewport.h - 1), (viewport.w - 1), 0.0f);
|
||||
SDL_RenderLine(renderer, 0.0f, (viewport.h / 2), (viewport.w - 1), (viewport.h / 2));
|
||||
SDL_RenderLine(renderer, (viewport.w / 2), 0.0f, (viewport.w / 2), (viewport.h - 1));
|
||||
SDL_RenderLine(renderer, 0.0f, 0.0f, (float)(viewport.w - 1), (float)(viewport.h - 1));
|
||||
SDL_RenderLine(renderer, 0.0f, (float)(viewport.h - 1), (float)(viewport.w - 1), 0.0f);
|
||||
SDL_RenderLine(renderer, 0.0f, (float)(viewport.h / 2), (float)(viewport.w - 1), (float)(viewport.h / 2));
|
||||
SDL_RenderLine(renderer, (float)(viewport.w / 2), 0.0f, (float)(viewport.w / 2), (float)(viewport.h - 1));
|
||||
} else {
|
||||
x1 = ((rand() % ((int)viewport.w * 2)) - viewport.w);
|
||||
x2 = ((rand() % ((int)viewport.w * 2)) - viewport.w);
|
||||
y1 = ((rand() % ((int)viewport.h * 2)) - viewport.h);
|
||||
y2 = ((rand() % ((int)viewport.h * 2)) - viewport.h);
|
||||
x1 = (float)((rand() % (viewport.w * 2)) - viewport.w);
|
||||
x2 = (float)((rand() % (viewport.w * 2)) - viewport.w);
|
||||
y1 = (float)((rand() % (viewport.h * 2)) - viewport.h);
|
||||
y2 = (float)((rand() % (viewport.h * 2)) - viewport.h);
|
||||
SDL_RenderLine(renderer, x1, y1, x2, y2);
|
||||
}
|
||||
}
|
||||
@@ -136,7 +136,7 @@ static void DrawRects(SDL_Renderer *renderer)
|
||||
{
|
||||
int i;
|
||||
SDL_FRect rect;
|
||||
SDL_FRect viewport;
|
||||
SDL_Rect viewport;
|
||||
|
||||
/* Query the sizes */
|
||||
SDL_GetRenderViewport(renderer, &viewport);
|
||||
@@ -168,10 +168,10 @@ static void DrawRects(SDL_Renderer *renderer)
|
||||
SDL_SetRenderDrawColor(renderer, 255, (Uint8)current_color,
|
||||
(Uint8)current_color, (Uint8)current_alpha);
|
||||
|
||||
rect.w = (float)(rand() % ((int)viewport.h / 2));
|
||||
rect.h = (float)(rand() % ((int)viewport.h / 2));
|
||||
rect.x = ((rand() % ((int)viewport.w * 2) - viewport.w) - (rect.w / 2));
|
||||
rect.y = ((rand() % ((int)viewport.h * 2) - viewport.h) - (rect.h / 2));
|
||||
rect.w = (float)(rand() % (viewport.h / 2));
|
||||
rect.h = (float)(rand() % (viewport.h / 2));
|
||||
rect.x = (float)((rand() % (viewport.w * 2) - viewport.w) - (rect.w / 2));
|
||||
rect.y = (float)((rand() % (viewport.h * 2) - viewport.h) - (rect.h / 2));
|
||||
SDL_RenderFillRect(renderer, &rect);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ static void DrawChessBoard(void)
|
||||
{
|
||||
int row = 0, column = 0, x = 0;
|
||||
SDL_FRect rect;
|
||||
SDL_FRect darea;
|
||||
SDL_Rect darea;
|
||||
|
||||
/* Get the Size of drawing surface */
|
||||
SDL_GetRenderViewport(renderer, &darea);
|
||||
@@ -43,10 +43,10 @@ static void DrawChessBoard(void)
|
||||
for (; column < 4 + (row % 2); column++) {
|
||||
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 0xFF);
|
||||
|
||||
rect.w = (darea.w / 8);
|
||||
rect.h = (darea.h / 8);
|
||||
rect.x = (x * rect.w);
|
||||
rect.y = (row * rect.h);
|
||||
rect.w = (float)(darea.w / 8);
|
||||
rect.h = (float)(darea.h / 8);
|
||||
rect.x = (float)(x * rect.w);
|
||||
rect.y = (float)(row * rect.h);
|
||||
x = x + 2;
|
||||
SDL_RenderFillRect(renderer, &rect);
|
||||
|
||||
|
||||
@@ -252,7 +252,7 @@ static SDL_Texture *CreateTexture(SDL_Renderer *r, unsigned char *data, unsigned
|
||||
|
||||
static void MoveSprite(void)
|
||||
{
|
||||
SDL_FRect viewport;
|
||||
SDL_Rect viewport;
|
||||
SDL_FRect *position, *velocity;
|
||||
int i;
|
||||
|
||||
@@ -1484,12 +1484,12 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
/* Position sprites and set their velocities */
|
||||
SDL_FRect viewport;
|
||||
SDL_Rect viewport;
|
||||
SDL_GetRenderViewport(renderer, &viewport);
|
||||
srand((unsigned int)time(NULL));
|
||||
for (i = 0; i < num_sprites; ++i) {
|
||||
positions[i].x = (float)(rand() % (int)(viewport.w - sprite_w));
|
||||
positions[i].y = (float)(rand() % (int)(viewport.h - sprite_h));
|
||||
positions[i].x = (float)(rand() % (viewport.w - sprite_w));
|
||||
positions[i].y = (float)(rand() % (viewport.h - sprite_h));
|
||||
positions[i].w = (float)sprite_w;
|
||||
positions[i].h = (float)sprite_h;
|
||||
velocities[i].x = 0.0f;
|
||||
|
||||
@@ -121,11 +121,11 @@ static void loop(void)
|
||||
SDL_RenderClear(renderer);
|
||||
|
||||
{
|
||||
SDL_FRect viewport;
|
||||
SDL_Rect viewport;
|
||||
SDL_Vertex verts[3];
|
||||
float a;
|
||||
float d;
|
||||
float cx, cy;
|
||||
int cx, cy;
|
||||
|
||||
/* Query the sizes */
|
||||
SDL_GetRenderViewport(renderer, &viewport);
|
||||
|
||||
@@ -45,7 +45,7 @@ static void DrawPoints(SDL_Renderer *renderer)
|
||||
{
|
||||
int i;
|
||||
float x, y;
|
||||
SDL_FRect viewport;
|
||||
SDL_Rect viewport;
|
||||
|
||||
/* Query the sizes */
|
||||
SDL_GetRenderViewport(renderer, &viewport);
|
||||
@@ -77,8 +77,8 @@ static void DrawPoints(SDL_Renderer *renderer)
|
||||
SDL_SetRenderDrawColor(renderer, 255, (Uint8)current_color,
|
||||
(Uint8)current_color, (Uint8)current_alpha);
|
||||
|
||||
x = (float)(rand() % (int)viewport.w);
|
||||
y = (float)(rand() % (int)viewport.h);
|
||||
x = (float)(rand() % viewport.w);
|
||||
y = (float)(rand() % viewport.h);
|
||||
SDL_RenderPoint(renderer, x, y);
|
||||
}
|
||||
}
|
||||
@@ -107,7 +107,7 @@ static int add_line(float x1, float y1, float x2, float y2)
|
||||
static void DrawLines(SDL_Renderer *renderer)
|
||||
{
|
||||
int i;
|
||||
SDL_FRect viewport;
|
||||
SDL_Rect viewport;
|
||||
|
||||
/* Query the sizes */
|
||||
SDL_GetRenderViewport(renderer, &viewport);
|
||||
@@ -116,10 +116,10 @@ static void DrawLines(SDL_Renderer *renderer)
|
||||
|
||||
for (i = 0; i < num_lines; ++i) {
|
||||
if (i == -1) {
|
||||
SDL_RenderLine(renderer, 0.0f, 0.0f, (viewport.w - 1), (viewport.h - 1));
|
||||
SDL_RenderLine(renderer, 0.0f, (viewport.h - 1), (viewport.w - 1), 0.0f);
|
||||
SDL_RenderLine(renderer, 0.0f, (viewport.h / 2), (viewport.w - 1), (viewport.h / 2));
|
||||
SDL_RenderLine(renderer, (viewport.w / 2), 0.0f, (viewport.w / 2), (viewport.h - 1));
|
||||
SDL_RenderLine(renderer, 0.0f, 0.0f, (float)(viewport.w - 1), (float)(viewport.h - 1));
|
||||
SDL_RenderLine(renderer, 0.0f, (float)(viewport.h - 1), (float)(viewport.w - 1), 0.0f);
|
||||
SDL_RenderLine(renderer, 0.0f, (float)(viewport.h / 2), (float)(viewport.w - 1), (float)(viewport.h / 2));
|
||||
SDL_RenderLine(renderer, (float)(viewport.w / 2), 0.0f, (float)(viewport.w / 2), (float)(viewport.h - 1));
|
||||
} else {
|
||||
SDL_RenderLine(renderer, lines[i].x, lines[i].y, lines[i].w, lines[i].h);
|
||||
}
|
||||
|
||||
@@ -401,7 +401,7 @@ static void HandleKeyboardKeyDown(SDL_KeyboardEvent *event)
|
||||
case SDLK_RIGHT:
|
||||
keyboard_state->position.x += CURSOR_SIZE;
|
||||
if (keyboard_state->position.x > w) {
|
||||
keyboard_state->position.x = w;
|
||||
keyboard_state->position.x = (float)w;
|
||||
}
|
||||
break;
|
||||
case SDLK_UP:
|
||||
@@ -413,7 +413,7 @@ static void HandleKeyboardKeyDown(SDL_KeyboardEvent *event)
|
||||
case SDLK_DOWN:
|
||||
keyboard_state->position.y += CURSOR_SIZE;
|
||||
if (keyboard_state->position.y > h) {
|
||||
keyboard_state->position.y = h;
|
||||
keyboard_state->position.y = (float)h;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -65,7 +65,7 @@ static void MoveSprites(SDL_Renderer *renderer, SDL_Texture *sprite)
|
||||
{
|
||||
float sprite_w, sprite_h;
|
||||
int i;
|
||||
SDL_FRect viewport;
|
||||
SDL_Rect viewport;
|
||||
SDL_FRect *position, *velocity;
|
||||
|
||||
/* Query the sizes */
|
||||
|
||||
@@ -52,7 +52,7 @@ static void loop(void)
|
||||
}
|
||||
}
|
||||
for (i = 0; i < state->num_windows; ++i) {
|
||||
SDL_FRect viewport;
|
||||
SDL_Rect viewport;
|
||||
SDL_Renderer *renderer = state->renderers[i];
|
||||
if (state->windows[i] == NULL) {
|
||||
continue;
|
||||
|
||||
@@ -49,14 +49,14 @@ quit(int rc)
|
||||
|
||||
static void Draw(DrawState *s)
|
||||
{
|
||||
SDL_FRect viewport;
|
||||
SDL_Rect viewport;
|
||||
SDL_Texture *target;
|
||||
SDL_FPoint *center = NULL;
|
||||
SDL_FPoint origin = { 0.0f, 0.0f };
|
||||
|
||||
SDL_GetRenderViewport(s->renderer, &viewport);
|
||||
|
||||
target = SDL_CreateTexture(s->renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_TARGET, (int)viewport.w, (int)viewport.h);
|
||||
target = SDL_CreateTexture(s->renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_TARGET, viewport.w, viewport.h);
|
||||
SDL_SetRenderTarget(s->renderer, target);
|
||||
|
||||
/* Draw the background */
|
||||
@@ -75,8 +75,8 @@ static void Draw(DrawState *s)
|
||||
s->scale_direction = 1;
|
||||
}
|
||||
}
|
||||
s->sprite_rect.x = ((viewport.w - s->sprite_rect.w) / 2);
|
||||
s->sprite_rect.y = ((viewport.h - s->sprite_rect.h) / 2);
|
||||
s->sprite_rect.x = (float)((viewport.w - s->sprite_rect.w) / 2);
|
||||
s->sprite_rect.y = (float)((viewport.h - s->sprite_rect.h) / 2);
|
||||
|
||||
SDL_RenderTextureRotated(s->renderer, s->sprite, NULL, &s->sprite_rect, (double)s->sprite_rect.w, center, SDL_FLIP_NONE);
|
||||
|
||||
@@ -135,7 +135,6 @@ int main(int argc, char *argv[])
|
||||
drawstates = SDL_stack_alloc(DrawState, state->num_windows);
|
||||
for (i = 0; i < state->num_windows; ++i) {
|
||||
DrawState *drawstate = &drawstates[i];
|
||||
float w, h;
|
||||
|
||||
drawstate->window = state->windows[i];
|
||||
drawstate->renderer = state->renderers[i];
|
||||
@@ -144,9 +143,7 @@ int main(int argc, char *argv[])
|
||||
if (!drawstate->sprite || !drawstate->background) {
|
||||
quit(2);
|
||||
}
|
||||
SDL_GetTextureSize(drawstate->sprite, &w, &h);
|
||||
drawstate->sprite_rect.w = w;
|
||||
drawstate->sprite_rect.h = h;
|
||||
SDL_GetTextureSize(drawstate->sprite, &drawstate->sprite_rect.w, &drawstate->sprite_rect.h);
|
||||
drawstate->scale_direction = 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ quit(int rc)
|
||||
static SDL_bool
|
||||
DrawComposite(DrawState *s)
|
||||
{
|
||||
SDL_FRect viewport;
|
||||
SDL_Rect viewport;
|
||||
SDL_FRect R;
|
||||
SDL_Texture *target;
|
||||
SDL_Surface *surface;
|
||||
@@ -91,7 +91,7 @@ DrawComposite(DrawState *s)
|
||||
|
||||
SDL_GetRenderViewport(s->renderer, &viewport);
|
||||
|
||||
target = SDL_CreateTexture(s->renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_TARGET, (int)viewport.w, (int)viewport.h);
|
||||
target = SDL_CreateTexture(s->renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_TARGET, viewport.w, viewport.h);
|
||||
SDL_SetTextureBlendMode(target, SDL_BLENDMODE_BLEND);
|
||||
SDL_SetRenderTarget(s->renderer, target);
|
||||
|
||||
@@ -113,8 +113,8 @@ DrawComposite(DrawState *s)
|
||||
s->scale_direction = 1;
|
||||
}
|
||||
}
|
||||
s->sprite_rect.x = ((viewport.w - s->sprite_rect.w) / 2);
|
||||
s->sprite_rect.y = ((viewport.h - s->sprite_rect.h) / 2);
|
||||
s->sprite_rect.x = (float)((viewport.w - s->sprite_rect.w) / 2);
|
||||
s->sprite_rect.y = (float)((viewport.h - s->sprite_rect.h) / 2);
|
||||
|
||||
SDL_RenderTexture(s->renderer, s->sprite, NULL, &s->sprite_rect);
|
||||
|
||||
@@ -141,12 +141,12 @@ DrawComposite(DrawState *s)
|
||||
static SDL_bool
|
||||
Draw(DrawState *s)
|
||||
{
|
||||
SDL_FRect viewport;
|
||||
SDL_Rect viewport;
|
||||
SDL_Texture *target;
|
||||
|
||||
SDL_GetRenderViewport(s->renderer, &viewport);
|
||||
|
||||
target = SDL_CreateTexture(s->renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_TARGET, (int)viewport.w, (int)viewport.h);
|
||||
target = SDL_CreateTexture(s->renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_TARGET, viewport.w, viewport.h);
|
||||
if (!target) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't create render target texture: %s\n", SDL_GetError());
|
||||
return SDL_FALSE;
|
||||
@@ -168,8 +168,8 @@ Draw(DrawState *s)
|
||||
s->scale_direction = 1;
|
||||
}
|
||||
}
|
||||
s->sprite_rect.x = ((viewport.w - s->sprite_rect.w) / 2);
|
||||
s->sprite_rect.y = ((viewport.h - s->sprite_rect.h) / 2);
|
||||
s->sprite_rect.x = (float)((viewport.w - s->sprite_rect.w) / 2);
|
||||
s->sprite_rect.y = (float)((viewport.h - s->sprite_rect.h) / 2);
|
||||
|
||||
SDL_RenderTexture(s->renderer, s->sprite, NULL, &s->sprite_rect);
|
||||
|
||||
@@ -251,7 +251,6 @@ int main(int argc, char *argv[])
|
||||
drawstates = SDL_stack_alloc(DrawState, state->num_windows);
|
||||
for (i = 0; i < state->num_windows; ++i) {
|
||||
DrawState *drawstate = &drawstates[i];
|
||||
float w, h;
|
||||
|
||||
drawstate->window = state->windows[i];
|
||||
drawstate->renderer = state->renderers[i];
|
||||
@@ -264,9 +263,7 @@ int main(int argc, char *argv[])
|
||||
if (!drawstate->sprite || !drawstate->background) {
|
||||
quit(2);
|
||||
}
|
||||
SDL_GetTextureSize(drawstate->sprite, &w, &h);
|
||||
drawstate->sprite_rect.w = w;
|
||||
drawstate->sprite_rect.h = h;
|
||||
SDL_GetTextureSize(drawstate->sprite, &drawstate->sprite_rect.w, &drawstate->sprite_rect.h);
|
||||
drawstate->scale_direction = 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ quit(int rc)
|
||||
|
||||
static void Draw(DrawState *s)
|
||||
{
|
||||
SDL_FRect viewport;
|
||||
SDL_Rect viewport;
|
||||
|
||||
SDL_GetRenderViewport(s->renderer, &viewport);
|
||||
|
||||
@@ -68,8 +68,8 @@ static void Draw(DrawState *s)
|
||||
s->scale_direction = 1;
|
||||
}
|
||||
}
|
||||
s->sprite_rect.x = ((viewport.w - s->sprite_rect.w) / 2);
|
||||
s->sprite_rect.y = ((viewport.h - s->sprite_rect.h) / 2);
|
||||
s->sprite_rect.x = (float)((viewport.w - s->sprite_rect.w) / 2);
|
||||
s->sprite_rect.y = (float)((viewport.h - s->sprite_rect.h) / 2);
|
||||
|
||||
SDL_RenderTexture(s->renderer, s->sprite, NULL, &s->sprite_rect);
|
||||
|
||||
@@ -126,7 +126,6 @@ int main(int argc, char *argv[])
|
||||
drawstates = SDL_stack_alloc(DrawState, state->num_windows);
|
||||
for (i = 0; i < state->num_windows; ++i) {
|
||||
DrawState *drawstate = &drawstates[i];
|
||||
float w, h;
|
||||
|
||||
drawstate->window = state->windows[i];
|
||||
drawstate->renderer = state->renderers[i];
|
||||
@@ -135,9 +134,7 @@ int main(int argc, char *argv[])
|
||||
if (!drawstate->sprite || !drawstate->background) {
|
||||
quit(2);
|
||||
}
|
||||
SDL_GetTextureSize(drawstate->sprite, &w, &h);
|
||||
drawstate->sprite_rect.w = w;
|
||||
drawstate->sprite_rect.h = h;
|
||||
SDL_GetTextureSize(drawstate->sprite, &drawstate->sprite_rect.w, &drawstate->sprite_rect.h);
|
||||
drawstate->scale_direction = 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ static int LoadSprite(const char *file)
|
||||
static void MoveSprites(SDL_Renderer *renderer, SDL_Texture *sprite)
|
||||
{
|
||||
int i;
|
||||
SDL_FRect viewport;
|
||||
SDL_Rect viewport;
|
||||
SDL_FRect temp;
|
||||
SDL_FRect *position, *velocity;
|
||||
|
||||
@@ -120,9 +120,9 @@ static void MoveSprites(SDL_Renderer *renderer, SDL_Texture *sprite)
|
||||
/* Test points */
|
||||
SDL_SetRenderDrawColor(renderer, 0xFF, 0x00, 0x00, 0xFF);
|
||||
SDL_RenderPoint(renderer, 0.0f, 0.0f);
|
||||
SDL_RenderPoint(renderer, (viewport.w - 1), 0.0f);
|
||||
SDL_RenderPoint(renderer, 0.0f, (viewport.h - 1));
|
||||
SDL_RenderPoint(renderer, (viewport.w - 1), (viewport.h - 1));
|
||||
SDL_RenderPoint(renderer, (float)(viewport.w - 1), 0.0f);
|
||||
SDL_RenderPoint(renderer, 0.0f, (float)(viewport.h - 1));
|
||||
SDL_RenderPoint(renderer, (float)(viewport.w - 1), (float)(viewport.h - 1));
|
||||
|
||||
/* Test horizontal and vertical lines */
|
||||
SDL_SetRenderDrawColor(renderer, 0x00, 0xFF, 0x00, 0xFF);
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
static SDLTest_CommonState *state;
|
||||
|
||||
static SDL_FRect viewport;
|
||||
static SDL_Rect viewport;
|
||||
static int done, j;
|
||||
static SDL_bool use_target = SDL_FALSE;
|
||||
#ifdef SDL_PLATFORM_EMSCRIPTEN
|
||||
@@ -47,7 +47,7 @@ quit(int rc)
|
||||
static void DrawOnViewport(SDL_Renderer *renderer)
|
||||
{
|
||||
SDL_FRect rect;
|
||||
SDL_FRect cliprect;
|
||||
SDL_Rect cliprect;
|
||||
float w, h;
|
||||
|
||||
/* Set the viewport */
|
||||
@@ -59,47 +59,47 @@ static void DrawOnViewport(SDL_Renderer *renderer)
|
||||
|
||||
/* Test inside points */
|
||||
SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0x00, 0xFF);
|
||||
SDL_RenderPoint(renderer, (viewport.h / 2 + 20), (viewport.w / 2));
|
||||
SDL_RenderPoint(renderer, (viewport.h / 2 - 20), (viewport.w / 2));
|
||||
SDL_RenderPoint(renderer, (viewport.h / 2), (viewport.w / 2 - 20));
|
||||
SDL_RenderPoint(renderer, (viewport.h / 2), (viewport.w / 2 + 20));
|
||||
SDL_RenderPoint(renderer, (float)(viewport.h / 2 + 20), (float)(viewport.w / 2));
|
||||
SDL_RenderPoint(renderer, (float)(viewport.h / 2 - 20), (float)(viewport.w / 2));
|
||||
SDL_RenderPoint(renderer, (float)(viewport.h / 2), (float)(viewport.w / 2 - 20));
|
||||
SDL_RenderPoint(renderer, (float)(viewport.h / 2), (float)(viewport.w / 2 + 20));
|
||||
|
||||
/* Test horizontal and vertical lines */
|
||||
SDL_SetRenderDrawColor(renderer, 0x00, 0xFF, 0x00, 0xFF);
|
||||
SDL_RenderLine(renderer, 1.0f, 0.0f, (viewport.w - 2), 0.0f);
|
||||
SDL_RenderLine(renderer, 1.0f, (viewport.h - 1), (viewport.w - 2), (viewport.h - 1));
|
||||
SDL_RenderLine(renderer, 0.0f, 1.0f, 0.0f, (viewport.h - 2));
|
||||
SDL_RenderLine(renderer, (viewport.w - 1), 1.0f, (viewport.w - 1), (viewport.h - 2));
|
||||
SDL_RenderLine(renderer, 1.0f, 0.0f, (float)(viewport.w - 2), 0.0f);
|
||||
SDL_RenderLine(renderer, 1.0f, (float)(viewport.h - 1), (float)(viewport.w - 2), (float)(viewport.h - 1));
|
||||
SDL_RenderLine(renderer, 0.0f, 1.0f, 0.0f, (float)(viewport.h - 2));
|
||||
SDL_RenderLine(renderer, (float)(viewport.w - 1), 1.0f, (float)(viewport.w - 1), (float)(viewport.h - 2));
|
||||
|
||||
/* Test diagonal lines */
|
||||
SDL_SetRenderDrawColor(renderer, 0x00, 0xff, 0xFF, 0xFF);
|
||||
SDL_RenderLine(renderer, 0.0f, 0.0f, (viewport.w - 1), (viewport.h - 1));
|
||||
SDL_RenderLine(renderer, (viewport.w - 1), 0.0f, 0.0f, (viewport.h - 1));
|
||||
SDL_RenderLine(renderer, 0.0f, 0.0f, (float)(viewport.w - 1), (float)(viewport.h - 1));
|
||||
SDL_RenderLine(renderer, (float)(viewport.w - 1), 0.0f, 0.0f, (float)(viewport.h - 1));
|
||||
|
||||
/* Test outside points */
|
||||
SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0x00, 0xFF);
|
||||
SDL_RenderPoint(renderer, (viewport.h / 2 + viewport.h), (viewport.w / 2));
|
||||
SDL_RenderPoint(renderer, (viewport.h / 2 - viewport.h), (viewport.w / 2));
|
||||
SDL_RenderPoint(renderer, (viewport.h / 2), (viewport.w / 2 - viewport.w));
|
||||
SDL_RenderPoint(renderer, (viewport.h / 2), (viewport.w / 2 + viewport.w));
|
||||
SDL_RenderPoint(renderer, (float)(viewport.h / 2 + viewport.h), (float)(viewport.w / 2));
|
||||
SDL_RenderPoint(renderer, (float)(viewport.h / 2 - viewport.h), (float)(viewport.w / 2));
|
||||
SDL_RenderPoint(renderer, (float)(viewport.h / 2), (float)(viewport.w / 2 - viewport.w));
|
||||
SDL_RenderPoint(renderer, (float)(viewport.h / 2), (float)(viewport.w / 2 + viewport.w));
|
||||
|
||||
/* Add a box at the top */
|
||||
rect.w = 8.0f;
|
||||
rect.h = 8.0f;
|
||||
rect.x = ((viewport.w - rect.w) / 2);
|
||||
rect.x = (float)((viewport.w - rect.w) / 2);
|
||||
rect.y = 0.0f;
|
||||
SDL_RenderFillRect(renderer, &rect);
|
||||
|
||||
/* Add a clip rect and fill it with the sprite */
|
||||
SDL_GetTextureSize(sprite, &w, &h);
|
||||
cliprect.x = (viewport.w - w) / 2;
|
||||
cliprect.y = (viewport.h - h) / 2;
|
||||
cliprect.w = w;
|
||||
cliprect.h = h;
|
||||
rect.x = cliprect.x;
|
||||
rect.y = cliprect.y;
|
||||
rect.w = cliprect.w;
|
||||
rect.h = cliprect.h;
|
||||
rect.x = (viewport.w - w) / 2;
|
||||
rect.y = (viewport.h - h) / 2;
|
||||
rect.w = w;
|
||||
rect.h = h;
|
||||
cliprect.x = (int)rect.x;
|
||||
cliprect.y = (int)rect.y;
|
||||
cliprect.w = (int)rect.w;
|
||||
cliprect.h = (int)rect.h;
|
||||
SDL_SetRenderClipRect(renderer, &cliprect);
|
||||
SDL_RenderTexture(renderer, sprite, NULL, &rect);
|
||||
SDL_SetRenderClipRect(renderer, NULL);
|
||||
@@ -127,7 +127,7 @@ static void loop(void)
|
||||
viewport.w = 100 + j * 50;
|
||||
viewport.h = 100 + j * 50;
|
||||
j = (j + 1) % 4;
|
||||
SDL_Log("Current Viewport x=%g y=%g w=%g h=%g", viewport.x, viewport.y, viewport.w, viewport.h);
|
||||
SDL_Log("Current Viewport x=%i y=%i w=%i h=%i", viewport.x, viewport.y, viewport.w, viewport.h);
|
||||
|
||||
for (i = 0; i < state->num_windows; ++i) {
|
||||
if (state->windows[i] == NULL) {
|
||||
|
||||
@@ -225,7 +225,8 @@ static void loop(void)
|
||||
SDL_Renderer *renderer = state->renderers[i];
|
||||
if (window && renderer) {
|
||||
float y = 0.0f;
|
||||
SDL_FRect viewport, menurect;
|
||||
SDL_Rect viewport;
|
||||
SDL_FRect menurect;
|
||||
|
||||
SDL_GetRenderViewport(renderer, &viewport);
|
||||
|
||||
@@ -237,8 +238,8 @@ static void loop(void)
|
||||
|
||||
menurect.x = 0.0f;
|
||||
menurect.y = y;
|
||||
menurect.w = viewport.w;
|
||||
menurect.h = viewport.h - y;
|
||||
menurect.w = (float)viewport.w;
|
||||
menurect.h = (float)viewport.h - y;
|
||||
draw_modes_menu(window, renderer, menurect);
|
||||
|
||||
SDL_Delay(16);
|
||||
|
||||
Reference in New Issue
Block a user