Skip to content

Commit

Permalink
Support for right-to-left fonts. Set (rtl #t) in
Browse files Browse the repository at this point in the history
a *.stf file to specify that this font is read
from right to left
  • Loading branch information
tobbi committed Mar 12, 2015
1 parent 2740fa9 commit 101b0a7
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 2 deletions.
6 changes: 4 additions & 2 deletions src/video/font.cpp
Expand Up @@ -64,6 +64,7 @@ Font::Font(GlyphWidth glyph_width_,
char_height(),
shadowsize(shadowsize_),
border(0),
rtl(false),
glyphs(65536)
{
for(unsigned int i=0; i<65536;i++) glyphs[i].surface_idx = -1;
Expand Down Expand Up @@ -109,6 +110,7 @@ Font::loadFontFile(const std::string &filename)
}

config_l->get("glyph-border", border);
config_l->get("rtl", rtl);

lisp::ListIterator iter(config_l);
while(iter.next()) {
Expand Down Expand Up @@ -394,10 +396,10 @@ Font::draw_text(Renderer *renderer, const std::string& text, const Vector& pos,
DrawingEffect drawing_effect, Color color, float alpha) const
{
if(shadowsize > 0)
draw_chars(renderer, false, text,
draw_chars(renderer, false, rtl ? std::string(text.rbegin(), text.rend()) : text,
pos + Vector(shadowsize, shadowsize), drawing_effect, Color(1,1,1), alpha);

draw_chars(renderer, true, text, pos, drawing_effect, color, alpha);
draw_chars(renderer, true, rtl ? std::string(text.rbegin(), text.rend()) : text, pos, drawing_effect, color, alpha);
}

void
Expand Down
1 change: 1 addition & 0 deletions src/video/font.hpp
Expand Up @@ -138,6 +138,7 @@ class Font
int char_height;
int shadowsize;
int border;
bool rtl;

/** 65536 of glyphs */
std::vector<Glyph> glyphs;
Expand Down

0 comments on commit 101b0a7

Please sign in to comment.