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