raylib-bindings 0.0.1

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: e036ae2e91de703e2fc212088a7856b11660bc8ce11f77bd3a0a72740e014255
4
+ data.tar.gz: ae6a555ea7abed386675d56402ea4e862a95f4abae4ed1fd9aead19e7be330b9
5
+ SHA512:
6
+ metadata.gz: 22df4ecf798670ecd25ec3b8dd8b117ffc2f4dd0b87b32e1aeb8f3a8a5c74033ef7dc0f57765d383a798fb82d67cb83e70588f465d6ecb01d73d83ecbcefa017
7
+ data.tar.gz: ea793e3f209ccf93c58677d781476352e4795ac81359d5bc1435c3b980c618474e88c3796e44fa4861d3579c8a73a4cee414fbeec6f6cacd5f26a6ef737f571b
data/ChangeLog ADDED
@@ -0,0 +1,95 @@
1
+ 2021-12-15 vaiorabbit <http://twitter.com/vaiorabbit>
2
+
3
+ * Pulled latest raylib ( https://github.com/raysan5/raylib/commit/0454acaacfaae4a3269d443d3d88045240f738c3 )
4
+ * Added generator scripts for Windows
5
+
6
+ 2021-11-14 vaiorabbit <http://twitter.com/vaiorabbit>
7
+
8
+ * examples/core_storage_values.rb: Added
9
+
10
+ 2021-11-13 vaiorabbit <http://twitter.com/vaiorabbit>
11
+
12
+ * examples/core_drop_files.rb: Added
13
+
14
+ 2021-11-09 vaiorabbit <http://twitter.com/vaiorabbit>
15
+
16
+ * examples/models_first_person_maze.rb: Added
17
+
18
+ 2021-11-08 vaiorabbit <http://twitter.com/vaiorabbit>
19
+
20
+ * examples/raylib_opengl_interop.rb: Added
21
+ * examples/models_geometric_shapes.rb: Added
22
+
23
+ 2021-11-07 vaiorabbit <http://twitter.com/vaiorabbit>
24
+
25
+ * examples/rlgl_compute_shader.rb: Added
26
+ * examples/models_billboard.rb: Added
27
+
28
+ 2021-11-06 vaiorabbit <http://twitter.com/vaiorabbit>
29
+
30
+ * examples/physics_demo.rb: Added
31
+ * examples/textures_background_scrolling.rb: Added
32
+ * Added dll build scripts for Windows
33
+
34
+ 2021-11-05 vaiorabbit <http://twitter.com/vaiorabbit>
35
+
36
+ * examples/models_box_collisions.rb: Added
37
+ * Added physac wrapper and wrapper generator
38
+ * Pulled latest raylib ( https://github.com/raysan5/raylib/commit/2021f09db4df72aea9f963666435bddf0718df94 )
39
+
40
+ 2021-11-04 vaiorabbit <http://twitter.com/vaiorabbit>
41
+
42
+ * Bugfix: Generate correct signatures for raymath and rlgl
43
+ * Pulled latest raylib ( https://github.com/raysan5/raylib/commit/d18f3fca30858916546908e40cc2e0cea2be03ca )
44
+ * Bugfix: Fixed wrong signature in raymath.rb
45
+ * examples/audio_sound_loading.rb: Added
46
+ * examples/audio_music_stream.rb: Added
47
+
48
+ 2021-11-03 vaiorabbit <http://twitter.com/vaiorabbit>
49
+
50
+ * Added raygui wrapper and wrapper generator
51
+ * examples/shapes_draw_circle_sector.rb: Added
52
+
53
+ 2021-10-31 vaiorabbit <http://twitter.com/vaiorabbit>
54
+
55
+ * examples/text_unicode.rb: Added
56
+ * examples/textures_bunnymark.rb: Added
57
+
58
+ 2021-10-28 vaiorabbit <http://twitter.com/vaiorabbit>
59
+
60
+ * examples/core_loading_thread.rb: Added
61
+ * examples/bitmap_font.rb and font/VP16Font_XNA.png: Added
62
+
63
+ 2021-10-27 vaiorabbit <http://twitter.com/vaiorabbit>
64
+
65
+ * examples/models_waving_cubes.rb: Added
66
+
67
+ 2021-10-26 vaiorabbit <http://twitter.com/vaiorabbit>
68
+
69
+ * examples/models_rlgl_solar_system.rb: Added
70
+ * Bugfix: DEG2RAD and RAD2DEG duplication
71
+ * examples/models_cubicmap.rb: Added
72
+
73
+ 2021-10-25 vaiorabbit <http://twitter.com/vaiorabbit>
74
+
75
+ * examples/utf8_font.rb: Added
76
+
77
+ 2021-10-24 vaiorabbit <http://twitter.com/vaiorabbit>
78
+
79
+ * generator: Add ".by_value" to struct arguments
80
+ * generator: Add struct alias hook
81
+ * examples: Added
82
+ * examples/shapes_basic_shapes.rb: Added
83
+ * generator: Now correctly handles variable-length arguments (TextFormat and TraceLog)
84
+ * Added helper functions (Color.from_u8, Vector2.create, etc.)
85
+ * examples/core_3d_camera_first_person.rb: Added
86
+ * generator: Now correctly handles return values
87
+ * Bugfix: Removed duplicated enums / Names of some structs must start with capital letter
88
+
89
+ 2021-10-23 vaiorabbit <http://twitter.com/vaiorabbit>
90
+
91
+ * Experimental raylib header parser
92
+
93
+ 2021-10-17 vaiorabbit <http://twitter.com/vaiorabbit>
94
+
95
+ * initial commit
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ Ruby-raylib : Yet another raylib wrapper for Ruby
2
+ Copyright (c) 2021 vaiorabbit <http://twitter.com/vaiorabbit>
3
+
4
+ This software is provided 'as-is', without any express or implied
5
+ warranty. In no event will the authors be held liable for any damages
6
+ arising from the use of this software.
7
+
8
+ Permission is granted to anyone to use this software for any purpose,
9
+ including commercial applications, and to alter it and redistribute it
10
+ freely, subject to the following restrictions:
11
+
12
+ 1. The origin of this software must not be misrepresented; you must not
13
+ claim that you wrote the original software. If you use this software
14
+ in a product, an acknowledgment in the product documentation would be
15
+ appreciated but is not required.
16
+
17
+ 2. Altered source versions must be plainly marked as such, and must not be
18
+ misrepresented as being the original software.
19
+
20
+ 3. This notice may not be removed or altered from any source
21
+ distribution.
data/README.md ADDED
@@ -0,0 +1,76 @@
1
+ <!-- -*- mode:markdown; coding:utf-8; -*- -->
2
+
3
+ # Yet another raylib wrapper for Ruby #
4
+
5
+ Provides latest [raylib](https://github.com/raysan5/raylib) API for Ruby
6
+
7
+ * Created : 2021-10-17
8
+ * Last modified : 2021-12-15
9
+
10
+ ## Features ##
11
+
12
+ * Generated semi-automatically
13
+ * Based on Ruby/FFI
14
+ * No need to build C extension library
15
+
16
+ ## Prerequisites ##
17
+
18
+ * Ruby interpreter
19
+ * Tested on:
20
+ * [macOS]
21
+ * ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [arm64-darwin20]
22
+ * [Windows] https://rubyinstaller.org/downloads/ Ruby+Devkit
23
+ * ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x64-mingw32]
24
+
25
+ * Compiler
26
+ * Tested on:
27
+ * [macOS] clang
28
+
29
+ Apple clang version 13.0.0 (clang-1300.0.29.3)
30
+ Target: arm64-apple-darwin20.6.0
31
+ Thread model: posix
32
+ InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
33
+
34
+ * [Windows] gcc
35
+
36
+ gcc (Rev5, Built by MSYS2 project) 10.3.0
37
+
38
+ * CMake https://cmake.org/download/
39
+
40
+ ## License ##
41
+
42
+ Shared libraries in `lib` directory are built on top of these products and are available under the terms of these licenses:
43
+
44
+ * `libraylib.dylib`, `libraylib.dll`
45
+ * raylib ( https://github.com/raysan5/raylib )
46
+ * https://github.com/raysan5/raylib/blob/master/LICENSE
47
+ * `raygui.dylib`, `raygui.dll`
48
+ * raygui ( https://github.com/raysan5/raygui )
49
+ * https://github.com/raysan5/raygui/blob/master/LICENSE
50
+ * `physac.dylib`, `physac.dll`
51
+ * Physac ( https://github.com/victorfisac/Physac )
52
+ * https://github.com/victorfisac/Physac/blob/a8a6c864bfc809f8e4b2f88bb916b90d736b3f4a/src/physac.h#L59-L76
53
+
54
+ All ruby codes here are available under the terms of the zlib/libpng License ( http://opensource.org/licenses/Zlib ).
55
+
56
+ Ruby-raylib : Yet another raylib wrapper for Ruby
57
+ Copyright (c) 2021 vaiorabbit <http://twitter.com/vaiorabbit>
58
+
59
+ This software is provided 'as-is', without any express or implied
60
+ warranty. In no event will the authors be held liable for any damages
61
+ arising from the use of this software.
62
+
63
+ Permission is granted to anyone to use this software for any purpose,
64
+ including commercial applications, and to alter it and redistribute it
65
+ freely, subject to the following restrictions:
66
+
67
+ 1. The origin of this software must not be misrepresented; you must not
68
+ claim that you wrote the original software. If you use this software
69
+ in a product, an acknowledgment in the product documentation would be
70
+ appreciated but is not required.
71
+
72
+ 2. Altered source versions must be plainly marked as such, and must not be
73
+ misrepresented as being the original software.
74
+
75
+ 3. This notice may not be removed or altered from any source
76
+ distribution.
Binary file
@@ -0,0 +1 @@
1
+ libraylib.4.0.0.dylib
data/lib/libraylib.dll ADDED
Binary file
@@ -0,0 +1 @@
1
+ libraylib.400.dylib
data/lib/physac.dll ADDED
Binary file
data/lib/physac.dylib ADDED
Binary file
data/lib/physac.rb ADDED
@@ -0,0 +1,178 @@
1
+ # Yet another raylib wrapper for Ruby
2
+ #
3
+ # * https://github.com/vaiorabbit/raylib-bindings
4
+ #
5
+ # [NOTICE] This is an automatically generated file.
6
+
7
+ require 'ffi'
8
+
9
+ module Raylib
10
+ extend FFI::Library
11
+ # Define/Macro
12
+
13
+ PHYSAC_MAX_BODIES = 64
14
+ PHYSAC_MAX_MANIFOLDS = 4096
15
+ PHYSAC_MAX_VERTICES = 24
16
+ PHYSAC_CIRCLE_VERTICES = 24
17
+ PHYSAC_COLLISION_ITERATIONS = 100
18
+ PHYSAC_PENETRATION_ALLOWANCE = 0.05
19
+ PHYSAC_PENETRATION_CORRECTION = 0.4
20
+ PHYSAC_PI = 3.14159265358979323846
21
+
22
+ # Enum
23
+
24
+ PHYSICS_CIRCLE = 0
25
+ PHYSICS_POLYGON = 1
26
+
27
+ # Typedef
28
+
29
+ typedef :int, :PhysicsShapeType
30
+ typedef :pointer, :PhysicsBody
31
+ typedef :pointer, :PhysicsManifold
32
+
33
+ # Struct
34
+
35
+ class Mat2 < FFI::Struct
36
+ layout(
37
+ :m00, :float,
38
+ :m01, :float,
39
+ :m10, :float,
40
+ :m11, :float,
41
+ )
42
+ end
43
+
44
+ class PolygonData < FFI::Struct
45
+ layout(
46
+ :vertexCount, :uint,
47
+ :positions, [Vector2, 24],
48
+ :normals, [Vector2, 24],
49
+ )
50
+ end
51
+
52
+ class PhysicsShape < FFI::Struct
53
+ layout(
54
+ :type, :int,
55
+ :body, :pointer,
56
+ :radius, :float,
57
+ :transform, Mat2,
58
+ :vertexData, PolygonData,
59
+ )
60
+ end
61
+
62
+ class PhysicsBodyData < FFI::Struct
63
+ layout(
64
+ :id, :uint,
65
+ :enabled, :bool,
66
+ :position, Vector2,
67
+ :velocity, Vector2,
68
+ :force, Vector2,
69
+ :angularVelocity, :float,
70
+ :torque, :float,
71
+ :orient, :float,
72
+ :inertia, :float,
73
+ :inverseInertia, :float,
74
+ :mass, :float,
75
+ :inverseMass, :float,
76
+ :staticFriction, :float,
77
+ :dynamicFriction, :float,
78
+ :restitution, :float,
79
+ :useGravity, :bool,
80
+ :isGrounded, :bool,
81
+ :freezeOrient, :bool,
82
+ :shape, PhysicsShape,
83
+ )
84
+ end
85
+
86
+ class PhysicsManifoldData < FFI::Struct
87
+ layout(
88
+ :id, :uint,
89
+ :bodyA, :pointer,
90
+ :bodyB, :pointer,
91
+ :penetration, :float,
92
+ :normal, Vector2,
93
+ :contacts, [Vector2, 2],
94
+ :contactsCount, :uint,
95
+ :restitution, :float,
96
+ :dynamicFriction, :float,
97
+ :staticFriction, :float,
98
+ )
99
+ end
100
+
101
+
102
+ # Function
103
+
104
+ def self.setup_physac_symbols()
105
+ symbols = [
106
+ :InitPhysics,
107
+ :RunPhysicsStep,
108
+ :SetPhysicsTimeStep,
109
+ :IsPhysicsEnabled,
110
+ :SetPhysicsGravity,
111
+ :CreatePhysicsBodyCircle,
112
+ :CreatePhysicsBodyRectangle,
113
+ :CreatePhysicsBodyPolygon,
114
+ :PhysicsAddForce,
115
+ :PhysicsAddTorque,
116
+ :PhysicsShatter,
117
+ :GetPhysicsBodiesCount,
118
+ :GetPhysicsBody,
119
+ :GetPhysicsShapeType,
120
+ :GetPhysicsShapeVerticesCount,
121
+ :GetPhysicsShapeVertex,
122
+ :SetPhysicsBodyRotation,
123
+ :DestroyPhysicsBody,
124
+ :ClosePhysics,
125
+ ]
126
+ args = {
127
+ :InitPhysics => [],
128
+ :RunPhysicsStep => [],
129
+ :SetPhysicsTimeStep => [:double],
130
+ :IsPhysicsEnabled => [],
131
+ :SetPhysicsGravity => [:float, :float],
132
+ :CreatePhysicsBodyCircle => [Vector2.by_value, :float, :float],
133
+ :CreatePhysicsBodyRectangle => [Vector2.by_value, :float, :float, :float],
134
+ :CreatePhysicsBodyPolygon => [Vector2.by_value, :float, :int, :float],
135
+ :PhysicsAddForce => [:pointer, Vector2.by_value],
136
+ :PhysicsAddTorque => [:pointer, :float],
137
+ :PhysicsShatter => [:pointer, Vector2.by_value, :float],
138
+ :GetPhysicsBodiesCount => [],
139
+ :GetPhysicsBody => [:int],
140
+ :GetPhysicsShapeType => [:int],
141
+ :GetPhysicsShapeVerticesCount => [:int],
142
+ :GetPhysicsShapeVertex => [:pointer, :int],
143
+ :SetPhysicsBodyRotation => [:pointer, :float],
144
+ :DestroyPhysicsBody => [:pointer],
145
+ :ClosePhysics => [],
146
+ }
147
+ retvals = {
148
+ :InitPhysics => :void,
149
+ :RunPhysicsStep => :void,
150
+ :SetPhysicsTimeStep => :void,
151
+ :IsPhysicsEnabled => :bool,
152
+ :SetPhysicsGravity => :void,
153
+ :CreatePhysicsBodyCircle => :pointer,
154
+ :CreatePhysicsBodyRectangle => :pointer,
155
+ :CreatePhysicsBodyPolygon => :pointer,
156
+ :PhysicsAddForce => :void,
157
+ :PhysicsAddTorque => :void,
158
+ :PhysicsShatter => :void,
159
+ :GetPhysicsBodiesCount => :int,
160
+ :GetPhysicsBody => :pointer,
161
+ :GetPhysicsShapeType => :int,
162
+ :GetPhysicsShapeVerticesCount => :int,
163
+ :GetPhysicsShapeVertex => Vector2.by_value,
164
+ :SetPhysicsBodyRotation => :void,
165
+ :DestroyPhysicsBody => :void,
166
+ :ClosePhysics => :void,
167
+ }
168
+ symbols.each do |sym|
169
+ begin
170
+ attach_function sym, args[sym], retvals[sym]
171
+ rescue FFI::NotFoundError => error
172
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
173
+ end
174
+ end
175
+ end
176
+
177
+ end
178
+
data/lib/raygui.dll ADDED
Binary file
data/lib/raygui.dylib ADDED
Binary file
data/lib/raygui.rb ADDED
@@ -0,0 +1,305 @@
1
+ # Yet another raylib wrapper for Ruby
2
+ #
3
+ # * https://github.com/vaiorabbit/raylib-bindings
4
+ #
5
+ # [NOTICE] This is an automatically generated file.
6
+
7
+ require 'ffi'
8
+
9
+ module Raylib
10
+ extend FFI::Library
11
+ # Define/Macro
12
+
13
+ RAYGUI_VERSION = "3.0"
14
+
15
+ # Enum
16
+
17
+ GUI_STATE_NORMAL = 0
18
+ GUI_STATE_FOCUSED = 1
19
+ GUI_STATE_PRESSED = 2
20
+ GUI_STATE_DISABLED = 3
21
+ GUI_TEXT_ALIGN_LEFT = 0
22
+ GUI_TEXT_ALIGN_CENTER = 1
23
+ GUI_TEXT_ALIGN_RIGHT = 2
24
+ DEFAULT = 0
25
+ LABEL = 1
26
+ BUTTON = 2
27
+ TOGGLE = 3
28
+ SLIDER = 4
29
+ PROGRESSBAR = 5
30
+ CHECKBOX = 6
31
+ COMBOBOX = 7
32
+ DROPDOWNBOX = 8
33
+ TEXTBOX = 9
34
+ VALUEBOX = 10
35
+ SPINNER = 11
36
+ LISTVIEW = 12
37
+ COLORPICKER = 13
38
+ SCROLLBAR = 14
39
+ STATUSBAR = 15
40
+ BORDER_COLOR_NORMAL = 0
41
+ BASE_COLOR_NORMAL = 1
42
+ TEXT_COLOR_NORMAL = 2
43
+ BORDER_COLOR_FOCUSED = 3
44
+ BASE_COLOR_FOCUSED = 4
45
+ TEXT_COLOR_FOCUSED = 5
46
+ BORDER_COLOR_PRESSED = 6
47
+ BASE_COLOR_PRESSED = 7
48
+ TEXT_COLOR_PRESSED = 8
49
+ BORDER_COLOR_DISABLED = 9
50
+ BASE_COLOR_DISABLED = 10
51
+ TEXT_COLOR_DISABLED = 11
52
+ BORDER_WIDTH = 12
53
+ TEXT_PADDING = 13
54
+ TEXT_ALIGNMENT = 14
55
+ RESERVED = 15
56
+ TEXT_SIZE = 16
57
+ TEXT_SPACING = 17
58
+ LINE_COLOR = 18
59
+ BACKGROUND_COLOR = 19
60
+ GROUP_PADDING = 16
61
+ SLIDER_WIDTH = 16
62
+ SLIDER_PADDING = 17
63
+ PROGRESS_PADDING = 16
64
+ CHECK_PADDING = 16
65
+ COMBO_BUTTON_WIDTH = 16
66
+ COMBO_BUTTON_PADDING = 17
67
+ ARROW_PADDING = 16
68
+ DROPDOWN_ITEMS_PADDING = 17
69
+ TEXT_INNER_PADDING = 16
70
+ TEXT_LINES_PADDING = 17
71
+ COLOR_SELECTED_FG = 18
72
+ COLOR_SELECTED_BG = 19
73
+ SPIN_BUTTON_WIDTH = 16
74
+ SPIN_BUTTON_PADDING = 17
75
+ ARROWS_SIZE = 16
76
+ ARROWS_VISIBLE = 17
77
+ SCROLL_SLIDER_PADDING = 18
78
+ SCROLL_SLIDER_SIZE = 19
79
+ SCROLL_PADDING = 20
80
+ SCROLL_SPEED = 21
81
+ SCROLLBAR_LEFT_SIDE = 0
82
+ SCROLLBAR_RIGHT_SIDE = 1
83
+ LIST_ITEMS_HEIGHT = 16
84
+ LIST_ITEMS_PADDING = 17
85
+ SCROLLBAR_WIDTH = 18
86
+ SCROLLBAR_SIDE = 19
87
+ COLOR_SELECTOR_SIZE = 16
88
+ HUEBAR_WIDTH = 17
89
+ HUEBAR_PADDING = 18
90
+ HUEBAR_SELECTOR_HEIGHT = 19
91
+ HUEBAR_SELECTOR_OVERFLOW = 20
92
+
93
+ # Typedef
94
+
95
+ typedef :int, :GuiControlState
96
+ typedef :int, :GuiTextAlignment
97
+ typedef :int, :GuiControl
98
+ typedef :int, :GuiControlProperty
99
+ typedef :int, :GuiDefaultProperty
100
+ typedef :int, :GuiToggleProperty
101
+ typedef :int, :GuiSliderProperty
102
+ typedef :int, :GuiProgressBarProperty
103
+ typedef :int, :GuiCheckBoxProperty
104
+ typedef :int, :GuiComboBoxProperty
105
+ typedef :int, :GuiDropdownBoxProperty
106
+ typedef :int, :GuiTextBoxProperty
107
+ typedef :int, :GuiSpinnerProperty
108
+ typedef :int, :GuiScrollBarProperty
109
+ typedef :int, :GuiScrollBarSide
110
+ typedef :int, :GuiListViewProperty
111
+ typedef :int, :GuiColorPickerProperty
112
+
113
+ # Struct
114
+
115
+ class GuiStyleProp < FFI::Struct
116
+ layout(
117
+ :controlId, :ushort,
118
+ :propertyId, :ushort,
119
+ :propertyValue, :int,
120
+ )
121
+ end
122
+
123
+
124
+ # Function
125
+
126
+ def self.setup_raygui_symbols()
127
+ symbols = [
128
+ :GuiEnable,
129
+ :GuiDisable,
130
+ :GuiLock,
131
+ :GuiUnlock,
132
+ :GuiIsLocked,
133
+ :GuiFade,
134
+ :GuiSetState,
135
+ :GuiGetState,
136
+ :GuiSetFont,
137
+ :GuiGetFont,
138
+ :GuiSetStyle,
139
+ :GuiGetStyle,
140
+ :GuiWindowBox,
141
+ :GuiGroupBox,
142
+ :GuiLine,
143
+ :GuiPanel,
144
+ :GuiScrollPanel,
145
+ :GuiLabel,
146
+ :GuiButton,
147
+ :GuiLabelButton,
148
+ :GuiToggle,
149
+ :GuiToggleGroup,
150
+ :GuiCheckBox,
151
+ :GuiComboBox,
152
+ :GuiDropdownBox,
153
+ :GuiSpinner,
154
+ :GuiValueBox,
155
+ :GuiTextBox,
156
+ :GuiTextBoxMulti,
157
+ :GuiSlider,
158
+ :GuiSliderBar,
159
+ :GuiProgressBar,
160
+ :GuiStatusBar,
161
+ :GuiDummyRec,
162
+ :GuiScrollBar,
163
+ :GuiGrid,
164
+ :GuiListView,
165
+ :GuiListViewEx,
166
+ :GuiMessageBox,
167
+ :GuiTextInputBox,
168
+ :GuiColorPicker,
169
+ :GuiColorPanel,
170
+ :GuiColorBarAlpha,
171
+ :GuiColorBarHue,
172
+ :GuiLoadStyle,
173
+ :GuiLoadStyleDefault,
174
+ :GuiIconText,
175
+ :GuiDrawIcon,
176
+ :GuiGetIcons,
177
+ :GuiGetIconData,
178
+ :GuiSetIconData,
179
+ :GuiSetIconPixel,
180
+ :GuiClearIconPixel,
181
+ :GuiCheckIconPixel,
182
+ ]
183
+ args = {
184
+ :GuiEnable => [],
185
+ :GuiDisable => [],
186
+ :GuiLock => [],
187
+ :GuiUnlock => [],
188
+ :GuiIsLocked => [],
189
+ :GuiFade => [:float],
190
+ :GuiSetState => [:int],
191
+ :GuiGetState => [],
192
+ :GuiSetFont => [Font.by_value],
193
+ :GuiGetFont => [],
194
+ :GuiSetStyle => [:int, :int, :int],
195
+ :GuiGetStyle => [:int, :int],
196
+ :GuiWindowBox => [Rectangle.by_value, :pointer],
197
+ :GuiGroupBox => [Rectangle.by_value, :pointer],
198
+ :GuiLine => [Rectangle.by_value, :pointer],
199
+ :GuiPanel => [Rectangle.by_value],
200
+ :GuiScrollPanel => [Rectangle.by_value, Rectangle.by_value, :pointer],
201
+ :GuiLabel => [Rectangle.by_value, :pointer],
202
+ :GuiButton => [Rectangle.by_value, :pointer],
203
+ :GuiLabelButton => [Rectangle.by_value, :pointer],
204
+ :GuiToggle => [Rectangle.by_value, :pointer, :bool],
205
+ :GuiToggleGroup => [Rectangle.by_value, :pointer, :int],
206
+ :GuiCheckBox => [Rectangle.by_value, :pointer, :bool],
207
+ :GuiComboBox => [Rectangle.by_value, :pointer, :int],
208
+ :GuiDropdownBox => [Rectangle.by_value, :pointer, :pointer, :bool],
209
+ :GuiSpinner => [Rectangle.by_value, :pointer, :pointer, :int, :int, :bool],
210
+ :GuiValueBox => [Rectangle.by_value, :pointer, :pointer, :int, :int, :bool],
211
+ :GuiTextBox => [Rectangle.by_value, :pointer, :int, :bool],
212
+ :GuiTextBoxMulti => [Rectangle.by_value, :pointer, :int, :bool],
213
+ :GuiSlider => [Rectangle.by_value, :pointer, :pointer, :float, :float, :float],
214
+ :GuiSliderBar => [Rectangle.by_value, :pointer, :pointer, :float, :float, :float],
215
+ :GuiProgressBar => [Rectangle.by_value, :pointer, :pointer, :float, :float, :float],
216
+ :GuiStatusBar => [Rectangle.by_value, :pointer],
217
+ :GuiDummyRec => [Rectangle.by_value, :pointer],
218
+ :GuiScrollBar => [Rectangle.by_value, :int, :int, :int],
219
+ :GuiGrid => [Rectangle.by_value, :float, :int],
220
+ :GuiListView => [Rectangle.by_value, :pointer, :pointer, :int],
221
+ :GuiListViewEx => [Rectangle.by_value, :pointer, :int, :pointer, :pointer, :int],
222
+ :GuiMessageBox => [Rectangle.by_value, :pointer, :pointer, :pointer],
223
+ :GuiTextInputBox => [Rectangle.by_value, :pointer, :pointer, :pointer, :pointer],
224
+ :GuiColorPicker => [Rectangle.by_value, Color.by_value],
225
+ :GuiColorPanel => [Rectangle.by_value, Color.by_value],
226
+ :GuiColorBarAlpha => [Rectangle.by_value, :float],
227
+ :GuiColorBarHue => [Rectangle.by_value, :float],
228
+ :GuiLoadStyle => [:pointer],
229
+ :GuiLoadStyleDefault => [],
230
+ :GuiIconText => [:int, :pointer],
231
+ :GuiDrawIcon => [:int, :int, :int, :int, Color.by_value],
232
+ :GuiGetIcons => [],
233
+ :GuiGetIconData => [:int],
234
+ :GuiSetIconData => [:int, :pointer],
235
+ :GuiSetIconPixel => [:int, :int, :int],
236
+ :GuiClearIconPixel => [:int, :int, :int],
237
+ :GuiCheckIconPixel => [:int, :int, :int],
238
+ }
239
+ retvals = {
240
+ :GuiEnable => :void,
241
+ :GuiDisable => :void,
242
+ :GuiLock => :void,
243
+ :GuiUnlock => :void,
244
+ :GuiIsLocked => :bool,
245
+ :GuiFade => :void,
246
+ :GuiSetState => :void,
247
+ :GuiGetState => :int,
248
+ :GuiSetFont => :void,
249
+ :GuiGetFont => Font.by_value,
250
+ :GuiSetStyle => :void,
251
+ :GuiGetStyle => :int,
252
+ :GuiWindowBox => :bool,
253
+ :GuiGroupBox => :void,
254
+ :GuiLine => :void,
255
+ :GuiPanel => :void,
256
+ :GuiScrollPanel => Rectangle.by_value,
257
+ :GuiLabel => :void,
258
+ :GuiButton => :bool,
259
+ :GuiLabelButton => :bool,
260
+ :GuiToggle => :bool,
261
+ :GuiToggleGroup => :int,
262
+ :GuiCheckBox => :bool,
263
+ :GuiComboBox => :int,
264
+ :GuiDropdownBox => :bool,
265
+ :GuiSpinner => :bool,
266
+ :GuiValueBox => :bool,
267
+ :GuiTextBox => :bool,
268
+ :GuiTextBoxMulti => :bool,
269
+ :GuiSlider => :float,
270
+ :GuiSliderBar => :float,
271
+ :GuiProgressBar => :float,
272
+ :GuiStatusBar => :void,
273
+ :GuiDummyRec => :void,
274
+ :GuiScrollBar => :int,
275
+ :GuiGrid => Vector2.by_value,
276
+ :GuiListView => :int,
277
+ :GuiListViewEx => :int,
278
+ :GuiMessageBox => :int,
279
+ :GuiTextInputBox => :int,
280
+ :GuiColorPicker => Color.by_value,
281
+ :GuiColorPanel => Color.by_value,
282
+ :GuiColorBarAlpha => :float,
283
+ :GuiColorBarHue => :float,
284
+ :GuiLoadStyle => :void,
285
+ :GuiLoadStyleDefault => :void,
286
+ :GuiIconText => :pointer,
287
+ :GuiDrawIcon => :void,
288
+ :GuiGetIcons => :pointer,
289
+ :GuiGetIconData => :pointer,
290
+ :GuiSetIconData => :void,
291
+ :GuiSetIconPixel => :void,
292
+ :GuiClearIconPixel => :void,
293
+ :GuiCheckIconPixel => :bool,
294
+ }
295
+ symbols.each do |sym|
296
+ begin
297
+ attach_function sym, args[sym], retvals[sym]
298
+ rescue FFI::NotFoundError => error
299
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
300
+ end
301
+ end
302
+ end
303
+
304
+ end
305
+