diff options
author | BlockMen <nmuelll@web.de> | 2013-12-12 21:02:09 +0100 |
---|---|---|
committer | PilzAdam <pilzadam@minetest.net> | 2013-12-14 21:11:38 +0100 |
commit | 977232261388fa80bd6ab3bb849ae4d7a8ade73e (patch) | |
tree | b857e64f9181ef2f713fce992e3aaf04e9577284 /src | |
parent | 7a4c1e7327a19820ec1e943d031c0e6e057e0156 (diff) | |
download | minetest-977232261388fa80bd6ab3bb849ae4d7a8ade73e.tar.gz minetest-977232261388fa80bd6ab3bb849ae4d7a8ade73e.tar.bz2 minetest-977232261388fa80bd6ab3bb849ae4d7a8ade73e.zip |
Add alpha setting to font shadow
Diffstat (limited to 'src')
-rw-r--r-- | src/cguittfont/CGUITTFont.cpp | 5 | ||||
-rw-r--r-- | src/cguittfont/CGUITTFont.h | 3 | ||||
-rw-r--r-- | src/defaultsettings.cpp | 2 | ||||
-rw-r--r-- | src/main.cpp | 3 |
4 files changed, 9 insertions, 4 deletions
diff --git a/src/cguittfont/CGUITTFont.cpp b/src/cguittfont/CGUITTFont.cpp index b9c979090..9a702cad7 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, const u32 shadow) +CGUITTFont* CGUITTFont::createTTFont(IGUIEnvironment *env, const io::path& filename, const u32 size, const bool antialias, const bool transparency, const u32 shadow, const u32 shadow_alpha) { if (!c_libraryLoaded) { @@ -217,6 +217,7 @@ CGUITTFont* CGUITTFont::createTTFont(IGUIEnvironment *env, const io::path& filen } font->shadow_offset = shadow; + font->shadow_alpha = shadow_alpha; return font; } @@ -631,7 +632,7 @@ void CGUITTFont::draw(const core::stringw& text, const core::rect<s32>& position 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); + Driver->draw2DImageBatch(page->texture, page->render_positions, page->render_source_rects, clip, video::SColor(shadow_alpha,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); } diff --git a/src/cguittfont/CGUITTFont.h b/src/cguittfont/CGUITTFont.h index a58873da6..e24d8f18b 100644 --- a/src/cguittfont/CGUITTFont.h +++ b/src/cguittfont/CGUITTFont.h @@ -207,7 +207,7 @@ namespace gui //! \param antialias set the use_monochrome (opposite to antialias) flag //! \param transparency set the use_transparency flag //! \return Returns a pointer to a CGUITTFont. Will return 0 if the font failed to load. - static CGUITTFont* createTTFont(IGUIEnvironment *env, const io::path& filename, const u32 size, const bool antialias = true, const bool transparency = true, const u32 shadow = 0); + static CGUITTFont* createTTFont(IGUIEnvironment *env, const io::path& filename, const u32 size, const bool antialias = true, const bool transparency = true, const u32 shadow = 0, const u32 shadow_alpha = 255); static CGUITTFont* createTTFont(IrrlichtDevice *device, const io::path& filename, const u32 size, const bool antialias = true, const bool transparency = true); static CGUITTFont* create(IGUIEnvironment *env, const io::path& filename, const u32 size, const bool antialias = true, const bool transparency = true); static CGUITTFont* create(IrrlichtDevice *device, const io::path& filename, const u32 size, const bool antialias = true, const bool transparency = true); @@ -370,6 +370,7 @@ namespace gui s32 GlobalKerningHeight; core::ustring Invisible; u32 shadow_offset; + u32 shadow_alpha; }; } // end namespace gui diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index a217fda40..e93c1d4c8 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -155,11 +155,13 @@ void set_default_settings(Settings *settings) settings->setDefault("font_path", porting::getDataPath("fonts" DIR_DELIM "liberationsans.ttf")); settings->setDefault("font_size", "13"); settings->setDefault("font_shadow", "1"); + settings->setDefault("font_shadow_alpha", "128"); settings->setDefault("mono_font_path", porting::getDataPath("fonts" DIR_DELIM "liberationmono.ttf")); settings->setDefault("mono_font_size", "13"); settings->setDefault("fallback_font_path", porting::getDataPath("fonts" DIR_DELIM "DroidSansFallbackFull.ttf")); settings->setDefault("fallback_font_size", "13"); settings->setDefault("fallback_font_shadow", "1"); + settings->setDefault("fallback_font_shadow_alpha", "128"); #else settings->setDefault("freetype", "false"); settings->setDefault("font_path", porting::getDataPath("fonts" DIR_DELIM "fontlucida.png")); diff --git a/src/main.cpp b/src/main.cpp index 480e885c2..8186e26c8 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1477,7 +1477,8 @@ int main(int argc, char *argv[]) u16 font_size = g_settings->getU16(fallback + "font_size"); font_path = g_settings->get(fallback + "font_path"); u32 font_shadow = g_settings->getU16(fallback + "font_shadow"); - font = gui::CGUITTFont::createTTFont(guienv, font_path.c_str(), font_size, true, true, font_shadow); + u32 font_shadow_alpha = g_settings->getU16(fallback + "font_shadow_alpha"); + font = gui::CGUITTFont::createTTFont(guienv, font_path.c_str(), font_size, true, true, font_shadow, font_shadow_alpha); } else { font = guienv->getFont(font_path.c_str()); } |