Added SDL_RenderClear() as a fast method of clearing the screen to the drawing color.
Renamed SDL_RenderPoint() and SDL_RenderLine() to SDL_RenderDrawPoint() and SDL_RenderDrawLine(). Added API for rectangle drawing (as opposed to filling) Added placeholder API functions for circles and ellipses ... I'm not sure whether these will stay. Optimized software line drawing quite a bit. Added support for Wu's anti-aliased line drawing, currently disabled by default. --HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%404346
This commit is contained in:
parent
d45158ea85
commit
6da163ab81
24 changed files with 1685 additions and 549 deletions
|
@ -1,6 +1,6 @@
|
|||
|
||||
|
||||
CFLAGS := -W -Wall -Wextra -g `sdl-config --cflags`
|
||||
CFLAGS := -W -Wall -Wextra -g `sdl-config --cflags` -DSDL_NO_COMPAT
|
||||
LDFLAGS := `sdl-config --libs`
|
||||
|
||||
# If it doesn't pick up defaults
|
||||
|
|
|
@ -341,9 +341,9 @@ static int render_clearScreen (void)
|
|||
*/
|
||||
|
||||
/* Clear screen. */
|
||||
ret = SDL_RenderRect( NULL );
|
||||
ret = SDL_RenderFillRect( NULL );
|
||||
/*
|
||||
if (SDL_ATassert( "SDL_RenderRect", ret == 0))
|
||||
if (SDL_ATassert( "SDL_RenderFillRect", ret == 0))
|
||||
return -1;
|
||||
*/
|
||||
|
||||
|
@ -413,8 +413,8 @@ static int render_testPrimitives (void)
|
|||
ret = SDL_SetRenderDrawColor( 13, 73, 200, SDL_ALPHA_OPAQUE );
|
||||
if (SDL_ATassert( "SDL_SetRenderDrawColor", ret == 0))
|
||||
return -1;
|
||||
ret = SDL_RenderRect( &rect );
|
||||
if (SDL_ATassert( "SDL_RenderRect", ret == 0))
|
||||
ret = SDL_RenderFillRect( &rect );
|
||||
if (SDL_ATassert( "SDL_RenderFillRect", ret == 0))
|
||||
return -1;
|
||||
|
||||
/* Draw a rectangle. */
|
||||
|
@ -425,8 +425,8 @@ static int render_testPrimitives (void)
|
|||
ret = SDL_SetRenderDrawColor( 200, 0, 100, SDL_ALPHA_OPAQUE );
|
||||
if (SDL_ATassert( "SDL_SetRenderDrawColor", ret == 0))
|
||||
return -1;
|
||||
ret = SDL_RenderRect( &rect );
|
||||
if (SDL_ATassert( "SDL_RenderRect", ret == 0))
|
||||
ret = SDL_RenderFillRect( &rect );
|
||||
if (SDL_ATassert( "SDL_RenderFillRect", ret == 0))
|
||||
return -1;
|
||||
|
||||
/* Draw some points like so:
|
||||
|
@ -439,8 +439,8 @@ static int render_testPrimitives (void)
|
|||
ret = SDL_SetRenderDrawColor( x*y, x*y/2, x*y/3, SDL_ALPHA_OPAQUE );
|
||||
if (SDL_ATassert( "SDL_SetRenderDrawColor", ret == 0))
|
||||
return -1;
|
||||
ret = SDL_RenderPoint( x, y );
|
||||
if (SDL_ATassert( "SDL_RenderPoint", ret == 0))
|
||||
ret = SDL_RenderDrawPoint( x, y );
|
||||
if (SDL_ATassert( "SDL_RenderDrawPoint", ret == 0))
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
@ -449,29 +449,29 @@ static int render_testPrimitives (void)
|
|||
ret = SDL_SetRenderDrawColor( 0, 255, 0, SDL_ALPHA_OPAQUE );
|
||||
if (SDL_ATassert( "SDL_SetRenderDrawColor", ret == 0))
|
||||
return -1;
|
||||
ret = SDL_RenderLine( 0, 30, 80, 30 );
|
||||
if (SDL_ATassert( "SDL_RenderLine", ret == 0))
|
||||
ret = SDL_RenderDrawLine( 0, 30, 80, 30 );
|
||||
if (SDL_ATassert( "SDL_RenderDrawLine", ret == 0))
|
||||
return -1;
|
||||
ret = SDL_SetRenderDrawColor( 55, 55, 5, SDL_ALPHA_OPAQUE );
|
||||
if (SDL_ATassert( "SDL_SetRenderDrawColor", ret == 0))
|
||||
return -1;
|
||||
ret = SDL_RenderLine( 40, 30, 40, 60 );
|
||||
if (SDL_ATassert( "SDL_RenderLine", ret == 0))
|
||||
ret = SDL_RenderDrawLine( 40, 30, 40, 60 );
|
||||
if (SDL_ATassert( "SDL_RenderDrawLine", ret == 0))
|
||||
return -1;
|
||||
ret = SDL_SetRenderDrawColor( 5, 105, 105, SDL_ALPHA_OPAQUE );
|
||||
if (SDL_ATassert( "SDL_SetRenderDrawColor", ret == 0))
|
||||
return -1;
|
||||
ret = SDL_RenderLine( 0, 0, 29, 29 );
|
||||
if (SDL_ATassert( "SDL_RenderLine", ret == 0))
|
||||
ret = SDL_RenderDrawLine( 0, 0, 29, 29 );
|
||||
if (SDL_ATassert( "SDL_RenderDrawLine", ret == 0))
|
||||
return -1;
|
||||
ret = SDL_RenderLine( 29, 30, 0, 59 );
|
||||
if (SDL_ATassert( "SDL_RenderLine", ret == 0))
|
||||
ret = SDL_RenderDrawLine( 29, 30, 0, 59 );
|
||||
if (SDL_ATassert( "SDL_RenderDrawLine", ret == 0))
|
||||
return -1;
|
||||
ret = SDL_RenderLine( 79, 0, 50, 29 );
|
||||
if (SDL_ATassert( "SDL_RenderLine", ret == 0))
|
||||
ret = SDL_RenderDrawLine( 79, 0, 50, 29 );
|
||||
if (SDL_ATassert( "SDL_RenderDrawLine", ret == 0))
|
||||
return -1;
|
||||
ret = SDL_RenderLine( 79, 59, 50, 30 );
|
||||
if (SDL_ATassert( "SDL_RenderLine", ret == 0))
|
||||
ret = SDL_RenderDrawLine( 79, 59, 50, 30 );
|
||||
if (SDL_ATassert( "SDL_RenderDrawLine", ret == 0))
|
||||
return -1;
|
||||
|
||||
/* See if it's the same. */
|
||||
|
@ -506,8 +506,8 @@ static int render_testPrimitivesBlend (void)
|
|||
ret = SDL_SetRenderDrawBlendMode( SDL_BLENDMODE_NONE );
|
||||
if (SDL_ATassert( "SDL_SetRenderDrawBlendMode", ret == 0))
|
||||
return -1;
|
||||
ret = SDL_RenderRect( NULL );
|
||||
if (SDL_ATassert( "SDL_RenderRect", ret == 0))
|
||||
ret = SDL_RenderFillRect( NULL );
|
||||
if (SDL_ATassert( "SDL_RenderFillRect", ret == 0))
|
||||
return -1;
|
||||
rect.x = 10;
|
||||
rect.y = 25;
|
||||
|
@ -519,8 +519,8 @@ static int render_testPrimitivesBlend (void)
|
|||
ret = SDL_SetRenderDrawBlendMode( SDL_BLENDMODE_ADD );
|
||||
if (SDL_ATassert( "SDL_SetRenderDrawBlendMode", ret == 0))
|
||||
return -1;
|
||||
ret = SDL_RenderRect( &rect );
|
||||
if (SDL_ATassert( "SDL_RenderRect", ret == 0))
|
||||
ret = SDL_RenderFillRect( &rect );
|
||||
if (SDL_ATassert( "SDL_RenderFillRect", ret == 0))
|
||||
return -1;
|
||||
rect.x = 30;
|
||||
rect.y = 40;
|
||||
|
@ -532,8 +532,8 @@ static int render_testPrimitivesBlend (void)
|
|||
ret = SDL_SetRenderDrawBlendMode( SDL_BLENDMODE_BLEND );
|
||||
if (SDL_ATassert( "SDL_SetRenderDrawBlendMode", ret == 0))
|
||||
return -1;
|
||||
ret = SDL_RenderRect( &rect );
|
||||
if (SDL_ATassert( "SDL_RenderRect", ret == 0))
|
||||
ret = SDL_RenderFillRect( &rect );
|
||||
if (SDL_ATassert( "SDL_RenderFillRect", ret == 0))
|
||||
return -1;
|
||||
rect.x = 25;
|
||||
rect.y = 25;
|
||||
|
@ -545,8 +545,8 @@ static int render_testPrimitivesBlend (void)
|
|||
ret = SDL_SetRenderDrawBlendMode( SDL_BLENDMODE_MOD );
|
||||
if (SDL_ATassert( "SDL_SetRenderDrawBlendMode", ret == 0))
|
||||
return -1;
|
||||
ret = SDL_RenderRect( &rect );
|
||||
if (SDL_ATassert( "SDL_RenderRect", ret == 0))
|
||||
ret = SDL_RenderFillRect( &rect );
|
||||
if (SDL_ATassert( "SDL_RenderFillRect", ret == 0))
|
||||
return -1;
|
||||
|
||||
/* Draw blended lines, lines for everyone. */
|
||||
|
@ -558,8 +558,8 @@ static int render_testPrimitivesBlend (void)
|
|||
(((i/2)%3)==1) ? SDL_BLENDMODE_ADD : SDL_BLENDMODE_MOD );
|
||||
if (SDL_ATassert( "SDL_SetRenderDrawBlendMode", ret == 0))
|
||||
return -1;
|
||||
ret = SDL_RenderLine( 0, 0, i, 59 );
|
||||
if (SDL_ATassert( "SDL_RenderLine", ret == 0))
|
||||
ret = SDL_RenderDrawLine( 0, 0, i, 59 );
|
||||
if (SDL_ATassert( "SDL_RenderDrawLine", ret == 0))
|
||||
return -1;
|
||||
}
|
||||
for (i=0; i<SCREEN_H; i+=2) {
|
||||
|
@ -570,8 +570,8 @@ static int render_testPrimitivesBlend (void)
|
|||
(((i/2)%3)==1) ? SDL_BLENDMODE_ADD : SDL_BLENDMODE_MOD );
|
||||
if (SDL_ATassert( "SDL_SetRenderDrawBlendMode", ret == 0))
|
||||
return -1;
|
||||
ret = SDL_RenderLine( 0, 0, 79, i );
|
||||
if (SDL_ATassert( "SDL_RenderLine", ret == 0))
|
||||
ret = SDL_RenderDrawLine( 0, 0, 79, i );
|
||||
if (SDL_ATassert( "SDL_RenderDrawLine", ret == 0))
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -585,8 +585,8 @@ static int render_testPrimitivesBlend (void)
|
|||
((((i+j)/3)%3)==1) ? SDL_BLENDMODE_ADD : SDL_BLENDMODE_MOD );
|
||||
if (SDL_ATassert( "SDL_SetRenderDrawBlendMode", ret == 0))
|
||||
return -1;
|
||||
ret = SDL_RenderPoint( i, j );
|
||||
if (SDL_ATassert( "SDL_RenderPoint", ret == 0))
|
||||
ret = SDL_RenderDrawPoint( i, j );
|
||||
if (SDL_ATassert( "SDL_RenderDrawPoint", ret == 0))
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -56,8 +56,7 @@ static void surface_testLoad( SDL_Surface *testsur )
|
|||
|
||||
/* Set transparent pixel as the pixel at (0,0) */
|
||||
if (face->format->palette) {
|
||||
ret = SDL_SetColorKey(face, (SDL_SRCCOLORKEY | SDL_RLEACCEL),
|
||||
*(Uint8 *) face->pixels);
|
||||
ret = SDL_SetColorKey(face, SDL_RLEACCEL, *(Uint8 *) face->pixels);
|
||||
if (SDL_ATassert( "SDL_SetColorKey", ret == 0))
|
||||
return;
|
||||
}
|
||||
|
@ -184,29 +183,29 @@ static void surface_testPrimitivesBlend( SDL_Surface *testsur )
|
|||
return;
|
||||
|
||||
/* Create some rectangles for each blend mode. */
|
||||
ret = SDL_BlendRect( testsur, NULL, SDL_BLENDMODE_NONE, 255, 255, 255, 0 );
|
||||
if (SDL_ATassert( "SDL_BlendRect", ret == 0))
|
||||
ret = SDL_BlendFillRect( testsur, NULL, SDL_BLENDMODE_NONE, 255, 255, 255, 0 );
|
||||
if (SDL_ATassert( "SDL_BlendFillRect", ret == 0))
|
||||
return;
|
||||
rect.x = 10;
|
||||
rect.y = 25;
|
||||
rect.w = 40;
|
||||
rect.h = 25;
|
||||
ret = SDL_BlendRect( testsur, &rect, SDL_BLENDMODE_ADD, 240, 10, 10, 75 );
|
||||
if (SDL_ATassert( "SDL_BlendRect", ret == 0))
|
||||
ret = SDL_BlendFillRect( testsur, &rect, SDL_BLENDMODE_ADD, 240, 10, 10, 75 );
|
||||
if (SDL_ATassert( "SDL_BlendFillRect", ret == 0))
|
||||
return;
|
||||
rect.x = 30;
|
||||
rect.y = 40;
|
||||
rect.w = 45;
|
||||
rect.h = 15;
|
||||
ret = SDL_BlendRect( testsur, &rect, SDL_BLENDMODE_BLEND, 10, 240, 10, 100 );
|
||||
if (SDL_ATassert( "SDL_BlendRect", ret == 0))
|
||||
ret = SDL_BlendFillRect( testsur, &rect, SDL_BLENDMODE_BLEND, 10, 240, 10, 100 );
|
||||
if (SDL_ATassert( "SDL_BlendFillRect", ret == 0))
|
||||
return;
|
||||
rect.x = 25;
|
||||
rect.y = 25;
|
||||
rect.w = 25;
|
||||
rect.h = 25;
|
||||
ret = SDL_BlendRect( testsur, &rect, SDL_BLENDMODE_MOD, 10, 10, 240, 125 );
|
||||
if (SDL_ATassert( "SDL_BlendRect", ret == 0))
|
||||
ret = SDL_BlendFillRect( testsur, &rect, SDL_BLENDMODE_MOD, 10, 10, 240, 125 );
|
||||
if (SDL_ATassert( "SDL_BlendFillRect", ret == 0))
|
||||
return;
|
||||
|
||||
/* Draw blended lines, lines for everyone. */
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
#include "SDL.h"
|
||||
#include "SDL_at.h"
|
||||
|
||||
|
|
|
@ -58,7 +58,7 @@ DrawPoints(SDL_WindowID window)
|
|||
|
||||
x = rand() % window_w;
|
||||
y = rand() % window_h;
|
||||
SDL_RenderPoint(x, y);
|
||||
SDL_RenderDrawPoint(x, y);
|
||||
}
|
||||
SDL_SetRenderDrawBlendMode(SDL_BLENDMODE_NONE);
|
||||
}
|
||||
|
@ -102,16 +102,16 @@ DrawLines(SDL_WindowID window)
|
|||
(Uint8) current_color, (Uint8) current_alpha);
|
||||
|
||||
if (i == 0) {
|
||||
SDL_RenderLine(0, 0, window_w - 1, window_h - 1);
|
||||
SDL_RenderLine(0, window_h - 1, window_w - 1, 0);
|
||||
SDL_RenderLine(0, window_h / 2, window_w - 1, window_h / 2);
|
||||
SDL_RenderLine(window_w / 2, 0, window_w / 2, window_h - 1);
|
||||
SDL_RenderDrawLine(0, 0, window_w - 1, window_h - 1);
|
||||
SDL_RenderDrawLine(0, window_h - 1, window_w - 1, 0);
|
||||
SDL_RenderDrawLine(0, window_h / 2, window_w - 1, window_h / 2);
|
||||
SDL_RenderDrawLine(window_w / 2, 0, window_w / 2, window_h - 1);
|
||||
} else {
|
||||
x1 = (rand() % (window_w*2)) - window_w;
|
||||
x2 = (rand() % (window_w*2)) - window_w;
|
||||
y1 = (rand() % (window_h*2)) - window_h;
|
||||
y2 = (rand() % (window_h*2)) - window_h;
|
||||
SDL_RenderLine(x1, y1, x2, y2);
|
||||
SDL_RenderDrawLine(x1, y1, x2, y2);
|
||||
}
|
||||
}
|
||||
SDL_SetRenderDrawBlendMode(SDL_BLENDMODE_NONE);
|
||||
|
@ -159,7 +159,7 @@ DrawRects(SDL_WindowID window)
|
|||
rect.h = rand() % (window_h / 2);
|
||||
rect.x = (rand() % (window_w*2) - window_w) - (rect.w / 2);
|
||||
rect.y = (rand() % (window_h*2) - window_h) - (rect.h / 2);
|
||||
SDL_RenderRect(&rect);
|
||||
SDL_RenderFillRect(&rect);
|
||||
}
|
||||
SDL_SetRenderDrawBlendMode(SDL_BLENDMODE_NONE);
|
||||
}
|
||||
|
@ -231,7 +231,7 @@ main(int argc, char *argv[])
|
|||
for (i = 0; i < state->num_windows; ++i) {
|
||||
SDL_SelectRenderer(state->windows[i]);
|
||||
SDL_SetRenderDrawColor(0xA0, 0xA0, 0xA0, 0xFF);
|
||||
SDL_RenderRect(NULL);
|
||||
SDL_RenderClear();
|
||||
}
|
||||
|
||||
srand(time(NULL));
|
||||
|
@ -251,7 +251,7 @@ main(int argc, char *argv[])
|
|||
case SDL_WINDOWEVENT_EXPOSED:
|
||||
SDL_SelectRenderer(event.window.windowID);
|
||||
SDL_SetRenderDrawColor(0xA0, 0xA0, 0xA0, 0xFF);
|
||||
SDL_RenderRect(NULL);
|
||||
SDL_RenderClear();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
@ -262,7 +262,7 @@ main(int argc, char *argv[])
|
|||
for (i = 0; i < state->num_windows; ++i) {
|
||||
SDL_SelectRenderer(state->windows[i]);
|
||||
SDL_SetRenderDrawColor(0xA0, 0xA0, 0xA0, 0xFF);
|
||||
SDL_RenderRect(NULL);
|
||||
SDL_RenderClear();
|
||||
|
||||
DrawRects(state->windows[i]);
|
||||
DrawLines(state->windows[i]);
|
||||
|
|
|
@ -59,7 +59,7 @@ DrawPoints(SDL_WindowID window)
|
|||
|
||||
x = rand() % window_w;
|
||||
y = rand() % window_h;
|
||||
SDL_RenderPoint(x, y);
|
||||
SDL_RenderDrawPoint(x, y);
|
||||
}
|
||||
SDL_SetRenderDrawBlendMode(SDL_BLENDMODE_NONE);
|
||||
}
|
||||
|
@ -100,12 +100,12 @@ DrawLines(SDL_WindowID window)
|
|||
SDL_SetRenderDrawColor(255, 255, 255, 255);
|
||||
|
||||
if (i == -1) {
|
||||
SDL_RenderLine(0, 0, window_w - 1, window_h - 1);
|
||||
SDL_RenderLine(0, window_h - 1, window_w - 1, 0);
|
||||
SDL_RenderLine(0, window_h / 2, window_w - 1, window_h / 2);
|
||||
SDL_RenderLine(window_w / 2, 0, window_w / 2, window_h - 1);
|
||||
SDL_RenderDrawLine(0, 0, window_w - 1, window_h - 1);
|
||||
SDL_RenderDrawLine(0, window_h - 1, window_w - 1, 0);
|
||||
SDL_RenderDrawLine(0, window_h / 2, window_w - 1, window_h / 2);
|
||||
SDL_RenderDrawLine(window_w / 2, 0, window_w / 2, window_h - 1);
|
||||
} else {
|
||||
SDL_RenderLine(lines[i].x, lines[i].y, lines[i].w, lines[i].h);
|
||||
SDL_RenderDrawLine(lines[i].x, lines[i].y, lines[i].w, lines[i].h);
|
||||
}
|
||||
}
|
||||
SDL_SetRenderDrawBlendMode(SDL_BLENDMODE_NONE);
|
||||
|
@ -150,7 +150,7 @@ DrawRects(SDL_WindowID window)
|
|||
SDL_SetRenderDrawBlendMode(SDL_BLENDMODE_NONE);
|
||||
for (i = 0; i < num_rects; ++i) {
|
||||
SDL_SetRenderDrawColor(255, 127, 0, 255);
|
||||
SDL_RenderRect(&rects[i]);
|
||||
SDL_RenderFillRect(&rects[i]);
|
||||
}
|
||||
SDL_SetRenderDrawBlendMode(SDL_BLENDMODE_NONE);
|
||||
}
|
||||
|
@ -178,7 +178,7 @@ DrawRectLineIntersections(SDL_WindowID window)
|
|||
|
||||
if (SDL_IntersectRectAndLine(&r, &x1, &y1, &x2, &y2)) {
|
||||
SDL_SetRenderDrawColor(0, 255, 55, 255);
|
||||
SDL_RenderLine(x1, y1, x2, y2);
|
||||
SDL_RenderDrawLine(x1, y1, x2, y2);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -197,7 +197,7 @@ DrawRectRectIntersections(SDL_WindowID window)
|
|||
SDL_Rect r;
|
||||
if (SDL_IntersectRect(&rects[i], &rects[j], &r)) {
|
||||
SDL_SetRenderDrawColor(255, 200, 0, 255);
|
||||
SDL_RenderRect(&r);
|
||||
SDL_RenderFillRect(&r);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -272,7 +272,7 @@ main(int argc, char *argv[])
|
|||
for (i = 0; i < state->num_windows; ++i) {
|
||||
SDL_SelectRenderer(state->windows[i]);
|
||||
SDL_SetRenderDrawColor(0xA0, 0xA0, 0xA0, 0xFF);
|
||||
SDL_RenderRect(NULL);
|
||||
SDL_RenderClear();
|
||||
}
|
||||
|
||||
srand(time(NULL));
|
||||
|
@ -326,7 +326,7 @@ main(int argc, char *argv[])
|
|||
case SDL_WINDOWEVENT_EXPOSED:
|
||||
SDL_SelectRenderer(event.window.windowID);
|
||||
SDL_SetRenderDrawColor(0xA0, 0xA0, 0xA0, 0xFF);
|
||||
SDL_RenderRect(NULL);
|
||||
SDL_RenderClear();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
@ -337,7 +337,7 @@ main(int argc, char *argv[])
|
|||
for (i = 0; i < state->num_windows; ++i) {
|
||||
SDL_SelectRenderer(state->windows[i]);
|
||||
SDL_SetRenderDrawColor(0xA0, 0xA0, 0xA0, 0xFF);
|
||||
SDL_RenderRect(NULL);
|
||||
SDL_RenderClear();
|
||||
|
||||
DrawRects(state->windows[i]);
|
||||
DrawPoints(state->windows[i]);
|
||||
|
|
|
@ -83,7 +83,7 @@ MoveSprites(SDL_WindowID window, SDL_TextureID sprite)
|
|||
/* Move the sprite, bounce at the wall, and draw */
|
||||
n = 0;
|
||||
SDL_SetRenderDrawColor(0xA0, 0xA0, 0xA0, 0xFF);
|
||||
SDL_RenderRect(NULL);
|
||||
SDL_RenderClear();
|
||||
for (i = 0; i < NUM_SPRITES; ++i) {
|
||||
position = &positions[i];
|
||||
velocity = &velocities[i];
|
||||
|
@ -158,7 +158,7 @@ main(int argc, char *argv[])
|
|||
/* Clear the window, load the sprite and go! */
|
||||
SDL_SelectRenderer(window);
|
||||
SDL_SetRenderDrawColor(0xA0, 0xA0, 0xA0, 0xFF);
|
||||
SDL_RenderRect(NULL);
|
||||
SDL_RenderClear();
|
||||
|
||||
sprite = LoadSprite(window, "icon.bmp");
|
||||
if (!sprite) {
|
||||
|
@ -199,7 +199,7 @@ main(int argc, char *argv[])
|
|||
case SDL_WINDOWEVENT_EXPOSED:
|
||||
SDL_SelectRenderer(event.window.windowID);
|
||||
SDL_SetRenderDrawColor(0xA0, 0xA0, 0xA0, 0xFF);
|
||||
SDL_RenderRect(NULL);
|
||||
SDL_RenderClear();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -139,21 +139,21 @@ MoveSprites(SDL_WindowID window, SDL_TextureID sprite)
|
|||
|
||||
/* Draw a gray background */
|
||||
SDL_SetRenderDrawColor(0xA0, 0xA0, 0xA0, 0xFF);
|
||||
SDL_RenderRect(NULL);
|
||||
SDL_RenderClear();
|
||||
|
||||
/* Test points */
|
||||
SDL_SetRenderDrawColor(0xFF, 0x00, 0x00, 0xFF);
|
||||
SDL_RenderPoint(0, 0);
|
||||
SDL_RenderPoint(window_w-1, 0);
|
||||
SDL_RenderPoint(0, window_h-1);
|
||||
SDL_RenderPoint(window_w-1, window_h-1);
|
||||
SDL_RenderDrawPoint(0, 0);
|
||||
SDL_RenderDrawPoint(window_w-1, 0);
|
||||
SDL_RenderDrawPoint(0, window_h-1);
|
||||
SDL_RenderDrawPoint(window_w-1, window_h-1);
|
||||
|
||||
/* Test horizontal and vertical lines */
|
||||
SDL_SetRenderDrawColor(0x00, 0xFF, 0x00, 0xFF);
|
||||
SDL_RenderLine(1, 0, window_w-2, 0);
|
||||
SDL_RenderLine(1, window_h-1, window_w-2, window_h-1);
|
||||
SDL_RenderLine(0, 1, 0, window_h-2);
|
||||
SDL_RenderLine(window_w-1, 1, window_w-1, window_h-2);
|
||||
SDL_RenderDrawLine(1, 0, window_w-2, 0);
|
||||
SDL_RenderDrawLine(1, window_h-1, window_w-2, window_h-1);
|
||||
SDL_RenderDrawLine(0, 1, 0, window_h-2);
|
||||
SDL_RenderDrawLine(window_w-1, 1, window_w-1, window_h-2);
|
||||
|
||||
/* Test fill and copy */
|
||||
SDL_SetRenderDrawColor(0xFF, 0xFF, 0xFF, 0xFF);
|
||||
|
@ -161,33 +161,33 @@ MoveSprites(SDL_WindowID window, SDL_TextureID sprite)
|
|||
temp.y = 1;
|
||||
temp.w = sprite_w;
|
||||
temp.h = sprite_h;
|
||||
SDL_RenderRect(&temp);
|
||||
SDL_RenderFillRect(&temp);
|
||||
SDL_RenderCopy(sprite, NULL, &temp);
|
||||
temp.x = window_w-sprite_w-1;
|
||||
temp.y = 1;
|
||||
temp.w = sprite_w;
|
||||
temp.h = sprite_h;
|
||||
SDL_RenderRect(&temp);
|
||||
SDL_RenderFillRect(&temp);
|
||||
SDL_RenderCopy(sprite, NULL, &temp);
|
||||
temp.x = 1;
|
||||
temp.y = window_h-sprite_h-1;
|
||||
temp.w = sprite_w;
|
||||
temp.h = sprite_h;
|
||||
SDL_RenderRect(&temp);
|
||||
SDL_RenderFillRect(&temp);
|
||||
SDL_RenderCopy(sprite, NULL, &temp);
|
||||
temp.x = window_w-sprite_w-1;
|
||||
temp.y = window_h-sprite_h-1;
|
||||
temp.w = sprite_w;
|
||||
temp.h = sprite_h;
|
||||
SDL_RenderRect(&temp);
|
||||
SDL_RenderFillRect(&temp);
|
||||
SDL_RenderCopy(sprite, NULL, &temp);
|
||||
|
||||
/* Test diagonal lines */
|
||||
SDL_SetRenderDrawColor(0x00, 0xFF, 0x00, 0xFF);
|
||||
SDL_RenderLine(sprite_w, sprite_h,
|
||||
window_w-sprite_w-2, window_h-sprite_h-2);
|
||||
SDL_RenderLine(window_w-sprite_w-2, sprite_h,
|
||||
sprite_w, window_h-sprite_h-2);
|
||||
SDL_RenderDrawLine(sprite_w, sprite_h,
|
||||
window_w-sprite_w-2, window_h-sprite_h-2);
|
||||
SDL_RenderDrawLine(window_w-sprite_w-2, sprite_h,
|
||||
sprite_w, window_h-sprite_h-2);
|
||||
|
||||
/* Move the sprite, bounce at the wall, and draw */
|
||||
n = 0;
|
||||
|
@ -302,7 +302,7 @@ main(int argc, char *argv[])
|
|||
for (i = 0; i < state->num_windows; ++i) {
|
||||
SDL_SelectRenderer(state->windows[i]);
|
||||
SDL_SetRenderDrawColor(0xA0, 0xA0, 0xA0, 0xFF);
|
||||
SDL_RenderRect(NULL);
|
||||
SDL_RenderClear();
|
||||
}
|
||||
if (LoadSprite("icon.bmp") < 0) {
|
||||
quit(2);
|
||||
|
@ -348,7 +348,7 @@ main(int argc, char *argv[])
|
|||
case SDL_WINDOWEVENT_EXPOSED:
|
||||
SDL_SelectRenderer(event.window.windowID);
|
||||
SDL_SetRenderDrawColor(0xA0, 0xA0, 0xA0, 0xFF);
|
||||
SDL_RenderRect(NULL);
|
||||
SDL_RenderClear();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -87,7 +87,7 @@ MoveSprites(SDL_WindowID window, SDL_TextureID sprite)
|
|||
|
||||
/* Draw a gray background */
|
||||
SDL_SetRenderDrawColor(0xA0, 0xA0, 0xA0, 0xFF);
|
||||
SDL_RenderRect(NULL);
|
||||
SDL_RenderClear();
|
||||
|
||||
/* Move the sprite, bounce at the wall, and draw */
|
||||
for (i = 0; i < NUM_SPRITES; ++i) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue