рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ рдФрд░ рдПрд╕рдбреАрдПрд▓ 2 рдкрд░ рдкрд╛рдВрдЪрд╡реЗрдВ рдкрд╛рда рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рдХрд╛рдо рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ, рдмрдирд╛рд╡рдЯ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗред рдЖрдк рдЕрдВрдЧреНрд░реЗрдЬреА рдХреЗ рд╕рднреА рдкрд╛рда
рдпрд╣рд╛рдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рджреВрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдПрд╕рдбреАрдПрд▓, рдмрдирд╛рд╡рдЯ рдмрдирд╛рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдЕрд╡рд╕рд░ рд╣реИред рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдПрдХ рд╡рд┐рдВрдбреЛ рдореЗрдВ рд╕рддрд╣реЛрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рддреЗрдЬ рд╣реИред
рдмрдирд╛рд╡рдЯ рдХрд╛ рдЕрдкрдирд╛ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╣реИ -
SDL_Texture ред рдЬрдм рдмрдирд╛рд╡рдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдПрдХ рд░реЗрдВрдбрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЕрдм рд╣рдо рдпрд╣ рд╕рдм рдШреЛрд╖рдгрд╛ рдХрд░реЗрдВрдЧреЗред
#include <SDL2/SDL.h> #include <SDL2/SDL_image.h> #include <iostream> using namespace std; int SCREEN_WIDTH = 640; int SCREEN_HEIGHT = 480; SDL_Window *win = NULL; SDL_Renderer *ren = NULL; SDL_Texture *flower = NULL;
рдпрд╣рд╛рдВ рд╣рдордиреЗ рдЦрд┐рдбрд╝рдХреА, рд░реЗрдВрдбрд░ рдФрд░ рдЗрд╕ рдлреВрд▓ рдХреА рдШреЛрд╖рдгрд╛ рдХреАред

рд╣рдордиреЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рднреА рдХрдиреЗрдХреНрдЯ рдХреА рд╣реИрдВ рдФрд░ рд╡рд┐рдВрдбреЛ рд╕рд╛рдЗрдЬрд╝ рд╕реЗрдЯ рдХрд┐рдП рд╣реИрдВред
Init рдлрд╝рдВрдХреНрд╢рди рдХреЛ рднреА рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред
bool ok = true; if (SDL_Init(SDL_INIT_VIDEO) != 0) { cout << "Can't init: " << SDL_GetError() << endl; ok = false; } win = SDL_CreateWindow("", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN); if (win == NULL) { cout << "Can't create window: " << SDL_GetError() << endl; ok = false; }
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ,
рдареАрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдмрдирд╛рдПрдВ, рддрд╛рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рддреБрд░рдВрдд рд╕рдорд╛рдкреНрдд рди рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдкреНрд░рд╛рд░рдВрдн рдХреЗ рджреМрд░рд╛рди рд╕рднреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдПред рдЕрдЧрд▓рд╛, рдПрд╕рдбреАрдПрд▓ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░реЗрдВ рдФрд░ рдПрдХ рдЬреНрдЮрд╛рдд рддрд░реАрдХреЗ рд╕реЗ рдПрдХ рд╡рд┐рдВрдбреЛ рдмрдирд╛рдПрдВред
рдпрд╣ рдПрдХ рд░реЗрдВрдбрд░ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред
ren = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); if (ren == NULL) { cout << "Can't create renderer: " << SDL_GetError() << endl; ok = false; } SDL_SetRenderDrawColor(ren, 0xFF, 0xFF, 0xFF, 0xFF);
рд░реЗрдВрдбрд░
SDL_CreateRenderer рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ 3 рдорд╛рди рд▓реЗрддрд╛ рд╣реИ: рдПрдХ рд╡рд┐рдВрдбреЛ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЗрд╕ рд░реЗрдВрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдПрдХ рдбреНрд░рд╛рдЗрд╡рд░ рдЗрдВрдбреЗрдХреНрд╕ (рдпрд╛ -1 рдпрджрд┐ рд╣рдо рдкрд╣рд▓реЗ рдЙрдкрдпреБрдХреНрдд рдХреЛ рдвреВрдВрдврдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ) рдФрд░ рдЭрдВрдбреЗред рдореИрдВрдиреЗ рдЭрдВрдбреЗ
SDL_RENDERER_ACCELERATED рдФрд░
SDL_RENDERER_PRESENTVILYNC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдпрд╣рд╛рдБ рд╕рднреА рдЭрдВрдбреЛрдВ рдХреА рд╕реВрдЪреА рджреА рдЧрдИ рд╣реИ:
рдЭрдВрдбреЗSDL_RENDERER_SOFTWARE - рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕реА ;
SDL_RENDERER_ACCELERATED - рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рддреНрд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ;
SDL_RENDERER_PRESENTVSYNC - рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди;
SDL_RENDERER_TARGETTEXTURE - рдмрдирд╛рд╡рдЯ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред
рдЕрдЧрд▓рд╛, рд╣рдо
SDL_SetRenderDrawColor рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдбреНрд░рд╛рдЗрдВрдЧ рдХреЛ рдкреНрд░рд┐рдорд┐рдЯрд┐рд╡ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рдЙрд╕рдХреЗ рдмрд╛рдж,
IMG рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░реЗрдВ рдФрд░
рдУрдХреЗ рд▓реМрдЯреЗрдВред
int flags = IMG_INIT_PNG; if (!(IMG_Init(flags) & flags)) { cout << "Can't init image: " << IMG_GetError() << endl; ok = false; } return ok; }
рдЕрдм рд╣рдо
рд▓реЛрдб рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрддреЗ рд╣реИрдВред
bool load() { bool ok = true; SDL_Surface * temp_surf = NULL; temp_surf = IMG_Load("flower.png"); if (temp_surf == NULL) { cout << "Can't load image: " << IMG_GetError() << endl; ok = false; }
рдпрд╣рд╛рдВ рд╣рдордиреЗ рдЙрд╕реА рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП,
рдареАрдХ рд╡реИрд░рд┐рдПрдмрд▓ рднреА рдмрдирд╛рдпрд╛ рд╣реИред рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╕рддрд╣ рдмрдирд╛рдИ рдФрд░ рдЙрд╕рдореЗрдВ рдлреВрд▓реЛрдВ рдХреЗ рдЪрд┐рддреНрд░ рдЙрддрд╛рд░реЗред
рдЖрдЧреЗ рд╣рдореЗрдВ рд╕рддрд╣ рд╕реЗ рдПрдХ рдмрдирд╛рд╡рдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
flower = SDL_CreateTextureFromSurface(ren, temp_surf); if (flower == NULL) { cout << "Can't create texture from surface: " << SDL_GetError() << endl; ok = false; }
рд╕рдорд╛рд░реЛрд╣
SDL_CreateTextureFromSurface рдмрдирд╛рд╡рдЯ рдмрдирд╛рдиреЗ рдореЗрдВ рд╣рдорд╛рд░реА рдорджрдж рдХрд░реЗрдЧрд╛ред рдпрд╣ рд░реЗрдВрдбрд░ рдФрд░ рд╕рд░рдлреЗрд╕ рд╡реИрд▓реНрдпреВрдЬрд╝ рдХреЛ рд▓реЗрддрд╛ рд╣реИред рдпрд╣
SDL_Texture рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реИред
рд╕реНрдореГрддрд┐ рдХреЛ рд░реЛрдХрдирд╛ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЕрд╕реНрдерд╛рдпреА рд╕рддрд╣ рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж,
рдУрдХреЗ рд▓реМрдЯреЗрдВ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рддреИрдпрд╛рд░ рд╣реИред
рдХреНрд╡рд┐рдЯ рдлрд╝рдВрдХреНрд╢рди рдиреЗ рдХреБрдЫ рдФрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рд╣реИред
void quit() { SDL_DestroyWindow(win); win = NULL; SDL_DestroyRenderer(ren); ren = NULL; SDL_DestroyTexture(flower); flower = NULL; SDL_Quit(); IMG_Quit(); }
рдпрд╣рд╛рдБ рд╣рдордиреЗ рд╡рд┐рдВрдбреЛ, рд░реЗрдВрдбрд░, рдЯреЗрдХреНрд╕рдЪрд░ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдФрд░
SDL рдФрд░
IMG рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рдореИрдВрдиреЗ рд╕рднреА рд╣рдЯрд╛рдП рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдФрд░ рднреА рдмреЗрд╣рддрд░ рдореЗрдореЛрд░реА рдХреНрд▓реАрдирдЕрдк рдХреЗ рд▓рд┐рдП
NULL рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ред
рд╣рдо
рдореБрдЦреНрдп рдХрд╛рд░реНрдп рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
int main (int argc, char ** argv) { if (!init()) { quit(); return 1; } if (!load()) { quit(); return 1; }
рд╣рдордиреЗ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдФрд░ рд▓реЛрдбрд┐рдВрдЧ рд▓рд┐рдЦрд╛ рд╣реИ, рд╣рдо рдпрд╣рд╛рдБ рдирд╣реАрдВ рд░реБрдХрддреЗред
рдЕрдЧрд▓рд╛ рдЪрд░рдг 2 рдЪрд░ рдмрдирд╛рдирд╛ рд╣реИред
bool run = true; SDL_Event e;
рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд╕реНрдореГрддрд┐ рдХреЛ рддрд╛рдЬрд╝рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрдЦреНрдп рдЪрдХреНрд░ рд╣реЛрдЧрд╛, рддреЛ рдЪрд▓рд┐рдП рдЗрд╕реЗ рдЦреЛрд▓рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
while (run) { while(SDL_PollEvent(&e) != 0) { if (e.type == SDL_QUIT) { run = false; } }
рдХреНрд░реЙрд╕ рдХреЛ рджрдмрд╛рдиреЗ рдХреА рдШрдЯрдирд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдмрд╛рдд рд╣реИред
рдпрд╣ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдмрдирд╛рд╡рдЯ рдФрд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЙрди рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВред рддреИрдпрд╛рд░ рдмрдирд╛рд╡рдЯ рдХреА рд╕реНрдХреНрд░реАрди рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
SDL_RenderClear рдлрд╝рдВрдХреНрд╢рди рдХрд╛
рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдпрд╣ рд╕реНрдХреНрд░реАрди рдХреЛ рдЙрд╕ рд░рдВрдЧ рд╕реЗ рдкреЗрдВрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ
SDL_SetRenderDrawColor рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИред рдлрд╝рдВрдХреНрд╢рди SDL_RenderCopy рдХрд╛
рдЙрдкрдпреЛрдЧ рдмрдирд╛рд╡рдЯ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕реНрдХреНрд░реАрди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SDL_RenderPresent рдХрд╛
рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдм рд╣рдо рдЙрдиреНрд╣реЗрдВ рд▓рд┐рдЦреЗрдВрдЧреЗ
SDL_RenderClear(ren); SDL_RenderCopy(ren, flower, NULL, NULL); SDL_RenderPresent(ren); }
рд╣рдо рдХреЗрд╡рд▓
SDL_RenderCopy рдлрд╝рдВрдХреНрд╢рди
рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗред рдЗрд╕рдХреЗ 4 рдЕрд░реНрде рд▓рдЧрддреЗ рд╣реИрдВред рдкрд╣рд▓рд╛ рдПрдХ рд░реЗрдВрдбрд░ рд╣реИ, рджреВрд╕рд░рд╛ рдПрдХ рдЯреЗрдХреНрд╕рдЪрд░ рд╣реИ, рддреАрд╕рд░рд╛ рдПрдХ рдЖрдпрддрд╛рдХрд╛рд░ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдХреНрд╖реЗрддреНрд░ рд╣рдо рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдХрд╛рдЯрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЪреМрдерд╛ рдПрдХ рдЖрдпрдд рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╕рдордиреНрд╡рдп рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдмрдирд╛рд╡рдЯ рдХреЛ рдЖрдХрд╛рд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрддреА рд╣реИред
рдЕрдЧрд▓рд╛,
рдХреНрд╡рд┐рдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ рдФрд░
0 рд▓реМрдЯреЗрдВред
quit(); return 0; }
рдЗрд╕ рдкрд░ рдореИрдВ рд╕рдмрдХ рдЦрддреНрдо рдХрд░ рджреВрдВрдЧрд╛, рдЕрдЧрд░ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдерд╛ - рд▓рд┐рдЦреЛ, рдФрд░ рдореИрдВ рдЕрд▓рд╡рд┐рджрд╛ рдХрд╣рддрд╛ рд╣реВрдВ, рдЕрднреА рдХреЗ рд▓рд┐рдП рдЕрд▓рд╡рд┐рджрд╛!
рд╡реИрд╕реЗ, рдпрд╣рд╛рдБ рдкреВрд░реНрдг рдХреЛрдб рд╣реИ:
#include <SDL2/SDL.h> #include <SDL2/SDL_image.h> #include <iostream> using namespace std; int SCREEN_WIDTH = 640; int SCREEN_HEIGHT = 480; SDL_Window *win = NULL; SDL_Renderer *ren = NULL; SDL_Texture *flower = NULL; bool init() { bool ok = true; if (SDL_Init(SDL_INIT_VIDEO) != 0) { cout << "Can't init: " << SDL_GetError() << endl; ok = false; } win = SDL_CreateWindow("", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN); if (win == NULL) { cout << "Can't create window: " << SDL_GetError() << endl; ok = false; } ren = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); if (ren == NULL) { cout << "Can't create renderer: " << SDL_GetError() << endl; ok = false; } SDL_SetRenderDrawColor(ren, 0xFF, 0xFF, 0xFF, 0xFF); int flags = IMG_INIT_PNG; if (!(IMG_Init(flags) & flags)) { cout << "Can't init image: " << IMG_GetError() << endl; ok = false; } return ok; } bool load() { bool ok = true; SDL_Surface * temp_surf = NULL; temp_surf = IMG_Load("flower.png"); if (temp_surf == NULL) { cout << "Can't load image: " << IMG_GetError() << endl; ok = false; } flower = SDL_CreateTextureFromSurface(ren, temp_surf); if (flower == NULL) { cout << "Can't create texture from surface: " << SDL_GetError() << endl; ok = false; } SDL_FreeSurface(temp_surf); return ok; } void quit() { SDL_DestroyWindow(win); win = NULL; SDL_DestroyRenderer(ren); ren = NULL; SDL_DestroyTexture(flower); flower = NULL; SDL_Quit(); IMG_Quit(); } int main (int argc, char ** argv) { if (!init()) { quit(); return 1; } if (!load()) { quit(); return 1; } bool run = true; SDL_Event e; while (run) { while(SDL_PollEvent(&e) != 0) { if (e.type == SDL_QUIT) { run = false; } } SDL_RenderClear(ren); SDL_RenderCopy(ren, flower, NULL, NULL); SDL_RenderPresent(ren); } quit(); return 0; }
| рдкрд┐рдЫрд▓рд╛ рдкрд╛рда | рдЕрдЧрд▓рд╛ рдкрд╛рда
тЖТ