1 | diff -r -u rakudo/parrot/config/gen/call_list/misc.in sdl_things/parrot/config/gen/call_list/misc.in |
---|
2 | --- rakudo/parrot/config/gen/call_list/misc.in 2009-06-28 13:42:41.000000000 +0400 |
---|
3 | +++ sdl_things/parrot/config/gen/call_list/misc.in 2009-06-28 13:53:27.000000000 +0400 |
---|
4 | @@ -227,6 +227,8 @@ |
---|
5 | v pip |
---|
6 | p pti |
---|
7 | i ppp |
---|
8 | +# added by RNH for the RenderXXX_XXXX text routines |
---|
9 | +p ptii |
---|
10 | |
---|
11 | # Used by SDL::Font |
---|
12 | p ti |
---|
13 | diff -r -u rakudo/parrot/CREDITS sdl_things/parrot/CREDITS |
---|
14 | --- rakudo/parrot/CREDITS 2009-06-28 13:42:45.000000000 +0400 |
---|
15 | +++ sdl_things/parrot/CREDITS 2009-06-28 14:15:10.000000000 +0400 |
---|
16 | @@ -780,6 +780,11 @@ |
---|
17 | E: rurban@cpan.org |
---|
18 | D: cygwin, 64-bit pbc compat, float converters, bignum.pmc |
---|
19 | |
---|
20 | +N: Richard Hainsworth |
---|
21 | +U: finanalyst |
---|
22 | +E: richard@rusrating.ru |
---|
23 | +D: bugfix SDL Font |
---|
24 | + |
---|
25 | N: Richard Tibbetts |
---|
26 | D: Divide by zero exceptions in some PMCs |
---|
27 | |
---|
28 | diff -r -u rakudo/parrot/runtime/parrot/library/SDL/Font.pir sdl_things/parrot/runtime/parrot/library/SDL/Font.pir |
---|
29 | --- rakudo/parrot/runtime/parrot/library/SDL/Font.pir 2009-06-28 13:41:59.000000000 +0400 |
---|
30 | +++ sdl_things/parrot/runtime/parrot/library/SDL/Font.pir 2009-06-28 13:47:05.000000000 +0400 |
---|
31 | @@ -136,14 +136,29 @@ |
---|
32 | font_surface = new 'SDL::Surface' |
---|
33 | font_surface.'init'( 'height' => 0, 'width' => 0 ) |
---|
34 | |
---|
35 | - .local pmc RenderText_Solid |
---|
36 | - get_hll_global RenderText_Solid, ['SDL::NCI::TTF'], 'RenderText_Solid' |
---|
37 | +# RNH use RenderUTF8 in preference to RenderText by default |
---|
38 | + .local pmc RenderUTF8_Solid |
---|
39 | + get_hll_global RenderUTF8_Solid, ['SDL::NCI::TTF'], 'RenderUTF8_Solid' |
---|
40 | + |
---|
41 | + .local int color |
---|
42 | +# RNH font routine takes color in the order rgb rather than bgr used by surface.pir hence cannot rely on color.get_integer |
---|
43 | + .local int component |
---|
44 | + .local pmc colors |
---|
45 | + colors = color_pmc.'color'() |
---|
46 | + |
---|
47 | + component = colors['b'] |
---|
48 | + component <<= 16 |
---|
49 | + color = component |
---|
50 | + |
---|
51 | + component = colors['g'] |
---|
52 | + component <<= 8 |
---|
53 | + color += component |
---|
54 | |
---|
55 | - .local pmc color |
---|
56 | - color = color_pmc.'color'() |
---|
57 | + component = colors['r'] |
---|
58 | + color += component |
---|
59 | |
---|
60 | .local pmc font_surface_struct |
---|
61 | - font_surface_struct = RenderText_Solid( font, text, color ) |
---|
62 | + font_surface_struct = RenderUTF8_Solid( font, text, color ) |
---|
63 | font_surface.'wrap_surface'( font_surface_struct ) |
---|
64 | |
---|
65 | .return( font_surface ) |
---|
66 | diff -r -u rakudo/parrot/runtime/parrot/library/SDL.pir sdl_things/parrot/runtime/parrot/library/SDL.pir |
---|
67 | --- rakudo/parrot/runtime/parrot/library/SDL.pir 2009-06-28 13:42:01.000000000 +0400 |
---|
68 | +++ sdl_things/parrot/runtime/parrot/library/SDL.pir 2009-06-28 13:52:01.000000000 +0400 |
---|
69 | @@ -219,6 +219,7 @@ |
---|
70 | loadlib ttf_lib, 'libSDL_ttf' |
---|
71 | if ttf_lib goto initialize |
---|
72 | loadlib ttf_lib, 'cygSDL_ttf-2-0-0' |
---|
73 | +# RNH this is not trapping a non-existent libSDL_ttf library |
---|
74 | unless ttf_lib goto error |
---|
75 | |
---|
76 | initialize: |
---|
77 | @@ -243,15 +244,21 @@ |
---|
78 | success: |
---|
79 | dlfunc nci_sub, ttf_lib, 'TTF_OpenFont', 'pti' |
---|
80 | set_hll_global ['SDL::NCI::TTF'], 'OpenFont', nci_sub |
---|
81 | - |
---|
82 | - dlfunc nci_sub, ttf_lib, 'TTF_RenderText_Solid', 'pptp' |
---|
83 | +#RNH changes: all text routines expect an integer, not a pmc, for color parameter |
---|
84 | + dlfunc nci_sub, ttf_lib, 'TTF_RenderText_Solid', 'ppti' |
---|
85 | set_hll_global ['SDL::NCI::TTF'], 'RenderText_Solid', nci_sub |
---|
86 | - dlfunc nci_sub, ttf_lib, 'TTF_RenderUTF8_Solid', 'pptp' |
---|
87 | + dlfunc nci_sub, ttf_lib, 'TTF_RenderUTF8_Solid', 'ppti' |
---|
88 | set_hll_global ['SDL::NCI::TTF'], 'RenderUTF8_Solid', nci_sub |
---|
89 | |
---|
90 | # this one could be wrong |
---|
91 | - dlfunc nci_sub, ttf_lib, 'TTF_RenderUNICODE_Solid', 'pptp' |
---|
92 | + dlfunc nci_sub, ttf_lib, 'TTF_RenderUNICODE_Solid', 'ppti' |
---|
93 | set_hll_global ['SDL::NCI::TTF'], 'RenderUNICODE_Solid', nci_sub |
---|
94 | +# RNH Additions. Add UTF8_Shaded and FontLine skip |
---|
95 | + dlfunc nci_sub, ttf_lib, 'TTF_RenderUTF8_Shaded', 'pptii' |
---|
96 | + set_hll_global ['SDL::NCI::TTF'], 'RenderUTF8_Shaded', nci_sub |
---|
97 | + dlfunc nci_sub, ttf_lib, 'TTF_FontLineSkip', 'ip' |
---|
98 | + set_hll_global ['SDL::NCI::TTF'], 'FontLineSkip', nci_sub |
---|
99 | +#end additions |
---|
100 | |
---|
101 | dlfunc nci_sub, ttf_lib, 'TTF_SizeText', 'ipt33' |
---|
102 | set_hll_global ['SDL::NCI::TTF'], 'SizeText', nci_sub |
---|