From 76036abdb0d9cb2c971e5a69331c77872d38c56f Mon Sep 17 00:00:00 2001 From: Ilya Zhuravlev Date: Thu, 12 Dec 2013 21:47:54 +0400 Subject: Add configurable font shadow. --- src/cguittfont/CGUITTFont.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/cguittfont/CGUITTFont.cpp') diff --git a/src/cguittfont/CGUITTFont.cpp b/src/cguittfont/CGUITTFont.cpp index fb8199e21..b9c979090 100644 --- a/src/cguittfont/CGUITTFont.cpp +++ b/src/cguittfont/CGUITTFont.cpp @@ -199,7 +199,7 @@ void SGUITTGlyph::unload() ////////////////////// -CGUITTFont* CGUITTFont::createTTFont(IGUIEnvironment *env, const io::path& filename, const u32 size, const bool antialias, const bool transparency) +CGUITTFont* CGUITTFont::createTTFont(IGUIEnvironment *env, const io::path& filename, const u32 size, const bool antialias, const bool transparency, const u32 shadow) { if (!c_libraryLoaded) { @@ -216,6 +216,8 @@ CGUITTFont* CGUITTFont::createTTFont(IGUIEnvironment *env, const io::path& filen return 0; } + font->shadow_offset = shadow; + return font; } @@ -625,6 +627,14 @@ void CGUITTFont::draw(const core::stringw& text, const core::rect& position CGUITTGlyphPage* page = n->getValue(); if (!use_transparency) color.color |= 0xff000000; + + if (shadow_offset) { + for (size_t i = 0; i < page->render_positions.size(); ++i) + page->render_positions[i] += core::vector2di(shadow_offset, shadow_offset); + Driver->draw2DImageBatch(page->texture, page->render_positions, page->render_source_rects, clip, video::SColor(255, 0, 0, 0), true); + for (size_t i = 0; i < page->render_positions.size(); ++i) + page->render_positions[i] -= core::vector2di(shadow_offset, shadow_offset); + } Driver->draw2DImageBatch(page->texture, page->render_positions, page->render_source_rects, clip, color, true); } } -- cgit v1.2.3