blend2d-bindings 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +7 -0
  2. data/ChangeLog +26 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.md +41 -0
  5. data/examples/test.rb +46 -0
  6. data/examples/util/setup_blend2d.rb +46 -0
  7. data/lib/blend2d.rb +95 -0
  8. data/lib/blend2d_api.rb +255 -0
  9. data/lib/blend2d_array.rb +319 -0
  10. data/lib/blend2d_bitarray.rb +275 -0
  11. data/lib/blend2d_bitset.rb +311 -0
  12. data/lib/blend2d_context.rb +1613 -0
  13. data/lib/blend2d_filesystem.rb +211 -0
  14. data/lib/blend2d_font.rb +281 -0
  15. data/lib/blend2d_fontdata.rb +209 -0
  16. data/lib/blend2d_fontdefs.rb +552 -0
  17. data/lib/blend2d_fontface.rb +345 -0
  18. data/lib/blend2d_fontfeaturesettings.rb +210 -0
  19. data/lib/blend2d_fontmanager.rb +187 -0
  20. data/lib/blend2d_fontvariationsettings.rb +210 -0
  21. data/lib/blend2d_format.rb +112 -0
  22. data/lib/blend2d_geometry.rb +424 -0
  23. data/lib/blend2d_glyphbuffer.rb +141 -0
  24. data/lib/blend2d_glyphrun.rb +101 -0
  25. data/lib/blend2d_gradient.rb +429 -0
  26. data/lib/blend2d_image.rb +291 -0
  27. data/lib/blend2d_imagecodec.rb +219 -0
  28. data/lib/blend2d_imagedecoder.rb +168 -0
  29. data/lib/blend2d_imageencoder.rb +159 -0
  30. data/lib/blend2d_matrix.rb +132 -0
  31. data/lib/blend2d_object.rb +326 -0
  32. data/lib/blend2d_path.rb +511 -0
  33. data/lib/blend2d_pattern.rb +202 -0
  34. data/lib/blend2d_pixelconverter.rb +109 -0
  35. data/lib/blend2d_random.rb +77 -0
  36. data/lib/blend2d_rgba.rb +95 -0
  37. data/lib/blend2d_runtime.rb +259 -0
  38. data/lib/blend2d_string.rb +245 -0
  39. data/lib/blend2d_var.rb +294 -0
  40. data/lib/libblend2d.aarch64.so +0 -0
  41. data/lib/libblend2d.arm64.dylib +0 -0
  42. data/lib/libblend2d.dll +0 -0
  43. data/lib/libblend2d.x86_64.dylib +0 -0
  44. data/lib/libblend2d.x86_64.so +0 -0
  45. metadata +99 -0
@@ -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
+