diff --git a/sdl_render_to_texture.cpp b/sdl_render_to_texture.cpp
new file mode 100644
index 0000000..c3d9f04
--- /dev/null
+++ b/sdl_render_to_texture.cpp
@@ -0,0 +1,56 @@
+// @COMPILECMD g++ $@ $(pkg-config --libs SDL2_image SDL2_ttf) -ggdb
+#include <SDL2/SDL.h>
+#include <SDL2/SDL_image.h>
+#include <iostream>
+
+// 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;
+}