From 79300dea2b31942cd941918b7c7856f6b1e8633c Mon Sep 17 00:00:00 2001 From: Dmitry Marakasov Date: Sat, 27 Dec 2014 21:46:07 +0300 Subject: [PATCH] Use surface in example --- examples/image.cc | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/examples/image.cc b/examples/image.cc index 0aa8007..377ef19 100644 --- a/examples/image.cc +++ b/examples/image.cc @@ -27,6 +27,7 @@ #include #include #include +#include #include using namespace SDL2pp; @@ -36,9 +37,16 @@ int Run() { Window window("libSDL2pp demo: loading", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_RESIZABLE); Renderer render(window, -1, SDL_RENDERER_ACCELERATED); - // Load sprite texture - Texture sprite(render, TESTDATA_DIR "/test.png"); - sprite.SetBlendMode(SDL_BLENDMODE_BLEND); + // Load sprite texture; sprite1 and sprite2 are actually the same + // however first one is loaded directly into texture, and second + // one is loaded through an intermediary surface + Surface surf(TESTDATA_DIR "/test.png"); + + Texture sprite1(render, TESTDATA_DIR "/test.png"); + Texture sprite2(render, surf); + + sprite1.SetBlendMode(SDL_BLENDMODE_BLEND); + sprite2.SetBlendMode(SDL_BLENDMODE_BLEND); render.SetDrawBlendMode(SDL_BLENDMODE_BLEND); @@ -55,9 +63,9 @@ int Run() { // Simple copy float angle = SDL_GetTicks() / 5000.0 * 2.0 * M_PI; - render.Copy(sprite, NullOpt, Rect(320 - 64, 240 - 64, 128, 128), angle / M_PI * 180.0); - render.Copy(sprite, NullOpt, Rect(320 - 32 + sin(angle) * 40, 240 - 32 + cos(angle) * 40, 64, 64)); - render.Copy(sprite, NullOpt, Rect(320 - 32 - sin(angle) * 40, 240 - 32 - cos(angle) * 40, 64, 64)); + render.Copy(sprite1, NullOpt, Rect(320 - 64, 240 - 64, 128, 128), angle / M_PI * 180.0); + render.Copy(sprite1, NullOpt, Rect(320 - 32 + sin(angle) * 40, 240 - 32 + cos(angle) * 40, 64, 64)); + render.Copy(sprite2, NullOpt, Rect(320 - 32 - sin(angle) * 40, 240 - 32 - cos(angle) * 40, 64, 64)); render.Present();