mirror of
https://github.com/libSDL2pp/libSDL2pp.git
synced 2025-09-08 06:48:56 -04:00
Get rid of magic constants in rendertarget demo
This commit is contained in:
parent
cb8153ab83
commit
1ef083b40d
@ -35,9 +35,16 @@ unsigned char pixels[4 * 4 * 4] = {
|
||||
RGBA(0x80, 0x00, 0xff, 0xff), RGBA(0x00, 0x00, 0xff, 0xff), RGBA(0x00, 0x80, 0xff, 0xff), RGBA(0x00, 0xff, 0xff, 0xff),
|
||||
};
|
||||
|
||||
enum {
|
||||
MY_SPRITE_SIZE = 4,
|
||||
MY_SCREEN_WIDTH = 640,
|
||||
MY_SCREEN_HEIGHT = 480,
|
||||
MY_RENDERTARGET_SIZE = 512,
|
||||
};
|
||||
|
||||
int Run() {
|
||||
SDL sdl(SDL_INIT_VIDEO);
|
||||
Window window("libSDL2pp demo: sprites", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_RESIZABLE);
|
||||
Window window("libSDL2pp demo: sprites", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, MY_SCREEN_WIDTH, MY_SCREEN_HEIGHT, SDL_WINDOW_RESIZABLE);
|
||||
Renderer render(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_TARGETTEXTURE);
|
||||
render.SetDrawBlendMode(SDL_BLENDMODE_BLEND);
|
||||
|
||||
@ -51,16 +58,16 @@ int Run() {
|
||||
}
|
||||
|
||||
// Sprite data
|
||||
Texture sprite(render, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STATIC, 4, 4);
|
||||
Texture sprite(render, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STATIC, MY_SPRITE_SIZE, MY_SPRITE_SIZE);
|
||||
|
||||
sprite.Update(Rect::Null(), pixels, 4 * 4);
|
||||
sprite.Update(Rect::Null(), pixels, MY_SPRITE_SIZE * MY_SPRITE_SIZE);
|
||||
sprite.SetBlendMode(SDL_BLENDMODE_BLEND);
|
||||
|
||||
// Two render target textures
|
||||
Texture target1(render, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_TARGET, 512, 512);
|
||||
Texture target1(render, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_TARGET, MY_RENDERTARGET_SIZE, MY_RENDERTARGET_SIZE);
|
||||
target1.SetBlendMode(SDL_BLENDMODE_BLEND);
|
||||
|
||||
Texture target2(render, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_TARGET, 512, 512);
|
||||
Texture target2(render, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_TARGET, MY_RENDERTARGET_SIZE, MY_RENDERTARGET_SIZE);
|
||||
target2.SetBlendMode(SDL_BLENDMODE_BLEND);
|
||||
|
||||
while (1) {
|
||||
@ -82,10 +89,10 @@ int Run() {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
render.SetTarget(target2);
|
||||
render.Clear();
|
||||
render.Copy(target1, Rect::Null(), Rect(0, 0, 256, 256), SDL_GetTicks() / 10000.0 * 360.0);
|
||||
render.Copy(target1, Rect::Null(), Rect(256, 0, 256, 256), SDL_GetTicks() / 10000.0 * 360.0);
|
||||
render.Copy(target1, Rect::Null(), Rect(0, 256, 256, 256), SDL_GetTicks() / 10000.0 * 360.0);
|
||||
render.Copy(target1, Rect::Null(), Rect(256, 256, 256, 256), SDL_GetTicks() / 10000.0 * 360.0);
|
||||
render.Copy(target1, Rect::Null(), Rect(0, 0, MY_RENDERTARGET_SIZE / 2, MY_RENDERTARGET_SIZE / 2), SDL_GetTicks() / 10000.0 * 360.0);
|
||||
render.Copy(target1, Rect::Null(), Rect(MY_RENDERTARGET_SIZE / 2, 0, MY_RENDERTARGET_SIZE / 2, MY_RENDERTARGET_SIZE / 2), SDL_GetTicks() / 10000.0 * 360.0);
|
||||
render.Copy(target1, Rect::Null(), Rect(0, MY_RENDERTARGET_SIZE / 2, MY_RENDERTARGET_SIZE / 2, MY_RENDERTARGET_SIZE / 2), SDL_GetTicks() / 10000.0 * 360.0);
|
||||
render.Copy(target1, Rect::Null(), Rect(MY_RENDERTARGET_SIZE / 2, MY_RENDERTARGET_SIZE / 2, MY_RENDERTARGET_SIZE / 2, MY_RENDERTARGET_SIZE / 2), SDL_GetTicks() / 10000.0 * 360.0);
|
||||
|
||||
// Swap textures to copy recursively
|
||||
target1.Swap(target2);
|
||||
@ -95,7 +102,7 @@ int Run() {
|
||||
render.SetTarget();
|
||||
render.Clear();
|
||||
|
||||
render.Copy(target1, Rect::Null(), Rect(80, 0, 480, 480), SDL_GetTicks() / 10000.0 * 360.0);
|
||||
render.Copy(target1, Rect::Null(), Rect((MY_SCREEN_WIDTH - MY_SCREEN_HEIGHT) / 2, 0, MY_SCREEN_HEIGHT, MY_SCREEN_HEIGHT), SDL_GetTicks() / 10000.0 * 360.0);
|
||||
|
||||
render.Present();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user