Removed non-float versions of SDL render API drawing functions

This simplifies the API and removes a level of API translation between the int variants of the functions and the float implementation

Fixes https://github.com/libsdl-org/SDL/issues/6656
This commit is contained in:
Sam Lantinga
2022-12-31 11:19:32 -08:00
parent bf76fc6b05
commit 9c1a9ecb4b
29 changed files with 465 additions and 1119 deletions
+22 -18
View File
@@ -472,24 +472,16 @@ to decide for you.
SDL_RenderWindowToLogical() and SDL_RenderLogicalToWindow() take floating point coordinates in both directions.
The following functions have been renamed:
* SDL_RenderCopy() => SDL_RenderTexture()
* SDL_RenderCopyEx() => SDL_RenderTextureRotated()
* SDL_RenderCopyExF() => SDL_RenderTextureRotatedFloat()
* SDL_RenderCopyF() => SDL_RenderTextureFloat()
* SDL_RenderDrawLine() => SDL_RenderLine()
* SDL_RenderDrawLineF() => SDL_RenderLineFloat()
* SDL_RenderDrawLines() => SDL_RenderLines()
* SDL_RenderDrawLinesF() => SDL_RenderLinesFloat()
* SDL_RenderDrawPoint() => SDL_RenderPoint()
* SDL_RenderDrawPointF() => SDL_RenderPointFloat()
* SDL_RenderDrawPoints() => SDL_RenderPoints()
* SDL_RenderDrawPointsF() => SDL_RenderPointsFloat()
* SDL_RenderDrawRect() => SDL_RenderRect()
* SDL_RenderDrawRectF() => SDL_RenderRectFloat()
* SDL_RenderDrawRects() => SDL_RenderRects()
* SDL_RenderDrawRectsF() => SDL_RenderRectsFloat()
* SDL_RenderFillRectF() => SDL_RenderFillRectFloat()
* SDL_RenderFillRectsF() => SDL_RenderFillRectsFloat()
* SDL_RenderCopyExF() => SDL_RenderTextureRotated()
* SDL_RenderCopyF() => SDL_RenderTexture()
* SDL_RenderDrawLineF() => SDL_RenderLine()
* SDL_RenderDrawLinesF() => SDL_RenderLines()
* SDL_RenderDrawPointF() => SDL_RenderPoint()
* SDL_RenderDrawPointsF() => SDL_RenderPoints()
* SDL_RenderDrawRectF() => SDL_RenderRect()
* SDL_RenderDrawRectsF() => SDL_RenderRects()
* SDL_RenderFillRectF() => SDL_RenderFillRect()
* SDL_RenderFillRectsF() => SDL_RenderFillRects()
* SDL_RenderGetClipRect() => SDL_GetRenderClipRect()
* SDL_RenderGetIntegerScale() => SDL_GetRenderIntegerScale()
* SDL_RenderGetLogicalSize() => SDL_GetRenderLogicalSize()
@@ -506,6 +498,18 @@ The following functions have been renamed:
* SDL_RenderSetVSync() => SDL_SetRenderVSync()
* SDL_RenderSetViewport() => SDL_SetRenderViewport()
The following functions have been removed:
* SDL_RenderCopy()
* SDL_RenderCopyEx()
* SDL_RenderDrawLine()
* SDL_RenderDrawLines()
* SDL_RenderDrawPoint()
* SDL_RenderDrawPoints()
* SDL_RenderDrawRect()
* SDL_RenderDrawRects()
* SDL_RenderFillRect()
* SDL_RenderFillRects()
## SDL_rwops.h
The following symbols have been renamed:
+20 -36
View File
@@ -276,24 +276,16 @@
#define SDL_UnionRect SDL_GetRectUnion
/* ##SDL_render.h */
#define SDL_RenderCopy SDL_RenderTexture
#define SDL_RenderCopyEx SDL_RenderTextureRotated
#define SDL_RenderCopyExF SDL_RenderTextureRotatedFloat
#define SDL_RenderCopyF SDL_RenderTextureFloat
#define SDL_RenderDrawLine SDL_RenderLine
#define SDL_RenderDrawLineF SDL_RenderLineFloat
#define SDL_RenderDrawLines SDL_RenderLines
#define SDL_RenderDrawLinesF SDL_RenderLinesFloat
#define SDL_RenderDrawPoint SDL_RenderPoint
#define SDL_RenderDrawPointF SDL_RenderPointFloat
#define SDL_RenderDrawPoints SDL_RenderPoints
#define SDL_RenderDrawPointsF SDL_RenderPointsFloat
#define SDL_RenderDrawRect SDL_RenderRect
#define SDL_RenderDrawRectF SDL_RenderRectFloat
#define SDL_RenderDrawRects SDL_RenderRects
#define SDL_RenderDrawRectsF SDL_RenderRectsFloat
#define SDL_RenderFillRectF SDL_RenderFillRectFloat
#define SDL_RenderFillRectsF SDL_RenderFillRectsFloat
#define SDL_RenderCopyExF SDL_RenderTextureRotated
#define SDL_RenderCopyF SDL_RenderTexture
#define SDL_RenderDrawLineF SDL_RenderLine
#define SDL_RenderDrawLinesF SDL_RenderLines
#define SDL_RenderDrawPointF SDL_RenderPoint
#define SDL_RenderDrawPointsF SDL_RenderPoints
#define SDL_RenderDrawRectF SDL_RenderRect
#define SDL_RenderDrawRectsF SDL_RenderRects
#define SDL_RenderFillRectF SDL_RenderFillRect
#define SDL_RenderFillRectsF SDL_RenderFillRects
#define SDL_RenderGetClipRect SDL_GetRenderClipRect
#define SDL_RenderGetIntegerScale SDL_GetRenderIntegerScale
#define SDL_RenderGetLogicalSize SDL_GetRenderLogicalSize
@@ -607,24 +599,16 @@
#define SDL_UnionRect SDL_UnionRect_renamed_SDL_GetRectUnion
/* ##SDL_render.h */
#define SDL_RenderCopy SDL_RenderCopy_renamed_SDL_RenderTexture
#define SDL_RenderCopyEx SDL_RenderCopyEx_renamed_SDL_RenderTextureRotated
#define SDL_RenderCopyExF SDL_RenderCopyExF_renamed_SDL_RenderTextureRotatedFloat
#define SDL_RenderCopyF SDL_RenderCopyF_renamed_SDL_RenderTextureFloat
#define SDL_RenderDrawLine SDL_RenderDrawLine_renamed_SDL_RenderLine
#define SDL_RenderDrawLineF SDL_RenderDrawLineF_renamed_SDL_RenderLineFloat
#define SDL_RenderDrawLines SDL_RenderDrawLines_renamed_SDL_RenderLines
#define SDL_RenderDrawLinesF SDL_RenderDrawLinesF_renamed_SDL_RenderLinesFloat
#define SDL_RenderDrawPoint SDL_RenderDrawPoint_renamed_SDL_RenderPoint
#define SDL_RenderDrawPointF SDL_RenderDrawPointF_renamed_SDL_RenderPointFloat
#define SDL_RenderDrawPoints SDL_RenderDrawPoints_renamed_SDL_RenderPoints
#define SDL_RenderDrawPointsF SDL_RenderDrawPointsF_renamed_SDL_RenderPointsFloat
#define SDL_RenderDrawRect SDL_RenderDrawRect_renamed_SDL_RenderRect
#define SDL_RenderDrawRectF SDL_RenderDrawRectF_renamed_SDL_RenderRectFloat
#define SDL_RenderDrawRects SDL_RenderDrawRects_renamed_SDL_RenderRects
#define SDL_RenderDrawRectsF SDL_RenderDrawRectsF_renamed_SDL_RenderRectsFloat
#define SDL_RenderFillRectF SDL_RenderFillRectF_renamed_SDL_RenderFillRectFloat
#define SDL_RenderFillRectsF SDL_RenderFillRectsF_renamed_SDL_RenderFillRectsFloat
#define SDL_RenderCopyExF SDL_RenderCopyExF_renamed_SDL_RenderTextureRotated
#define SDL_RenderCopyF SDL_RenderCopyF_renamed_SDL_RenderTexture
#define SDL_RenderDrawLineF SDL_RenderDrawLineF_renamed_SDL_RenderLine
#define SDL_RenderDrawLinesF SDL_RenderDrawLinesF_renamed_SDL_RenderLines
#define SDL_RenderDrawPointF SDL_RenderDrawPointF_renamed_SDL_RenderPoint
#define SDL_RenderDrawPointsF SDL_RenderDrawPointsF_renamed_SDL_RenderPoints
#define SDL_RenderDrawRectF SDL_RenderDrawRectF_renamed_SDL_RenderRect
#define SDL_RenderDrawRectsF SDL_RenderDrawRectsF_renamed_SDL_RenderRects
#define SDL_RenderFillRectF SDL_RenderFillRectF_renamed_SDL_RenderFillRect
#define SDL_RenderFillRectsF SDL_RenderFillRectsF_renamed_SDL_RenderFillRects
#define SDL_RenderGetClipRect SDL_RenderGetClipRect_renamed_SDL_GetRenderClipRect
#define SDL_RenderGetIntegerScale SDL_RenderGetIntegerScale_renamed_SDL_GetRenderIntegerScale
#define SDL_RenderGetLogicalSize SDL_RenderGetLogicalSize_renamed_SDL_GetRenderLogicalSize
+68 -422
View File
File diff suppressed because it is too large Load Diff
-10
View File
@@ -531,33 +531,23 @@ SDL3_0.0.0 {
SDL_RenderClear;
SDL_RenderClipEnabled;
SDL_RenderFillRect;
SDL_RenderFillRectFloat;
SDL_RenderFillRects;
SDL_RenderFillRectsFloat;
SDL_RenderFlush;
SDL_RenderGeometry;
SDL_RenderGeometryRaw;
SDL_RenderGetD3D12Device;
SDL_RenderLine;
SDL_RenderLineFloat;
SDL_RenderLines;
SDL_RenderLinesFloat;
SDL_RenderLogicalToWindow;
SDL_RenderPoint;
SDL_RenderPointFloat;
SDL_RenderPoints;
SDL_RenderPointsFloat;
SDL_RenderPresent;
SDL_RenderReadPixels;
SDL_RenderRect;
SDL_RenderRectFloat;
SDL_RenderRects;
SDL_RenderRectsFloat;
SDL_RenderTargetSupported;
SDL_RenderTexture;
SDL_RenderTextureFloat;
SDL_RenderTextureRotated;
SDL_RenderTextureRotatedFloat;
SDL_RenderWindowToLogical;
SDL_ReportAssertion;
SDL_ResetAssertionReport;
-10
View File
@@ -557,33 +557,23 @@
#define SDL_RenderClear SDL_RenderClear_REAL
#define SDL_RenderClipEnabled SDL_RenderClipEnabled_REAL
#define SDL_RenderFillRect SDL_RenderFillRect_REAL
#define SDL_RenderFillRectFloat SDL_RenderFillRectFloat_REAL
#define SDL_RenderFillRects SDL_RenderFillRects_REAL
#define SDL_RenderFillRectsFloat SDL_RenderFillRectsFloat_REAL
#define SDL_RenderFlush SDL_RenderFlush_REAL
#define SDL_RenderGeometry SDL_RenderGeometry_REAL
#define SDL_RenderGeometryRaw SDL_RenderGeometryRaw_REAL
#define SDL_RenderGetD3D12Device SDL_RenderGetD3D12Device_REAL
#define SDL_RenderLine SDL_RenderLine_REAL
#define SDL_RenderLineFloat SDL_RenderLineFloat_REAL
#define SDL_RenderLines SDL_RenderLines_REAL
#define SDL_RenderLinesFloat SDL_RenderLinesFloat_REAL
#define SDL_RenderLogicalToWindow SDL_RenderLogicalToWindow_REAL
#define SDL_RenderPoint SDL_RenderPoint_REAL
#define SDL_RenderPointFloat SDL_RenderPointFloat_REAL
#define SDL_RenderPoints SDL_RenderPoints_REAL
#define SDL_RenderPointsFloat SDL_RenderPointsFloat_REAL
#define SDL_RenderPresent SDL_RenderPresent_REAL
#define SDL_RenderReadPixels SDL_RenderReadPixels_REAL
#define SDL_RenderRect SDL_RenderRect_REAL
#define SDL_RenderRectFloat SDL_RenderRectFloat_REAL
#define SDL_RenderRects SDL_RenderRects_REAL
#define SDL_RenderRectsFloat SDL_RenderRectsFloat_REAL
#define SDL_RenderTargetSupported SDL_RenderTargetSupported_REAL
#define SDL_RenderTexture SDL_RenderTexture_REAL
#define SDL_RenderTextureFloat SDL_RenderTextureFloat_REAL
#define SDL_RenderTextureRotated SDL_RenderTextureRotated_REAL
#define SDL_RenderTextureRotatedFloat SDL_RenderTextureRotatedFloat_REAL
#define SDL_RenderWindowToLogical SDL_RenderWindowToLogical_REAL
#define SDL_ReportAssertion SDL_ReportAssertion_REAL
#define SDL_ResetAssertionReport SDL_ResetAssertionReport_REAL
+10 -20
View File
@@ -613,33 +613,23 @@ SDL_DYNAPI_PROC(Uint32,SDL_RegisterEvents,(int a),(a),return)
SDL_DYNAPI_PROC(SDL_bool,SDL_RemoveTimer,(SDL_TimerID a),(a),return)
SDL_DYNAPI_PROC(int,SDL_RenderClear,(SDL_Renderer *a),(a),return)
SDL_DYNAPI_PROC(SDL_bool,SDL_RenderClipEnabled,(SDL_Renderer *a),(a),return)
SDL_DYNAPI_PROC(int,SDL_RenderFillRect,(SDL_Renderer *a, const SDL_Rect *b),(a,b),return)
SDL_DYNAPI_PROC(int,SDL_RenderFillRectFloat,(SDL_Renderer *a, const SDL_FRect *b),(a,b),return)
SDL_DYNAPI_PROC(int,SDL_RenderFillRects,(SDL_Renderer *a, const SDL_Rect *b, int c),(a,b,c),return)
SDL_DYNAPI_PROC(int,SDL_RenderFillRectsFloat,(SDL_Renderer *a, const SDL_FRect *b, int c),(a,b,c),return)
SDL_DYNAPI_PROC(int,SDL_RenderFillRect,(SDL_Renderer *a, const SDL_FRect *b),(a,b),return)
SDL_DYNAPI_PROC(int,SDL_RenderFillRects,(SDL_Renderer *a, const SDL_FRect *b, int c),(a,b,c),return)
SDL_DYNAPI_PROC(int,SDL_RenderFlush,(SDL_Renderer *a),(a),return)
SDL_DYNAPI_PROC(int,SDL_RenderGeometry,(SDL_Renderer *a, SDL_Texture *b, const SDL_Vertex *c, int d, const int *e, int f),(a,b,c,d,e,f),return)
SDL_DYNAPI_PROC(int,SDL_RenderGeometryRaw,(SDL_Renderer *a, SDL_Texture *b, const float *c, int d, const SDL_Color *e, int f, const float *g, int h, int i, const void *j, int k, int l),(a,b,c,d,e,f,g,h,i,j,k,l),return)
SDL_DYNAPI_PROC(int,SDL_RenderLine,(SDL_Renderer *a, int b, int c, int d, int e),(a,b,c,d,e),return)
SDL_DYNAPI_PROC(int,SDL_RenderLineFloat,(SDL_Renderer *a, float b, float c, float d, float e),(a,b,c,d,e),return)
SDL_DYNAPI_PROC(int,SDL_RenderLines,(SDL_Renderer *a, const SDL_Point *b, int c),(a,b,c),return)
SDL_DYNAPI_PROC(int,SDL_RenderLinesFloat,(SDL_Renderer *a, const SDL_FPoint *b, int c),(a,b,c),return)
SDL_DYNAPI_PROC(int,SDL_RenderLine,(SDL_Renderer *a, float b, float c, float d, float e),(a,b,c,d,e),return)
SDL_DYNAPI_PROC(int,SDL_RenderLines,(SDL_Renderer *a, const SDL_FPoint *b, int c),(a,b,c),return)
SDL_DYNAPI_PROC(void,SDL_RenderLogicalToWindow,(SDL_Renderer *a, float b, float c, float *d, float *e),(a,b,c,d,e),)
SDL_DYNAPI_PROC(int,SDL_RenderPoint,(SDL_Renderer *a, int b, int c),(a,b,c),return)
SDL_DYNAPI_PROC(int,SDL_RenderPointFloat,(SDL_Renderer *a, float b, float c),(a,b,c),return)
SDL_DYNAPI_PROC(int,SDL_RenderPoints,(SDL_Renderer *a, const SDL_Point *b, int c),(a,b,c),return)
SDL_DYNAPI_PROC(int,SDL_RenderPointsFloat,(SDL_Renderer *a, const SDL_FPoint *b, int c),(a,b,c),return)
SDL_DYNAPI_PROC(int,SDL_RenderPoint,(SDL_Renderer *a, float b, float c),(a,b,c),return)
SDL_DYNAPI_PROC(int,SDL_RenderPoints,(SDL_Renderer *a, const SDL_FPoint *b, int c),(a,b,c),return)
SDL_DYNAPI_PROC(void,SDL_RenderPresent,(SDL_Renderer *a),(a),)
SDL_DYNAPI_PROC(int,SDL_RenderReadPixels,(SDL_Renderer *a, const SDL_Rect *b, Uint32 c, void *d, int e),(a,b,c,d,e),return)
SDL_DYNAPI_PROC(int,SDL_RenderRect,(SDL_Renderer *a, const SDL_Rect *b),(a,b),return)
SDL_DYNAPI_PROC(int,SDL_RenderRectFloat,(SDL_Renderer *a, const SDL_FRect *b),(a,b),return)
SDL_DYNAPI_PROC(int,SDL_RenderRects,(SDL_Renderer *a, const SDL_Rect *b, int c),(a,b,c),return)
SDL_DYNAPI_PROC(int,SDL_RenderRectsFloat,(SDL_Renderer *a, const SDL_FRect *b, int c),(a,b,c),return)
SDL_DYNAPI_PROC(int,SDL_RenderRect,(SDL_Renderer *a, const SDL_FRect *b),(a,b),return)
SDL_DYNAPI_PROC(int,SDL_RenderRects,(SDL_Renderer *a, const SDL_FRect *b, int c),(a,b,c),return)
SDL_DYNAPI_PROC(SDL_bool,SDL_RenderTargetSupported,(SDL_Renderer *a),(a),return)
SDL_DYNAPI_PROC(int,SDL_RenderTexture,(SDL_Renderer *a, SDL_Texture *b, const SDL_Rect *c, const SDL_Rect *d),(a,b,c,d),return)
SDL_DYNAPI_PROC(int,SDL_RenderTextureFloat,(SDL_Renderer *a, SDL_Texture *b, const SDL_Rect *c, const SDL_FRect *d),(a,b,c,d),return)
SDL_DYNAPI_PROC(int,SDL_RenderTextureRotated,(SDL_Renderer *a, SDL_Texture *b, const SDL_Rect *c, const SDL_Rect *d, const double e, const SDL_Point *f, const SDL_RendererFlip g),(a,b,c,d,e,f,g),return)
SDL_DYNAPI_PROC(int,SDL_RenderTextureRotatedFloat,(SDL_Renderer *a, SDL_Texture *b, const SDL_Rect *c, const SDL_FRect *d, const double e, const SDL_FPoint *f, const SDL_RendererFlip g),(a,b,c,d,e,f,g),return)
SDL_DYNAPI_PROC(int,SDL_RenderTexture,(SDL_Renderer *a, SDL_Texture *b, const SDL_Rect *c, const SDL_FRect *d),(a,b,c,d),return)
SDL_DYNAPI_PROC(int,SDL_RenderTextureRotated,(SDL_Renderer *a, SDL_Texture *b, const SDL_Rect *c, const SDL_FRect *d, const double e, const SDL_FPoint *f, const SDL_RendererFlip g),(a,b,c,d,e,f,g),return)
SDL_DYNAPI_PROC(void,SDL_RenderWindowToLogical,(SDL_Renderer *a, float b, float c, float *d, float *e),(a,b,c,d,e),)
SDL_DYNAPI_PROC(SDL_AssertState,SDL_ReportAssertion,(SDL_AssertData *a, const char *b, const char *c, int d),(a,b,c,d),return)
SDL_DYNAPI_PROC(void,SDL_ResetAssertionReport,(void),(),)
+32 -331
View File
File diff suppressed because it is too large Load Diff
+5 -5
View File
@@ -3132,7 +3132,7 @@ int SDLTest_DrawCharacter(SDL_Renderer *renderer, int x, int y, Uint32 c)
const Uint32 charHeight = FONT_CHARACTER_SIZE;
const Uint32 charSize = FONT_CHARACTER_SIZE;
SDL_Rect srect;
SDL_Rect drect;
SDL_FRect drect;
int result;
Uint32 ix, iy;
const unsigned char *charpos;
@@ -3155,10 +3155,10 @@ int SDLTest_DrawCharacter(SDL_Renderer *renderer, int x, int y, Uint32 c)
/*
* Setup destination rectangle
*/
drect.x = x;
drect.y = y;
drect.w = charWidth;
drect.h = charHeight;
drect.x = (float)x;
drect.y = (float)y;
drect.w = (float)charWidth;
drect.h = (float)charHeight;
/* Character index in cache */
ci = c;
+7 -4
View File
@@ -353,7 +353,8 @@ WatchJoystick(SDL_Joystick *joystick)
SDL_Texture *background_front, *background_back, *button, *axis, *marker = NULL;
const char *name = NULL;
SDL_Event event;
SDL_Rect dst;
SDL_FRect dst;
int texture_w, texture_h;
Uint8 alpha = 200, alpha_step = -1;
Uint64 alpha_ticks = 0;
SDL_JoystickID nJoystickID;
@@ -405,9 +406,11 @@ WatchJoystick(SDL_Joystick *joystick)
break;
}
dst.x = s_arrBindingDisplay[iElement].x;
dst.y = s_arrBindingDisplay[iElement].y;
SDL_QueryTexture(marker, NULL, NULL, &dst.w, &dst.h);
SDL_QueryTexture(marker, NULL, NULL, &texture_w, &texture_h);
dst.x = (float)s_arrBindingDisplay[iElement].x;
dst.y = (float)s_arrBindingDisplay[iElement].y;
dst.w = (float)texture_w;
dst.h = (float)texture_h;
if (SDL_GetTicks() >= (alpha_ticks + 5)) {
alpha_ticks = SDL_GetTicks();
+57 -57
View File
@@ -99,7 +99,7 @@ int render_testPrimitives(void *arg)
{
int ret;
int x, y;
SDL_Rect rect;
SDL_FRect rect;
SDL_Surface *referenceSurface = NULL;
int checkFailCount1;
int checkFailCount2;
@@ -111,10 +111,10 @@ int render_testPrimitives(void *arg)
SDLTest_AssertCheck(hasDrawColor(), "_hasDrawColor");
/* Draw a rectangle. */
rect.x = 40;
rect.y = 0;
rect.w = 40;
rect.h = 80;
rect.x = 40.0f;
rect.y = 0.0f;
rect.w = 40.0f;
rect.h = 80.0f;
ret = SDL_SetRenderDrawColor(renderer, 13, 73, 200, SDL_ALPHA_OPAQUE);
SDLTest_AssertCheck(ret == 0, "Validate result from SDL_SetRenderDrawColor, expected: 0, got: %i", ret);
@@ -123,10 +123,10 @@ int render_testPrimitives(void *arg)
SDLTest_AssertCheck(ret == 0, "Validate result from SDL_RenderFillRect, expected: 0, got: %i", ret);
/* Draw a rectangle. */
rect.x = 10;
rect.y = 10;
rect.w = 60;
rect.h = 40;
rect.x = 10.0f;
rect.y = 10.0f;
rect.w = 60.0f;
rect.h = 40.0f;
ret = SDL_SetRenderDrawColor(renderer, 200, 0, 100, SDL_ALPHA_OPAQUE);
SDLTest_AssertCheck(ret == 0, "Validate result from SDL_SetRenderDrawColor, expected: 0, got: %i", ret);
@@ -146,7 +146,7 @@ int render_testPrimitives(void *arg)
checkFailCount1++;
}
ret = SDL_RenderPoint(renderer, x, y);
ret = SDL_RenderPoint(renderer, (float)x, (float)y);
if (ret != 0) {
checkFailCount2++;
}
@@ -159,28 +159,28 @@ int render_testPrimitives(void *arg)
ret = SDL_SetRenderDrawColor(renderer, 0, 255, 0, SDL_ALPHA_OPAQUE);
SDLTest_AssertCheck(ret == 0, "Validate result from SDL_SetRenderDrawColor");
ret = SDL_RenderLine(renderer, 0, 30, TESTRENDER_SCREEN_W, 30);
ret = SDL_RenderLine(renderer, 0.0f, 30.0f, (float)TESTRENDER_SCREEN_W, 30.0f);
SDLTest_AssertCheck(ret == 0, "Validate result from SDL_RenderLine, expected: 0, got: %i", ret);
ret = SDL_SetRenderDrawColor(renderer, 55, 55, 5, SDL_ALPHA_OPAQUE);
SDLTest_AssertCheck(ret == 0, "Validate result from SDL_SetRenderDrawColor, expected: 0, got: %i", ret);
ret = SDL_RenderLine(renderer, 40, 30, 40, 60);
ret = SDL_RenderLine(renderer, 40.0f, 30.0f, 40.0f, 60.0f);
SDLTest_AssertCheck(ret == 0, "Validate result from SDL_RenderLine, expected: 0, got: %i", ret);
ret = SDL_SetRenderDrawColor(renderer, 5, 105, 105, SDL_ALPHA_OPAQUE);
SDLTest_AssertCheck(ret == 0, "Validate result from SDL_SetRenderDrawColor, expected: 0, got: %i", ret);
ret = SDL_RenderLine(renderer, 0, 0, 29, 29);
ret = SDL_RenderLine(renderer, 0.0f, 0.0f, 29.0f, 29.0f);
SDLTest_AssertCheck(ret == 0, "Validate result from SDL_RenderLine, expected: 0, got: %i", ret);
ret = SDL_RenderLine(renderer, 29, 30, 0, 59);
ret = SDL_RenderLine(renderer, 29.0f, 30.0f, 0.0f, 59.0f);
SDLTest_AssertCheck(ret == 0, "Validate result from SDL_RenderLine, expected: 0, got: %i", ret);
ret = SDL_RenderLine(renderer, 79, 0, 50, 29);
ret = SDL_RenderLine(renderer, 79.0f, 0.0f, 50.0f, 29.0f);
SDLTest_AssertCheck(ret == 0, "Validate result from SDL_RenderLine, expected: 0, got: %i", ret);
ret = SDL_RenderLine(renderer, 79, 59, 50, 30);
ret = SDL_RenderLine(renderer, 79.0f, 59.0f, 50.0f, 30.0f);
SDLTest_AssertCheck(ret == 0, "Validate result from SDL_RenderLine, expected: 0, got: %i", ret);
/* See if it's the same. */
@@ -209,7 +209,7 @@ int render_testPrimitivesBlend(void *arg)
{
int ret;
int i, j;
SDL_Rect rect;
SDL_FRect rect;
SDL_Surface *referenceSurface = NULL;
int checkFailCount1;
int checkFailCount2;
@@ -232,10 +232,10 @@ int render_testPrimitivesBlend(void *arg)
ret = SDL_RenderFillRect(renderer, NULL);
SDLTest_AssertCheck(ret == 0, "Validate result from SDL_RenderFillRect, expected: 0, got: %i", ret);
rect.x = 10;
rect.y = 25;
rect.w = 40;
rect.h = 25;
rect.x = 10.0f;
rect.y = 25.0f;
rect.w = 40.0f;
rect.h = 25.0f;
ret = SDL_SetRenderDrawColor(renderer, 240, 10, 10, 75);
SDLTest_AssertCheck(ret == 0, "Validate result from SDL_SetRenderDrawColor, expected: 0, got: %i", ret);
@@ -245,10 +245,10 @@ int render_testPrimitivesBlend(void *arg)
ret = SDL_RenderFillRect(renderer, &rect);
SDLTest_AssertCheck(ret == 0, "Validate result from SDL_RenderFillRect, expected: 0, got: %i", ret);
rect.x = 30;
rect.y = 40;
rect.w = 45;
rect.h = 15;
rect.x = 30.0f;
rect.y = 40.0f;
rect.w = 45.0f;
rect.h = 15.0f;
ret = SDL_SetRenderDrawColor(renderer, 10, 240, 10, 100);
SDLTest_AssertCheck(ret == 0, "Validate result from SDL_SetRenderDrawColor, expected: 0, got: %i", ret);
@@ -258,10 +258,10 @@ int render_testPrimitivesBlend(void *arg)
ret = SDL_RenderFillRect(renderer, &rect);
SDLTest_AssertCheck(ret == 0, "Validate result from SDL_RenderFillRect, expected: 0, got: %i", ret);
rect.x = 25;
rect.y = 25;
rect.w = 25;
rect.h = 25;
rect.x = 25.0f;
rect.y = 25.0f;
rect.w = 25.0f;
rect.h = 25.0f;
ret = SDL_SetRenderDrawColor(renderer, 10, 10, 240, 125);
SDLTest_AssertCheck(ret == 0, "Validate result from SDL_SetRenderDrawColor, expected: 0, got: %i", ret);
@@ -287,7 +287,7 @@ int render_testPrimitivesBlend(void *arg)
checkFailCount2++;
}
ret = SDL_RenderLine(renderer, 0, 0, i, 59);
ret = SDL_RenderLine(renderer, 0.0f, 0.0f, (float)i, 59.0f);
if (ret != 0) {
checkFailCount3++;
}
@@ -311,7 +311,7 @@ int render_testPrimitivesBlend(void *arg)
checkFailCount2++;
}
ret = SDL_RenderLine(renderer, 0, 0, 79, i);
ret = SDL_RenderLine(renderer, 0.0f, 0.0f, 79.0f, (float)i);
if (ret != 0) {
checkFailCount3++;
}
@@ -337,7 +337,7 @@ int render_testPrimitivesBlend(void *arg)
checkFailCount2++;
}
ret = SDL_RenderPoint(renderer, i, j);
ret = SDL_RenderPoint(renderer, (float)i, (float)j);
if (ret != 0) {
checkFailCount3++;
}
@@ -371,7 +371,7 @@ int render_testPrimitivesBlend(void *arg)
int render_testBlit(void *arg)
{
int ret;
SDL_Rect rect;
SDL_FRect rect;
SDL_Texture *tface;
SDL_Surface *referenceSurface = NULL;
Uint32 tformat;
@@ -395,8 +395,8 @@ int render_testBlit(void *arg)
/* Constant values. */
ret = SDL_QueryTexture(tface, &tformat, &taccess, &tw, &th);
SDLTest_AssertCheck(ret == 0, "Verify result from SDL_QueryTexture, expected 0, got %i", ret);
rect.w = tw;
rect.h = th;
rect.w = (float)tw;
rect.h = (float)th;
ni = TESTRENDER_SCREEN_W - tw;
nj = TESTRENDER_SCREEN_H - th;
@@ -405,8 +405,8 @@ int render_testBlit(void *arg)
for (j = 0; j <= nj; j += 4) {
for (i = 0; i <= ni; i += 4) {
/* 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) {
checkFailCount1++;
@@ -441,7 +441,7 @@ int render_testBlit(void *arg)
int render_testBlitColor(void *arg)
{
int ret;
SDL_Rect rect;
SDL_FRect rect;
SDL_Texture *tface;
SDL_Surface *referenceSurface = NULL;
Uint32 tformat;
@@ -463,8 +463,8 @@ int render_testBlitColor(void *arg)
/* Constant values. */
ret = SDL_QueryTexture(tface, &tformat, &taccess, &tw, &th);
SDLTest_AssertCheck(ret == 0, "Verify result from SDL_QueryTexture, expected 0, got %i", ret);
rect.w = tw;
rect.h = th;
rect.w = (float)tw;
rect.h = (float)th;
ni = TESTRENDER_SCREEN_W - tw;
nj = TESTRENDER_SCREEN_H - th;
@@ -480,8 +480,8 @@ 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++;
@@ -517,7 +517,7 @@ int render_testBlitColor(void *arg)
int render_testBlitAlpha(void *arg)
{
int ret;
SDL_Rect rect;
SDL_FRect rect;
SDL_Texture *tface;
SDL_Surface *referenceSurface = NULL;
Uint32 tformat;
@@ -542,8 +542,8 @@ int render_testBlitAlpha(void *arg)
/* Constant values. */
ret = SDL_QueryTexture(tface, &tformat, &taccess, &tw, &th);
SDLTest_AssertCheck(ret == 0, "Verify result from SDL_QueryTexture, expected 0, got %i", ret);
rect.w = tw;
rect.h = th;
rect.w = (float)tw;
rect.h = (float)th;
ni = TESTRENDER_SCREEN_W - tw;
nj = TESTRENDER_SCREEN_H - th;
@@ -559,8 +559,8 @@ int render_testBlitAlpha(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++;
@@ -601,7 +601,7 @@ testBlitBlendMode(SDL_Texture *tface, int mode)
Uint32 tformat;
int taccess, tw, th;
int i, j, ni, nj;
SDL_Rect rect;
SDL_FRect rect;
int checkFailCount1;
int checkFailCount2;
@@ -611,8 +611,8 @@ testBlitBlendMode(SDL_Texture *tface, int mode)
/* Constant values. */
ret = SDL_QueryTexture(tface, &tformat, &taccess, &tw, &th);
SDLTest_AssertCheck(ret == 0, "Verify result from SDL_QueryTexture, expected 0, got %i", ret);
rect.w = tw;
rect.h = th;
rect.w = (float)tw;
rect.h = (float)th;
ni = TESTRENDER_SCREEN_W - tw;
nj = TESTRENDER_SCREEN_H - th;
@@ -628,8 +628,8 @@ testBlitBlendMode(SDL_Texture *tface, int mode)
}
/* 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++;
@@ -652,7 +652,7 @@ testBlitBlendMode(SDL_Texture *tface, int mode)
int render_testBlitBlend(void *arg)
{
int ret;
SDL_Rect rect;
SDL_FRect rect;
SDL_Texture *tface;
SDL_Surface *referenceSurface = NULL;
Uint32 tformat;
@@ -678,8 +678,8 @@ int render_testBlitBlend(void *arg)
/* Constant values. */
ret = SDL_QueryTexture(tface, &tformat, &taccess, &tw, &th);
SDLTest_AssertCheck(ret == 0, "Verify result from SDL_QueryTexture, expected 0, got %i", ret);
rect.w = tw;
rect.h = th;
rect.w = (float)tw;
rect.h = (float)th;
ni = TESTRENDER_SCREEN_W - tw;
nj = TESTRENDER_SCREEN_H - th;
@@ -771,8 +771,8 @@ 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++;
+17 -17
View File
@@ -41,7 +41,7 @@ int done;
void DrawPoints(SDL_Renderer *renderer)
{
int i;
int x, y;
float x, y;
SDL_Rect viewport;
/* Query the sizes */
@@ -74,8 +74,8 @@ void DrawPoints(SDL_Renderer *renderer)
SDL_SetRenderDrawColor(renderer, 255, (Uint8)current_color,
(Uint8)current_color, (Uint8)current_alpha);
x = rand() % viewport.w;
y = rand() % viewport.h;
x = (float)(rand() % viewport.w);
y = (float)(rand() % viewport.h);
SDL_RenderPoint(renderer, x, y);
}
}
@@ -83,7 +83,7 @@ void DrawPoints(SDL_Renderer *renderer)
void DrawLines(SDL_Renderer *renderer)
{
int i;
int x1, y1, x2, y2;
float x1, y1, x2, y2;
SDL_Rect viewport;
/* Query the sizes */
@@ -117,15 +117,15 @@ void DrawLines(SDL_Renderer *renderer)
(Uint8)current_color, (Uint8)current_alpha);
if (i == 0) {
SDL_RenderLine(renderer, 0, 0, viewport.w - 1, viewport.h - 1);
SDL_RenderLine(renderer, 0, viewport.h - 1, viewport.w - 1, 0);
SDL_RenderLine(renderer, 0, viewport.h / 2, viewport.w - 1, viewport.h / 2);
SDL_RenderLine(renderer, viewport.w / 2, 0, 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() % (viewport.w * 2)) - viewport.w;
x2 = (rand() % (viewport.w * 2)) - viewport.w;
y1 = (rand() % (viewport.h * 2)) - viewport.h;
y2 = (rand() % (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);
}
}
@@ -134,7 +134,7 @@ void DrawLines(SDL_Renderer *renderer)
void DrawRects(SDL_Renderer *renderer)
{
int i;
SDL_Rect rect;
SDL_FRect rect;
SDL_Rect viewport;
/* Query the sizes */
@@ -167,10 +167,10 @@ void DrawRects(SDL_Renderer *renderer)
SDL_SetRenderDrawColor(renderer, 255, (Uint8)current_color,
(Uint8)current_color, (Uint8)current_alpha);
rect.w = rand() % (viewport.h / 2);
rect.h = rand() % (viewport.h / 2);
rect.x = (rand() % (viewport.w * 2) - viewport.w) - (rect.w / 2);
rect.y = (rand() % (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);
}
}
+6 -5
View File
@@ -29,7 +29,8 @@ int done;
void DrawChessBoard()
{
int row = 0, column = 0, x = 0;
SDL_Rect rect, darea;
SDL_FRect rect;
SDL_Rect darea;
/* Get the Size of drawing surface */
SDL_GetRenderViewport(renderer, &darea);
@@ -40,10 +41,10 @@ void DrawChessBoard()
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);
}
+15 -15
View File
@@ -687,11 +687,11 @@ void loop(void *arg)
if (SDL_GetGamepadButton(gamepad, (SDL_GamepadButton)i) == SDL_PRESSED) {
SDL_bool on_front = (i < SDL_GAMEPAD_BUTTON_PADDLE1 || i > SDL_GAMEPAD_BUTTON_PADDLE4);
if (on_front == showing_front) {
SDL_Rect dst;
dst.x = button_positions[i].x;
dst.y = button_positions[i].y;
dst.w = BUTTON_SIZE;
dst.h = BUTTON_SIZE;
SDL_FRect dst;
dst.x = (float)button_positions[i].x;
dst.y = (float)button_positions[i].y;
dst.w = (float)BUTTON_SIZE;
dst.h = (float)BUTTON_SIZE;
SDL_RenderTextureRotated(screen, button_texture, NULL, &dst, 0, NULL, SDL_FLIP_NONE);
}
}
@@ -703,19 +703,19 @@ void loop(void *arg)
const Sint16 value = SDL_GetGamepadAxis(gamepad, (SDL_GamepadAxis)(i));
if (value < -deadzone) {
const double angle = axis_positions[i].angle;
SDL_Rect dst;
dst.x = axis_positions[i].x;
dst.y = axis_positions[i].y;
dst.w = AXIS_SIZE;
dst.h = AXIS_SIZE;
SDL_FRect dst;
dst.x = (float)axis_positions[i].x;
dst.y = (float)axis_positions[i].y;
dst.w = (float)AXIS_SIZE;
dst.h = (float)AXIS_SIZE;
SDL_RenderTextureRotated(screen, axis_texture, NULL, &dst, angle, NULL, SDL_FLIP_NONE);
} else if (value > deadzone) {
const double angle = axis_positions[i].angle + 180.0;
SDL_Rect dst;
dst.x = axis_positions[i].x;
dst.y = axis_positions[i].y;
dst.w = AXIS_SIZE;
dst.h = AXIS_SIZE;
SDL_FRect dst;
dst.x = (float)axis_positions[i].x;
dst.y = (float)axis_positions[i].y;
dst.w = (float)AXIS_SIZE;
dst.h = (float)AXIS_SIZE;
SDL_RenderTextureRotated(screen, axis_texture, NULL, &dst, angle, NULL, SDL_FLIP_NONE);
}
}
+6 -1
View File
@@ -21,6 +21,11 @@ const SDL_Rect drag_areas[] = {
{ 200, 70, 100, 100 },
{ 400, 90, 100, 100 }
};
const SDL_FRect render_areas[] = {
{ 20.0f, 20.0f, 100.0f, 100.0f },
{ 200.0f, 70.0f, 100.0f, 100.0f },
{ 400.0f, 90.0f, 100.0f, 100.0f }
};
static const SDL_Rect *areas = drag_areas;
static int numareas = SDL_arraysize(drag_areas);
@@ -92,7 +97,7 @@ int main(int argc, char **argv)
SDL_SetRenderDrawColor(renderer, 0, 0, 127, 255);
SDL_RenderClear(renderer);
SDL_SetRenderDrawColor(renderer, 255, 0, 0, 255);
SDL_RenderFillRects(renderer, areas, SDL_arraysize(drag_areas));
SDL_RenderFillRects(renderer, render_areas, SDL_arraysize(render_areas));
SDL_RenderPresent(renderer);
while (SDL_PollEvent(&e)) {
+18 -10
View File
@@ -41,7 +41,7 @@
#define MAX_TEXT_LENGTH 256
static SDLTest_CommonState *state;
static SDL_Rect textRect, markedRect;
static SDL_FRect textRect, markedRect;
static SDL_Color lineColor = { 0, 0, 0, 255 };
static SDL_Color backColor = { 255, 255, 255, 255 };
static SDL_Color textColor = { 0, 0, 0, 255 };
@@ -326,7 +326,7 @@ static int unifont_load_texture(Uint32 textureID)
return 0;
}
static Sint32 unifont_draw_glyph(Uint32 codepoint, int rendererID, SDL_Rect *dstrect)
static Sint32 unifont_draw_glyph(Uint32 codepoint, int rendererID, SDL_FRect *dst)
{
SDL_Texture *texture;
const Uint32 textureID = codepoint / UNIFONT_GLYPHS_IN_TEXTURE;
@@ -345,7 +345,7 @@ static Sint32 unifont_draw_glyph(Uint32 codepoint, int rendererID, SDL_Rect *dst
const Uint32 cInTex = codepoint % UNIFONT_GLYPHS_IN_TEXTURE;
srcrect.x = cInTex % UNIFONT_GLYPHS_IN_ROW * 16;
srcrect.y = cInTex / UNIFONT_GLYPHS_IN_ROW * 16;
SDL_RenderTexture(state->renderers[rendererID], texture, &srcrect, dstrect);
SDL_RenderTexture(state->renderers[rendererID], texture, &srcrect, dst);
}
return unifontGlyph[codepoint].width;
}
@@ -453,9 +453,9 @@ static void usage(void)
static void InitInput(void)
{
/* Prepare a rect for text input */
textRect.x = textRect.y = 100;
textRect.x = textRect.y = 100.0f;
textRect.w = DEFAULT_WINDOW_WIDTH - 2 * textRect.x;
textRect.h = 50;
textRect.h = 50.0f;
text[0] = 0;
markedRect = textRect;
@@ -478,8 +478,8 @@ static void CleanupVideo(void)
static void _Redraw(int rendererID)
{
SDL_Renderer *renderer = state->renderers[rendererID];
SDL_Rect drawnTextRect, cursorRect, underlineRect;
drawnTextRect = textRect;
SDL_FRect drawnTextRect, cursorRect, underlineRect;
drawnTextRect.x = textRect.x;
drawnTextRect.w = 0;
SDL_SetRenderDrawColor(renderer, backColor.r, backColor.g, backColor.b, backColor.a);
@@ -504,7 +504,7 @@ static void _Redraw(int rendererID)
char *utext = text;
Uint32 codepoint;
size_t len;
SDL_Rect dstrect;
SDL_FRect dstrect;
dstrect.x = textRect.x;
dstrect.y = textRect.y + (textRect.h - 16 * UNIFONT_DRAW_SCALE) / 2;
@@ -576,7 +576,7 @@ static void _Redraw(int rendererID)
char *utext = markedText;
Uint32 codepoint;
size_t len;
SDL_Rect dstrect;
SDL_FRect dstrect;
dstrect.x = drawnTextRect.x;
dstrect.y = textRect.y + (textRect.h - 16 * UNIFONT_DRAW_SCALE) / 2;
@@ -614,7 +614,15 @@ static void _Redraw(int rendererID)
SDL_SetRenderDrawColor(renderer, lineColor.r, lineColor.g, lineColor.b, lineColor.a);
SDL_RenderFillRect(renderer, &cursorRect);
SDL_SetTextInputRect(&markedRect);
{
SDL_Rect inputrect;
inputrect.x = (int)markedRect.x;
inputrect.y = (int)markedRect.y;
inputrect.w = (int)markedRect.w;
inputrect.h = (int)markedRect.h;
SDL_SetTextInputRect(&inputrect);
}
}
static void Redraw(void)
+11 -11
View File
@@ -45,7 +45,7 @@ int done;
void DrawPoints(SDL_Renderer *renderer)
{
int i;
int x, y;
float x, y;
SDL_Rect viewport;
/* Query the sizes */
@@ -78,8 +78,8 @@ void DrawPoints(SDL_Renderer *renderer)
SDL_SetRenderDrawColor(renderer, 255, (Uint8)current_color,
(Uint8)current_color, (Uint8)current_alpha);
x = rand() % viewport.w;
y = rand() % viewport.h;
x = (float)(rand() % viewport.w);
y = (float)(rand() % viewport.h);
SDL_RenderPoint(renderer, x, y);
}
}
@@ -118,12 +118,12 @@ void DrawLines(SDL_Renderer *renderer)
for (i = 0; i < num_lines; ++i) {
if (i == -1) {
SDL_RenderLine(renderer, 0, 0, viewport.w - 1, viewport.h - 1);
SDL_RenderLine(renderer, 0, viewport.h - 1, viewport.w - 1, 0);
SDL_RenderLine(renderer, 0, viewport.h / 2, viewport.w - 1, viewport.h / 2);
SDL_RenderLine(renderer, viewport.w / 2, 0, 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_RenderLineFloat(renderer, lines[i].x, lines[i].y, lines[i].w, lines[i].h);
SDL_RenderLine(renderer, lines[i].x, lines[i].y, lines[i].w, lines[i].h);
}
}
}
@@ -163,7 +163,7 @@ static void
DrawRects(SDL_Renderer *renderer)
{
SDL_SetRenderDrawColor(renderer, 255, 127, 0, 255);
SDL_RenderFillRectsFloat(renderer, rects, num_rects);
SDL_RenderFillRects(renderer, rects, num_rects);
}
static void
@@ -185,7 +185,7 @@ DrawRectLineIntersections(SDL_Renderer *renderer)
y2 = lines[j].h;
if (SDL_GetRectAndLineIntersectionFloat(&r, &x1, &y1, &x2, &y2)) {
SDL_RenderLineFloat(renderer, x1, y1, x2, y2);
SDL_RenderLine(renderer, x1, y1, x2, y2);
}
}
}
@@ -202,7 +202,7 @@ DrawRectRectIntersections(SDL_Renderer *renderer)
for (j = i + 1; j < num_rects; j++) {
SDL_FRect r;
if (SDL_GetRectIntersectionFloat(&rects[i], &rects[j], &r)) {
SDL_RenderFillRectFloat(renderer, &r);
SDL_RenderFillRect(renderer, &r);
}
}
}
+5 -5
View File
@@ -91,11 +91,11 @@ PrintJoystick(SDL_Joystick *joy)
static void
DrawRect(SDL_Renderer *r, const int x, const int y, const int w, const int h)
{
SDL_Rect area;
area.x = x;
area.y = y;
area.w = w;
area.h = h;
SDL_FRect area;
area.x = (float)x;
area.y = (float)y;
area.w = (float)w;
area.h = (float)h;
SDL_RenderFillRect(r, &area);
}
+4 -4
View File
@@ -74,9 +74,9 @@ void DrawObject(SDL_Renderer *renderer, Object *object)
rect.h = object->y2 - object->y1;
}
SDL_RenderFillRectFloat(renderer, &rect);
SDL_RenderFillRect(renderer, &rect);
} else {
SDL_RenderLineFloat(renderer, object->x1, object->y1, object->x2, object->y2);
SDL_RenderLine(renderer, object->x1, object->y1, object->x2, object->y2);
}
}
@@ -226,10 +226,10 @@ void loop(void *arg)
/* Mouse wheel */
SDL_SetRenderDrawColor(renderer, 0, 255, 128, 255);
if (wheel_x_active) {
SDL_RenderLineFloat(renderer, wheel_x, 0.0f, wheel_x, (float)SCREEN_HEIGHT);
SDL_RenderLine(renderer, wheel_x, 0.0f, wheel_x, (float)SCREEN_HEIGHT);
}
if (wheel_y_active) {
SDL_RenderLineFloat(renderer, 0.0f, wheel_y, (float)SCREEN_WIDTH, wheel_y);
SDL_RenderLine(renderer, 0.0f, wheel_y, (float)SCREEN_WIDTH, wheel_y);
}
/* Objects from mouse clicks */
+12 -12
View File
@@ -38,7 +38,7 @@ static NativeWindowFactory *factories[] = {
};
static NativeWindowFactory *factory = NULL;
static void *native_window;
static SDL_Rect *positions, *velocities;
static SDL_FRect *positions, *velocities;
/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */
static void
@@ -56,7 +56,7 @@ void MoveSprites(SDL_Renderer *renderer, SDL_Texture *sprite)
int sprite_w, sprite_h;
int i;
SDL_Rect viewport;
SDL_Rect *position, *velocity;
SDL_FRect *position, *velocity;
/* Query the sizes */
SDL_GetRenderViewport(renderer, &viewport);
@@ -154,23 +154,23 @@ int main(int argc, char *argv[])
/* Allocate memory for the sprite info */
SDL_GetWindowSize(window, &window_w, &window_h);
SDL_QueryTexture(sprite, NULL, NULL, &sprite_w, &sprite_h);
positions = (SDL_Rect *)SDL_malloc(NUM_SPRITES * sizeof(SDL_Rect));
velocities = (SDL_Rect *)SDL_malloc(NUM_SPRITES * sizeof(SDL_Rect));
positions = (SDL_FRect *)SDL_malloc(NUM_SPRITES * sizeof(*positions));
velocities = (SDL_FRect *)SDL_malloc(NUM_SPRITES * sizeof(*velocities));
if (positions == NULL || velocities == NULL) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Out of memory!\n");
quit(2);
}
srand((unsigned int)time(NULL));
for (i = 0; i < NUM_SPRITES; ++i) {
positions[i].x = rand() % (window_w - sprite_w);
positions[i].y = rand() % (window_h - sprite_h);
positions[i].w = sprite_w;
positions[i].h = sprite_h;
velocities[i].x = 0;
velocities[i].y = 0;
positions[i].x = (float)(rand() % (window_w - sprite_w));
positions[i].y = (float)(rand() % (window_h - sprite_h));
positions[i].w = (float)sprite_w;
positions[i].h = (float)sprite_h;
velocities[i].x = 0.0f;
velocities[i].y = 0.0f;
while (!velocities[i].x && !velocities[i].y) {
velocities[i].x = (rand() % (MAX_SPEED * 2 + 1)) - MAX_SPEED;
velocities[i].y = (rand() % (MAX_SPEED * 2 + 1)) - MAX_SPEED;
velocities[i].x = (float)((rand() % (MAX_SPEED * 2 + 1)) - MAX_SPEED);
velocities[i].y = (float)((rand() % (MAX_SPEED * 2 + 1)) - MAX_SPEED);
}
}
+6 -6
View File
@@ -33,18 +33,18 @@ static unsigned int max_frames = 200;
void draw()
{
SDL_Rect Rect;
SDL_FRect rect;
SDL_SetRenderDrawColor(renderer, 0x10, 0x9A, 0xCE, 0xFF);
SDL_RenderClear(renderer);
/* Grow based on the frame just to show a difference per frame of the region */
Rect.x = 0;
Rect.y = 0;
Rect.w = (frame_number * 2) % width;
Rect.h = (frame_number * 2) % height;
rect.x = 0.0f;
rect.y = 0.0f;
rect.w = (float)((frame_number * 2) % width);
rect.h = (float)((frame_number * 2) % height);
SDL_SetRenderDrawColor(renderer, 0xFF, 0x10, 0x21, 0xFF);
SDL_RenderFillRect(renderer, &Rect);
SDL_RenderFillRect(renderer, &rect);
SDL_RenderPresent(renderer);
}
+2 -2
View File
@@ -192,7 +192,7 @@ void MoveSprites(SDL_Renderer *renderer)
SDL_UpdateTexture(MooseTexture, NULL, MooseYUVSurfaces[i]->pixels, MooseYUVSurfaces[i]->pitch);
}
SDL_RenderClear(renderer);
SDL_RenderTextureFloat(renderer, MooseTexture, NULL, &displayrect);
SDL_RenderTexture(renderer, MooseTexture, NULL, &displayrect);
SDL_RenderPresent(renderer);
} else {
SDL_Texture *tmp;
@@ -209,7 +209,7 @@ void MoveSprites(SDL_Renderer *renderer)
}
SDL_RenderClear(renderer);
SDL_RenderTextureFloat(renderer, tmp, NULL, &displayrect);
SDL_RenderTexture(renderer, tmp, NULL, &displayrect);
SDL_RenderPresent(renderer);
SDL_DestroyTexture(tmp);
}
+3 -3
View File
@@ -25,15 +25,15 @@
static SDLTest_CommonState *state;
static int i, done;
static float mouseX, mouseY;
static SDL_Rect rect;
static SDL_FRect rect;
static SDL_Event event;
static void
DrawRects(SDL_Renderer *renderer)
{
SDL_SetRenderDrawColor(renderer, 255, 0, 0, 255);
rect.x = (int)mouseX;
rect.y = (int)mouseY;
rect.x = mouseX;
rect.y = mouseY;
SDL_RenderFillRect(renderer, &rect);
}
+9 -7
View File
@@ -29,7 +29,7 @@ typedef struct
SDL_Renderer *renderer;
SDL_Texture *background;
SDL_Texture *sprite;
SDL_Rect sprite_rect;
SDL_FRect sprite_rect;
int scale_direction;
} DrawState;
@@ -48,8 +48,8 @@ void Draw(DrawState *s)
{
SDL_Rect viewport;
SDL_Texture *target;
SDL_Point *center = NULL;
SDL_Point origin = { 0, 0 };
SDL_FPoint *center = NULL;
SDL_FPoint origin = { 0.0f, 0.0f };
SDL_GetRenderViewport(s->renderer, &viewport);
@@ -72,8 +72,8 @@ 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_RendererFlip)s->scale_direction);
@@ -132,6 +132,7 @@ 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];
int w, h;
drawstate->window = state->windows[i];
drawstate->renderer = state->renderers[i];
@@ -140,8 +141,9 @@ int main(int argc, char *argv[])
if (!drawstate->sprite || !drawstate->background) {
quit(2);
}
SDL_QueryTexture(drawstate->sprite, NULL, NULL,
&drawstate->sprite_rect.w, &drawstate->sprite_rect.h);
SDL_QueryTexture(drawstate->sprite, NULL, NULL, &w, &h);
drawstate->sprite_rect.w = (float)w;
drawstate->sprite_rect.h = (float)h;
drawstate->scale_direction = 1;
}
+15 -12
View File
@@ -29,7 +29,7 @@ typedef struct
SDL_Renderer *renderer;
SDL_Texture *background;
SDL_Texture *sprite;
SDL_Rect sprite_rect;
SDL_FRect sprite_rect;
int scale_direction;
} DrawState;
@@ -48,7 +48,8 @@ quit(int rc)
SDL_bool
DrawComposite(DrawState *s)
{
SDL_Rect viewport, R;
SDL_Rect viewport;
SDL_FRect R;
SDL_Texture *target;
static SDL_bool blend_tested = SDL_FALSE;
@@ -103,8 +104,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);
@@ -113,10 +114,10 @@ DrawComposite(DrawState *s)
SDL_SetRenderDrawBlendMode(s->renderer, SDL_BLENDMODE_BLEND);
SDL_SetRenderDrawColor(s->renderer, 0xff, 0x00, 0x00, 0x80);
R.x = 0;
R.y = 0;
R.w = 100;
R.h = 100;
R.x = 0.0f;
R.y = 0.0f;
R.w = 100.0f;
R.h = 100.0f;
SDL_RenderFillRect(s->renderer, &R);
SDL_SetRenderDrawBlendMode(s->renderer, SDL_BLENDMODE_NONE);
@@ -158,8 +159,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);
@@ -241,6 +242,7 @@ 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];
int w, h;
drawstate->window = state->windows[i];
drawstate->renderer = state->renderers[i];
@@ -253,8 +255,9 @@ int main(int argc, char *argv[])
if (!drawstate->sprite || !drawstate->background) {
quit(2);
}
SDL_QueryTexture(drawstate->sprite, NULL, NULL,
&drawstate->sprite_rect.w, &drawstate->sprite_rect.h);
SDL_QueryTexture(drawstate->sprite, NULL, NULL, &w, &h);
drawstate->sprite_rect.w = (float)w;
drawstate->sprite_rect.h = (float)h;
drawstate->scale_direction = 1;
}
+7 -5
View File
@@ -32,7 +32,7 @@ typedef struct
SDL_Renderer *renderer;
SDL_Texture *background;
SDL_Texture *sprite;
SDL_Rect sprite_rect;
SDL_FRect sprite_rect;
int scale_direction;
} DrawState;
@@ -68,8 +68,8 @@ 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);
@@ -122,6 +122,7 @@ 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];
int w, h;
drawstate->window = state->windows[i];
drawstate->renderer = state->renderers[i];
@@ -130,8 +131,9 @@ int main(int argc, char *argv[])
if (!drawstate->sprite || !drawstate->background) {
quit(2);
}
SDL_QueryTexture(drawstate->sprite, NULL, NULL,
&drawstate->sprite_rect.w, &drawstate->sprite_rect.h);
SDL_QueryTexture(drawstate->sprite, NULL, NULL, &w, &h);
drawstate->sprite_rect.w = (float)w;
drawstate->sprite_rect.h = (float)h;
drawstate->scale_direction = 1;
}
+7 -1
View File
@@ -28,12 +28,18 @@ typedef struct LoadedPicture
void render(SDL_Renderer *renderer, SDL_Texture *texture, SDL_Rect texture_dimensions)
{
SDL_FRect dst;
/* Clear render-target to blue. */
SDL_SetRenderDrawColor(renderer, 0x00, 0x00, 0xff, 0xff);
SDL_RenderClear(renderer);
/* Render the texture. */
SDL_RenderTexture(renderer, texture, &texture_dimensions, &texture_dimensions);
dst.x = (float)texture_dimensions.x;
dst.y = (float)texture_dimensions.y;
dst.w = (float)texture_dimensions.w;
dst.h = (float)texture_dimensions.h;
SDL_RenderTexture(renderer, texture, &texture_dimensions, &dst);
SDL_RenderPresent(renderer);
}
+58 -55
View File
@@ -34,9 +34,9 @@ static SDL_bool cycle_alpha;
static int cycle_direction = 1;
static int current_alpha = 0;
static int current_color = 0;
static SDL_Rect *positions;
static SDL_Rect *velocities;
static int sprite_w, sprite_h;
static SDL_FRect *positions;
static SDL_FRect *velocities;
static float sprite_w, sprite_h;
static SDL_BlendMode blendMode = SDL_BLENDMODE_BLEND;
static Uint64 next_fps_check;
static Uint32 frames;
@@ -67,11 +67,13 @@ quit(int rc)
int LoadSprite(const char *file)
{
int i;
int i, w, h;
for (i = 0; i < state->num_windows; ++i) {
/* This does the SDL_LoadBMP step repeatedly, but that's OK for test code. */
sprites[i] = LoadTexture(state->renderers[i], file, SDL_TRUE, &sprite_w, &sprite_h);
sprites[i] = LoadTexture(state->renderers[i], file, SDL_TRUE, &w, &h);
sprite_w = (float)w;
sprite_h = (float)h;
if (!sprites[i]) {
return -1;
}
@@ -89,8 +91,9 @@ int LoadSprite(const char *file)
void MoveSprites(SDL_Renderer *renderer, SDL_Texture *sprite)
{
int i;
SDL_Rect viewport, temp;
SDL_Rect *position, *velocity;
SDL_Rect viewport;
SDL_FRect temp;
SDL_FRect *position, *velocity;
/* Query the sizes */
SDL_GetRenderViewport(renderer, &viewport);
@@ -128,22 +131,22 @@ void MoveSprites(SDL_Renderer *renderer, SDL_Texture *sprite)
/* Test points */
SDL_SetRenderDrawColor(renderer, 0xFF, 0x00, 0x00, 0xFF);
SDL_RenderPoint(renderer, 0, 0);
SDL_RenderPoint(renderer, viewport.w - 1, 0);
SDL_RenderPoint(renderer, 0, viewport.h - 1);
SDL_RenderPoint(renderer, viewport.w - 1, viewport.h - 1);
SDL_RenderPoint(renderer, 0.0f, 0.0f);
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);
SDL_RenderLine(renderer, 1, 0, viewport.w - 2, 0);
SDL_RenderLine(renderer, 1, viewport.h - 1, viewport.w - 2, viewport.h - 1);
SDL_RenderLine(renderer, 0, 1, 0, viewport.h - 2);
SDL_RenderLine(renderer, viewport.w - 1, 1, 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 fill and copy */
SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0xFF, 0xFF);
temp.x = 1;
temp.y = 1;
temp.x = 1.0f;
temp.y = 1.0f;
temp.w = sprite_w;
temp.h = sprite_h;
if (use_rendergeometry == 0) {
@@ -158,34 +161,34 @@ void MoveSprites(SDL_Renderer *renderer, SDL_Texture *sprite)
color.b = 0xFF;
color.a = 0xFF;
verts[0].position.x = (float)temp.x;
verts[0].position.y = (float)temp.y;
verts[0].position.x = temp.x;
verts[0].position.y = temp.y;
verts[0].color = color;
verts[1].position.x = (float)temp.x + temp.w;
verts[1].position.y = (float)temp.y;
verts[1].position.x = temp.x + temp.w;
verts[1].position.y = temp.y;
verts[1].color = color;
verts[2].position.x = (float)temp.x + temp.w;
verts[2].position.y = (float)temp.y + temp.h;
verts[2].position.x = temp.x + temp.w;
verts[2].position.y = temp.y + temp.h;
verts[2].color = color;
SDL_RenderGeometry(renderer, NULL, verts, 3, NULL, 0);
verts[1].position.x = (float)temp.x;
verts[1].position.y = (float)temp.y + temp.h;
verts[1].position.x = temp.x;
verts[1].position.y = temp.y + temp.h;
verts[1].color = color;
SDL_RenderGeometry(renderer, NULL, verts, 3, NULL, 0);
}
SDL_RenderTexture(renderer, sprite, NULL, &temp);
temp.x = viewport.w - sprite_w - 1;
temp.y = 1;
temp.y = 1.0f;
temp.w = sprite_w;
temp.h = sprite_h;
SDL_RenderFillRect(renderer, &temp);
SDL_RenderTexture(renderer, sprite, NULL, &temp);
temp.x = 1;
temp.x = 1.0f;
temp.y = viewport.h - sprite_h - 1;
temp.w = sprite_w;
temp.h = sprite_h;
@@ -258,43 +261,43 @@ void MoveSprites(SDL_Renderer *renderer, SDL_Texture *sprite)
for (i = 0; i < num_sprites; ++i) {
position = &positions[i];
/* 0 */
verts->position.x = (float)position->x;
verts->position.y = (float)position->y;
verts->position.x = position->x;
verts->position.y = position->y;
verts->color = color;
verts->tex_coord.x = 0.0f;
verts->tex_coord.y = 0.0f;
verts++;
/* 1 */
verts->position.x = (float)position->x + position->w;
verts->position.y = (float)position->y;
verts->position.x = position->x + position->w;
verts->position.y = position->y;
verts->color = color;
verts->tex_coord.x = 1.0f;
verts->tex_coord.y = 0.0f;
verts++;
/* 2 */
verts->position.x = (float)position->x + position->w;
verts->position.y = (float)position->y + position->h;
verts->position.x = position->x + position->w;
verts->position.y = position->y + position->h;
verts->color = color;
verts->tex_coord.x = 1.0f;
verts->tex_coord.y = 1.0f;
verts++;
/* 0 */
verts->position.x = (float)position->x;
verts->position.y = (float)position->y;
verts->position.x = position->x;
verts->position.y = position->y;
verts->color = color;
verts->tex_coord.x = 0.0f;
verts->tex_coord.y = 0.0f;
verts++;
/* 2 */
verts->position.x = (float)position->x + position->w;
verts->position.y = (float)position->y + position->h;
verts->position.x = position->x + position->w;
verts->position.y = position->y + position->h;
verts->color = color;
verts->tex_coord.x = 1.0f;
verts->tex_coord.y = 1.0f;
verts++;
/* 3 */
verts->position.x = (float)position->x;
verts->position.y = (float)position->y + position->h;
verts->position.x = position->x;
verts->position.y = position->y + position->h;
verts->color = color;
verts->tex_coord.x = 0.0f;
verts->tex_coord.y = 1.0f;
@@ -329,36 +332,36 @@ void MoveSprites(SDL_Renderer *renderer, SDL_Texture *sprite)
for (i = 0; i < num_sprites; ++i) {
position = &positions[i];
/* 0 */
verts->position.x = (float)position->x;
verts->position.y = (float)position->y;
verts->position.x = position->x;
verts->position.y = position->y;
verts->color = color;
verts->tex_coord.x = 0.0f;
verts->tex_coord.y = 0.0f;
verts++;
/* 1 */
verts->position.x = (float)position->x + position->w;
verts->position.y = (float)position->y;
verts->position.x = position->x + position->w;
verts->position.y = position->y;
verts->color = color;
verts->tex_coord.x = 1.0f;
verts->tex_coord.y = 0.0f;
verts++;
/* 2 */
verts->position.x = (float)position->x + position->w / 2.0f;
verts->position.y = (float)position->y + position->h / 2.0f;
verts->position.x = position->x + position->w / 2.0f;
verts->position.y = position->y + position->h / 2.0f;
verts->color = color;
verts->tex_coord.x = 0.5f;
verts->tex_coord.y = 0.5f;
verts++;
/* 3 */
verts->position.x = (float)position->x;
verts->position.y = (float)position->y + position->h;
verts->position.x = position->x;
verts->position.y = position->y + position->h;
verts->color = color;
verts->tex_coord.x = 0.0f;
verts->tex_coord.y = 1.0f;
verts++;
/* 4 */
verts->position.x = (float)position->x + position->w;
verts->position.y = (float)position->y + position->h;
verts->position.x = position->x + position->w;
verts->position.y = position->y + position->h;
verts->color = color;
verts->tex_coord.x = 1.0f;
verts->tex_coord.y = 1.0f;
@@ -540,8 +543,8 @@ int main(int argc, char *argv[])
}
/* Allocate memory for the sprite info */
positions = (SDL_Rect *)SDL_malloc(num_sprites * sizeof(SDL_Rect));
velocities = (SDL_Rect *)SDL_malloc(num_sprites * sizeof(SDL_Rect));
positions = (SDL_FRect *)SDL_malloc(num_sprites * sizeof(*positions));
velocities = (SDL_FRect *)SDL_malloc(num_sprites * sizeof(*velocities));
if (positions == NULL || velocities == NULL) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Out of memory!\n");
quit(2);
@@ -557,15 +560,15 @@ int main(int argc, char *argv[])
}
SDLTest_FuzzerInit(seed);
for (i = 0; i < num_sprites; ++i) {
positions[i].x = SDLTest_RandomIntegerInRange(0, state->window_w - sprite_w);
positions[i].y = SDLTest_RandomIntegerInRange(0, state->window_h - sprite_h);
positions[i].x = (float)SDLTest_RandomIntegerInRange(0, (int)(state->window_w - sprite_w));
positions[i].y = (float)SDLTest_RandomIntegerInRange(0, (int)(state->window_h - sprite_h));
positions[i].w = sprite_w;
positions[i].h = sprite_h;
velocities[i].x = 0;
velocities[i].y = 0;
while (!velocities[i].x && !velocities[i].y) {
velocities[i].x = SDLTest_RandomIntegerInRange(-MAX_SPEED, MAX_SPEED);
velocities[i].y = SDLTest_RandomIntegerInRange(-MAX_SPEED, MAX_SPEED);
velocities[i].x = (float)SDLTest_RandomIntegerInRange(-MAX_SPEED, MAX_SPEED);
velocities[i].y = (float)SDLTest_RandomIntegerInRange(-MAX_SPEED, MAX_SPEED);
}
}
+11 -11
View File
@@ -28,8 +28,8 @@
#define MAX_SPEED 1
static SDL_Texture *sprite;
static SDL_Rect positions[NUM_SPRITES];
static SDL_Rect velocities[NUM_SPRITES];
static SDL_FRect positions[NUM_SPRITES];
static SDL_FRect velocities[NUM_SPRITES];
static int sprite_w, sprite_h;
SDL_Renderer *renderer;
@@ -48,7 +48,7 @@ void MoveSprites()
int i;
int window_w = WINDOW_WIDTH;
int window_h = WINDOW_HEIGHT;
SDL_Rect *position, *velocity;
SDL_FRect *position, *velocity;
/* Draw a gray background */
SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF);
@@ -116,15 +116,15 @@ int main(int argc, char *argv[])
/* Initialize the sprite positions */
srand((unsigned int)time(NULL));
for (i = 0; i < NUM_SPRITES; ++i) {
positions[i].x = rand() % (WINDOW_WIDTH - sprite_w);
positions[i].y = rand() % (WINDOW_HEIGHT - sprite_h);
positions[i].w = sprite_w;
positions[i].h = sprite_h;
velocities[i].x = 0;
velocities[i].y = 0;
positions[i].x = (float)(rand() % (WINDOW_WIDTH - sprite_w));
positions[i].y = (float)(rand() % (WINDOW_HEIGHT - sprite_h));
positions[i].w = (float)sprite_w;
positions[i].h = (float)sprite_h;
velocities[i].x = 0.0f;
velocities[i].y = 0.0f;
while (!velocities[i].x && !velocities[i].y) {
velocities[i].x = (rand() % (MAX_SPEED * 2 + 1)) - MAX_SPEED;
velocities[i].y = (rand() % (MAX_SPEED * 2 + 1)) - MAX_SPEED;
velocities[i].x = (float)((rand() % (MAX_SPEED * 2 + 1)) - MAX_SPEED);
velocities[i].y = (float)((rand() % (MAX_SPEED * 2 + 1)) - MAX_SPEED);
}
}
+32 -24
View File
@@ -43,7 +43,9 @@ quit(int rc)
void DrawOnViewport(SDL_Renderer *renderer)
{
SDL_Rect rect;
SDL_FRect rect;
SDL_Rect cliprect;
int w, h;
/* Set the viewport */
SDL_SetRenderViewport(renderer, &viewport);
@@ -54,42 +56,48 @@ 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, 0, viewport.w - 2, 0);
SDL_RenderLine(renderer, 1, viewport.h - 1, viewport.w - 2, viewport.h - 1);
SDL_RenderLine(renderer, 0, 1, 0, viewport.h - 2);
SDL_RenderLine(renderer, viewport.w - 1, 1, 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, 0x00, 0xFF, 0xFF);
SDL_RenderLine(renderer, 0, 0, viewport.w - 1, viewport.h - 1);
SDL_RenderLine(renderer, viewport.w - 1, 0, 0, viewport.h - 1);
SDL_SetRenderDrawColor(renderer, 0x00, 0xff, 0xFF, 0xFF);
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;
rect.h = 8;
rect.x = (viewport.w - rect.w) / 2;
rect.y = 0;
rect.w = 8.0f;
rect.h = 8.0f;
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_QueryTexture(sprite, NULL, NULL, &rect.w, &rect.h);
rect.x = (viewport.w - rect.w) / 2;
rect.y = (viewport.h - rect.h) / 2;
SDL_SetRenderClipRect(renderer, &rect);
SDL_QueryTexture(sprite, NULL, NULL, &w, &h);
cliprect.x = (viewport.w - w) / 2;
cliprect.y = (viewport.h - h) / 2;
cliprect.w = w;
cliprect.h = h;
rect.x = (float)cliprect.x;
rect.y = (float)cliprect.y;
rect.w = (float)cliprect.w;
rect.h = (float)cliprect.h;
SDL_SetRenderClipRect(renderer, &cliprect);
SDL_RenderTexture(renderer, sprite, NULL, &rect);
SDL_SetRenderClipRect(renderer, NULL);
}