рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ: рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рд╣реЛрдХрд░, рдореИрдВрдиреЗ рдПрд╕рдбреАрдПрд▓ рдореЗрдВ рдЕрдкрдирд╛ рд╣рд╛рде рдЖрдЬрдорд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд╣рд╛рдВ, рдпрд╣ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣реИ, рдореИрдВ рд░реВрд╕реА рдореЗрдВ рдПрд╕рдбреАрдПрд▓ рд╕рдВрд╕реНрдХрд░рдг 2.0 рдкрд░ рдХреЛрдИ рд╕рдордЭрджрд╛рд░ рд╕рдмрдХ рдирд╣реАрдВ рдкрд╛ рд╕рдХрд╛ред рдЗрд╕рдиреЗ рдореБрдЭреЗ рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рдореВрд▓ рдореЗрдВ рдЯреНрд╡рд┐рдВрдХрд▓рдмрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреА рдЕрджреНрднреБрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛редрдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!
рдЗрди рдкрд╛рдареЛрдВ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЖрдкрдХреЛ рдПрд╕рдбреАрдПрд▓ 2.0 рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рдФрд░ рд╕реА ++ рдЧреЗрдо рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░рд╛рдирд╛ рд╣реИред рдпрд╣ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдкрд╛рдардХ рдХреЛ рдХреБрдЫ рд╕реА ++ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЕрдиреБрднрд╡ рдФрд░ рд╕рд░рдгрд┐рдпреЛрдВ, рд╡реИрдХреНрдЯрд░, рдирд┐рдпрдВрддреНрд░рдг рд╕рдВрд░рдЪрдирд╛рдУрдВ, рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рд╕рдВрдХреЗрдд рдХрд╛ рдиреНрдпреВрдирддрдо рдЬреНрдЮрд╛рди рд╣реИред
рдпрджрд┐ рдЖрдкрдХреЛ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдХреЛрдб рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдореЗрдВ рдХрдард┐рдирд╛рдИ рд╣реЛ рд░рд╣реА рд╣реИ, рддреЛ
StackOverflow рдкрд░ рдЗрд╕ рдЕрджреНрднреБрдд рд╕реВрдЪреА рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдкреБрд╕реНрддрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдпрджрд┐ рдЖрдк рдкреВрд░реНрдг рд╕реНрд░реЛрдд рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рдкрд╛рда рдХреЗ рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕рдм
GitHub рдкрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред рд▓реЗрдХрд┐рди рдирдХрд▓ рдордд рдХрд░реЛ!
рдЗрд╕ рд╡рд┐рдХреА рдкрд░ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП SDL 2.0 рдкреНрд░рд▓реЗрдЦрди рднреА рдЙрдкрд▓рдмреНрдз рд╣реИред
рдкрд╛рда 1: рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб!
рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдо рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ рдПрдХ рд╡рд┐рдВрдбреЛ рдХреИрд╕реЗ рдЦреЛрд▓реЗрдВ, рдПрдХ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╕рдВрджрд░реНрдн рдмрдирд╛рдПрдВ рдФрд░ рд╕реНрдХреНрд░реАрди рдкрд░ рд▓реЛрдб рдХреА рдЧрдИ рдЫрд╡рд┐ рдмрдирд╛рдПрдВред рдиреАрдЪреЗ рдЖрдк рдПрдХ рдмреАрдПрдордкреА рдЪрд┐рддреНрд░ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдо рдЖрдХрд░реНрд╖рд┐рдд рдХрд░реЗрдВрдЧреЗред рдЗрд╕реЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХрд╣реАрдВ рд╕реЗрд╡ рдХрд░реЗрдВред рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИ!

SDL рд▓реЙрдиреНрдЪ
рдкрд╣рд▓рд╛ рдХрджрдо рдЖрдорддреМрд░ рдкрд░ рдПрд╕рдбреАрдПрд▓ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реИред
#include <SDL2/SDL.h>
рдПрд╕рдбреАрдПрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЙрди рд╡рд┐рднрд┐рдиреНрди рдПрд╕рдбреАрдПрд▓ рдЙрдк-рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рдирдХрд╛ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣
SDL_Init рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ
рдЭрдВрдбреЗ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдЬреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХрд┐рд╕ рдЙрдкрддрдВрддреНрд░ рдХреЛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЕрдм рд╣рдо рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рд╕рдм рдХреБрдЫ рдЖрд░рдВрдн рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рда рдХреЗ рд▓рд┐рдП рдЬреЛ рдиреНрдпреВрдирддрдо рдЖрд╡рд╢реНрдпрдХ рд╣реИ рд╡рд╣ рд╣реИ SDL_INIT_VIDEOред рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ SDL_Init 0 рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛, рдЕрдиреНрдпрдерд╛ рд╣рдо рдПрдХ рддреНрд░реБрдЯрд┐ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВрдЧреЗред
рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдзреНрдпрд╛рди рджреЗрдВ: рдпрджрд┐ рдЖрдк рд╕рд┐рд╕реНрдЯрдо рдореВрд▓реНрдп рдХреЛ рд▓рд┐рдВрдХрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХрдВрд╕реЛрд▓ рдХреЛ рдорд╛рдирдХ рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛ред рдРрд╕рд╛ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рд┐рд╕реНрдЯрдо рдорд╛рди рдХреЛ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред if (SDL_Init(SDL_INIT_EVERYTHING) != 0){ std::cout << "SDL_Init Error: " << SDL_GetError() << std::endl; return 1; }
рдЦрд┐рдбрд╝рдХреА рдЦреЛрд▓рдирд╛
рд╣рдореЗрдВ рдПрдХ рд╡рд┐рдВрдбреЛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╣рдо рдЗрд╕реЗ рд░реЗрдВрдбрд░ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХреЗрдВред рд╣рдо рдЗрд╕реЗ
SDL_CreateWindow рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╡рд┐рдВрдбреЛ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛ, рдЙрд╕рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ, рдКрдВрдЪрд╛рдИ, рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдХреБрдЫ
рдЭрдВрдбреЗ рдХрд╛ рдирд╛рдо рд▓реЗрддрд╛ рд╣реИред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди SDL_Window * рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдпрд╣ рдкреЙрдЗрдВрдЯрд░ NULL рд╣реЛрдЧрд╛ рдпрджрд┐ рд╡рд┐рдВрдбреЛ рдмрдирд╛рддреЗ рд╕рдордп рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
SDL_Window *win = SDL_CreateWindow("Hello World!", 100, 100, 640, 480, SDL_WINDOW_SHOWN); if (win == nullptr){ std::cout << "SDL_CreateWindow Error: " << SDL_GetError() << std::endl; return 1; }
рд░реЗрдВрдбрд░рд░ рдХреНрд░рд┐рдПрд╢рди
рдЕрдм рд╣рдо
SDL_CreateRenderer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░реЗрдВрдбрд░рд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЦрд┐рдбрд╝рдХреА рдореЗрдВ рдЦреАрдВрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдЙрд╕ рд╡рд┐рдВрдбреЛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд░реЗрдВрдбрд░рд░ рдЬреБрдбрд╝рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдбреНрд░рд╛рдЗрд╡рд░ рдЗрдВрдбреЗрдХреНрд╕ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдпрд╛ рд╣рдорд╛рд░реА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рдкрд╣рд▓реЗ рд╡рд╛рд▓реЗ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдФрд░ рд░реЗрдВрдбрд░ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рднрд┐рдиреНрди
рдЭрдВрдбреЗ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рддреНрд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рд░реЗрдВрдбрд░рд░ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рддреБрд▓реНрдпрдХрд╛рд▓рди рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВред рд╣рдореЗрдВ SDL_Renderer * рдорд┐рд▓реЗрдЧрд╛, рдЬреЛ рдХреБрдЫ рдЧрд▓рдд рд╣реЛрдиреЗ рдкрд░ NULL рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
SDL_Renderer *ren = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); if (ren == nullptr){ std::cout << "SDL_CreateRenderer Error: " << SDL_GetError() << std::endl; return 1; }
рдмреАрдПрдордкреА рдЫрд╡рд┐ рдЕрдкрд▓реЛрдб
BMP рдЫрд╡рд┐ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдлрд┐рд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рдЬрд┐рд╕реЗ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, GPU)ред рд╣рдо
SDL_LoadBMP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЫрд╡рд┐ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди
SDL_Surface * рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо
SDL_Texture рдореЗрдВ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЗрд╕реЗ рд░реЗрдВрдбрд░рд░ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
SDL_LoadBMP рд╣рдорд╛рд░реА рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП рдкрде рд▓реЗрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдлрд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдпрджрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реЛ рддреЛ SDL_Surface * рдпрд╛ NULL рд▓реМрдЯрд╛рддрд╛ рд╣реИред
SDL_Surface *bmp = SDL_LoadBMP("../res/Lesson1/hello.bmp"); if (bmp == nullptr){ std::cout << "SDL_LoadBMP Error: " << SDL_GetError() << std::endl; return 1; }
рдЕрдм рд╣рдо
SDL_CreateTextureFromSurface рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЫрд╡рд┐ рдХреЛ рд░реЗрдВрдбрд░рд░ рдореЗрдВ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдкреНрд░рддрд┐рдкрд╛рджрди рд╕рдВрджрд░реНрдн рдФрд░ рдЪрд┐рддреНрд░ рдХреЛ рдореЗрдореЛрд░реА (SDL_Surface) рдореЗрдВ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╣рдореЗрдВ рднрд░реА рд╣реБрдИ рдмрдирд╛рд╡рдЯ рдорд┐рд▓рддреА рд╣реИред рдЕрдЧрд░ рдХреБрдЫ рдЧрд▓рдд рд╣реБрдЖ, рддреЛ рд╣рдореЗрдВ NULL рдорд┐рд▓реЗрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдореЗрдВ рдЕрдм SDL_Surface рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕рдореЗрдВ рдореМрдЬреВрдж рдореЗрдореЛрд░реА рдХреЛ рдЦрд╛рд▓реА рдХрд░ рджреЗрдВрдЧреЗред
SDL_Texture *tex = SDL_CreateTextureFromSurface(ren, bmp); SDL_FreeSurface(bmp); if (tex == nullptr){ std::cout << "SDL_CreateTextureFromSurface Error: " << SDL_GetError() << std::endl; return 1; }
рдмрдирд╛рд╡рдЯ рдкреНрд░рддрд┐рдкрд╛рджрди
рд╕реНрдХреНрд░реАрди рдкрд░ рд╣рдорд╛рд░реА рдмрдирд╛рд╡рдЯ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдЗрддрдирд╛ рдХрд░рдирд╛ рдмрд╛рдХреА рд╣реИ! рдкрд╣рд▓реЗ рд╣рдо рд░реЗрдВрдбрд░рд░ рдХреЛ
рд╕рд╛рдл рдХрд░рддреЗ рд╣реИрдВ , рдЙрд╕рдХреЗ рдмрд╛рдж рд╣рдо
рдмрдирд╛рд╡рдЯ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВ , рдФрд░ рдлрд┐рд░
рд╣рдо рдкрд░рд┐рдгрд╛рдо рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди рд╕реНрдХреНрд░реАрди
рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рд╣рдо рдкреВрд░реА рдЫрд╡рд┐ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рд╕реНрдХреНрд░реАрди рдХреЛ рдлрд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЦрд┐рдВрдЪрд╛рд╡ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо NULL рдХреЛ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░реЗрдВрдЧреЗ рдФрд░ SDL_RenderCopy рдХреЗ рд▓рд┐рдП рдЖрдпрддреЛрдВ рдХреЛ рд▓рдХреНрд╖реНрдп рдХрд░реЗрдВрдЧреЗред рд╣рдо рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рддрдХ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЦрд┐рдбрд╝рдХреА рдХреЛ рдЦреБрд▓рд╛ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо
SDL_Delay рдХреЙрд▓
рдЬреЛрдбрд╝реЗрдВрдЧреЗ ред
SDL_RenderClear(ren); SDL_RenderCopy(ren, tex, NULL, NULL); SDL_RenderPresent(ren); SDL_Delay(2000);
рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣
рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди SDL_DestroyX рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд╕рд╛рде рдмрдирд╛рдИ рдЧрдИ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдирд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ SDL рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
SDL_DestroyTexture(tex); SDL_DestroyRenderer(ren); SDL_DestroyWindow(win); SDL_Quit();
рдкрд╛рда рдХрд╛ рдЕрдВрдд
рдпрджрд┐ рд╕рдлрд▓ рд╣реЛ, рддреЛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдЖрдкрдХреЛ рдкреВрд░реА рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЫрд╡рд┐ рджреЗрдЦрдиреА рдЪрд╛рд╣рд┐рдП, рдФрд░ рджреЛ рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдПрд╕рдбреАрдПрд▓ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдПрд╕рдбреАрдПрд▓ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддреГрдд рдирд┐рд░реНрджреЗрд╢
рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз
рд╣реИрдВ ред
рдЬрд▓реНрдж рд╣реА рдЖрдкрдХреЛ
рдкрд╛рда 2 рдореЗрдВ рджреЗрдЦреЗрдВ
: рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╕рдм рдХреБрдЫ рдзрдХреНрдХрд╛ рди рджреЗрдВ ред