diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 87cf181..22e2679 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -19,3 +19,23 @@ IF(SDL2PP_WITH_IMAGE) ADD_EXECUTABLE(image image.cc) TARGET_LINK_LIBRARIES(image SDL2pp) ENDIF(SDL2PP_WITH_IMAGE) + +IF(SDL2PP_WITH_TTF) + IF(NOT SDL2PP_EXAMPLE_FONT) + FIND_FILE(SDL2PP_EXAMPLE_FONT Vera.ttf + PATHS + /usr/local/lib/X11/fonts + /usr/lib/X11/fonts + PATH_SUFFIXES + bitstream-vera + ) + ENDIF(NOT SDL2PP_EXAMPLE_FONT) + IF(SDL2PP_EXAMPLE_FONT) + MESSAGE(STATUS "Using example font: ${SDL2PP_EXAMPLE_FONT}") + ELSE(SDL2PP_EXAMPLE_FONT) + MESSAGE(FATAL_ERROR "Cannot find font to use with ttf example (Vera.ttf). You need to either install it, add path to it into examples/CMakeLists.txt (and submit this chnage upstream) or specify path (to any .ttf file) manually with SDL2PP_EXAMPLE_FONT variable") + ENDIF(SDL2PP_EXAMPLE_FONT) + ADD_DEFINITIONS(-DEXAMPLE_FONT="${SDL2PP_EXAMPLE_FONT}") + ADD_EXECUTABLE(ttf ttf.cc) + TARGET_LINK_LIBRARIES(ttf SDL2pp) +ENDIF(SDL2PP_WITH_TTF) diff --git a/examples/ttf.cc b/examples/ttf.cc new file mode 100644 index 0000000..84178ce --- /dev/null +++ b/examples/ttf.cc @@ -0,0 +1,75 @@ +/* + libSDL2pp - C++11 bindings/wrapper for SDL2 + Copyright (C) 2013-2014 Dmitry Marakasov + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#include + +//#include + +#include +#include +#include +#include +#include +#include + +using namespace SDL2pp; + +int Run() { + SDL sdl(SDL_INIT_VIDEO); + SDLTTF ttf; + Window window("libSDL2pp demo: font", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_RESIZABLE); + Renderer render(window, -1, SDL_RENDERER_ACCELERATED); + + Font font(EXAMPLE_FONT, 10); + + while (1) { + // Process input + SDL_Event event; + while (SDL_PollEvent(&event)) + if (event.type == SDL_QUIT || (event.type == SDL_KEYDOWN && (event.key.keysym.sym == SDLK_ESCAPE || event.key.keysym.sym == SDLK_q))) + return 0; + + // Clear screen + render.SetDrawColor(255, 255, 255); + render.Clear(); + + // Simple copy + + render.Present(); + + // Frame limiter + SDL_Delay(1); + } + + return 0; +} + +int main() { + try { + return Run(); + } catch (Exception& e) { + std::cerr << "Error: " << e.what() << " (" << e.GetSDLError() << ")" << std::endl; + } catch (std::exception& e) { + std::cerr << "Error: " << e.what() << std::endl; + } + + return -1; +}