blend2d-bindings 0.1.0-arm64-darwin

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,211 @@
1
+ # Ruby-Blend2D : Yet another Blend2D wrapper for Ruby
2
+ #
3
+ # * https://github.com/vaiorabbit/blend2d-bindings
4
+ #
5
+ # [NOTICE] Autogenerated. Do not edit.
6
+
7
+ require 'ffi'
8
+ require_relative 'blend2d_array'
9
+
10
+ module Blend2D
11
+ extend FFI::Library
12
+ # Define/Macro
13
+
14
+
15
+ # Enum
16
+
17
+ BL_FILE_INFO_OWNER_R = 256
18
+ BL_FILE_INFO_OWNER_W = 128
19
+ BL_FILE_INFO_OWNER_X = 64
20
+ BL_FILE_INFO_OWNER_MASK = 448
21
+ BL_FILE_INFO_GROUP_R = 32
22
+ BL_FILE_INFO_GROUP_W = 16
23
+ BL_FILE_INFO_GROUP_X = 8
24
+ BL_FILE_INFO_GROUP_MASK = 56
25
+ BL_FILE_INFO_OTHER_R = 4
26
+ BL_FILE_INFO_OTHER_W = 2
27
+ BL_FILE_INFO_OTHER_X = 1
28
+ BL_FILE_INFO_OTHER_MASK = 7
29
+ BL_FILE_INFO_SUID = 2048
30
+ BL_FILE_INFO_SGID = 1024
31
+ BL_FILE_INFO_PERMISSIONS_MASK = 4095
32
+ BL_FILE_INFO_REGULAR = 65536
33
+ BL_FILE_INFO_DIRECTORY = 131072
34
+ BL_FILE_INFO_SYMLINK = 262144
35
+ BL_FILE_INFO_CHAR_DEVICE = 1048576
36
+ BL_FILE_INFO_BLOCK_DEVICE = 2097152
37
+ BL_FILE_INFO_FIFO = 4194304
38
+ BL_FILE_INFO_SOCKET = 8388608
39
+ BL_FILE_INFO_HIDDEN = 16777216
40
+ BL_FILE_INFO_EXECUTABLE = 33554432
41
+ BL_FILE_INFO_ARCHIVE = 67108864
42
+ BL_FILE_INFO_SYSTEM = 134217728
43
+ BL_FILE_INFO_VALID = -2147483648
44
+ BL_FILE_INFO_FORCE_UINT = -1
45
+ BL_FILE_OPEN_NO_FLAGS = 0
46
+ BL_FILE_OPEN_READ = 1
47
+ BL_FILE_OPEN_WRITE = 2
48
+ BL_FILE_OPEN_RW = 3
49
+ BL_FILE_OPEN_CREATE = 4
50
+ BL_FILE_OPEN_DELETE = 8
51
+ BL_FILE_OPEN_TRUNCATE = 16
52
+ BL_FILE_OPEN_READ_EXCLUSIVE = 268435456
53
+ BL_FILE_OPEN_WRITE_EXCLUSIVE = 536870912
54
+ BL_FILE_OPEN_RW_EXCLUSIVE = 805306368
55
+ BL_FILE_OPEN_CREATE_EXCLUSIVE = 1073741824
56
+ BL_FILE_OPEN_DELETE_EXCLUSIVE = -2147483648
57
+ BL_FILE_OPEN_FORCE_UINT = -1
58
+ BL_FILE_SEEK_SET = 0
59
+ BL_FILE_SEEK_CUR = 1
60
+ BL_FILE_SEEK_END = 2
61
+ BL_FILE_SEEK_MAX_VALUE = 3
62
+ BL_FILE_SEEK_FORCE_UINT = -1
63
+ BL_FILE_READ_NO_FLAGS = 0
64
+ BL_FILE_READ_MMAP_ENABLED = 1
65
+ BL_FILE_READ_MMAP_AVOID_SMALL = 2
66
+ BL_FILE_READ_MMAP_NO_FALLBACK = 8
67
+ BL_FILE_READ_FORCE_UINT = -1
68
+
69
+ # Typedef
70
+
71
+ typedef :int, :BLFileInfoFlags
72
+ typedef :int, :BLFileOpenFlags
73
+ typedef :int, :BLFileSeekType
74
+ typedef :int, :BLFileReadFlags
75
+
76
+ # Struct
77
+
78
+ class BLFileCore < FFI::Struct
79
+ layout(
80
+ :handle, :int64,
81
+ )
82
+ def handle = self[:handle]
83
+ def handle=(v) self[:handle] = v end
84
+ def init() = blFileInit(self)
85
+ def self.create()
86
+ instance = BLFileCore.new
87
+ blFileInit(instance)
88
+ instance
89
+ end
90
+ def reset() = blFileReset(self)
91
+ def open(fileName, openFlags) = blFileOpen(self, fileName, openFlags)
92
+ def close() = blFileClose(self)
93
+ def seek(offset, seekType, positionOut) = blFileSeek(self, offset, seekType, positionOut)
94
+ def read(buffer, n, bytesReadOut) = blFileRead(self, buffer, n, bytesReadOut)
95
+ def write(buffer, n, bytesWrittenOut) = blFileWrite(self, buffer, n, bytesWrittenOut)
96
+ def truncate(maxSize) = blFileTruncate(self, maxSize)
97
+ def getInfo(infoOut) = blFileGetInfo(self, infoOut)
98
+ def getSize(fileSizeOut) = blFileGetSize(self, fileSizeOut)
99
+ def systemGetInfo(infoOut) = blFileSystemGetInfo(fileName, infoOut)
100
+ def systemReadFile(dst, maxSize, readFlags) = blFileSystemReadFile(fileName, dst, maxSize, readFlags)
101
+ def systemWriteFile(data, size, bytesWrittenOut) = blFileSystemWriteFile(fileName, data, size, bytesWrittenOut)
102
+ end
103
+
104
+ class BLFileInfo < FFI::Struct
105
+ layout(
106
+ :size, :ulong_long,
107
+ :modifiedTime, :long_long,
108
+ :flags, :int,
109
+ :uid, :uint,
110
+ :gid, :uint,
111
+ :reserved, [:uint, 5],
112
+ )
113
+ def size = self[:size]
114
+ def size=(v) self[:size] = v end
115
+ def modifiedTime = self[:modifiedTime]
116
+ def modifiedTime=(v) self[:modifiedTime] = v end
117
+ def flags = self[:flags]
118
+ def flags=(v) self[:flags] = v end
119
+ def uid = self[:uid]
120
+ def uid=(v) self[:uid] = v end
121
+ def gid = self[:gid]
122
+ def gid=(v) self[:gid] = v end
123
+ def reserved = self[:reserved]
124
+ def reserved=(v) self[:reserved] = v end
125
+ def self.create_as(_size_, _modifiedTime_, _flags_, _uid_, _gid_, _reserved_)
126
+ instance = BLFileInfo.new
127
+ instance[:size] = _size_
128
+ instance[:modifiedTime] = _modifiedTime_
129
+ instance[:flags] = _flags_
130
+ instance[:uid] = _uid_
131
+ instance[:gid] = _gid_
132
+ instance[:reserved] = _reserved_
133
+ instance
134
+ end
135
+ end
136
+
137
+
138
+ # Function
139
+
140
+ def self.setup_filesystem_symbols(output_error = false)
141
+ symbols = [
142
+ :blFileInit,
143
+ :blFileReset,
144
+ :blFileOpen,
145
+ :blFileClose,
146
+ :blFileSeek,
147
+ :blFileRead,
148
+ :blFileWrite,
149
+ :blFileTruncate,
150
+ :blFileGetInfo,
151
+ :blFileGetSize,
152
+ :blFileSystemGetInfo,
153
+ :blFileSystemReadFile,
154
+ :blFileSystemWriteFile,
155
+ ]
156
+ apis = {
157
+ :blFileInit => :blFileInit,
158
+ :blFileReset => :blFileReset,
159
+ :blFileOpen => :blFileOpen,
160
+ :blFileClose => :blFileClose,
161
+ :blFileSeek => :blFileSeek,
162
+ :blFileRead => :blFileRead,
163
+ :blFileWrite => :blFileWrite,
164
+ :blFileTruncate => :blFileTruncate,
165
+ :blFileGetInfo => :blFileGetInfo,
166
+ :blFileGetSize => :blFileGetSize,
167
+ :blFileSystemGetInfo => :blFileSystemGetInfo,
168
+ :blFileSystemReadFile => :blFileSystemReadFile,
169
+ :blFileSystemWriteFile => :blFileSystemWriteFile,
170
+ }
171
+ args = {
172
+ :blFileInit => [:pointer],
173
+ :blFileReset => [:pointer],
174
+ :blFileOpen => [:pointer, :pointer, :int],
175
+ :blFileClose => [:pointer],
176
+ :blFileSeek => [:pointer, :long_long, :int, :pointer],
177
+ :blFileRead => [:pointer, :pointer, :ulong_long, :pointer],
178
+ :blFileWrite => [:pointer, :pointer, :ulong_long, :pointer],
179
+ :blFileTruncate => [:pointer, :long_long],
180
+ :blFileGetInfo => [:pointer, :pointer],
181
+ :blFileGetSize => [:pointer, :pointer],
182
+ :blFileSystemGetInfo => [:pointer, :pointer],
183
+ :blFileSystemReadFile => [:pointer, :pointer, :ulong_long, :int],
184
+ :blFileSystemWriteFile => [:pointer, :pointer, :ulong_long, :pointer],
185
+ }
186
+ retvals = {
187
+ :blFileInit => :uint,
188
+ :blFileReset => :uint,
189
+ :blFileOpen => :uint,
190
+ :blFileClose => :uint,
191
+ :blFileSeek => :uint,
192
+ :blFileRead => :uint,
193
+ :blFileWrite => :uint,
194
+ :blFileTruncate => :uint,
195
+ :blFileGetInfo => :uint,
196
+ :blFileGetSize => :uint,
197
+ :blFileSystemGetInfo => :uint,
198
+ :blFileSystemReadFile => :uint,
199
+ :blFileSystemWriteFile => :uint,
200
+ }
201
+ symbols.each do |sym|
202
+ begin
203
+ attach_function apis[sym], sym, args[sym], retvals[sym]
204
+ rescue FFI::NotFoundError => error
205
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
206
+ end
207
+ end
208
+ end
209
+
210
+ end
211
+
@@ -0,0 +1,281 @@
1
+ # Ruby-Blend2D : Yet another Blend2D wrapper for Ruby
2
+ #
3
+ # * https://github.com/vaiorabbit/blend2d-bindings
4
+ #
5
+ # [NOTICE] Autogenerated. Do not edit.
6
+
7
+ require 'ffi'
8
+ require_relative 'blend2d_array'
9
+ require_relative 'blend2d_bitset'
10
+ require_relative 'blend2d_filesystem'
11
+ require_relative 'blend2d_fontdata'
12
+ require_relative 'blend2d_fontdefs'
13
+ require_relative 'blend2d_fontface'
14
+ require_relative 'blend2d_fontfeaturesettings'
15
+ require_relative 'blend2d_fontvariationsettings'
16
+ require_relative 'blend2d_geometry'
17
+ require_relative 'blend2d_glyphbuffer'
18
+ require_relative 'blend2d_glyphrun'
19
+ require_relative 'blend2d_object'
20
+ require_relative 'blend2d_path'
21
+ require_relative 'blend2d_string'
22
+
23
+ module Blend2D
24
+ extend FFI::Library
25
+ # Define/Macro
26
+
27
+
28
+ # Enum
29
+
30
+
31
+ # Typedef
32
+
33
+
34
+ # Struct
35
+
36
+ class BLFontCore < FFI::Struct
37
+ layout(
38
+ :_d, BLObjectDetail,
39
+ )
40
+ def _d = self[:_d]
41
+ def _d=(v) self[:_d] = v end
42
+ def init() = blFontInit(self)
43
+ def self.create()
44
+ instance = BLFontCore.new
45
+ blFontInit(instance)
46
+ instance
47
+ end
48
+ def initMove(other) = blFontInitMove(self, other)
49
+ def initWeak(other) = blFontInitWeak(self, other)
50
+ def destroy() = blFontDestroy(self)
51
+ def reset() = blFontReset(self)
52
+ def assignMove(other) = blFontAssignMove(self, other)
53
+ def assignWeak(other) = blFontAssignWeak(self, other)
54
+ def equals(b) = blFontEquals(a, b)
55
+ def createFromFace(face, size) = blFontCreateFromFace(self, face, size)
56
+ def createFromFaceWithSettings(face, size, featureSettings, variationSettings) = blFontCreateFromFaceWithSettings(self, face, size, featureSettings, variationSettings)
57
+ def getFace(out) = blFontGetFace(self, out)
58
+ def getSize() = blFontGetSize(self)
59
+ def setSize(size) = blFontSetSize(self, size)
60
+ def getMetrics(out) = blFontGetMetrics(self, out)
61
+ def getMatrix(out) = blFontGetMatrix(self, out)
62
+ def getDesignMetrics(out) = blFontGetDesignMetrics(self, out)
63
+ def getFeatureSettings(out) = blFontGetFeatureSettings(self, out)
64
+ def setFeatureSettings(featureSettings) = blFontSetFeatureSettings(self, featureSettings)
65
+ def resetFeatureSettings() = blFontResetFeatureSettings(self)
66
+ def getVariationSettings(out) = blFontGetVariationSettings(self, out)
67
+ def setVariationSettings(variationSettings) = blFontSetVariationSettings(self, variationSettings)
68
+ def resetVariationSettings() = blFontResetVariationSettings(self)
69
+ def shape(gb) = blFontShape(self, gb)
70
+ def mapTextToGlyphs(gb, stateOut) = blFontMapTextToGlyphs(self, gb, stateOut)
71
+ def positionGlyphs(gb) = blFontPositionGlyphs(self, gb)
72
+ def applyKerning(gb) = blFontApplyKerning(self, gb)
73
+ def applyGSub(gb, lookups) = blFontApplyGSub(self, gb, lookups)
74
+ def applyGPos(gb, lookups) = blFontApplyGPos(self, gb, lookups)
75
+ def getTextMetrics(gb, out) = blFontGetTextMetrics(self, gb, out)
76
+ def getGlyphBounds(glyphData, glyphAdvance, out, count) = blFontGetGlyphBounds(self, glyphData, glyphAdvance, out, count)
77
+ def getGlyphAdvances(glyphData, glyphAdvance, out, count) = blFontGetGlyphAdvances(self, glyphData, glyphAdvance, out, count)
78
+ def getGlyphOutlines(glyphId, userTransform, out, sink, userData) = blFontGetGlyphOutlines(self, glyphId, userTransform, out, sink, userData)
79
+ def getGlyphRunOutlines(glyphRun, userTransform, out, sink, userData) = blFontGetGlyphRunOutlines(self, glyphRun, userTransform, out, sink, userData)
80
+ end
81
+
82
+ class BLFontImpl < FFI::Struct
83
+ layout(
84
+ :face, BLFontFaceCore,
85
+ :weight, :ushort,
86
+ :stretch, :uchar,
87
+ :style, :uchar,
88
+ :reserved, :uint,
89
+ :metrics, BLFontMetrics,
90
+ :matrix, BLFontMatrix,
91
+ :featureSettings, BLFontFeatureSettingsCore,
92
+ :variationSettings, BLFontVariationSettingsCore,
93
+ )
94
+ def face = self[:face]
95
+ def face=(v) self[:face] = v end
96
+ def weight = self[:weight]
97
+ def weight=(v) self[:weight] = v end
98
+ def stretch = self[:stretch]
99
+ def stretch=(v) self[:stretch] = v end
100
+ def style = self[:style]
101
+ def style=(v) self[:style] = v end
102
+ def reserved = self[:reserved]
103
+ def reserved=(v) self[:reserved] = v end
104
+ def metrics = self[:metrics]
105
+ def metrics=(v) self[:metrics] = v end
106
+ def matrix = self[:matrix]
107
+ def matrix=(v) self[:matrix] = v end
108
+ def featureSettings = self[:featureSettings]
109
+ def featureSettings=(v) self[:featureSettings] = v end
110
+ def variationSettings = self[:variationSettings]
111
+ def variationSettings=(v) self[:variationSettings] = v end
112
+ def self.create_as(_face_, _weight_, _stretch_, _style_, _reserved_, _metrics_, _matrix_, _featureSettings_, _variationSettings_)
113
+ instance = BLFontImpl.new
114
+ instance[:face] = _face_
115
+ instance[:weight] = _weight_
116
+ instance[:stretch] = _stretch_
117
+ instance[:style] = _style_
118
+ instance[:reserved] = _reserved_
119
+ instance[:metrics] = _metrics_
120
+ instance[:matrix] = _matrix_
121
+ instance[:featureSettings] = _featureSettings_
122
+ instance[:variationSettings] = _variationSettings_
123
+ instance
124
+ end
125
+ end
126
+
127
+
128
+ # Function
129
+
130
+ def self.setup_font_symbols(output_error = false)
131
+ symbols = [
132
+ :blFontInit,
133
+ :blFontInitMove,
134
+ :blFontInitWeak,
135
+ :blFontDestroy,
136
+ :blFontReset,
137
+ :blFontAssignMove,
138
+ :blFontAssignWeak,
139
+ :blFontEquals,
140
+ :blFontCreateFromFace,
141
+ :blFontCreateFromFaceWithSettings,
142
+ :blFontGetFace,
143
+ :blFontGetSize,
144
+ :blFontSetSize,
145
+ :blFontGetMetrics,
146
+ :blFontGetMatrix,
147
+ :blFontGetDesignMetrics,
148
+ :blFontGetFeatureSettings,
149
+ :blFontSetFeatureSettings,
150
+ :blFontResetFeatureSettings,
151
+ :blFontGetVariationSettings,
152
+ :blFontSetVariationSettings,
153
+ :blFontResetVariationSettings,
154
+ :blFontShape,
155
+ :blFontMapTextToGlyphs,
156
+ :blFontPositionGlyphs,
157
+ :blFontApplyKerning,
158
+ :blFontApplyGSub,
159
+ :blFontApplyGPos,
160
+ :blFontGetTextMetrics,
161
+ :blFontGetGlyphBounds,
162
+ :blFontGetGlyphAdvances,
163
+ :blFontGetGlyphOutlines,
164
+ :blFontGetGlyphRunOutlines,
165
+ ]
166
+ apis = {
167
+ :blFontInit => :blFontInit,
168
+ :blFontInitMove => :blFontInitMove,
169
+ :blFontInitWeak => :blFontInitWeak,
170
+ :blFontDestroy => :blFontDestroy,
171
+ :blFontReset => :blFontReset,
172
+ :blFontAssignMove => :blFontAssignMove,
173
+ :blFontAssignWeak => :blFontAssignWeak,
174
+ :blFontEquals => :blFontEquals,
175
+ :blFontCreateFromFace => :blFontCreateFromFace,
176
+ :blFontCreateFromFaceWithSettings => :blFontCreateFromFaceWithSettings,
177
+ :blFontGetFace => :blFontGetFace,
178
+ :blFontGetSize => :blFontGetSize,
179
+ :blFontSetSize => :blFontSetSize,
180
+ :blFontGetMetrics => :blFontGetMetrics,
181
+ :blFontGetMatrix => :blFontGetMatrix,
182
+ :blFontGetDesignMetrics => :blFontGetDesignMetrics,
183
+ :blFontGetFeatureSettings => :blFontGetFeatureSettings,
184
+ :blFontSetFeatureSettings => :blFontSetFeatureSettings,
185
+ :blFontResetFeatureSettings => :blFontResetFeatureSettings,
186
+ :blFontGetVariationSettings => :blFontGetVariationSettings,
187
+ :blFontSetVariationSettings => :blFontSetVariationSettings,
188
+ :blFontResetVariationSettings => :blFontResetVariationSettings,
189
+ :blFontShape => :blFontShape,
190
+ :blFontMapTextToGlyphs => :blFontMapTextToGlyphs,
191
+ :blFontPositionGlyphs => :blFontPositionGlyphs,
192
+ :blFontApplyKerning => :blFontApplyKerning,
193
+ :blFontApplyGSub => :blFontApplyGSub,
194
+ :blFontApplyGPos => :blFontApplyGPos,
195
+ :blFontGetTextMetrics => :blFontGetTextMetrics,
196
+ :blFontGetGlyphBounds => :blFontGetGlyphBounds,
197
+ :blFontGetGlyphAdvances => :blFontGetGlyphAdvances,
198
+ :blFontGetGlyphOutlines => :blFontGetGlyphOutlines,
199
+ :blFontGetGlyphRunOutlines => :blFontGetGlyphRunOutlines,
200
+ }
201
+ args = {
202
+ :blFontInit => [:pointer],
203
+ :blFontInitMove => [:pointer, :pointer],
204
+ :blFontInitWeak => [:pointer, :pointer],
205
+ :blFontDestroy => [:pointer],
206
+ :blFontReset => [:pointer],
207
+ :blFontAssignMove => [:pointer, :pointer],
208
+ :blFontAssignWeak => [:pointer, :pointer],
209
+ :blFontEquals => [:pointer, :pointer],
210
+ :blFontCreateFromFace => [:pointer, :pointer, :float],
211
+ :blFontCreateFromFaceWithSettings => [:pointer, :pointer, :float, :pointer, :pointer],
212
+ :blFontGetFace => [:pointer, :pointer],
213
+ :blFontGetSize => [:pointer],
214
+ :blFontSetSize => [:pointer, :float],
215
+ :blFontGetMetrics => [:pointer, :pointer],
216
+ :blFontGetMatrix => [:pointer, :pointer],
217
+ :blFontGetDesignMetrics => [:pointer, :pointer],
218
+ :blFontGetFeatureSettings => [:pointer, :pointer],
219
+ :blFontSetFeatureSettings => [:pointer, :pointer],
220
+ :blFontResetFeatureSettings => [:pointer],
221
+ :blFontGetVariationSettings => [:pointer, :pointer],
222
+ :blFontSetVariationSettings => [:pointer, :pointer],
223
+ :blFontResetVariationSettings => [:pointer],
224
+ :blFontShape => [:pointer, :pointer],
225
+ :blFontMapTextToGlyphs => [:pointer, :pointer, :pointer],
226
+ :blFontPositionGlyphs => [:pointer, :pointer],
227
+ :blFontApplyKerning => [:pointer, :pointer],
228
+ :blFontApplyGSub => [:pointer, :pointer, :pointer],
229
+ :blFontApplyGPos => [:pointer, :pointer, :pointer],
230
+ :blFontGetTextMetrics => [:pointer, :pointer, :pointer],
231
+ :blFontGetGlyphBounds => [:pointer, :pointer, :int64, :pointer, :ulong_long],
232
+ :blFontGetGlyphAdvances => [:pointer, :pointer, :int64, :pointer, :ulong_long],
233
+ :blFontGetGlyphOutlines => [:pointer, :uint, :pointer, :pointer, :BLPathSinkFunc, :pointer],
234
+ :blFontGetGlyphRunOutlines => [:pointer, :pointer, :pointer, :pointer, :BLPathSinkFunc, :pointer],
235
+ }
236
+ retvals = {
237
+ :blFontInit => :uint,
238
+ :blFontInitMove => :uint,
239
+ :blFontInitWeak => :uint,
240
+ :blFontDestroy => :uint,
241
+ :blFontReset => :uint,
242
+ :blFontAssignMove => :uint,
243
+ :blFontAssignWeak => :uint,
244
+ :blFontEquals => :bool,
245
+ :blFontCreateFromFace => :uint,
246
+ :blFontCreateFromFaceWithSettings => :uint,
247
+ :blFontGetFace => :uint,
248
+ :blFontGetSize => :float,
249
+ :blFontSetSize => :uint,
250
+ :blFontGetMetrics => :uint,
251
+ :blFontGetMatrix => :uint,
252
+ :blFontGetDesignMetrics => :uint,
253
+ :blFontGetFeatureSettings => :uint,
254
+ :blFontSetFeatureSettings => :uint,
255
+ :blFontResetFeatureSettings => :uint,
256
+ :blFontGetVariationSettings => :uint,
257
+ :blFontSetVariationSettings => :uint,
258
+ :blFontResetVariationSettings => :uint,
259
+ :blFontShape => :uint,
260
+ :blFontMapTextToGlyphs => :uint,
261
+ :blFontPositionGlyphs => :uint,
262
+ :blFontApplyKerning => :uint,
263
+ :blFontApplyGSub => :uint,
264
+ :blFontApplyGPos => :uint,
265
+ :blFontGetTextMetrics => :uint,
266
+ :blFontGetGlyphBounds => :uint,
267
+ :blFontGetGlyphAdvances => :uint,
268
+ :blFontGetGlyphOutlines => :uint,
269
+ :blFontGetGlyphRunOutlines => :uint,
270
+ }
271
+ symbols.each do |sym|
272
+ begin
273
+ attach_function apis[sym], sym, args[sym], retvals[sym]
274
+ rescue FFI::NotFoundError => error
275
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
276
+ end
277
+ end
278
+ end
279
+
280
+ end
281
+
@@ -0,0 +1,209 @@
1
+ # Ruby-Blend2D : Yet another Blend2D wrapper for Ruby
2
+ #
3
+ # * https://github.com/vaiorabbit/blend2d-bindings
4
+ #
5
+ # [NOTICE] Autogenerated. Do not edit.
6
+
7
+ require 'ffi'
8
+ require_relative 'blend2d_array'
9
+ require_relative 'blend2d_filesystem'
10
+ require_relative 'blend2d_fontdefs'
11
+ require_relative 'blend2d_object'
12
+ require_relative 'blend2d_string'
13
+
14
+ module Blend2D
15
+ extend FFI::Library
16
+ # Define/Macro
17
+
18
+
19
+ # Enum
20
+
21
+ BL_FONT_DATA_NO_FLAGS = 0
22
+ BL_FONT_DATA_FLAG_COLLECTION = 1
23
+ BL_FONT_DATA_FLAG_FORCE_UINT = -1
24
+
25
+ # Typedef
26
+
27
+ typedef :int, :BLFontDataFlags
28
+
29
+ # Struct
30
+
31
+ class BLFontTable < FFI::Struct
32
+ layout(
33
+ :data, :pointer,
34
+ :size, :ulong_long,
35
+ )
36
+ def data = self[:data]
37
+ def data=(v) self[:data] = v end
38
+ def size = self[:size]
39
+ def size=(v) self[:size] = v end
40
+ def self.create_as(_data_, _size_)
41
+ instance = BLFontTable.new
42
+ instance[:data] = _data_
43
+ instance[:size] = _size_
44
+ instance
45
+ end
46
+ end
47
+
48
+ class BLFontDataCore < FFI::Struct
49
+ layout(
50
+ :_d, BLObjectDetail,
51
+ )
52
+ def _d = self[:_d]
53
+ def _d=(v) self[:_d] = v end
54
+ def init() = blFontDataInit(self)
55
+ def self.create()
56
+ instance = BLFontDataCore.new
57
+ blFontDataInit(instance)
58
+ instance
59
+ end
60
+ def initMove(other) = blFontDataInitMove(self, other)
61
+ def initWeak(other) = blFontDataInitWeak(self, other)
62
+ def destroy() = blFontDataDestroy(self)
63
+ def reset() = blFontDataReset(self)
64
+ def assignMove(other) = blFontDataAssignMove(self, other)
65
+ def assignWeak(other) = blFontDataAssignWeak(self, other)
66
+ def createFromFile(fileName, readFlags) = blFontDataCreateFromFile(self, fileName, readFlags)
67
+ def createFromDataArray(dataArray) = blFontDataCreateFromDataArray(self, dataArray)
68
+ def createFromData(data, dataSize, destroyFunc, userData) = blFontDataCreateFromData(self, data, dataSize, destroyFunc, userData)
69
+ def equals(b) = blFontDataEquals(a, b)
70
+ def getFaceCount() = blFontDataGetFaceCount(self)
71
+ def getFaceType() = blFontDataGetFaceType(self)
72
+ def getFlags() = blFontDataGetFlags(self)
73
+ def getTableTags(faceIndex, dst) = blFontDataGetTableTags(self, faceIndex, dst)
74
+ def getTables(faceIndex, dst, tags, count) = blFontDataGetTables(self, faceIndex, dst, tags, count)
75
+ end
76
+
77
+ class BLFontDataVirt < FFI::Struct
78
+ layout(
79
+ :base, BLObjectVirtBase,
80
+ :getTableTags, :pointer,
81
+ :getTables, :pointer,
82
+ )
83
+ def base = self[:base]
84
+ def base=(v) self[:base] = v end
85
+ def getTableTags = self[:getTableTags]
86
+ def getTableTags=(v) self[:getTableTags] = v end
87
+ def getTables = self[:getTables]
88
+ def getTables=(v) self[:getTables] = v end
89
+ def self.create_as(_base_, _getTableTags_, _getTables_)
90
+ instance = BLFontDataVirt.new
91
+ instance[:base] = _base_
92
+ instance[:getTableTags] = _getTableTags_
93
+ instance[:getTables] = _getTables_
94
+ instance
95
+ end
96
+ end
97
+
98
+ class BLFontDataImpl < FFI::Struct
99
+ layout(
100
+ :virt, :pointer,
101
+ :faceType, :uchar,
102
+ :faceCount, :uint,
103
+ :flags, :uint,
104
+ )
105
+ def virt = self[:virt]
106
+ def virt=(v) self[:virt] = v end
107
+ def faceType = self[:faceType]
108
+ def faceType=(v) self[:faceType] = v end
109
+ def faceCount = self[:faceCount]
110
+ def faceCount=(v) self[:faceCount] = v end
111
+ def flags = self[:flags]
112
+ def flags=(v) self[:flags] = v end
113
+ def self.create_as(_virt_, _faceType_, _faceCount_, _flags_)
114
+ instance = BLFontDataImpl.new
115
+ instance[:virt] = _virt_
116
+ instance[:faceType] = _faceType_
117
+ instance[:faceCount] = _faceCount_
118
+ instance[:flags] = _flags_
119
+ instance
120
+ end
121
+ end
122
+
123
+
124
+ # Function
125
+
126
+ def self.setup_fontdata_symbols(output_error = false)
127
+ symbols = [
128
+ :blFontDataInit,
129
+ :blFontDataInitMove,
130
+ :blFontDataInitWeak,
131
+ :blFontDataDestroy,
132
+ :blFontDataReset,
133
+ :blFontDataAssignMove,
134
+ :blFontDataAssignWeak,
135
+ :blFontDataCreateFromFile,
136
+ :blFontDataCreateFromDataArray,
137
+ :blFontDataCreateFromData,
138
+ :blFontDataEquals,
139
+ :blFontDataGetFaceCount,
140
+ :blFontDataGetFaceType,
141
+ :blFontDataGetFlags,
142
+ :blFontDataGetTableTags,
143
+ :blFontDataGetTables,
144
+ ]
145
+ apis = {
146
+ :blFontDataInit => :blFontDataInit,
147
+ :blFontDataInitMove => :blFontDataInitMove,
148
+ :blFontDataInitWeak => :blFontDataInitWeak,
149
+ :blFontDataDestroy => :blFontDataDestroy,
150
+ :blFontDataReset => :blFontDataReset,
151
+ :blFontDataAssignMove => :blFontDataAssignMove,
152
+ :blFontDataAssignWeak => :blFontDataAssignWeak,
153
+ :blFontDataCreateFromFile => :blFontDataCreateFromFile,
154
+ :blFontDataCreateFromDataArray => :blFontDataCreateFromDataArray,
155
+ :blFontDataCreateFromData => :blFontDataCreateFromData,
156
+ :blFontDataEquals => :blFontDataEquals,
157
+ :blFontDataGetFaceCount => :blFontDataGetFaceCount,
158
+ :blFontDataGetFaceType => :blFontDataGetFaceType,
159
+ :blFontDataGetFlags => :blFontDataGetFlags,
160
+ :blFontDataGetTableTags => :blFontDataGetTableTags,
161
+ :blFontDataGetTables => :blFontDataGetTables,
162
+ }
163
+ args = {
164
+ :blFontDataInit => [:pointer],
165
+ :blFontDataInitMove => [:pointer, :pointer],
166
+ :blFontDataInitWeak => [:pointer, :pointer],
167
+ :blFontDataDestroy => [:pointer],
168
+ :blFontDataReset => [:pointer],
169
+ :blFontDataAssignMove => [:pointer, :pointer],
170
+ :blFontDataAssignWeak => [:pointer, :pointer],
171
+ :blFontDataCreateFromFile => [:pointer, :pointer, :int],
172
+ :blFontDataCreateFromDataArray => [:pointer, :pointer],
173
+ :blFontDataCreateFromData => [:pointer, :pointer, :ulong_long, :BLDestroyExternalDataFunc, :pointer],
174
+ :blFontDataEquals => [:pointer, :pointer],
175
+ :blFontDataGetFaceCount => [:pointer],
176
+ :blFontDataGetFaceType => [:pointer],
177
+ :blFontDataGetFlags => [:pointer],
178
+ :blFontDataGetTableTags => [:pointer, :uint, :pointer],
179
+ :blFontDataGetTables => [:pointer, :uint, :pointer, :pointer, :ulong_long],
180
+ }
181
+ retvals = {
182
+ :blFontDataInit => :uint,
183
+ :blFontDataInitMove => :uint,
184
+ :blFontDataInitWeak => :uint,
185
+ :blFontDataDestroy => :uint,
186
+ :blFontDataReset => :uint,
187
+ :blFontDataAssignMove => :uint,
188
+ :blFontDataAssignWeak => :uint,
189
+ :blFontDataCreateFromFile => :uint,
190
+ :blFontDataCreateFromDataArray => :uint,
191
+ :blFontDataCreateFromData => :uint,
192
+ :blFontDataEquals => :bool,
193
+ :blFontDataGetFaceCount => :uint,
194
+ :blFontDataGetFaceType => :int,
195
+ :blFontDataGetFlags => :int,
196
+ :blFontDataGetTableTags => :uint,
197
+ :blFontDataGetTables => :ulong_long,
198
+ }
199
+ symbols.each do |sym|
200
+ begin
201
+ attach_function apis[sym], sym, args[sym], retvals[sym]
202
+ rescue FFI::NotFoundError => error
203
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
204
+ end
205
+ end
206
+ end
207
+
208
+ end
209
+