summaryrefslogtreecommitdiff
path: root/graphics/wings/files/patch-src_wings____font.erl
diff options
context:
space:
mode:
authorDmitry Marakasov <amdmi3@FreeBSD.org>2013-12-24 03:30:22 +0000
committerDmitry Marakasov <amdmi3@FreeBSD.org>2013-12-24 03:30:22 +0000
commitd44cfe00eef48ab9f9f869d59b77a771cc0346bb (patch)
tree1ded4550046950b39fc0a85dedeed84b637acc3f /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.erl76
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.