Skip to content

Commit

Permalink
Added a function to clean up test text drawing
Browse files Browse the repository at this point in the history
  • Loading branch information
slouken committed Sep 8, 2017
1 parent ca15c7d commit b0b3da7
Show file tree
Hide file tree
Showing 15 changed files with 64 additions and 22 deletions.
9 changes: 7 additions & 2 deletions include/SDL_test_font.h
Expand Up @@ -50,7 +50,7 @@ extern "C" {
*
* \returns Returns 0 on success, -1 on failure.
*/
int SDLTest_DrawCharacter( SDL_Renderer *renderer, int x, int y, char c );
int SDLTest_DrawCharacter(SDL_Renderer *renderer, int x, int y, char c);

/**
* \brief Draw a string in the currently set font.
Expand All @@ -62,9 +62,14 @@ int SDLTest_DrawCharacter( SDL_Renderer *renderer, int x, int y, char c );
*
* \returns Returns 0 on success, -1 on failure.
*/
int SDLTest_DrawString( SDL_Renderer * renderer, int x, int y, const char *s );
int SDLTest_DrawString(SDL_Renderer *renderer, int x, int y, const char *s);


/**
* \brief Cleanup textures used by font drawing functions.
*/
void SDLTest_CleanupTextDrawing(SDL_Renderer *renderer);

/* Ends C function definitions when using C++ */
#ifdef __cplusplus
}
Expand Down
2 changes: 2 additions & 0 deletions src/test/SDL_test_assert.c
Expand Up @@ -148,3 +148,5 @@ int SDLTest_AssertSummaryToTestResult()
}
}
}

/* vi: set ts=4 sw=4 expandtab: */
2 changes: 2 additions & 0 deletions src/test/SDL_test_compare.c
Expand Up @@ -113,3 +113,5 @@ int SDLTest_CompareSurfaces(SDL_Surface *surface, SDL_Surface *referenceSurface,

return ret;
}

/* vi: set ts=4 sw=4 expandtab: */
2 changes: 2 additions & 0 deletions src/test/SDL_test_crc32.c
Expand Up @@ -164,3 +164,5 @@ int SDLTest_Crc32Done(SDLTest_Crc32Context * crcContext)

return 0;
}

/* vi: set ts=4 sw=4 expandtab: */
52 changes: 32 additions & 20 deletions src/test/SDL_test_font.c
Expand Up @@ -3116,9 +3116,9 @@ static SDL_Texture *SDLTest_CharTextureCache[256];

int SDLTest_DrawCharacter(SDL_Renderer *renderer, int x, int y, char c)
{
const Uint32 charWidth = FONT_CHARACTER_SIZE;
const Uint32 charHeight = FONT_CHARACTER_SIZE;
const Uint32 charSize = FONT_CHARACTER_SIZE;
const Uint32 charWidth = FONT_CHARACTER_SIZE;
const Uint32 charHeight = FONT_CHARACTER_SIZE;
const Uint32 charSize = FONT_CHARACTER_SIZE;
SDL_Rect srect;
SDL_Rect drect;
int result;
Expand All @@ -3133,16 +3133,16 @@ int SDLTest_DrawCharacter(SDL_Renderer *renderer, int x, int y, char c)
Uint8 r, g, b, a;

/*
* Setup source rectangle
*/
* Setup source rectangle
*/
srect.x = 0;
srect.y = 0;
srect.w = charWidth;
srect.h = charHeight;

/*
* Setup destination rectangle
*/
* Setup destination rectangle
*/
drect.x = x;
drect.y = y;
drect.w = charWidth;
Expand All @@ -3152,12 +3152,12 @@ int SDLTest_DrawCharacter(SDL_Renderer *renderer, int x, int y, char c)
ci = (unsigned char)c;

/*
* Create new charWidth x charHeight bitmap surface if not already present.
*/
* Create new charWidth x charHeight bitmap surface if not already present.
*/
if (SDLTest_CharTextureCache[ci] == NULL) {
/*
* Redraw character into surface
*/
* Redraw character into surface
*/
character = SDL_CreateRGBSurface(SDL_SWSURFACE,
charWidth, charHeight, 32,
0xFF000000, 0x00FF0000, 0x0000FF00, 0x000000FF);
Expand All @@ -3170,8 +3170,8 @@ int SDLTest_DrawCharacter(SDL_Renderer *renderer, int x, int y, char c)
pitch = character->pitch;

/*
* Drawing loop
*/
* Drawing loop
*/
patt = 0;
for (iy = 0; iy < charWidth; iy++) {
mask = 0x00;
Expand All @@ -3196,32 +3196,32 @@ int SDLTest_DrawCharacter(SDL_Renderer *renderer, int x, int y, char c)
SDL_FreeSurface(character);

/*
* Check pointer
*/
* Check pointer
*/
if (SDLTest_CharTextureCache[ci] == NULL) {
return (-1);
}
}

/*
* Set color
*/
* Set color
*/
result = 0;
result |= SDL_GetRenderDrawColor(renderer, &r, &g, &b, &a);
result |= SDL_SetTextureColorMod(SDLTest_CharTextureCache[ci], r, g, b);
result |= SDL_SetTextureAlphaMod(SDLTest_CharTextureCache[ci], a);

/*
* Draw texture onto destination
*/
* Draw texture onto destination
*/
result |= SDL_RenderCopy(renderer, SDLTest_CharTextureCache[ci], &srect, &drect);

return (result);
}

int SDLTest_DrawString(SDL_Renderer * renderer, int x, int y, const char *s)
{
const Uint32 charWidth = FONT_CHARACTER_SIZE;
const Uint32 charWidth = FONT_CHARACTER_SIZE;
int result = 0;
int curx = x;
int cury = y;
Expand All @@ -3236,3 +3236,15 @@ int SDLTest_DrawString(SDL_Renderer * renderer, int x, int y, const char *s)
return (result);
}

void SDLTest_CleanupTextDrawing(SDL_Renderer *renderer)
{
int i;
for (i = 0; i < SDL_ARRAYSIZE(SDLTest_CharTextureCache); ++i) {
if (SDLTest_CharTextureCache[i]) {
SDL_TextureDestroy(SDLTest_CharTextureCache[i]);
SDLTest_CharTextureCache[i] = NULL;
}
}
}

/* vi: set ts=4 sw=4 expandtab: */
2 changes: 2 additions & 0 deletions src/test/SDL_test_fuzzer.c
Expand Up @@ -524,3 +524,5 @@ SDLTest_RandomAsciiStringOfSize(int size)

return string;
}

/* vi: set ts=4 sw=4 expandtab: */
2 changes: 2 additions & 0 deletions src/test/SDL_test_harness.c
Expand Up @@ -676,3 +676,5 @@ int SDLTest_RunSuites(SDLTest_TestSuiteReference *testSuites[], const char *user
SDLTest_Log("Exit code: %d", runResult);
return runResult;
}

/* vi: set ts=4 sw=4 expandtab: */
2 changes: 2 additions & 0 deletions src/test/SDL_test_imageBlit.c
Expand Up @@ -1555,3 +1555,5 @@ SDL_Surface *SDLTest_ImageBlitAlpha()
);
return surface;
}

/* vi: set ts=4 sw=4 expandtab: */
2 changes: 2 additions & 0 deletions src/test/SDL_test_imageBlitBlend.c
Expand Up @@ -2841,3 +2841,5 @@ SDL_Surface *SDLTest_ImageBlitBlendAll()
);
return surface;
}

/* vi: set ts=4 sw=4 expandtab: */
1 change: 1 addition & 0 deletions src/test/SDL_test_imageFace.c
Expand Up @@ -244,3 +244,4 @@ SDL_Surface *SDLTest_ImageFace()
return surface;
}

/* vi: set ts=4 sw=4 expandtab: */
2 changes: 2 additions & 0 deletions src/test/SDL_test_imagePrimitives.c
Expand Up @@ -510,3 +510,5 @@ SDL_Surface *SDLTest_ImagePrimitives()
);
return surface;
}

/* vi: set ts=4 sw=4 expandtab: */
2 changes: 2 additions & 0 deletions src/test/SDL_test_imagePrimitivesBlend.c
Expand Up @@ -692,3 +692,5 @@ SDL_Surface *SDLTest_ImagePrimitivesBlend()
);
return surface;
}

/* vi: set ts=4 sw=4 expandtab: */
2 changes: 2 additions & 0 deletions src/test/SDL_test_log.c
Expand Up @@ -114,3 +114,5 @@ void SDLTest_LogError(SDL_PRINTF_FORMAT_STRING const char *fmt, ...)
/* Log with timestamp and newline */
SDL_LogMessage(SDL_LOG_CATEGORY_TEST, SDL_LOG_PRIORITY_ERROR, "%s: %s", SDLTest_TimestampToString(time(0)), logMessage);
}

/* vi: set ts=4 sw=4 expandtab: */
2 changes: 2 additions & 0 deletions src/test/SDL_test_md5.c
Expand Up @@ -334,3 +334,5 @@ static void SDLTest_Md5Transform(MD5UINT4 * buf, MD5UINT4 * in)
buf[2] += c;
buf[3] += d;
}

/* vi: set ts=4 sw=4 expandtab: */
2 changes: 2 additions & 0 deletions src/test/SDL_test_random.c
Expand Up @@ -92,3 +92,5 @@ unsigned int SDLTest_Random(SDLTest_RandomContext * rndContext)
rndContext->c++;
return (rndContext->x);
}

/* vi: set ts=4 sw=4 expandtab: */

0 comments on commit b0b3da7

Please sign in to comment.