// @COMPILECMD g++ $@ $(pkg-config --libs SDL2_image SDL2_ttf) -ggdb #include #include #include // Window dimensions const int WINDOW_WIDTH = 800; const int WINDOW_HEIGHT = 600; int main() { SDL_Init(SDL_INIT_VIDEO); IMG_Init(IMG_INIT_JPG); SDL_Window* window = SDL_CreateWindow("Texture Example", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, WINDOW_WIDTH, WINDOW_HEIGHT, SDL_WINDOW_SHOWN); SDL_Renderer* windowRenderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED); SDL_Texture* texture1 = IMG_LoadTexture(windowRenderer, "dog.jpg"); SDL_Texture* texture2 = IMG_LoadTexture(windowRenderer, "dog2.jpg"); SDL_Texture* texture3 = SDL_CreateTexture(windowRenderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, WINDOW_WIDTH, WINDOW_HEIGHT); SDL_SetRenderTarget(windowRenderer, texture3); SDL_SetRenderDrawColor(windowRenderer, 0, 0, 0, 255); SDL_RenderClear(windowRenderer); // SDL_Rect r = {0, 0, 300, 300}; SDL_RenderCopy(windowRenderer, texture1, nullptr, &r); r.x = 300; SDL_RenderCopy(windowRenderer, texture2, nullptr, &r); SDL_SetRenderTarget(windowRenderer, nullptr); SDL_SetRenderDrawColor(windowRenderer, 255, 255, 255, 255); SDL_RenderClear(windowRenderer); SDL_RenderCopy(windowRenderer, texture3, nullptr, nullptr); SDL_RenderPresent(windowRenderer); // Wait for user exit bool quit = false; SDL_Event event; while (!quit) { while (SDL_PollEvent(&event)) { if (event.type == SDL_QUIT) { quit = true; } } } IMG_Quit(); SDL_Quit(); return 0; }