Check-in [56386d64a0]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Original freetype-gl32 back
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 56386d64a02a865378f01685acdacc937ea3c216
User & Date: bernd 2013-11-27 23:54:25
Context
2013-11-27
23:55
Right access types check-in: 3c139c69f5 user: bernd tags: trunk
23:54
Original freetype-gl32 back check-in: 56386d64a0 user: bernd tags: trunk
22:31
Freetype-gl*.fs properly linked check-in: 7cd8045508 user: bernd tags: trunk
Changes

Changes to freetype-gl/Makefile.forth.

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
# Generic makefile, for crosscompiling use make -f Makefile.<target>

INCLUDES   = -I$(NDK)/usr/include -I$(NDK)/usr/local/include/
SWIG       = swig
TARGETS    = freetype-gl.fsx
LIBRARY    = libfreetype-gl.fs
OPTIONS    = -forth -no-sectioncomments -stackcomments $(INCLUDES)
INSTALL	= /usr/bin/install -c
ARCH=
VERSION	= `gforth --version 2>&1 | cut -f2 -d' '`
SHELL	= /bin/sh
RMTREE	= rm -rf
prefix = 
exec_prefix = ${prefix}
libexecdir = $(package)${exec_prefix}/lib
libccdir = $(subst $(DESTDIR),,$(libexecdir)/gforth$(ARCH)/$(VERSION)/libcc-named/)
srcdir = .
DESTDIR = /home/bernd/proj/minos2/gles2


all: $(TARGETS)

build-libcc-named: $(LIBRARY) $(TARGETS)
		$(RMTREE) lib/gforth$(ARCH)/$(VERSION)/libcc-named/
		-for i in $(LIBRARY); do ./libforth -e "s\" `pwd`/lib/gforth$(ARCH)/$(VERSION)/libcc-named/\" libcc-named-dir-v 2! libcc-path clear-path libcc-named-dir libcc-path also-path :noname 2drop s\" $(DESTDIR)$(libccdir)\" ; is replace-rpath" $(srcdir)/$$i -e bye; done






|












>







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
# Generic makefile, for crosscompiling use make -f Makefile.<target>

INCLUDES   = -I$(NDK)/usr/include -I$(NDK)/usr/local/include/
SWIG       = swig
TARGETS    = freetype-gl.fsx
LIBRARY    = freetype-gl.fs
OPTIONS    = -forth -no-sectioncomments -stackcomments $(INCLUDES)
INSTALL	= /usr/bin/install -c
ARCH=
VERSION	= `gforth --version 2>&1 | cut -f2 -d' '`
SHELL	= /bin/sh
RMTREE	= rm -rf
prefix = 
exec_prefix = ${prefix}
libexecdir = $(package)${exec_prefix}/lib
libccdir = $(subst $(DESTDIR),,$(libexecdir)/gforth$(ARCH)/$(VERSION)/libcc-named/)
srcdir = .
DESTDIR = /home/bernd/proj/minos2/gles2
LIBTOOL = arm-linux-androideabi-libtool

all: $(TARGETS)

build-libcc-named: $(LIBRARY) $(TARGETS)
		$(RMTREE) lib/gforth$(ARCH)/$(VERSION)/libcc-named/
		-for i in $(LIBRARY); do ./libforth -e "s\" `pwd`/lib/gforth$(ARCH)/$(VERSION)/libcc-named/\" libcc-named-dir-v 2! libcc-path clear-path libcc-named-dir libcc-path also-path :noname 2drop s\" $(DESTDIR)$(libccdir)\" ; is replace-rpath" $(srcdir)/$$i -e bye; done

Changes to freetype-gl/freetype-gl32.fs.

2
3
4
5
6
7
8




9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
..
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
..
72
73
74
75
76
77
78
79

80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
\ and is already platform dependent, search for the corresponding
\ fsi-file to compile it where no one has compiled it before ;)
\ GForth has its own dynamic loader and doesn't need addional C-Code.
\ That's why this file contains normal Gforth-code( version 0.6.9 or higher )
\ and could be used directly with include or require.
\ As all comments are stripped during the compilation, please
\ insert the copyright notice of the original file here.





Vocabulary freetype-gl
get-current also freetype-gl definitions
c-library freetype_gl
    s" freetype-gl" add-lib
    [IFDEF] android
        s" ./.libs" add-libpath
	s" /data/data/gnu.gforth/lib/libfreetype-gl.so" open-lib drop
        \c #include "../../../../../freetype-gl/freetype-gl.h"
    [ELSE]
        \c #include <freetype-gl.h>
    [THEN]
\ -------===< structs >===--------
\ vec4
begin-structure vec4
................................................................................
\ ivec4
begin-structure ivec4
	drop 0 16 +field ivec4-data
	drop 0 16 +field ivec4-xyzw
	drop 0 12 +field ivec4-rgb
	drop 0 16 +field ivec4-rgba
	drop 0 12 +field ivec4-xyz
	drop 0 16 +field ivec4-XYZW_
drop 16 end-structure
\ ivec4_XYZW
begin-structure ivec4_XYZW
	drop 12 4 +field ivec4_XYZW-w
	drop 0 4 +field ivec4_XYZW-x
	drop 4 4 +field ivec4_XYZW-y
	drop 8 4 +field ivec4_XYZW-z
drop 16 end-structure
\ ivec3
begin-structure ivec3
	drop 0 12 +field ivec3-data
	drop 0 12 +field ivec3-rgb
	drop 0 12 +field ivec3-xyz
	drop 0 8 +field ivec3-xy
................................................................................
\ ivec2
begin-structure ivec2
	drop 0 8 +field ivec2-data
	drop 0 8 +field ivec2-xy
drop 8 end-structure
\ vector_t
begin-structure vector_t
	drop 0 8 +field vector_t-items

	drop 16 8 +field vector_t-size
	drop 24 8 +field vector_t-item_size
	drop 8 8 +field vector_t-capacity
drop 32 end-structure
\ texture_atlas_t
begin-structure texture_atlas_t
	drop 48 8 +field texture_atlas_t-data
	drop 40 4 +field texture_atlas_t-id
	drop 0 8 +field texture_atlas_t-nodes
	drop 16 8 +field texture_atlas_t-height
	drop 32 8 +field texture_atlas_t-used
	drop 8 8 +field texture_atlas_t-width
	drop 24 8 +field texture_atlas_t-depth
drop 56 end-structure
\ kerning_t
begin-structure kerning_t
	drop 0 4 +field kerning_t-charcode
	drop 4 4 +field kerning_t-kerning
drop 8 end-structure
\ texture_glyph_t
begin-structure texture_glyph_t
	drop 16 8 +field texture_glyph_t-height
	drop 44 4 +field texture_glyph_t-t0
	drop 52 4 +field texture_glyph_t-t1
	drop 40 4 +field texture_glyph_t-s0
	drop 68 4 +field texture_glyph_t-outline_thickness
	drop 48 4 +field texture_glyph_t-s1
	drop 24 4 +field texture_glyph_t-offset_x
	drop 28 4 +field texture_glyph_t-offset_y
	drop 64 4 +field texture_glyph_t-outline_type
	drop 32 4 +field texture_glyph_t-advance_x
	drop 36 4 +field texture_glyph_t-advance_y
	drop 4 4 +field texture_glyph_t-id
	drop 8 8 +field texture_glyph_t-width
	drop 0 4 +field texture_glyph_t-charcode
	drop 56 8 +field texture_glyph_t-kerning
drop 72 end-structure
\ texture_font_t
begin-structure texture_font_t
	drop 64 4 +field texture_font_t-descender
	drop 60 4 +field texture_font_t-ascender
	drop 52 4 +field texture_font_t-height
	drop 24 4 +field texture_font_t-size
	drop 0 8 +field texture_font_t-glyphs
	drop 56 4 +field texture_font_t-linegap
	drop 36 4 +field texture_font_t-outline_thickness
	drop 72 4 +field texture_font_t-underline_thickness
	drop 40 4 +field texture_font_t-filtering
	drop 32 4 +field texture_font_t-outline_type
	drop 8 8 +field texture_font_t-atlas
	drop 44 5 +field texture_font_t-lcd_weights
	drop 28 4 +field texture_font_t-hinting
	drop 68 4 +field texture_font_t-underline_position
	drop 16 8 +field texture_font_t-filename
drop 80 end-structure

\ ------===< functions >===-------
c-function vector_new vector_new n -- a
c-function vector_delete vector_delete a -- void
c-function vector_get vector_get a n -- a
c-function vector_front vector_front a -- a
c-function vector_back vector_back a -- a







>
>
>
>






|
<







 







|

|
|
|
|
|
|







 







|
>
|
|
<
|


|
|
|
|
|
|
|
|


|
|
|


|
|
|
|
|
|
|
|
|
|
|
|
|
|
|



|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|







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
..
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
..
75
76
77
78
79
80
81
82
83
84
85

86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
\ and is already platform dependent, search for the corresponding
\ fsi-file to compile it where no one has compiled it before ;)
\ GForth has its own dynamic loader and doesn't need addional C-Code.
\ That's why this file contains normal Gforth-code( version 0.6.9 or higher )
\ and could be used directly with include or require.
\ As all comments are stripped during the compilation, please
\ insert the copyright notice of the original file here.

[IFDEF] android
    s" /data/data/gnu.gforth/lib/libfreetype-gl.so" open-lib drop
[THEN]

Vocabulary freetype-gl
get-current also freetype-gl definitions
c-library freetype_gl
    s" freetype-gl" add-lib
    [IFDEF] android
	s" ./.libs" add-libpath

        \c #include "../../../../../freetype-gl/freetype-gl.h"
    [ELSE]
        \c #include <freetype-gl.h>
    [THEN]
\ -------===< structs >===--------
\ vec4
begin-structure vec4
................................................................................
\ ivec4
begin-structure ivec4
	drop 0 16 +field ivec4-data
	drop 0 16 +field ivec4-xyzw
	drop 0 12 +field ivec4-rgb
	drop 0 16 +field ivec4-rgba
	drop 0 12 +field ivec4-xyz
	drop 0 16 +field ivec4-xyzw_
drop 16 end-structure
\ ivec4_xyzw_
begin-structure ivec4_xyzw_
	drop 12 4 +field ivec4_xyzw_-w
	drop 0 4 +field ivec4_xyzw_-x
	drop 4 4 +field ivec4_xyzw_-y
	drop 8 4 +field ivec4_xyzw_-z
drop 16 end-structure
\ ivec3
begin-structure ivec3
	drop 0 12 +field ivec3-data
	drop 0 12 +field ivec3-rgb
	drop 0 12 +field ivec3-xyz
	drop 0 8 +field ivec3-xy
................................................................................
\ ivec2
begin-structure ivec2
	drop 0 8 +field ivec2-data
	drop 0 8 +field ivec2-xy
drop 8 end-structure
\ vector_t
begin-structure vector_t
	field: vector_t-items
	field: vector_t-capacity
	field: vector_t-size
	field: vector_t-item_size

end-structure
\ texture_atlas_t
begin-structure texture_atlas_t
	field: texture_atlas_t-nodes
	field: texture_atlas_t-width
	field: texture_atlas_t-height
	field: texture_atlas_t-depth
	field: texture_atlas_t-used
	field: texture_atlas_t-id
	field: texture_atlas_t-data
end-structure
\ kerning_t
begin-structure kerning_t
	field: kerning_t-charcode
	field: kerning_t-kerning
end-structure
\ texture_glyph_t
begin-structure texture_glyph_t
	field: texture_glyph_t-charcode
	field: texture_glyph_t-id
	field: texture_glyph_t-width
	field: texture_glyph_t-height
	field: texture_glyph_t-offset_x
	field: texture_glyph_t-offset_y
	field: texture_glyph_t-advance_x
	field: texture_glyph_t-advance_y
	field: texture_glyph_t-s0
	field: texture_glyph_t-t0
	field: texture_glyph_t-s1
	field: texture_glyph_t-t1
	field: texture_glyph_t-kerning
	field: texture_glyph_t-outline_type
	field: texture_glyph_t-outline_thickness
drop 72 end-structure
\ texture_font_t
begin-structure texture_font_t
	field: texture_font_t-glyphs
	field: texture_font_t-atlas
	field: texture_font_t-filename
	field: texture_font_t-size
	field: texture_font_t-hinting
	field: texture_font_t-outline_type
	field: texture_font_t-outline_thickness
	field: texture_font_t-filtering
	5 +field texture_font_t-lcd_weights
	field: texture_font_t-height
	field: texture_font_t-linegap
	field: texture_font_t-ascender
	field: texture_font_t-descender
	field: texture_font_t-underline_position
	field: texture_font_t-underline_thickness
end-structure

\ ------===< functions >===-------
c-function vector_new vector_new n -- a
c-function vector_delete vector_delete a -- void
c-function vector_get vector_get a n -- a
c-function vector_front vector_front a -- a
c-function vector_back vector_back a -- a

Changes to freetype-gl/freetype-gl64.fs.

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
...
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
...
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
...
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
\ and is already platform dependent, search for the corresponding
\ fsi-file to compile it where no one has compiled it before ;)
\ GForth has its own dynamic loader and doesn't need addional C-Code.
\ That's why this file contains normal Gforth-code( version 0.6.9 or higher )
\ and could be used directly with include or require.
\ As all comments are stripped during the compilation, please
\ insert the copyright notice of the original file here.





Vocabulary freetype-gl
get-current also freetype-gl definitions
c-library freetype_gl
    s" freetype-gl" add-lib
    [IFDEF] android
        s" ./.libs" add-libpath
        s" /data/data/gnu.gforth/lib/libfreetype-gl.so" open-lib drop
        \c #include "../../../../../freetype-gl/freetype-gl.h"
    [ELSE]
        \c #include <freetype-gl.h>
    [THEN]
\ -------===< structs >===--------
\ struct vec4
begin-structure struct-vec4
	drop 0 16 +field struct-vec4-VEC4
drop 16 end-structure
\ vec4_VEC4
begin-structure vec4_VEC4
	drop 0 16 +field vec4_VEC4-RGBA
	drop 0 16 +field vec4_VEC4-data
	drop 0 12 +field vec4_VEC4-rgb
	drop 0 16 +field vec4_VEC4-rgba
	drop 0 12 +field vec4_VEC4-xyz
drop 16 end-structure
\ vec4_VEC4_RGBA
begin-structure vec4_VEC4_RGBA
................................................................................
drop 4 end-structure
\ ivec4
begin-structure ivec4
	drop 0 16 +field ivec4-IVEC4
drop 16 end-structure
\ ivec4_IVEC4
begin-structure ivec4_IVEC4
	drop 0 16 +field ivec4_IVEC4-RGBA
	drop 0 16 +field ivec4_IVEC4-data
	drop 0 12 +field ivec4_IVEC4-rgb
	drop 0 16 +field ivec4_IVEC4-rgba
	drop 0 12 +field ivec4_IVEC4-xyz
drop 16 end-structure
\ ivec4_IVEC4_RGBA
begin-structure ivec4_IVEC4_RGBA
................................................................................
begin-structure ivec3
	drop 0 12 +field ivec3-IVEC3
drop 12 end-structure
\ ivec3_IVEC3
begin-structure ivec3_IVEC3
	drop 0 12 +field ivec3_IVEC3-data
	drop 0 12 +field ivec3_IVEC3-rgb
	drop 0 12 +field ivec3_IVEC3-RGB
	drop 0 12 +field ivec3_IVEC3-xyz
	drop 0 8 +field ivec3_IVEC3-xy
drop 12 end-structure
\ ivec3_IVEC3_RGB
begin-structure ivec3_IVEC3_RGB
	drop 8 4 +field ivec3_IVEC3_RGB-b
	drop 0 4 +field ivec3_IVEC3_RGB-r
................................................................................
drop 4 end-structure
\ ivec2
begin-structure ivec2
	drop 0 8 +field ivec2-IVEC2
drop 8 end-structure
\ ivec2_IVEC2
begin-structure ivec2_IVEC2
	drop 0 8 +field ivec2_IVEC2-XY
	drop 0 8 +field ivec2_IVEC2-data
	drop 0 8 +field ivec2_IVEC2-xy
drop 8 end-structure
\ ivec2_IVEC2_XY
begin-structure ivec2_IVEC2_XY
	drop 0 4 +field ivec2_IVEC2_XY-x
	drop 4 4 +field ivec2_IVEC2_XY-y







>
>
>
>







<
|






|



|







 







|







 







|







 







|







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
...
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
...
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
...
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
\ and is already platform dependent, search for the corresponding
\ fsi-file to compile it where no one has compiled it before ;)
\ GForth has its own dynamic loader and doesn't need addional C-Code.
\ That's why this file contains normal Gforth-code( version 0.6.9 or higher )
\ and could be used directly with include or require.
\ As all comments are stripped during the compilation, please
\ insert the copyright notice of the original file here.

[IFDEF] android
    s" /data/data/gnu.gforth/lib/libfreetype-gl.so" open-lib drop
[THEN]

Vocabulary freetype-gl
get-current also freetype-gl definitions
c-library freetype_gl
    s" freetype-gl" add-lib
    [IFDEF] android
        s" ./.libs" add-libpath

        \c #include "../../../../../freetype_gl/freetype-gl.h"
    [ELSE]
        \c #include <freetype-gl.h>
    [THEN]
\ -------===< structs >===--------
\ struct vec4
begin-structure struct-vec4
	drop 0 16 +field struct-vec4-VEC4_
drop 16 end-structure
\ vec4_VEC4
begin-structure vec4_VEC4
	drop 0 16 +field vec4_VEC4-RGBA_
	drop 0 16 +field vec4_VEC4-data
	drop 0 12 +field vec4_VEC4-rgb
	drop 0 16 +field vec4_VEC4-rgba
	drop 0 12 +field vec4_VEC4-xyz
drop 16 end-structure
\ vec4_VEC4_RGBA
begin-structure vec4_VEC4_RGBA
................................................................................
drop 4 end-structure
\ ivec4
begin-structure ivec4
	drop 0 16 +field ivec4-IVEC4
drop 16 end-structure
\ ivec4_IVEC4
begin-structure ivec4_IVEC4
	drop 0 16 +field ivec4_IVEC4-RGBA_
	drop 0 16 +field ivec4_IVEC4-data
	drop 0 12 +field ivec4_IVEC4-rgb
	drop 0 16 +field ivec4_IVEC4-rgba
	drop 0 12 +field ivec4_IVEC4-xyz
drop 16 end-structure
\ ivec4_IVEC4_RGBA
begin-structure ivec4_IVEC4_RGBA
................................................................................
begin-structure ivec3
	drop 0 12 +field ivec3-IVEC3
drop 12 end-structure
\ ivec3_IVEC3
begin-structure ivec3_IVEC3
	drop 0 12 +field ivec3_IVEC3-data
	drop 0 12 +field ivec3_IVEC3-rgb
	drop 0 12 +field ivec3_IVEC3-RGB_
	drop 0 12 +field ivec3_IVEC3-xyz
	drop 0 8 +field ivec3_IVEC3-xy
drop 12 end-structure
\ ivec3_IVEC3_RGB
begin-structure ivec3_IVEC3_RGB
	drop 8 4 +field ivec3_IVEC3_RGB-b
	drop 0 4 +field ivec3_IVEC3_RGB-r
................................................................................
drop 4 end-structure
\ ivec2
begin-structure ivec2
	drop 0 8 +field ivec2-IVEC2
drop 8 end-structure
\ ivec2_IVEC2
begin-structure ivec2_IVEC2
	drop 0 8 +field ivec2_IVEC2-XY_
	drop 0 8 +field ivec2_IVEC2-data
	drop 0 8 +field ivec2_IVEC2-xy
drop 8 end-structure
\ ivec2_IVEC2_XY
begin-structure ivec2_IVEC2_XY
	drop 0 4 +field ivec2_IVEC2_XY-x
	drop 4 4 +field ivec2_IVEC2_XY-y

Changes to freetype-gl32.fs.

2
3
4
5
6
7
8




9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
..
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
..
72
73
74
75
76
77
78
79

80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
\ and is already platform dependent, search for the corresponding
\ fsi-file to compile it where no one has compiled it before ;)
\ GForth has its own dynamic loader and doesn't need addional C-Code.
\ That's why this file contains normal Gforth-code( version 0.6.9 or higher )
\ and could be used directly with include or require.
\ As all comments are stripped during the compilation, please
\ insert the copyright notice of the original file here.





Vocabulary freetype-gl
get-current also freetype-gl definitions
c-library freetype_gl
    s" freetype-gl" add-lib
    [IFDEF] android
        s" ./.libs" add-libpath
	s" /data/data/gnu.gforth/lib/libfreetype-gl.so" open-lib drop
        \c #include "../../../../../freetype-gl/freetype-gl.h"
    [ELSE]
        \c #include <freetype-gl.h>
    [THEN]
\ -------===< structs >===--------
\ vec4
begin-structure vec4
................................................................................
\ ivec4
begin-structure ivec4
	drop 0 16 +field ivec4-data
	drop 0 16 +field ivec4-xyzw
	drop 0 12 +field ivec4-rgb
	drop 0 16 +field ivec4-rgba
	drop 0 12 +field ivec4-xyz
	drop 0 16 +field ivec4-XYZW_
drop 16 end-structure
\ ivec4_XYZW
begin-structure ivec4_XYZW
	drop 12 4 +field ivec4_XYZW-w
	drop 0 4 +field ivec4_XYZW-x
	drop 4 4 +field ivec4_XYZW-y
	drop 8 4 +field ivec4_XYZW-z
drop 16 end-structure
\ ivec3
begin-structure ivec3
	drop 0 12 +field ivec3-data
	drop 0 12 +field ivec3-rgb
	drop 0 12 +field ivec3-xyz
	drop 0 8 +field ivec3-xy
................................................................................
\ ivec2
begin-structure ivec2
	drop 0 8 +field ivec2-data
	drop 0 8 +field ivec2-xy
drop 8 end-structure
\ vector_t
begin-structure vector_t
	drop 0 8 +field vector_t-items

	drop 16 8 +field vector_t-size
	drop 24 8 +field vector_t-item_size
	drop 8 8 +field vector_t-capacity
drop 32 end-structure
\ texture_atlas_t
begin-structure texture_atlas_t
	drop 48 8 +field texture_atlas_t-data
	drop 40 4 +field texture_atlas_t-id
	drop 0 8 +field texture_atlas_t-nodes
	drop 16 8 +field texture_atlas_t-height
	drop 32 8 +field texture_atlas_t-used
	drop 8 8 +field texture_atlas_t-width
	drop 24 8 +field texture_atlas_t-depth
drop 56 end-structure
\ kerning_t
begin-structure kerning_t
	drop 0 4 +field kerning_t-charcode
	drop 4 4 +field kerning_t-kerning
drop 8 end-structure
\ texture_glyph_t
begin-structure texture_glyph_t
	drop 16 8 +field texture_glyph_t-height
	drop 44 4 +field texture_glyph_t-t0
	drop 52 4 +field texture_glyph_t-t1
	drop 40 4 +field texture_glyph_t-s0
	drop 68 4 +field texture_glyph_t-outline_thickness
	drop 48 4 +field texture_glyph_t-s1
	drop 24 4 +field texture_glyph_t-offset_x
	drop 28 4 +field texture_glyph_t-offset_y
	drop 64 4 +field texture_glyph_t-outline_type
	drop 32 4 +field texture_glyph_t-advance_x
	drop 36 4 +field texture_glyph_t-advance_y
	drop 4 4 +field texture_glyph_t-id
	drop 8 8 +field texture_glyph_t-width
	drop 0 4 +field texture_glyph_t-charcode
	drop 56 8 +field texture_glyph_t-kerning
drop 72 end-structure
\ texture_font_t
begin-structure texture_font_t
	drop 64 4 +field texture_font_t-descender
	drop 60 4 +field texture_font_t-ascender
	drop 52 4 +field texture_font_t-height
	drop 24 4 +field texture_font_t-size
	drop 0 8 +field texture_font_t-glyphs
	drop 56 4 +field texture_font_t-linegap
	drop 36 4 +field texture_font_t-outline_thickness
	drop 72 4 +field texture_font_t-underline_thickness
	drop 40 4 +field texture_font_t-filtering
	drop 32 4 +field texture_font_t-outline_type
	drop 8 8 +field texture_font_t-atlas
	drop 44 5 +field texture_font_t-lcd_weights
	drop 28 4 +field texture_font_t-hinting
	drop 68 4 +field texture_font_t-underline_position
	drop 16 8 +field texture_font_t-filename
drop 80 end-structure

\ ------===< functions >===-------
c-function vector_new vector_new n -- a
c-function vector_delete vector_delete a -- void
c-function vector_get vector_get a n -- a
c-function vector_front vector_front a -- a
c-function vector_back vector_back a -- a







>
>
>
>






|
<







 







|

|
|
|
|
|
|







 







|
>
|
|
<
|


|
|
|
|
|
|
|
|


|
|
|


|
|
|
|
|
|
|
|
|
|
|
|
|
|
|



|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|







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
..
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
..
75
76
77
78
79
80
81
82
83
84
85

86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
\ and is already platform dependent, search for the corresponding
\ fsi-file to compile it where no one has compiled it before ;)
\ GForth has its own dynamic loader and doesn't need addional C-Code.
\ That's why this file contains normal Gforth-code( version 0.6.9 or higher )
\ and could be used directly with include or require.
\ As all comments are stripped during the compilation, please
\ insert the copyright notice of the original file here.

[IFDEF] android
    s" /data/data/gnu.gforth/lib/libfreetype-gl.so" open-lib drop
[THEN]

Vocabulary freetype-gl
get-current also freetype-gl definitions
c-library freetype_gl
    s" freetype-gl" add-lib
    [IFDEF] android
	s" ./.libs" add-libpath

        \c #include "../../../../../freetype-gl/freetype-gl.h"
    [ELSE]
        \c #include <freetype-gl.h>
    [THEN]
\ -------===< structs >===--------
\ vec4
begin-structure vec4
................................................................................
\ ivec4
begin-structure ivec4
	drop 0 16 +field ivec4-data
	drop 0 16 +field ivec4-xyzw
	drop 0 12 +field ivec4-rgb
	drop 0 16 +field ivec4-rgba
	drop 0 12 +field ivec4-xyz
	drop 0 16 +field ivec4-xyzw_
drop 16 end-structure
\ ivec4_xyzw_
begin-structure ivec4_xyzw_
	drop 12 4 +field ivec4_xyzw_-w
	drop 0 4 +field ivec4_xyzw_-x
	drop 4 4 +field ivec4_xyzw_-y
	drop 8 4 +field ivec4_xyzw_-z
drop 16 end-structure
\ ivec3
begin-structure ivec3
	drop 0 12 +field ivec3-data
	drop 0 12 +field ivec3-rgb
	drop 0 12 +field ivec3-xyz
	drop 0 8 +field ivec3-xy
................................................................................
\ ivec2
begin-structure ivec2
	drop 0 8 +field ivec2-data
	drop 0 8 +field ivec2-xy
drop 8 end-structure
\ vector_t
begin-structure vector_t
	field: vector_t-items
	field: vector_t-capacity
	field: vector_t-size
	field: vector_t-item_size

end-structure
\ texture_atlas_t
begin-structure texture_atlas_t
	field: texture_atlas_t-nodes
	field: texture_atlas_t-width
	field: texture_atlas_t-height
	field: texture_atlas_t-depth
	field: texture_atlas_t-used
	field: texture_atlas_t-id
	field: texture_atlas_t-data
end-structure
\ kerning_t
begin-structure kerning_t
	field: kerning_t-charcode
	field: kerning_t-kerning
end-structure
\ texture_glyph_t
begin-structure texture_glyph_t
	field: texture_glyph_t-charcode
	field: texture_glyph_t-id
	field: texture_glyph_t-width
	field: texture_glyph_t-height
	field: texture_glyph_t-offset_x
	field: texture_glyph_t-offset_y
	field: texture_glyph_t-advance_x
	field: texture_glyph_t-advance_y
	field: texture_glyph_t-s0
	field: texture_glyph_t-t0
	field: texture_glyph_t-s1
	field: texture_glyph_t-t1
	field: texture_glyph_t-kerning
	field: texture_glyph_t-outline_type
	field: texture_glyph_t-outline_thickness
drop 72 end-structure
\ texture_font_t
begin-structure texture_font_t
	field: texture_font_t-glyphs
	field: texture_font_t-atlas
	field: texture_font_t-filename
	field: texture_font_t-size
	field: texture_font_t-hinting
	field: texture_font_t-outline_type
	field: texture_font_t-outline_thickness
	field: texture_font_t-filtering
	5 +field texture_font_t-lcd_weights
	field: texture_font_t-height
	field: texture_font_t-linegap
	field: texture_font_t-ascender
	field: texture_font_t-descender
	field: texture_font_t-underline_position
	field: texture_font_t-underline_thickness
end-structure

\ ------===< functions >===-------
c-function vector_new vector_new n -- a
c-function vector_delete vector_delete a -- void
c-function vector_get vector_get a n -- a
c-function vector_front vector_front a -- a
c-function vector_back vector_back a -- a

Changes to freetype-gl64.fs.

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
...
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
...
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
...
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
\ and is already platform dependent, search for the corresponding
\ fsi-file to compile it where no one has compiled it before ;)
\ GForth has its own dynamic loader and doesn't need addional C-Code.
\ That's why this file contains normal Gforth-code( version 0.6.9 or higher )
\ and could be used directly with include or require.
\ As all comments are stripped during the compilation, please
\ insert the copyright notice of the original file here.





Vocabulary freetype-gl
get-current also freetype-gl definitions
c-library freetype_gl
    s" freetype-gl" add-lib
    [IFDEF] android
        s" ./.libs" add-libpath
        s" /data/data/gnu.gforth/lib/libfreetype-gl.so" open-lib drop
        \c #include "../../../../../freetype-gl/freetype-gl.h"
    [ELSE]
        \c #include <freetype-gl.h>
    [THEN]
\ -------===< structs >===--------
\ struct vec4
begin-structure struct-vec4
	drop 0 16 +field struct-vec4-VEC4
drop 16 end-structure
\ vec4_VEC4
begin-structure vec4_VEC4
	drop 0 16 +field vec4_VEC4-RGBA
	drop 0 16 +field vec4_VEC4-data
	drop 0 12 +field vec4_VEC4-rgb
	drop 0 16 +field vec4_VEC4-rgba
	drop 0 12 +field vec4_VEC4-xyz
drop 16 end-structure
\ vec4_VEC4_RGBA
begin-structure vec4_VEC4_RGBA
................................................................................
drop 4 end-structure
\ ivec4
begin-structure ivec4
	drop 0 16 +field ivec4-IVEC4
drop 16 end-structure
\ ivec4_IVEC4
begin-structure ivec4_IVEC4
	drop 0 16 +field ivec4_IVEC4-RGBA
	drop 0 16 +field ivec4_IVEC4-data
	drop 0 12 +field ivec4_IVEC4-rgb
	drop 0 16 +field ivec4_IVEC4-rgba
	drop 0 12 +field ivec4_IVEC4-xyz
drop 16 end-structure
\ ivec4_IVEC4_RGBA
begin-structure ivec4_IVEC4_RGBA
................................................................................
begin-structure ivec3
	drop 0 12 +field ivec3-IVEC3
drop 12 end-structure
\ ivec3_IVEC3
begin-structure ivec3_IVEC3
	drop 0 12 +field ivec3_IVEC3-data
	drop 0 12 +field ivec3_IVEC3-rgb
	drop 0 12 +field ivec3_IVEC3-RGB
	drop 0 12 +field ivec3_IVEC3-xyz
	drop 0 8 +field ivec3_IVEC3-xy
drop 12 end-structure
\ ivec3_IVEC3_RGB
begin-structure ivec3_IVEC3_RGB
	drop 8 4 +field ivec3_IVEC3_RGB-b
	drop 0 4 +field ivec3_IVEC3_RGB-r
................................................................................
drop 4 end-structure
\ ivec2
begin-structure ivec2
	drop 0 8 +field ivec2-IVEC2
drop 8 end-structure
\ ivec2_IVEC2
begin-structure ivec2_IVEC2
	drop 0 8 +field ivec2_IVEC2-XY
	drop 0 8 +field ivec2_IVEC2-data
	drop 0 8 +field ivec2_IVEC2-xy
drop 8 end-structure
\ ivec2_IVEC2_XY
begin-structure ivec2_IVEC2_XY
	drop 0 4 +field ivec2_IVEC2_XY-x
	drop 4 4 +field ivec2_IVEC2_XY-y







>
>
>
>







<
|






|



|







 







|







 







|







 







|







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
...
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
...
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
...
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
\ and is already platform dependent, search for the corresponding
\ fsi-file to compile it where no one has compiled it before ;)
\ GForth has its own dynamic loader and doesn't need addional C-Code.
\ That's why this file contains normal Gforth-code( version 0.6.9 or higher )
\ and could be used directly with include or require.
\ As all comments are stripped during the compilation, please
\ insert the copyright notice of the original file here.

[IFDEF] android
    s" /data/data/gnu.gforth/lib/libfreetype-gl.so" open-lib drop
[THEN]

Vocabulary freetype-gl
get-current also freetype-gl definitions
c-library freetype_gl
    s" freetype-gl" add-lib
    [IFDEF] android
        s" ./.libs" add-libpath

        \c #include "../../../../../freetype_gl/freetype-gl.h"
    [ELSE]
        \c #include <freetype-gl.h>
    [THEN]
\ -------===< structs >===--------
\ struct vec4
begin-structure struct-vec4
	drop 0 16 +field struct-vec4-VEC4_
drop 16 end-structure
\ vec4_VEC4
begin-structure vec4_VEC4
	drop 0 16 +field vec4_VEC4-RGBA_
	drop 0 16 +field vec4_VEC4-data
	drop 0 12 +field vec4_VEC4-rgb
	drop 0 16 +field vec4_VEC4-rgba
	drop 0 12 +field vec4_VEC4-xyz
drop 16 end-structure
\ vec4_VEC4_RGBA
begin-structure vec4_VEC4_RGBA
................................................................................
drop 4 end-structure
\ ivec4
begin-structure ivec4
	drop 0 16 +field ivec4-IVEC4
drop 16 end-structure
\ ivec4_IVEC4
begin-structure ivec4_IVEC4
	drop 0 16 +field ivec4_IVEC4-RGBA_
	drop 0 16 +field ivec4_IVEC4-data
	drop 0 12 +field ivec4_IVEC4-rgb
	drop 0 16 +field ivec4_IVEC4-rgba
	drop 0 12 +field ivec4_IVEC4-xyz
drop 16 end-structure
\ ivec4_IVEC4_RGBA
begin-structure ivec4_IVEC4_RGBA
................................................................................
begin-structure ivec3
	drop 0 12 +field ivec3-IVEC3
drop 12 end-structure
\ ivec3_IVEC3
begin-structure ivec3_IVEC3
	drop 0 12 +field ivec3_IVEC3-data
	drop 0 12 +field ivec3_IVEC3-rgb
	drop 0 12 +field ivec3_IVEC3-RGB_
	drop 0 12 +field ivec3_IVEC3-xyz
	drop 0 8 +field ivec3_IVEC3-xy
drop 12 end-structure
\ ivec3_IVEC3_RGB
begin-structure ivec3_IVEC3_RGB
	drop 8 4 +field ivec3_IVEC3_RGB-b
	drop 0 4 +field ivec3_IVEC3_RGB-r
................................................................................
drop 4 end-structure
\ ivec2
begin-structure ivec2
	drop 0 8 +field ivec2-IVEC2
drop 8 end-structure
\ ivec2_IVEC2
begin-structure ivec2_IVEC2
	drop 0 8 +field ivec2_IVEC2-XY_
	drop 0 8 +field ivec2_IVEC2-data
	drop 0 8 +field ivec2_IVEC2-xy
drop 8 end-structure
\ ivec2_IVEC2_XY
begin-structure ivec2_IVEC2_XY
	drop 0 4 +field ivec2_IVEC2_XY-x
	drop 4 4 +field ivec2_IVEC2_XY-y

Changes to ftgl-helper.fs.

16
17
18
19
20
21
22
23




24
25
26
27
28
29
30
31
32

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 $FFC0A0FF color !

: xy, { glyph -- }







<
>
>
>
>
|
|







16
17
18
19
20
21
22

23
24
25
26
27
28
29
30
31
32
33
34
35

also freetype-gl
also opengl

512 Value atlas#

atlas# dup 1 texture_atlas_new Value atlas


tex: atlas-tex
atlas-tex current-tex atlas texture_atlas_t-id !

\ : 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 $FFC0A0FF color !

: xy, { glyph -- }

Changes to ftgl-sample.fs.

26
27
28
29
30
31
32
33
34
35
36

37
38
39
40
41
42
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







|

|

>


|



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Variable text2$ "这是一个文本:在德语说" text2$ $!

: glyph-draw ( -- )
    0.01e 0.02e 0.15e 1.0e glClearColor
    clear
    Ambient 1 ambient% glUniform1fv
    <render
    0e penxy sf!  -20e penxy sfloat+ sf!
    font1 to font  text1$ $@ render-string
    -100e penxy sf! -80e penxy sfloat+ sf!
    font2 to font  text2$ $@ render-string
    all-glyphs
    render> sync ;

: glyph-demo ( -- )  program init [IFDEF] hidekb  hidekb [THEN]
    1 level# +!  BEGIN  glyph-draw  >looper  level# @ 0= UNTIL ;

previous previous previous

Changes to gl-terminal.fs.

351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
what's at-xy what's at-deltaxy what's page what's attr!
>term
IS attr! IS page IS at-deltaxy IS at-xy
default-out op-vector !
\ initialize

: term-init ( -- )
    buffer-init  >screen-orientation
    create-terminal-program to terminal-program
    terminal-program terminal-init term-load-textures form-chooser
    unit-matrix MVPMatrix set-matrix ;

:noname  defers window-init ['] TerminalShader recompile-shader
    term-init config-changer ; IS window-init

term-init

previous \ remove opengl from search order
[IFDEF] android  previous  [THEN]







|







|



351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
what's at-xy what's at-deltaxy what's page what's attr!
>term
IS attr! IS page IS at-deltaxy IS at-xy
default-out op-vector !
\ initialize

: term-init ( -- )
    >screen-orientation
    create-terminal-program to terminal-program
    terminal-program terminal-init term-load-textures form-chooser
    unit-matrix MVPMatrix set-matrix ;

:noname  defers window-init ['] TerminalShader recompile-shader
    term-init config-changer ; IS window-init

window-init

previous \ remove opengl from search order
[IFDEF] android  previous  [THEN]

Changes to gles2/freetype-gl32.fs.

2
3
4
5
6
7
8




9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
..
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
..
72
73
74
75
76
77
78
79

80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
\ and is already platform dependent, search for the corresponding
\ fsi-file to compile it where no one has compiled it before ;)
\ GForth has its own dynamic loader and doesn't need addional C-Code.
\ That's why this file contains normal Gforth-code( version 0.6.9 or higher )
\ and could be used directly with include or require.
\ As all comments are stripped during the compilation, please
\ insert the copyright notice of the original file here.





Vocabulary freetype-gl
get-current also freetype-gl definitions
c-library freetype_gl
    s" freetype-gl" add-lib
    [IFDEF] android
        s" ./.libs" add-libpath
	s" /data/data/gnu.gforth/lib/libfreetype-gl.so" open-lib drop
        \c #include "../../../../../freetype-gl/freetype-gl.h"
    [ELSE]
        \c #include <freetype-gl.h>
    [THEN]
\ -------===< structs >===--------
\ vec4
begin-structure vec4
................................................................................
\ ivec4
begin-structure ivec4
	drop 0 16 +field ivec4-data
	drop 0 16 +field ivec4-xyzw
	drop 0 12 +field ivec4-rgb
	drop 0 16 +field ivec4-rgba
	drop 0 12 +field ivec4-xyz
	drop 0 16 +field ivec4-XYZW_
drop 16 end-structure
\ ivec4_XYZW
begin-structure ivec4_XYZW
	drop 12 4 +field ivec4_XYZW-w
	drop 0 4 +field ivec4_XYZW-x
	drop 4 4 +field ivec4_XYZW-y
	drop 8 4 +field ivec4_XYZW-z
drop 16 end-structure
\ ivec3
begin-structure ivec3
	drop 0 12 +field ivec3-data
	drop 0 12 +field ivec3-rgb
	drop 0 12 +field ivec3-xyz
	drop 0 8 +field ivec3-xy
................................................................................
\ ivec2
begin-structure ivec2
	drop 0 8 +field ivec2-data
	drop 0 8 +field ivec2-xy
drop 8 end-structure
\ vector_t
begin-structure vector_t
	drop 0 8 +field vector_t-items

	drop 16 8 +field vector_t-size
	drop 24 8 +field vector_t-item_size
	drop 8 8 +field vector_t-capacity
drop 32 end-structure
\ texture_atlas_t
begin-structure texture_atlas_t
	drop 48 8 +field texture_atlas_t-data
	drop 40 4 +field texture_atlas_t-id
	drop 0 8 +field texture_atlas_t-nodes
	drop 16 8 +field texture_atlas_t-height
	drop 32 8 +field texture_atlas_t-used
	drop 8 8 +field texture_atlas_t-width
	drop 24 8 +field texture_atlas_t-depth
drop 56 end-structure
\ kerning_t
begin-structure kerning_t
	drop 0 4 +field kerning_t-charcode
	drop 4 4 +field kerning_t-kerning
drop 8 end-structure
\ texture_glyph_t
begin-structure texture_glyph_t
	drop 16 8 +field texture_glyph_t-height
	drop 44 4 +field texture_glyph_t-t0
	drop 52 4 +field texture_glyph_t-t1
	drop 40 4 +field texture_glyph_t-s0
	drop 68 4 +field texture_glyph_t-outline_thickness
	drop 48 4 +field texture_glyph_t-s1
	drop 24 4 +field texture_glyph_t-offset_x
	drop 28 4 +field texture_glyph_t-offset_y
	drop 64 4 +field texture_glyph_t-outline_type
	drop 32 4 +field texture_glyph_t-advance_x
	drop 36 4 +field texture_glyph_t-advance_y
	drop 4 4 +field texture_glyph_t-id
	drop 8 8 +field texture_glyph_t-width
	drop 0 4 +field texture_glyph_t-charcode
	drop 56 8 +field texture_glyph_t-kerning
drop 72 end-structure
\ texture_font_t
begin-structure texture_font_t
	drop 64 4 +field texture_font_t-descender
	drop 60 4 +field texture_font_t-ascender
	drop 52 4 +field texture_font_t-height
	drop 24 4 +field texture_font_t-size
	drop 0 8 +field texture_font_t-glyphs
	drop 56 4 +field texture_font_t-linegap
	drop 36 4 +field texture_font_t-outline_thickness
	drop 72 4 +field texture_font_t-underline_thickness
	drop 40 4 +field texture_font_t-filtering
	drop 32 4 +field texture_font_t-outline_type
	drop 8 8 +field texture_font_t-atlas
	drop 44 5 +field texture_font_t-lcd_weights
	drop 28 4 +field texture_font_t-hinting
	drop 68 4 +field texture_font_t-underline_position
	drop 16 8 +field texture_font_t-filename
drop 80 end-structure

\ ------===< functions >===-------
c-function vector_new vector_new n -- a
c-function vector_delete vector_delete a -- void
c-function vector_get vector_get a n -- a
c-function vector_front vector_front a -- a
c-function vector_back vector_back a -- a







>
>
>
>






|
<







 







|

|
|
|
|
|
|







 







|
>
|
|
<
|


|
|
|
|
|
|
|
|


|
|
|


|
|
|
|
|
|
|
|
|
|
|
|
|
|
|



|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|







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
..
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
..
75
76
77
78
79
80
81
82
83
84
85

86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
\ and is already platform dependent, search for the corresponding
\ fsi-file to compile it where no one has compiled it before ;)
\ GForth has its own dynamic loader and doesn't need addional C-Code.
\ That's why this file contains normal Gforth-code( version 0.6.9 or higher )
\ and could be used directly with include or require.
\ As all comments are stripped during the compilation, please
\ insert the copyright notice of the original file here.

[IFDEF] android
    s" /data/data/gnu.gforth/lib/libfreetype-gl.so" open-lib drop
[THEN]

Vocabulary freetype-gl
get-current also freetype-gl definitions
c-library freetype_gl
    s" freetype-gl" add-lib
    [IFDEF] android
	s" ./.libs" add-libpath

        \c #include "../../../../../freetype-gl/freetype-gl.h"
    [ELSE]
        \c #include <freetype-gl.h>
    [THEN]
\ -------===< structs >===--------
\ vec4
begin-structure vec4
................................................................................
\ ivec4
begin-structure ivec4
	drop 0 16 +field ivec4-data
	drop 0 16 +field ivec4-xyzw
	drop 0 12 +field ivec4-rgb
	drop 0 16 +field ivec4-rgba
	drop 0 12 +field ivec4-xyz
	drop 0 16 +field ivec4-xyzw_
drop 16 end-structure
\ ivec4_xyzw_
begin-structure ivec4_xyzw_
	drop 12 4 +field ivec4_xyzw_-w
	drop 0 4 +field ivec4_xyzw_-x
	drop 4 4 +field ivec4_xyzw_-y
	drop 8 4 +field ivec4_xyzw_-z
drop 16 end-structure
\ ivec3
begin-structure ivec3
	drop 0 12 +field ivec3-data
	drop 0 12 +field ivec3-rgb
	drop 0 12 +field ivec3-xyz
	drop 0 8 +field ivec3-xy
................................................................................
\ ivec2
begin-structure ivec2
	drop 0 8 +field ivec2-data
	drop 0 8 +field ivec2-xy
drop 8 end-structure
\ vector_t
begin-structure vector_t
	field: vector_t-items
	field: vector_t-capacity
	field: vector_t-size
	field: vector_t-item_size

end-structure
\ texture_atlas_t
begin-structure texture_atlas_t
	field: texture_atlas_t-nodes
	field: texture_atlas_t-width
	field: texture_atlas_t-height
	field: texture_atlas_t-depth
	field: texture_atlas_t-used
	field: texture_atlas_t-id
	field: texture_atlas_t-data
end-structure
\ kerning_t
begin-structure kerning_t
	field: kerning_t-charcode
	field: kerning_t-kerning
end-structure
\ texture_glyph_t
begin-structure texture_glyph_t
	field: texture_glyph_t-charcode
	field: texture_glyph_t-id
	field: texture_glyph_t-width
	field: texture_glyph_t-height
	field: texture_glyph_t-offset_x
	field: texture_glyph_t-offset_y
	field: texture_glyph_t-advance_x
	field: texture_glyph_t-advance_y
	field: texture_glyph_t-s0
	field: texture_glyph_t-t0
	field: texture_glyph_t-s1
	field: texture_glyph_t-t1
	field: texture_glyph_t-kerning
	field: texture_glyph_t-outline_type
	field: texture_glyph_t-outline_thickness
drop 72 end-structure
\ texture_font_t
begin-structure texture_font_t
	field: texture_font_t-glyphs
	field: texture_font_t-atlas
	field: texture_font_t-filename
	field: texture_font_t-size
	field: texture_font_t-hinting
	field: texture_font_t-outline_type
	field: texture_font_t-outline_thickness
	field: texture_font_t-filtering
	5 +field texture_font_t-lcd_weights
	field: texture_font_t-height
	field: texture_font_t-linegap
	field: texture_font_t-ascender
	field: texture_font_t-descender
	field: texture_font_t-underline_position
	field: texture_font_t-underline_thickness
end-structure

\ ------===< functions >===-------
c-function vector_new vector_new n -- a
c-function vector_delete vector_delete a -- void
c-function vector_get vector_get a n -- a
c-function vector_front vector_front a -- a
c-function vector_back vector_back a -- a

Changes to gles2/freetype-gl64.fs.

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
...
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
...
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
...
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
\ and is already platform dependent, search for the corresponding
\ fsi-file to compile it where no one has compiled it before ;)
\ GForth has its own dynamic loader and doesn't need addional C-Code.
\ That's why this file contains normal Gforth-code( version 0.6.9 or higher )
\ and could be used directly with include or require.
\ As all comments are stripped during the compilation, please
\ insert the copyright notice of the original file here.





Vocabulary freetype-gl
get-current also freetype-gl definitions
c-library freetype_gl
    s" freetype-gl" add-lib
    [IFDEF] android
        s" ./.libs" add-libpath
        s" /data/data/gnu.gforth/lib/libfreetype-gl.so" open-lib drop
        \c #include "../../../../../freetype-gl/freetype-gl.h"
    [ELSE]
        \c #include <freetype-gl.h>
    [THEN]
\ -------===< structs >===--------
\ struct vec4
begin-structure struct-vec4
	drop 0 16 +field struct-vec4-VEC4
drop 16 end-structure
\ vec4_VEC4
begin-structure vec4_VEC4
	drop 0 16 +field vec4_VEC4-RGBA
	drop 0 16 +field vec4_VEC4-data
	drop 0 12 +field vec4_VEC4-rgb
	drop 0 16 +field vec4_VEC4-rgba
	drop 0 12 +field vec4_VEC4-xyz
drop 16 end-structure
\ vec4_VEC4_RGBA
begin-structure vec4_VEC4_RGBA
................................................................................
drop 4 end-structure
\ ivec4
begin-structure ivec4
	drop 0 16 +field ivec4-IVEC4
drop 16 end-structure
\ ivec4_IVEC4
begin-structure ivec4_IVEC4
	drop 0 16 +field ivec4_IVEC4-RGBA
	drop 0 16 +field ivec4_IVEC4-data
	drop 0 12 +field ivec4_IVEC4-rgb
	drop 0 16 +field ivec4_IVEC4-rgba
	drop 0 12 +field ivec4_IVEC4-xyz
drop 16 end-structure
\ ivec4_IVEC4_RGBA
begin-structure ivec4_IVEC4_RGBA
................................................................................
begin-structure ivec3
	drop 0 12 +field ivec3-IVEC3
drop 12 end-structure
\ ivec3_IVEC3
begin-structure ivec3_IVEC3
	drop 0 12 +field ivec3_IVEC3-data
	drop 0 12 +field ivec3_IVEC3-rgb
	drop 0 12 +field ivec3_IVEC3-RGB
	drop 0 12 +field ivec3_IVEC3-xyz
	drop 0 8 +field ivec3_IVEC3-xy
drop 12 end-structure
\ ivec3_IVEC3_RGB
begin-structure ivec3_IVEC3_RGB
	drop 8 4 +field ivec3_IVEC3_RGB-b
	drop 0 4 +field ivec3_IVEC3_RGB-r
................................................................................
drop 4 end-structure
\ ivec2
begin-structure ivec2
	drop 0 8 +field ivec2-IVEC2
drop 8 end-structure
\ ivec2_IVEC2
begin-structure ivec2_IVEC2
	drop 0 8 +field ivec2_IVEC2-XY
	drop 0 8 +field ivec2_IVEC2-data
	drop 0 8 +field ivec2_IVEC2-xy
drop 8 end-structure
\ ivec2_IVEC2_XY
begin-structure ivec2_IVEC2_XY
	drop 0 4 +field ivec2_IVEC2_XY-x
	drop 4 4 +field ivec2_IVEC2_XY-y







>
>
>
>







<
|






|



|







 







|







 







|







 







|







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
...
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
...
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
...
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
\ and is already platform dependent, search for the corresponding
\ fsi-file to compile it where no one has compiled it before ;)
\ GForth has its own dynamic loader and doesn't need addional C-Code.
\ That's why this file contains normal Gforth-code( version 0.6.9 or higher )
\ and could be used directly with include or require.
\ As all comments are stripped during the compilation, please
\ insert the copyright notice of the original file here.

[IFDEF] android
    s" /data/data/gnu.gforth/lib/libfreetype-gl.so" open-lib drop
[THEN]

Vocabulary freetype-gl
get-current also freetype-gl definitions
c-library freetype_gl
    s" freetype-gl" add-lib
    [IFDEF] android
        s" ./.libs" add-libpath

        \c #include "../../../../../freetype_gl/freetype-gl.h"
    [ELSE]
        \c #include <freetype-gl.h>
    [THEN]
\ -------===< structs >===--------
\ struct vec4
begin-structure struct-vec4
	drop 0 16 +field struct-vec4-VEC4_
drop 16 end-structure
\ vec4_VEC4
begin-structure vec4_VEC4
	drop 0 16 +field vec4_VEC4-RGBA_
	drop 0 16 +field vec4_VEC4-data
	drop 0 12 +field vec4_VEC4-rgb
	drop 0 16 +field vec4_VEC4-rgba
	drop 0 12 +field vec4_VEC4-xyz
drop 16 end-structure
\ vec4_VEC4_RGBA
begin-structure vec4_VEC4_RGBA
................................................................................
drop 4 end-structure
\ ivec4
begin-structure ivec4
	drop 0 16 +field ivec4-IVEC4
drop 16 end-structure
\ ivec4_IVEC4
begin-structure ivec4_IVEC4
	drop 0 16 +field ivec4_IVEC4-RGBA_
	drop 0 16 +field ivec4_IVEC4-data
	drop 0 12 +field ivec4_IVEC4-rgb
	drop 0 16 +field ivec4_IVEC4-rgba
	drop 0 12 +field ivec4_IVEC4-xyz
drop 16 end-structure
\ ivec4_IVEC4_RGBA
begin-structure ivec4_IVEC4_RGBA
................................................................................
begin-structure ivec3
	drop 0 12 +field ivec3-IVEC3
drop 12 end-structure
\ ivec3_IVEC3
begin-structure ivec3_IVEC3
	drop 0 12 +field ivec3_IVEC3-data
	drop 0 12 +field ivec3_IVEC3-rgb
	drop 0 12 +field ivec3_IVEC3-RGB_
	drop 0 12 +field ivec3_IVEC3-xyz
	drop 0 8 +field ivec3_IVEC3-xy
drop 12 end-structure
\ ivec3_IVEC3_RGB
begin-structure ivec3_IVEC3_RGB
	drop 8 4 +field ivec3_IVEC3_RGB-b
	drop 0 4 +field ivec3_IVEC3_RGB-r
................................................................................
drop 4 end-structure
\ ivec2
begin-structure ivec2
	drop 0 8 +field ivec2-IVEC2
drop 8 end-structure
\ ivec2_IVEC2
begin-structure ivec2_IVEC2
	drop 0 8 +field ivec2_IVEC2-XY_
	drop 0 8 +field ivec2_IVEC2-data
	drop 0 8 +field ivec2_IVEC2-xy
drop 8 end-structure
\ ivec2_IVEC2_XY
begin-structure ivec2_IVEC2_XY
	drop 0 4 +field ivec2_IVEC2_XY-x
	drop 4 4 +field ivec2_IVEC2_XY-y

Changes to gles2/ftgl-helper.fs.

16
17
18
19
20
21
22
23




24
25
26
27
28
29
30
31
32

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 $FFC0A0FF color !

: xy, { glyph -- }







<
>
>
>
>
|
|







16
17
18
19
20
21
22

23
24
25
26
27
28
29
30
31
32
33
34
35

also freetype-gl
also opengl

512 Value atlas#

atlas# dup 1 texture_atlas_new Value atlas


tex: atlas-tex
atlas-tex current-tex atlas texture_atlas_t-id !

\ : 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 $FFC0A0FF color !

: xy, { glyph -- }

Changes to gles2/ftgl-sample.fs.

26
27
28
29
30
31
32
33
34
35
36

37
38
39
40
41
42
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







|

|

>


|



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Variable text2$ "这是一个文本:在德语说" text2$ $!

: glyph-draw ( -- )
    0.01e 0.02e 0.15e 1.0e glClearColor
    clear
    Ambient 1 ambient% glUniform1fv
    <render
    0e penxy sf!  -20e penxy sfloat+ sf!
    font1 to font  text1$ $@ render-string
    -100e penxy sf! -80e penxy sfloat+ sf!
    font2 to font  text2$ $@ render-string
    all-glyphs
    render> sync ;

: glyph-demo ( -- )  program init [IFDEF] hidekb  hidekb [THEN]
    1 level# +!  BEGIN  glyph-draw  >looper  level# @ 0= UNTIL ;

previous previous previous

Changes to gles2/gl-terminal.fs.

351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
what's at-xy what's at-deltaxy what's page what's attr!
>term
IS attr! IS page IS at-deltaxy IS at-xy
default-out op-vector !
\ initialize

: term-init ( -- )
    buffer-init  >screen-orientation
    create-terminal-program to terminal-program
    terminal-program terminal-init term-load-textures form-chooser
    unit-matrix MVPMatrix set-matrix ;

:noname  defers window-init ['] TerminalShader recompile-shader
    term-init config-changer ; IS window-init

term-init

previous \ remove opengl from search order
[IFDEF] android  previous  [THEN]







|







|



351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
what's at-xy what's at-deltaxy what's page what's attr!
>term
IS attr! IS page IS at-deltaxy IS at-xy
default-out op-vector !
\ initialize

: term-init ( -- )
    >screen-orientation
    create-terminal-program to terminal-program
    terminal-program terminal-init term-load-textures form-chooser
    unit-matrix MVPMatrix set-matrix ;

:noname  defers window-init ['] TerminalShader recompile-shader
    term-init config-changer ; IS window-init

window-init

previous \ remove opengl from search order
[IFDEF] android  previous  [THEN]

Changes to gles2/widgets-test.fs.

59
60
61
62
63
64
65
66
67
68
69

70
71
72
73
74
75







8 x ! dpy-h @ 4 / y ! "Dös isch a Tägscht!" text-string $!
$884400FF text-color !  font1 text-font !

f8 >o rdrop
8 x ! dpy-h @ 5 8 */ y ! "这是一个文本:在德语说" text-string $!
$004488FF text-color !  font2 text-font !

<draw0 draw0>
<draw1
f1 >o draw o> f7 >o draw o> f2 >o draw o> f3 >o draw o>
f8 >o draw o> f4 >o draw o> f5 >o draw o> f6 >o draw o>

draw1>
<draw2
f1 >o draw o> f7 >o draw o> f2 >o draw o> f3 >o draw o>
f8 >o draw o> f4 >o draw o> f5 >o draw o> f6 >o draw o>
draw2>
sync














|
<
|
|
>
|
|
|
|
<
|
>
>
>
>
>
>
>
59
60
61
62
63
64
65
66

67
68
69
70
71
72
73

74
75
76
77
78
79
80
81
8 x ! dpy-h @ 4 / y ! "Dös isch a Tägscht!" text-string $!
$884400FF text-color !  font1 text-font !

f8 >o rdrop
8 x ! dpy-h @ 5 8 */ y ! "这是一个文本:在德语说" text-string $!
$004488FF text-color !  font2 text-font !

: widgets-draw ( -- )

    f1 >o draw o> f7 >o draw o> f2 >o draw o> f3 >o draw o>
    f8 >o draw o> f4 >o draw o> f5 >o draw o> f6 >o draw o> ;

: widgets-test
    <draw0 draw0>
    <draw1 widgets-draw draw1>
    <draw2 widgets-draw draw2>

    sync ;

also [IFDEF] android android [THEN]

: widgets-demo ( -- ) program init [IFDEF] hidekb  hidekb [THEN]
    1 level# +!  BEGIN  widgets-test >looper  level# @ 0= UNTIL ;

previous

Changes to gles2/widgets.fs.

6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
require gl-helper.fs
require ftgl-helper.fs
require mini-oof2.fs

get-current
also [IFDEF] android android [THEN]
also opengl

helper-init

vocabulary minos  also minos definitions

0 Value layer \ drawing layer

object class
    field: caller-w







|
<







6
7
8
9
10
11
12
13

14
15
16
17
18
19
20
require gl-helper.fs
require ftgl-helper.fs
require mini-oof2.fs

get-current
also [IFDEF] android android [THEN]
also opengl
[IFUNDEF] android window-init [THEN]


vocabulary minos  also minos definitions

0 Value layer \ drawing layer

object class
    field: caller-w

Changes to widgets-test.fs.

59
60
61
62
63
64
65
66
67
68
69

70
71
72
73
74
75







8 x ! dpy-h @ 4 / y ! "Dös isch a Tägscht!" text-string $!
$884400FF text-color !  font1 text-font !

f8 >o rdrop
8 x ! dpy-h @ 5 8 */ y ! "这是一个文本:在德语说" text-string $!
$004488FF text-color !  font2 text-font !

<draw0 draw0>
<draw1
f1 >o draw o> f7 >o draw o> f2 >o draw o> f3 >o draw o>
f8 >o draw o> f4 >o draw o> f5 >o draw o> f6 >o draw o>

draw1>
<draw2
f1 >o draw o> f7 >o draw o> f2 >o draw o> f3 >o draw o>
f8 >o draw o> f4 >o draw o> f5 >o draw o> f6 >o draw o>
draw2>
sync














|
<
|
|
>
|
|
|
|
<
|
>
>
>
>
>
>
>
59
60
61
62
63
64
65
66

67
68
69
70
71
72
73

74
75
76
77
78
79
80
81
8 x ! dpy-h @ 4 / y ! "Dös isch a Tägscht!" text-string $!
$884400FF text-color !  font1 text-font !

f8 >o rdrop
8 x ! dpy-h @ 5 8 */ y ! "这是一个文本:在德语说" text-string $!
$004488FF text-color !  font2 text-font !

: widgets-draw ( -- )

    f1 >o draw o> f7 >o draw o> f2 >o draw o> f3 >o draw o>
    f8 >o draw o> f4 >o draw o> f5 >o draw o> f6 >o draw o> ;

: widgets-test
    <draw0 draw0>
    <draw1 widgets-draw draw1>
    <draw2 widgets-draw draw2>

    sync ;

also [IFDEF] android android [THEN]

: widgets-demo ( -- ) program init [IFDEF] hidekb  hidekb [THEN]
    1 level# +!  BEGIN  widgets-test >looper  level# @ 0= UNTIL ;

previous

Changes to widgets.fs.

6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
require gl-helper.fs
require ftgl-helper.fs
require mini-oof2.fs

get-current
also [IFDEF] android android [THEN]
also opengl

helper-init

vocabulary minos  also minos definitions

0 Value layer \ drawing layer

object class
    field: caller-w







|
<







6
7
8
9
10
11
12
13

14
15
16
17
18
19
20
require gl-helper.fs
require ftgl-helper.fs
require mini-oof2.fs

get-current
also [IFDEF] android android [THEN]
also opengl
[IFUNDEF] android window-init [THEN]


vocabulary minos  also minos definitions

0 Value layer \ drawing layer

object class
    field: caller-w