Created
March 31, 2024 23:36
-
-
Save Introscopia/e74413c0950b699fa3371aaba40ca003 to your computer and use it in GitHub Desktop.
Text rendering for SDL without fonts or any other dependencies.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <SDL.h> | |
#include <SDL_image.h> | |
#include "SDL_Text.h" | |
#ifndef WIN32 | |
#define _WIN32_WINNT 0x0500 | |
#include <windows.h> | |
#endif | |
// - o - o - o - o - o - o - o - o - o - o - o - o - o - o - o - o - o - o - o - o - o - o - o - o - o - o - o - o - o - o - o - o | |
int main(int argc, char *argv[]){ | |
//HWND hwnd_win = GetConsoleWindow(); | |
//ShowWindow(hwnd_win,SW_HIDE); | |
SDL_Window *window; | |
SDL_Renderer *renderer; | |
int width = 0; | |
int height = 0; | |
if (SDL_Init(SDL_INIT_VIDEO) < 0) { | |
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't initialize SDL: %s", SDL_GetError()); | |
return 3; | |
} | |
if (SDL_CreateWindowAndRenderer(width, height, SDL_WINDOW_RESIZABLE | SDL_WINDOW_MAXIMIZED, &window, &renderer)) { | |
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't create window and renderer: %s", SDL_GetError()); | |
return 3; | |
} | |
SDL_GetWindowSize( window, &width, &height ); | |
SDL_SetWindowTitle( window, "SDL_Text" ); | |
//srand (time(NULL)); | |
/* | |
SDL_Surface *font = IMG_Load("DOS.png"); | |
color *pix = (color*) font->pixels; | |
printf("font->format->BitsPerPixel: %d\n", font->format->BitsPerPixel ); | |
for (int CJ = 0; CJ < 12; ++CJ ){ | |
for (int CI = 0; CI < 8; ++CI ){ | |
SDL_Rect rcts [48]; | |
int R = 0; | |
for (int pi = 0; pi < 8; ++pi ){ | |
for (int pj = 0; pj < 12; ++pj ){ | |
int o = (CJ * 768) + (pj * 64) + (CI * 8) + pi; | |
if( pix[o] == 0xFFD7D6D2 ){ | |
int w = 1; | |
int h = 1; | |
for (int i = 1; i < 8-pi; ++i ){ | |
if( pix[o+i] != 0xFFD7D6D2 ){ | |
w = i; | |
break; | |
} | |
} | |
for (int j = 1; j < 12-pj; ++j ){ | |
int q = (CJ * 768) + ((pj+j) * 64) + (CI * 8) + pi; | |
for (int i = 0; i < w; ++i ){ | |
if( pix[q+i] != 0xFFD7D6D2 ){ | |
h = j; | |
goto rect_found; | |
} | |
} | |
} | |
rect_found: | |
rcts[R++] = (SDL_Rect){ pi, pj, w, h }; | |
for (int j = 0; j < h; ++j ){ | |
int q = (CJ * 768) + ((pj+j) * 64) + (CI * 8) + pi; | |
for (int i = 0; i < w; ++i ){ | |
pix[q+i] = 0x00000000; | |
} | |
} | |
} | |
} | |
} | |
printf("\tcase '%c':\n", (CJ*8)+CI+32 ); | |
for (int r = 0; r < R; ++r ){ | |
printf("\t\tSDL_RenderFillRectF(R, &(SDL_FRect){(%d*scale)+x, (%d*scale)+y, %d*scale, %d*scale} );\n", rcts[r].x, rcts[r].y, rcts[r].w, rcts[r].h ); | |
} | |
printf("\t\tbreak;\n"); | |
} | |
} | |
abort(); | |
//*/ | |
char lorem [] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."; | |
char ascii [128]; | |
for (char i = '!'; i <= '~'; ++i ){ | |
ascii[i-'!'] = i; | |
} | |
ascii [127] = '\0'; | |
int mouseX = 0; | |
int mouseY = 0; | |
bool loop = 1; | |
puts("<<<Entering Main Loop>>>"); | |
while ( loop ) {//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /LOOP %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%||| | |
SDL_Event event; | |
while( SDL_PollEvent(&event) ){ | |
if( event.type == SDL_QUIT ){ | |
goto exit; | |
} | |
} | |
SDL_SetRenderDrawColor( renderer, 222, 222, 222, 255 ); | |
SDL_RenderClear( renderer ); | |
SDL_SetRenderDrawColor( renderer, 0, 0, 0, 255 ); | |
SDL_RenderText( renderer, "The quick brown fox jumps over the lazy dog", 3, 100, 100 ); | |
//SDL_RenderText( renderer, "0123456789", 2, 100, 150 ); | |
SDL_RenderTextWrapped( renderer, ascii, 2, 100, 150, 783 ); | |
SDL_RenderTextWrapped( renderer, lorem, 2, 458, 275, 450 ); | |
SDL_RenderPresent(renderer); | |
SDL_framerateDelay( 32 ); | |
}//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /LOOP %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%||| | |
exit: | |
puts("Exiting"); | |
SDL_DestroyRenderer(renderer); | |
SDL_Quit(); | |
return 0; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include "SDL_Text.h" | |
void SDL_RenderChar( SDL_Renderer *R, char C, float scale, float x, float y ){ | |
switch(C){ | |
case '!': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (2*scale)+y, 4*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (1*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (5*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (8*scale)+y, 2*scale, 2*scale} ); | |
break; | |
case '"': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (0*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (3*scale)+y, 1*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (0*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (3*scale)+y, 1*scale, 1*scale} ); | |
break; | |
case '#': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (3*scale)+y, 7*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (7*scale)+y, 7*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (1*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (4*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (8*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (1*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (4*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (8*scale)+y, 2*scale, 2*scale} ); | |
break; | |
case '$': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (3*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (7*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (2*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (5*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (8*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (0*scale)+y, 1*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (9*scale)+y, 1*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (3*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (6*scale)+y, 2*scale, 2*scale} ); | |
break; | |
case '%': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (3*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (9*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (7*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (6*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (5*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (4*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (8*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(6*scale)+x, (3*scale)+y, 1*scale, 1*scale} ); | |
break; | |
case '&': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (6*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (2*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (5*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (9*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (1*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (4*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (6*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (2*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (7*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (5*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (9*scale)+y, 2*scale, 1*scale} ); | |
break; | |
case '\'': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (3*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (0*scale)+y, 2*scale, 3*scale} ); | |
break; | |
case '(': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (3*scale)+y, 2*scale, 5*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (2*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (1*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (9*scale)+y, 2*scale, 1*scale} ); | |
break; | |
case ')': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (1*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (9*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (2*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (3*scale)+y, 2*scale, 5*scale} ); | |
break; | |
case '*': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (5*scale)+y, 1*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (3*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (5*scale)+y, 1*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (7*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (4*scale)+y, 4*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (3*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (7*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(6*scale)+x, (5*scale)+y, 1*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(7*scale)+x, (5*scale)+y, 1*scale, 1*scale} ); | |
break; | |
case '+': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (5*scale)+y, 6*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (3*scale)+y, 2*scale, 6*scale} ); | |
break; | |
case ',': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (10*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (7*scale)+y, 2*scale, 3*scale} ); | |
break; | |
case '-': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (5*scale)+y, 7*scale, 1*scale} ); | |
break; | |
case '.': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (8*scale)+y, 2*scale, 2*scale} ); | |
break; | |
case '/': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (7*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (8*scale)+y, 1*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (6*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (5*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (4*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (3*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (2*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(6*scale)+x, (1*scale)+y, 1*scale, 1*scale} ); | |
break; | |
case '0': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (3*scale)+y, 2*scale, 5*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (2*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (1*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (9*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (5*scale)+y, 1*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (2*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (3*scale)+y, 2*scale, 5*scale} ); | |
break; | |
case '1': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (3*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (9*scale)+y, 6*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (2*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (1*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (4*scale)+y, 2*scale, 5*scale} ); | |
break; | |
case '2': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (2*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (8*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (1*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (7*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (6*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (9*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (5*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (4*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (2*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
break; | |
case '3': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (2*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (1*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (9*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (5*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (2*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (6*scale)+y, 2*scale, 3*scale} ); | |
break; | |
case '4': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (5*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (4*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (3*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (6*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (2*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (9*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (1*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (4*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (7*scale)+y, 2*scale, 2*scale} ); | |
break; | |
case '5': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (1*scale)+y, 7*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (2*scale)+y, 2*scale, 4*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (9*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (5*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (6*scale)+y, 2*scale, 3*scale} ); | |
break; | |
case '6': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (3*scale)+y, 2*scale, 6*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (2*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (9*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (1*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (5*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (6*scale)+y, 2*scale, 3*scale} ); | |
break; | |
case '7': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (1*scale)+y, 7*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (2*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (6*scale)+y, 2*scale, 4*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (5*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (4*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (2*scale)+y, 2*scale, 2*scale} ); | |
break; | |
case '8': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (2*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (6*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (1*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (5*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (9*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (2*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (6*scale)+y, 2*scale, 3*scale} ); | |
break; | |
case '9': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (2*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (1*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (5*scale)+y, 6*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (9*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (2*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (6*scale)+y, 2*scale, 2*scale} ); | |
break; | |
case ':': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (2*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (7*scale)+y, 2*scale, 2*scale} ); | |
break; | |
case ';': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (9*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (2*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (7*scale)+y, 2*scale, 2*scale} ); | |
break; | |
case '<': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (5*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (4*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (6*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (3*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (7*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (2*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (1*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (9*scale)+y, 2*scale, 1*scale} ); | |
break; | |
case '=': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (4*scale)+y, 6*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (7*scale)+y, 6*scale, 1*scale} ); | |
break; | |
case '>': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (1*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (9*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (2*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (3*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (7*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (4*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (6*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (5*scale)+y, 2*scale, 1*scale} ); | |
break; | |
case '?': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (2*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (1*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (5*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (8*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (4*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (2*scale)+y, 2*scale, 2*scale} ); | |
break; | |
case '@': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (2*scale)+y, 2*scale, 7*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (1*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (9*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (4*scale)+y, 4*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (7*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (2*scale)+y, 2*scale, 2*scale} ); | |
break; | |
case 'A': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (4*scale)+y, 2*scale, 6*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (3*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (2*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (6*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (1*scale)+y, 1*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (3*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (4*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (7*scale)+y, 2*scale, 3*scale} ); | |
break; | |
case 'B': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (1*scale)+y, 6*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (9*scale)+y, 6*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (2*scale)+y, 2*scale, 7*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (5*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (2*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (6*scale)+y, 2*scale, 3*scale} ); | |
break; | |
case 'C': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (3*scale)+y, 2*scale, 5*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (2*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (1*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (9*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (2*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(6*scale)+x, (3*scale)+y, 1*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(6*scale)+x, (7*scale)+y, 1*scale, 1*scale} ); | |
break; | |
case 'D': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (1*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (9*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (2*scale)+y, 2*scale, 7*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (2*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (3*scale)+y, 2*scale, 5*scale} ); | |
break; | |
case 'E': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (1*scale)+y, 7*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (9*scale)+y, 7*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (2*scale)+y, 2*scale, 7*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (5*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (4*scale)+y, 1*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (6*scale)+y, 1*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (2*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(6*scale)+x, (3*scale)+y, 1*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(6*scale)+x, (7*scale)+y, 1*scale, 1*scale} ); | |
break; | |
case 'F': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (1*scale)+y, 7*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (9*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (2*scale)+y, 2*scale, 7*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (5*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (4*scale)+y, 1*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (6*scale)+y, 1*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (2*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(6*scale)+x, (3*scale)+y, 1*scale, 1*scale} ); | |
break; | |
case 'G': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (3*scale)+y, 2*scale, 5*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (2*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (1*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (9*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (6*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (2*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (7*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(6*scale)+x, (3*scale)+y, 1*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(6*scale)+x, (9*scale)+y, 1*scale, 1*scale} ); | |
break; | |
case 'H': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (1*scale)+y, 2*scale, 9*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (5*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (1*scale)+y, 2*scale, 4*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (6*scale)+y, 2*scale, 4*scale} ); | |
break; | |
case 'I': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (1*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (9*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (2*scale)+y, 2*scale, 7*scale} ); | |
break; | |
case 'J': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (7*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (9*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (1*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (2*scale)+y, 2*scale, 7*scale} ); | |
break; | |
case 'K': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (1*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (9*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (2*scale)+y, 2*scale, 7*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (5*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (3*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (6*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (1*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (8*scale)+y, 2*scale, 2*scale} ); | |
break; | |
case 'L': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (1*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (9*scale)+y, 7*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (2*scale)+y, 2*scale, 7*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(6*scale)+x, (7*scale)+y, 1*scale, 1*scale} ); | |
break; | |
case 'M': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (1*scale)+y, 2*scale, 9*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (2*scale)+y, 1*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (3*scale)+y, 4*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (5*scale)+y, 1*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (2*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (1*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (5*scale)+y, 2*scale, 5*scale} ); | |
break; | |
case 'N': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (1*scale)+y, 2*scale, 9*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (2*scale)+y, 1*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (3*scale)+y, 1*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (4*scale)+y, 3*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (1*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (7*scale)+y, 2*scale, 3*scale} ); | |
break; | |
case 'O': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (3*scale)+y, 2*scale, 5*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (2*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (1*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (9*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (2*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (3*scale)+y, 2*scale, 5*scale} ); | |
break; | |
case 'P': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (1*scale)+y, 6*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (9*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (2*scale)+y, 2*scale, 7*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (5*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (2*scale)+y, 2*scale, 3*scale} ); | |
break; | |
case 'Q': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (2*scale)+y, 2*scale, 6*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (1*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (8*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (6*scale)+y, 1*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (7*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (9*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (2*scale)+y, 2*scale, 5*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(6*scale)+x, (10*scale)+y, 1*scale, 1*scale} ); | |
break; | |
case 'R': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (1*scale)+y, 6*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (9*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (2*scale)+y, 2*scale, 7*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (5*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (6*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (2*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (7*scale)+y, 2*scale, 3*scale} ); | |
break; | |
case 'S': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (2*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (7*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (1*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (4*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (9*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (5*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (6*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (2*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (7*scale)+y, 2*scale, 2*scale} ); | |
break; | |
case 'T': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (1*scale)+y, 6*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (3*scale)+y, 1*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (9*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (3*scale)+y, 2*scale, 6*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(6*scale)+x, (3*scale)+y, 1*scale, 1*scale} ); | |
break; | |
case 'U': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (1*scale)+y, 2*scale, 8*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (9*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (1*scale)+y, 2*scale, 8*scale} ); | |
break; | |
case 'V': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (1*scale)+y, 2*scale, 6*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (7*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (8*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (9*scale)+y, 1*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (7*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (1*scale)+y, 2*scale, 6*scale} ); | |
break; | |
case 'W': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (1*scale)+y, 2*scale, 7*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (8*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (9*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (7*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (5*scale)+y, 1*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (9*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (1*scale)+y, 2*scale, 6*scale} ); | |
break; | |
case 'X': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (1*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (8*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (3*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (7*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (4*scale)+y, 3*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (3*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (7*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (1*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (8*scale)+y, 2*scale, 2*scale} ); | |
break; | |
case 'Y': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (1*scale)+y, 2*scale, 4*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (5*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (9*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (6*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (1*scale)+y, 2*scale, 4*scale} ); | |
break; | |
case 'Z': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (1*scale)+y, 7*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (2*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (3*scale)+y, 1*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (7*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (6*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (5*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (9*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (4*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (3*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (2*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(6*scale)+x, (7*scale)+y, 1*scale, 1*scale} ); | |
break; | |
case '[': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (1*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (2*scale)+y, 2*scale, 8*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (9*scale)+y, 2*scale, 1*scale} ); | |
break; | |
case '\\': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (1*scale)+y, 1*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (2*scale)+y, 1*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (3*scale)+y, 1*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (4*scale)+y, 1*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (5*scale)+y, 1*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (6*scale)+y, 1*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(6*scale)+x, (7*scale)+y, 1*scale, 3*scale} ); | |
break; | |
case ']': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (1*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (9*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (2*scale)+y, 2*scale, 7*scale} ); | |
break; | |
case '^': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (3*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (2*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (1*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (0*scale)+y, 1*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (2*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (3*scale)+y, 2*scale, 1*scale} ); | |
break; | |
case '_': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (11*scale)+y, 7*scale, 1*scale} ); | |
break; | |
case '`': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (0*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (2*scale)+y, 2*scale, 1*scale} ); | |
break; | |
case 'a': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (7*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (4*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (6*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (9*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (5*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (7*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (9*scale)+y, 2*scale, 1*scale} ); | |
break; | |
case 'b': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (1*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (2*scale)+y, 2*scale, 8*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (4*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (9*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (5*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (6*scale)+y, 2*scale, 3*scale} ); | |
break; | |
case 'c': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (5*scale)+y, 2*scale, 4*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (4*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (9*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (5*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
break; | |
case 'd': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (6*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (5*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (9*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (4*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (1*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (2*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (5*scale)+y, 2*scale, 4*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (9*scale)+y, 2*scale, 1*scale} ); | |
break; | |
case 'e': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (5*scale)+y, 2*scale, 4*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (4*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (9*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (6*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (5*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
break; | |
case 'f': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (5*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (9*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (2*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (6*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (1*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (2*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (3*scale)+y, 1*scale, 1*scale} ); | |
break; | |
case 'g': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (5*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (10*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (4*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (8*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (11*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (5*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (9*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (4*scale)+y, 2*scale, 1*scale} ); | |
break; | |
case 'h': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (1*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (9*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (2*scale)+y, 2*scale, 7*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (5*scale)+y, 1*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (4*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (5*scale)+y, 2*scale, 5*scale} ); | |
break; | |
case 'i': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (4*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (9*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (1*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (5*scale)+y, 2*scale, 4*scale} ); | |
break; | |
case 'j': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (9*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (11*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (4*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (1*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (5*scale)+y, 2*scale, 6*scale} ); | |
break; | |
case 'k': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (1*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (9*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (2*scale)+y, 2*scale, 7*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (6*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (5*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (7*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (4*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (8*scale)+y, 2*scale, 2*scale} ); | |
break; | |
case 'l': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (1*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (9*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (2*scale)+y, 2*scale, 7*scale} ); | |
break; | |
case 'm': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (4*scale)+y, 3*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (6*scale)+y, 2*scale, 4*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (5*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (6*scale)+y, 1*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (4*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (6*scale)+y, 2*scale, 4*scale} ); | |
break; | |
case 'n': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (4*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (5*scale)+y, 2*scale, 5*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (4*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (5*scale)+y, 2*scale, 5*scale} ); | |
break; | |
case 'o': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (5*scale)+y, 2*scale, 4*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (4*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (9*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (5*scale)+y, 2*scale, 4*scale} ); | |
break; | |
case 'p': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (4*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (11*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (5*scale)+y, 2*scale, 6*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (4*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (8*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (5*scale)+y, 2*scale, 3*scale} ); | |
break; | |
case 'q': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (5*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (4*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (8*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (11*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (5*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (9*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (4*scale)+y, 2*scale, 1*scale} ); | |
break; | |
case 'r': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (4*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (9*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (5*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (6*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (4*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (5*scale)+y, 2*scale, 2*scale} ); | |
break; | |
case 's': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (5*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (4*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (6*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (9*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (7*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (5*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
break; | |
case 't': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (4*scale)+y, 6*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (2*scale)+y, 2*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (5*scale)+y, 2*scale, 4*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (1*scale)+y, 1*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (9*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
break; | |
case 'u': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (4*scale)+y, 2*scale, 5*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (9*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (4*scale)+y, 2*scale, 5*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (9*scale)+y, 2*scale, 1*scale} ); | |
break; | |
case 'v': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (4*scale)+y, 2*scale, 4*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (8*scale)+y, 4*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (9*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (4*scale)+y, 2*scale, 4*scale} ); | |
break; | |
case 'w': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (4*scale)+y, 2*scale, 5*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (9*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (8*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (6*scale)+y, 1*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (9*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (4*scale)+y, 2*scale, 4*scale} ); | |
break; | |
case 'x': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (4*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (9*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (5*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (6*scale)+y, 3*scale, 2*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (5*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (4*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (9*scale)+y, 2*scale, 1*scale} ); | |
break; | |
case 'y': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (4*scale)+y, 2*scale, 4*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (11*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (8*scale)+y, 6*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (10*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (4*scale)+y, 2*scale, 4*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (9*scale)+y, 2*scale, 1*scale} ); | |
break; | |
case 'z': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (4*scale)+y, 7*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (5*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (9*scale)+y, 7*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (7*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (6*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (5*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (8*scale)+y, 2*scale, 1*scale} ); | |
break; | |
case '{': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (5*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (2*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (6*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (1*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (9*scale)+y, 3*scale, 1*scale} ); | |
break; | |
case '|': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (1*scale)+y, 2*scale, 4*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (6*scale)+y, 2*scale, 4*scale} ); | |
break; | |
case '}': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (1*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (9*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (2*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (6*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (5*scale)+y, 3*scale, 1*scale} ); | |
break; | |
case '~': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (2*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (1*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (2*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (1*scale)+y, 2*scale, 1*scale} ); | |
break; | |
case '⌂': | |
SDL_RenderFillRectF(R, &(SDL_FRect){(0*scale)+x, (6*scale)+y, 2*scale, 3*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(1*scale)+x, (5*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (4*scale)+y, 3*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(2*scale)+x, (8*scale)+y, 5*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(3*scale)+x, (3*scale)+y, 1*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(4*scale)+x, (5*scale)+y, 2*scale, 1*scale} ); | |
SDL_RenderFillRectF(R, &(SDL_FRect){(5*scale)+x, (6*scale)+y, 2*scale, 2*scale} ); | |
break; | |
} | |
} | |
void SDL_RenderText( SDL_Renderer *R, char *string, float scale, float x, float y ){ | |
for (int i = 0; string[i] != '\0'; ++i ){ | |
SDL_RenderChar( R, string[i], scale, x + (8 * scale * i), y ); | |
} | |
} | |
void SDL_RenderTextWrapped( SDL_Renderer *R, char *string, float scale, float x, float y, float width ){ | |
int len = strlen( string ); | |
float cx = x; | |
float line_end = x + width; | |
float cy = y; | |
for ( int i = 0; i < len; ){ | |
int ww = 0;//word width | |
int we = len;//word end | |
for (int j = i; j < len; ++j){ | |
if( (uint8_t)(string[j]) < '!' ){ | |
we = j; | |
break; | |
} | |
ww += (8*scale); | |
if( ww > width ){ | |
ww -= 1; | |
we = j-1; | |
break; | |
} | |
} | |
if( cx + ww >= line_end ){ | |
cx = x; | |
cy += (scale*LINE_HEIGHT); | |
} | |
while( i < we ){ | |
SDL_RenderChar( R, string[i], scale, cx, cy ); | |
cx += (8*scale); | |
++i; | |
} | |
if( i >= len ) break; | |
while( !(isalnum( string[i] ) || (uint8_t)(string[i]) > 0x7F) ){ | |
if( string[i] == ' ' ){ | |
if( cx + (8*scale) > line_end ){ | |
cx = x; | |
cy += (scale*LINE_HEIGHT); | |
} | |
else cx += (8*scale); | |
} | |
else if( string[i] == '\t' ){ | |
if( cx + (24*scale) > line_end ){ | |
cx = x; | |
cy += (scale*LINE_HEIGHT); | |
} | |
else cx += (24*scale); | |
} | |
else if( string[i] == '\n' ){ | |
cx = x; | |
cy += (scale*LINE_HEIGHT); | |
} | |
else if( (uint8_t)(string[i]) < '!' ){ //|| string[j] > '~' | |
if( cx + (8*scale) > line_end ){ | |
cx = x + (8*scale); | |
cy += (scale*LINE_HEIGHT); | |
} | |
else cx += (8*scale); | |
} | |
else{ | |
break; | |
} | |
++i; | |
if( i >= len ) break; | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#ifndef SDL_TEXT_H_INCLUDED | |
#define SDL_TEXT_H_INCLUDED | |
#include <SDL.h> | |
#include <ctype.h> | |
#define LINE_HEIGHT 12 | |
void SDL_RenderChar( SDL_Renderer *R, char C, float scale, float x, float y ); | |
void SDL_RenderText( SDL_Renderer *R, char *string, float scale, float x, float y ); | |
void SDL_RenderTextWrapped( SDL_Renderer *R, char *string, float scale, float x, float y, float width ); | |
#endif |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment