Added sdl_render_to_texture.cpp
This commit is contained in:
parent
727f785a36
commit
efd04cbd55
56
sdl_render_to_texture.cpp
Normal file
56
sdl_render_to_texture.cpp
Normal file
@ -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;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user