Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Some changes to freetype-gl stuff |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
fd1cd6736c3892dec895075a730403d4 |
User & Date: | bernd 2013-11-26 23:02:15.602 |
Context
2013-11-27
| ||
00:21 | Uniform program for text and normal textures check-in: 2e267bcf9f user: bernd tags: trunk | |
2013-11-26
| ||
23:02 | Some changes to freetype-gl stuff check-in: fd1cd6736c user: bernd tags: trunk | |
18:23 | Freetype for 32 and 64 bits check-in: c2b9a73492 user: bernd tags: trunk | |
Changes
Changes to ftgl-helper.fs.
︙ | ︙ | |||
16 17 18 19 20 21 22 | also freetype-gl also opengl 512 Value atlas# atlas# dup 1 texture_atlas_new Value atlas | > | | | | | | | > < > < | | > > > > > > | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | also freetype-gl also opengl 512 Value atlas# atlas# dup 1 texture_atlas_new Value atlas ." Textur in Atlas: " atlas texture_atlas_t-id l@ . cr : atlas-tex atlas texture_atlas_t-id l@ dup to current-tex GL_TEXTURE_2D swap glBindTexture ; \ render font into vertex buffers 2 sfloats buffer: penxy Variable color $FFC0A000 color ! : xy, { glyph -- } penxy sf@ penxy sfloat+ sf@ { f: xp f: yp } glyph texture_glyph_t-offset_x l@ s>f glyph texture_glyph_t-offset_y l@ s>f { f: xo f: yo } glyph texture_glyph_t-width l@ s>f glyph texture_glyph_t-height l@ s>f { f: w f: h } xp xo f+ yp yo f- { f: x0 f: y0 } x0 w f+ y0 h f+ { f: x1 f: y1 } glyph texture_glyph_t-s0 sf@ { f: s0 } glyph texture_glyph_t-t0 sf@ { f: t0 } glyph texture_glyph_t-s1 sf@ { f: s1 } glyph texture_glyph_t-t1 sf@ { f: t1 } >v x0 y0 >xy n> color @ rgba>c s0 t0 >st v+ x1 y0 >xy n> color @ rgba>c s1 t0 >st v+ x0 y1 >xy n> color @ rgba>c s0 t1 >st v+ x1 y1 >xy n> color @ rgba>c s1 t1 >st v+ v> xp glyph texture_glyph_t-advance_x sf@ f+ penxy sf! yp glyph texture_glyph_t-advance_y sf@ f+ penxy sfloat+ sf! ; : glyph+xy ( glyph -- ) i>off xy, 2 quad ; : all-glyphs ( -- ) i>off >v 0e 0e >xy n> color @ rgba>c 0e 0e >st v+ 512e 0e >xy n> color @ rgba>c 1e 0e >st v+ 0e 512e >xy n> color @ rgba>c 0e 1e >st v+ 512e 512e >xy n> color @ rgba>c 1e 1e >st v+ v> 2 quad ; 0 Value font : xchar+xy ( prev-xchar xchar -- xchar ) tuck font swap texture_font_get_glyph >r dup 0> IF r@ swap texture_glyph_get_kerning penxy sf@ f+ penxy sf! |
︙ | ︙ | |||
99 100 101 102 103 104 105 | varying vec3 v_Normal; // Interpolated normal for this fragment. varying vec2 v_TexCoordinate; // Interpolated texture coordinate per fragment. // The entry point for our fragment shader. void main() { gl_FragColor = texture2D(u_Texture, v_TexCoordinate); | | | 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | varying vec3 v_Normal; // Interpolated normal for this fragment. varying vec2 v_TexCoordinate; // Interpolated texture coordinate per fragment. // The entry point for our fragment shader. void main() { gl_FragColor = texture2D(u_Texture, v_TexCoordinate); // gl_FragColor.rgb = v_Color.rgb; } ' VertexShader ' textFragmentShader create-program Value textprogram textprogram init : <render ( -- ) textprogram glUseProgram .01e 100e 100e >ap atlas-tex v0 i0 ; : render> ( -- ) GL_TRIANGLES draw-elements ; previous previous |
Changes to ftgl-sample.fs.
1 2 3 | \ freetype GL example require gl-helper.fs | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | \ freetype GL example require gl-helper.fs [IFUNDEF] android window-init [THEN] require ftgl-helper.fs \ Demo Toplevel also freetype-gl also opengl also [IFDEF] android android [THEN] 48e FConstant fontsize# atlas [IFDEF] android "/system/fonts/DroidSans.ttf\0" drop [ELSE] "/usr/share/fonts/truetype/LiberationSans-Regular.ttf\0" drop [THEN] fontsize# texture_font_new Value font1 atlas [IFDEF] android "/system/fonts/DroidSansFallback.ttf\0" drop [ELSE] "/usr/share/fonts/truetype/gkai00mp.ttf\0" drop [THEN] fontsize# texture_font_new Value font2 Variable text1$ "Dös isch a Tägscht." text1$ $! Variable text2$ "这是一个文本:在德语说" text2$ $! : glyph-draw ( -- ) 0.01e 0.02e 0.15e 1.0e glClearColor clear Ambient 1 ambient% glUniform1fv <render 0e penxy sf! 0e penxy sfloat+ sf! font1 to font text1$ $@ render-string -100e penxy sf! -60e penxy sfloat+ sf! font2 to font text2$ $@ render-string render> sync ; : glyph-demo ( -- ) [IFDEF] hidekb hidekb [THEN] 1 level# +! BEGIN glyph-draw >looper level# @ 0= UNTIL ; previous previous previous |
Changes to gles2/ftgl-helper.fs.
︙ | ︙ | |||
16 17 18 19 20 21 22 | also freetype-gl also opengl 512 Value atlas# atlas# dup 1 texture_atlas_new Value atlas | > | | | | | | | > < > < | | > > > > > > | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | also freetype-gl also opengl 512 Value atlas# atlas# dup 1 texture_atlas_new Value atlas ." Textur in Atlas: " atlas texture_atlas_t-id l@ . cr : atlas-tex atlas texture_atlas_t-id l@ dup to current-tex GL_TEXTURE_2D swap glBindTexture ; \ render font into vertex buffers 2 sfloats buffer: penxy Variable color $FFC0A000 color ! : xy, { glyph -- } penxy sf@ penxy sfloat+ sf@ { f: xp f: yp } glyph texture_glyph_t-offset_x l@ s>f glyph texture_glyph_t-offset_y l@ s>f { f: xo f: yo } glyph texture_glyph_t-width l@ s>f glyph texture_glyph_t-height l@ s>f { f: w f: h } xp xo f+ yp yo f- { f: x0 f: y0 } x0 w f+ y0 h f+ { f: x1 f: y1 } glyph texture_glyph_t-s0 sf@ { f: s0 } glyph texture_glyph_t-t0 sf@ { f: t0 } glyph texture_glyph_t-s1 sf@ { f: s1 } glyph texture_glyph_t-t1 sf@ { f: t1 } >v x0 y0 >xy n> color @ rgba>c s0 t0 >st v+ x1 y0 >xy n> color @ rgba>c s1 t0 >st v+ x0 y1 >xy n> color @ rgba>c s0 t1 >st v+ x1 y1 >xy n> color @ rgba>c s1 t1 >st v+ v> xp glyph texture_glyph_t-advance_x sf@ f+ penxy sf! yp glyph texture_glyph_t-advance_y sf@ f+ penxy sfloat+ sf! ; : glyph+xy ( glyph -- ) i>off xy, 2 quad ; : all-glyphs ( -- ) i>off >v 0e 0e >xy n> color @ rgba>c 0e 0e >st v+ 512e 0e >xy n> color @ rgba>c 1e 0e >st v+ 0e 512e >xy n> color @ rgba>c 0e 1e >st v+ 512e 512e >xy n> color @ rgba>c 1e 1e >st v+ v> 2 quad ; 0 Value font : xchar+xy ( prev-xchar xchar -- xchar ) tuck font swap texture_font_get_glyph >r dup 0> IF r@ swap texture_glyph_get_kerning penxy sf@ f+ penxy sf! |
︙ | ︙ | |||
99 100 101 102 103 104 105 | varying vec3 v_Normal; // Interpolated normal for this fragment. varying vec2 v_TexCoordinate; // Interpolated texture coordinate per fragment. // The entry point for our fragment shader. void main() { gl_FragColor = texture2D(u_Texture, v_TexCoordinate); | | | 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | varying vec3 v_Normal; // Interpolated normal for this fragment. varying vec2 v_TexCoordinate; // Interpolated texture coordinate per fragment. // The entry point for our fragment shader. void main() { gl_FragColor = texture2D(u_Texture, v_TexCoordinate); // gl_FragColor.rgb = v_Color.rgb; } ' VertexShader ' textFragmentShader create-program Value textprogram textprogram init : <render ( -- ) textprogram glUseProgram .01e 100e 100e >ap atlas-tex v0 i0 ; : render> ( -- ) GL_TRIANGLES draw-elements ; previous previous |
Changes to gles2/ftgl-sample.fs.
1 2 3 | \ freetype GL example require gl-helper.fs | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | \ freetype GL example require gl-helper.fs [IFUNDEF] android window-init [THEN] require ftgl-helper.fs \ Demo Toplevel also freetype-gl also opengl also [IFDEF] android android [THEN] 48e FConstant fontsize# atlas [IFDEF] android "/system/fonts/DroidSans.ttf\0" drop [ELSE] "/usr/share/fonts/truetype/LiberationSans-Regular.ttf\0" drop [THEN] fontsize# texture_font_new Value font1 atlas [IFDEF] android "/system/fonts/DroidSansFallback.ttf\0" drop [ELSE] "/usr/share/fonts/truetype/gkai00mp.ttf\0" drop [THEN] fontsize# texture_font_new Value font2 Variable text1$ "Dös isch a Tägscht." text1$ $! Variable text2$ "这是一个文本:在德语说" text2$ $! : glyph-draw ( -- ) 0.01e 0.02e 0.15e 1.0e glClearColor clear Ambient 1 ambient% glUniform1fv <render 0e penxy sf! 0e penxy sfloat+ sf! font1 to font text1$ $@ render-string -100e penxy sf! -60e penxy sfloat+ sf! font2 to font text2$ $@ render-string render> sync ; : glyph-demo ( -- ) [IFDEF] hidekb hidekb [THEN] 1 level# +! BEGIN glyph-draw >looper level# @ 0= UNTIL ; previous previous previous |