diff options
author | Dmitry Marakasov <amdmi3@FreeBSD.org> | 2013-12-24 03:30:22 +0000 |
---|---|---|
committer | Dmitry Marakasov <amdmi3@FreeBSD.org> | 2013-12-24 03:30:22 +0000 |
commit | d44cfe00eef48ab9f9f869d59b77a771cc0346bb (patch) | |
tree | 1ded4550046950b39fc0a85dedeed84b637acc3f /graphics/wings/files/patch-src_wings____font.erl | |
parent | - Support staging (diff) |
- Fix build with newer erlang
Submitted by: olgeni
Diffstat (limited to 'graphics/wings/files/patch-src_wings____font.erl')
-rw-r--r-- | graphics/wings/files/patch-src_wings____font.erl | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/graphics/wings/files/patch-src_wings____font.erl b/graphics/wings/files/patch-src_wings____font.erl new file mode 100644 index 000000000000..7c3815997078 --- /dev/null +++ b/graphics/wings/files/patch-src_wings____font.erl @@ -0,0 +1,76 @@ + +$FreeBSD$ + +--- src/wings__font.erl.orig ++++ src/wings__font.erl +@@ -11,45 +11,50 @@ + %% $Id$ + %% + +--module(wings__font, [Key,Desc,Width,Height,GlyphTab,Bitmaps]). +--export([key/0,desc/0,width/0,height/0,draw/1,char/1,char_width/1, +- bold_char/1,bold_char_width/1]). ++-module(wings__font). ++-export([new/6,key/1,desc/1,width/1,height/1,draw/2,char/2,char_width/2, ++ bold_char/2,bold_char_width/2]). + +-draw([C|T]) -> +- char(C), +- draw(T); +-draw([]) -> ok. ++-record(font, {key, desc, width, height, glyph_tab, bitmaps}). + +-key() -> Key. +-desc() -> Desc. ++new(Key, Desc, Width, Height, GlyphTab, Bitmaps) -> ++ #font{key = Key, desc = Desc, width = Width, height = Height, glyph_tab = GlyphTab, bitmaps = Bitmaps}. + +-char_width(C) -> +- element(1, glyph_info(C)). +-width() -> ++draw(Font, [C|T]) -> ++ char(Font, C), ++ draw(Font, T); ++draw(_Font, []) -> ok. ++ ++key(#font{key = Key}) -> Key. ++desc(#font{desc = Desc}) -> Desc. ++ ++char_width(Font, C) -> ++ element(1, glyph_info(Font, C)). ++width(#font{width = Width}) -> + insert_glyph(char_width, Width), + Width. +-height() -> ++height(#font{height = Height}) -> + insert_glyph(char_height, Height), + Height. + +-bold_char(C) -> +- Glyph = glyph_info(C), ++bold_char(Font, C) -> ++ Glyph = glyph_info(Font, C), + draw_glyph(Glyph), + Cw = glyph_width(Glyph), + gl:bitmap(1, 1, 0, 0, -Cw+1, 0, <<0>>), + draw_glyph(Glyph). + +-bold_char_width(C) -> +- Glyph = glyph_info(C), ++bold_char_width(Font, C) -> ++ Glyph = glyph_info(Font, C), + glyph_width(Glyph)+1. + +-char(C) -> +- draw_glyph(glyph_info(C)). ++char(Font, C) -> ++ draw_glyph(glyph_info(Font, C)). + + draw_glyph({W,H,Xorig,Yorig,Xmove,B}) -> + gl:bitmap(W, H, Xorig, Yorig, Xmove, 0, B). + +-glyph_info(C) -> ++glyph_info(#font{glyph_tab = GlyphTab, width = Width, height = Height, bitmaps = Bitmaps}, C) -> + BitMap = case ets:lookup(GlyphTab, C) of + [] when is_integer(C), C > 0 -> + %% Undefined character. Return a filled box. |