nuklear 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +13 -0
  3. data/.travis.yml +7 -0
  4. data/Gemfile +4 -0
  5. data/Gemfile.lock +29 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +196 -0
  8. data/Rakefile +26 -0
  9. data/bin/console +14 -0
  10. data/bin/setup +8 -0
  11. data/examples/arial.ttf +0 -0
  12. data/examples/calculator.rb +102 -0
  13. data/examples/hello_nuklear.rb +182 -0
  14. data/examples/lib/opengl_font.rb +32 -0
  15. data/examples/lib/opengl_init.rb +4 -0
  16. data/examples/lib/sdl2_init.rb +6 -0
  17. data/examples/lib/sdl2_input.rb +81 -0
  18. data/examples/lib/window.rb +47 -0
  19. data/ext/freetype/extconf.rb +26 -0
  20. data/ext/nuklear/extconf.rb +14 -0
  21. data/ext/nuklear/nkrb.c +79 -0
  22. data/ext/nuklear/nkrb.h +89 -0
  23. data/ext/nuklear/nkrb_buffer.c +80 -0
  24. data/ext/nuklear/nkrb_context.c +241 -0
  25. data/ext/nuklear/nkrb_font.c +80 -0
  26. data/ext/nuklear/nkrb_renderer.c +114 -0
  27. data/ext/nuklear/nkrb_style.c +61 -0
  28. data/ext/nuklear/nkrb_style_color.c +126 -0
  29. data/ext/nuklear/nkrb_style_image.c +32 -0
  30. data/ext/nuklear/nkrb_ui.c +32 -0
  31. data/ext/nuklear/nkrb_ui_builder.c +29 -0
  32. data/ext/nuklear/nkrb_ui_button.c +55 -0
  33. data/ext/nuklear/nkrb_ui_color_picker.c +20 -0
  34. data/ext/nuklear/nkrb_ui_combo.c +73 -0
  35. data/ext/nuklear/nkrb_ui_container.c +7 -0
  36. data/ext/nuklear/nkrb_ui_edit_string.c +38 -0
  37. data/ext/nuklear/nkrb_ui_group.c +27 -0
  38. data/ext/nuklear/nkrb_ui_label.c +30 -0
  39. data/ext/nuklear/nkrb_ui_layout.c +125 -0
  40. data/ext/nuklear/nkrb_ui_menu.c +49 -0
  41. data/ext/nuklear/nkrb_ui_menu_item.c +30 -0
  42. data/ext/nuklear/nkrb_ui_menubar.c +18 -0
  43. data/ext/nuklear/nkrb_ui_popup.c +24 -0
  44. data/ext/nuklear/nkrb_ui_progress.c +19 -0
  45. data/ext/nuklear/nkrb_ui_property.c +20 -0
  46. data/ext/nuklear/nkrb_ui_selectables.c +53 -0
  47. data/ext/nuklear/nkrb_ui_slider.c +19 -0
  48. data/ext/nuklear/nkrb_ui_tree.c +29 -0
  49. data/ext/nuklear/nkrb_ui_widget.c +7 -0
  50. data/ext/nuklear/nkrb_ui_window.c +43 -0
  51. data/ext/nuklear/nuklear.h +23378 -0
  52. data/ext/nuklear_renderer_opengl2/KHR/khrplatform.h +285 -0
  53. data/ext/nuklear_renderer_opengl2/extconf.rb +13 -0
  54. data/ext/nuklear_renderer_opengl2/glad.c +1432 -0
  55. data/ext/nuklear_renderer_opengl2/glad.h +2747 -0
  56. data/ext/nuklear_renderer_opengl2/nuklear_renderer_opengl2.c +197 -0
  57. data/ext/nuklear_renderer_opengl4/KHR/khrplatform.h +285 -0
  58. data/ext/nuklear_renderer_opengl4/extconf.rb +13 -0
  59. data/ext/nuklear_renderer_opengl4/glad.c +1782 -0
  60. data/ext/nuklear_renderer_opengl4/glad.h +3687 -0
  61. data/ext/nuklear_renderer_opengl4/nuklear_renderer_opengl4.c +255 -0
  62. data/lib/nuklear/context.rb +49 -0
  63. data/lib/nuklear/dsl.rb +46 -0
  64. data/lib/nuklear/event_buffer.rb +23 -0
  65. data/lib/nuklear/renderer/opengl24.rb +13 -0
  66. data/lib/nuklear/renderer.rb +108 -0
  67. data/lib/nuklear/style/color.rb +24 -0
  68. data/lib/nuklear/style/image.rb +9 -0
  69. data/lib/nuklear/style.rb +8 -0
  70. data/lib/nuklear/test_case.rb +30 -0
  71. data/lib/nuklear/ui/base.rb +34 -0
  72. data/lib/nuklear/ui/button.rb +77 -0
  73. data/lib/nuklear/ui/checkbox.rb +39 -0
  74. data/lib/nuklear/ui/col.rb +21 -0
  75. data/lib/nuklear/ui/color_picker.rb +31 -0
  76. data/lib/nuklear/ui/combo_box.rb +42 -0
  77. data/lib/nuklear/ui/container.rb +80 -0
  78. data/lib/nuklear/ui/edit_string.rb +48 -0
  79. data/lib/nuklear/ui/enableable.rb +29 -0
  80. data/lib/nuklear/ui/events.rb +23 -0
  81. data/lib/nuklear/ui/group.rb +31 -0
  82. data/lib/nuklear/ui/label.rb +21 -0
  83. data/lib/nuklear/ui/menu.rb +43 -0
  84. data/lib/nuklear/ui/menu_bar.rb +19 -0
  85. data/lib/nuklear/ui/menu_item.rb +34 -0
  86. data/lib/nuklear/ui/option.rb +17 -0
  87. data/lib/nuklear/ui/option_group.rb +22 -0
  88. data/lib/nuklear/ui/popup.rb +37 -0
  89. data/lib/nuklear/ui/progress.rb +33 -0
  90. data/lib/nuklear/ui/property.rb +28 -0
  91. data/lib/nuklear/ui/row.rb +28 -0
  92. data/lib/nuklear/ui/select_list.rb +31 -0
  93. data/lib/nuklear/ui/selectable.rb +21 -0
  94. data/lib/nuklear/ui/slider.rb +26 -0
  95. data/lib/nuklear/ui/text_align.rb +14 -0
  96. data/lib/nuklear/ui/tree.rb +62 -0
  97. data/lib/nuklear/ui/window.rb +175 -0
  98. data/lib/nuklear/ui.rb +33 -0
  99. data/lib/nuklear/version.rb +3 -0
  100. data/lib/nuklear.rb +26 -0
  101. data/nuklear.gemspec +41 -0
  102. metadata +233 -0
@@ -0,0 +1,26 @@
1
+ module Nuklear
2
+ module UI
3
+ class Slider < Base
4
+ attr_accessor :current, :min, :max, :step
5
+
6
+ def initialize(enabled: true, min: 0.0, max: 1.0, current: 0.0, step: 0.001)
7
+ super enabled: enabled
8
+ @min = min
9
+ @max = max
10
+ @current = current
11
+ @step = step
12
+ on(:changed) { yield @current } if block_given?
13
+ end
14
+
15
+ def to_command
16
+ [:ui_slider, current, min, max, step]
17
+ end
18
+
19
+ def result(x, context)
20
+ @current = x
21
+ trigger :changed
22
+ @last_event = nil
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,14 @@
1
+ module Nuklear
2
+ module UI
3
+ module TextAlign
4
+ def align_as_flags(align)
5
+ case align
6
+ when :left, :west then Nuklear::NK_TEXT_LEFT
7
+ when :center, :middle then Nuklear::NK_TEXT_CENTERED
8
+ when :right, :east then Nuklear::NK_TEXT_RIGHT
9
+ else align
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,62 @@
1
+ module Nuklear
2
+ module UI
3
+ class Tree < Nuklear::UI::Base
4
+ include Nuklear::UI::Container
5
+
6
+ attr_accessor :title
7
+ attr_accessor :image
8
+
9
+ def initialize(title, image: nil, type: :tab, state: :minimized, **options)
10
+ super(**options)
11
+
12
+ self.title = title
13
+ self.image = image
14
+ self.type = type
15
+ self.state = state
16
+
17
+ on(Nuklear::NK_MINIMIZED, Nuklear::NK_MAXIMIZED) { |new_state| @state = new_state }
18
+ end
19
+
20
+ def type
21
+ case type
22
+ when Nuklear::NK_TREE_TAB then :tab
23
+ when Nuklear::NK_TREE_NODE then :node
24
+ end
25
+ end
26
+
27
+ def type=(type)
28
+ case type
29
+ when :tab then @type = Nuklear::NK_TREE_TAB
30
+ when :node then @type = Nuklear::NK_TREE_NODE
31
+ when Nuklear::NK_TREE_TAB, Nuklear::NK_TREE_NODE then @type = type
32
+ else raise ArgumentError, "type must be one of NK_TREE_TAB, NK_TREE_NODE"
33
+ end
34
+ end
35
+
36
+ def state
37
+ case type
38
+ when Nuklear::NK_MAXIMIZED then :maximized
39
+ when Nuklear::NK_MINIMIZED then :minimized
40
+ end
41
+ end
42
+
43
+ def state=(state)
44
+ case state
45
+ when :maximized then @state = Nuklear::NK_MAXIMIZED
46
+ when :minimized then @state = Nuklear::NK_MINIMIZED
47
+ when Nuklear::NK_MAXIMIZED, Nuklear::NK_MINIMIZED then @state = state
48
+ else raise ArgumentError, "state must be one of NK_MAXIMIZED, NK_MINIMIZED"
49
+ end
50
+ end
51
+
52
+ def to_command
53
+ [ :ui_tree, @type, image, title, @state ]
54
+ end
55
+
56
+ def result(new_state, context)
57
+ trigger(new_state)
58
+ run_commands(context) if @state == Nuklear::NK_MAXIMIZED
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,175 @@
1
+ module Nuklear
2
+ module UI
3
+ class Window < Nuklear::UI::Base
4
+ include Nuklear::UI::Container
5
+
6
+ attr_accessor :title, :left, :top, :width, :height, :flags
7
+ attr_writer :id
8
+ attr_reader :content_area
9
+
10
+ def initialize(title, id: object_id.to_s, left:, top:, width:, height:, flags: 0,
11
+ border: nil, movable: nil, scalable: nil, closable: nil,
12
+ minimizable: nil, no_scrollbar: nil, titlebar: nil,
13
+ scroll_auto_hide: nil, background: nil, scale_left: nil,
14
+ no_input: nil, enabled: true)
15
+ super enabled: enabled
16
+
17
+ @title = title
18
+ @id = id
19
+ @left = left
20
+ @top = top
21
+ @width = width
22
+ @height = height
23
+ @flags = Nuklear.parse_flags :window, flags
24
+ @hiding = false
25
+ @last_state = nil
26
+ @content_area = Struct.new(:left, :top, :width, :height).new(left, top, width, height)
27
+
28
+ self.border = border unless border.nil?
29
+ self.movable = movable unless movable.nil?
30
+ self.scalable = scalable unless scalable.nil?
31
+ self.closable = closable unless closable.nil?
32
+ self.minimizable = minimizable unless minimizable.nil?
33
+ self.no_scrollbar = no_scrollbar unless no_scrollbar.nil?
34
+ self.titlebar = titlebar unless titlebar.nil?
35
+ self.scroll_auto_hide = scroll_auto_hide unless scroll_auto_hide.nil?
36
+ self.background = background unless background.nil?
37
+ self.scale_left = scale_left unless scale_left.nil?
38
+ self.no_input = no_input unless no_input.nil?
39
+ end
40
+
41
+ def border?
42
+ check_flag Nuklear::NK_WINDOW_BORDER
43
+ end
44
+
45
+ def movable?
46
+ check_flag Nuklear::NK_WINDOW_MOVABLE
47
+ end
48
+
49
+ def scalable?
50
+ check_flag Nuklear::NK_WINDOW_SCALABLE
51
+ end
52
+
53
+ def closable?
54
+ check_flag Nuklear::NK_WINDOW_CLOSABLE
55
+ end
56
+
57
+ def minimizable?
58
+ check_flag Nuklear::NK_WINDOW_MINIMIZABLE
59
+ end
60
+
61
+ def no_scrollbar?
62
+ check_flag Nuklear::NK_WINDOW_NO_SCROLLBAR
63
+ end
64
+
65
+ def titlebar?
66
+ check_flag Nuklear::NK_WINDOW_TITLE
67
+ end
68
+
69
+ def scroll_auto_hide?
70
+ check_flag Nuklear::NK_WINDOW_SCROLL_AUTO_HIDE
71
+ end
72
+
73
+ def background?
74
+ check_flag Nuklear::NK_WINDOW_BACKGROUND
75
+ end
76
+
77
+ def scale_left?
78
+ check_flag Nuklear::NK_WINDOW_SCALE_LEFT
79
+ end
80
+
81
+ def no_input?
82
+ check_flag Nuklear::NK_WINDOW_NO_INPUT
83
+ end
84
+
85
+ def border=(a)
86
+ set_flag Nuklear::NK_WINDOW_BORDER, a
87
+ end
88
+
89
+ def movable=(a)
90
+ set_flag Nuklear::NK_WINDOW_MOVABLE, a
91
+ end
92
+
93
+ def scalable=(a)
94
+ set_flag Nuklear::NK_WINDOW_SCALABLE, a
95
+ end
96
+
97
+ def closable=(a)
98
+ set_flag Nuklear::NK_WINDOW_CLOSABLE, a
99
+ end
100
+
101
+ def minimizable=(a)
102
+ set_flag Nuklear::NK_WINDOW_MINIMIZABLE, a
103
+ end
104
+
105
+ def no_scrollbar=(a)
106
+ set_flag Nuklear::NK_WINDOW_NO_SCROLLBAR, a
107
+ end
108
+
109
+ def titlebar=(a)
110
+ set_flag Nuklear::NK_WINDOW_TITLE, a
111
+ end
112
+
113
+ def scroll_auto_hide=(a)
114
+ set_flag Nuklear::NK_WINDOW_SCROLL_AUTO_HIDE, a
115
+ end
116
+
117
+ def background=(a)
118
+ set_flag Nuklear::NK_WINDOW_BACKGROUND, a
119
+ end
120
+
121
+ def scale_left=(a)
122
+ set_flag Nuklear::NK_WINDOW_SCALE_LEFT, a
123
+ end
124
+
125
+ def no_input=(a)
126
+ set_flag Nuklear::NK_WINDOW_NO_INPUT, a
127
+ end
128
+
129
+ def set_flag(flag, enabled)
130
+ @flags = enabled ? @flags | flag : @flags & ~flag
131
+ end
132
+
133
+ def check_flag(flag)
134
+ @flags & flag > 0
135
+ end
136
+
137
+ def id
138
+ @id || title
139
+ end
140
+
141
+ def enabled=(b)
142
+ if @enabled && !b
143
+ @hiding = true
144
+ else
145
+ super b
146
+ end
147
+ end
148
+
149
+ def close
150
+ self.enabled = false
151
+ end
152
+
153
+ def result(new_state, context)
154
+ if new_state != @last_state
155
+ @left, @top, @width, @height = *new_state[0...4]
156
+ @content_area.left, @content_area.top, @content_area.width, @content_area.height = *new_state[4..-1]
157
+ trigger(:resized)
158
+ @last_event = nil
159
+ @last_state = new_state
160
+ end
161
+ run_commands(context)
162
+ end
163
+
164
+ def to_command
165
+ if @hiding
166
+ @hiding = false
167
+ @enabled = false
168
+ [ :ui_window_close, id ]
169
+ else
170
+ [ :ui_window, id, title, flags, left, top, width, height ]
171
+ end
172
+ end
173
+ end
174
+ end
175
+ end
data/lib/nuklear/ui.rb ADDED
@@ -0,0 +1,33 @@
1
+ require 'nuklear/ui/container'
2
+ require 'nuklear/ui/enableable'
3
+ require 'nuklear/ui/events'
4
+ require 'nuklear/ui/text_align'
5
+
6
+ require 'nuklear/ui/base'
7
+ require 'nuklear/ui/button'
8
+ require 'nuklear/ui/checkbox'
9
+ require 'nuklear/ui/col'
10
+ require 'nuklear/ui/color_picker'
11
+ require 'nuklear/ui/combo_box'
12
+ require 'nuklear/ui/edit_string'
13
+ require 'nuklear/ui/group'
14
+ require 'nuklear/ui/label'
15
+ require 'nuklear/ui/menu'
16
+ require 'nuklear/ui/menu_bar'
17
+ require 'nuklear/ui/menu_item'
18
+ require 'nuklear/ui/option'
19
+ require 'nuklear/ui/option_group'
20
+ require 'nuklear/ui/popup'
21
+ require 'nuklear/ui/progress'
22
+ require 'nuklear/ui/property'
23
+ require 'nuklear/ui/row'
24
+ require 'nuklear/ui/selectable'
25
+ require 'nuklear/ui/select_list'
26
+ require 'nuklear/ui/slider'
27
+ require 'nuklear/ui/tree'
28
+ require 'nuklear/ui/window'
29
+
30
+ module Nuklear
31
+ module UI
32
+ end
33
+ end
@@ -0,0 +1,3 @@
1
+ module Nuklear
2
+ VERSION = "0.1.0"
3
+ end
data/lib/nuklear.rb ADDED
@@ -0,0 +1,26 @@
1
+ require "nuklear/version"
2
+ require "nuklear/nuklear"
3
+ require 'nuklear/context'
4
+ require 'nuklear/event_buffer'
5
+ require 'nuklear/ui'
6
+ require 'nuklear/renderer'
7
+ require 'nuklear/style'
8
+ require 'nuklear/dsl'
9
+
10
+ module Nuklear
11
+ autoload :TestCase, 'nuklear/test_case'
12
+
13
+ class Error < StandardError; end
14
+ # Your code goes here...
15
+
16
+ class << self
17
+ def parse_flags(prefix, *flags)
18
+ flags.flatten.reduce(0) do |set, flag|
19
+ set | case flag
20
+ when Symbol, String then Nuklear.const_get("NK_#{prefix.upcase}_#{flag.upcase}")
21
+ else flag
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
data/nuklear.gemspec ADDED
@@ -0,0 +1,41 @@
1
+ lib = File.expand_path("lib", __dir__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require "nuklear/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "nuklear"
7
+ spec.version = Nuklear::VERSION
8
+ spec.authors = ["Colin MacKenzie IV"]
9
+ spec.email = ["sinisterchipmunk@gmail.com"]
10
+
11
+ spec.summary = %q{}
12
+ spec.description = %q{}
13
+ spec.homepage = "https://github.com/sinisterchipmunk/nuklear-ruby"
14
+ spec.license = "MIT"
15
+
16
+ spec.metadata["allowed_push_host"] = "https://www.rubygems.org"
17
+
18
+ spec.metadata["homepage_uri"] = spec.homepage
19
+ spec.metadata["source_code_uri"] = "https://github.com/sinisterchipmunk/nuklear-ruby"
20
+ # spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
21
+
22
+ # Specify which files should be added to the gem when it is released.
23
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
24
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
25
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
26
+ end
27
+ spec.bindir = "exe"
28
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
29
+ spec.require_paths = ["lib"]
30
+ spec.extensions = ["ext/nuklear/extconf.rb",
31
+ "ext/nuklear_renderer_opengl2/extconf.rb",
32
+ "ext/nuklear_renderer_opengl4/extconf.rb"]
33
+
34
+ spec.add_development_dependency "bundler", ">= 2.0"
35
+ spec.add_development_dependency "rake", ">= 10.0"
36
+ spec.add_development_dependency "rake-compiler"
37
+ spec.add_development_dependency "minitest", ">= 5.0"
38
+
39
+ spec.add_development_dependency 'opengl-bindings'
40
+ spec.add_development_dependency 'ruby-sdl2'
41
+ end
metadata ADDED
@@ -0,0 +1,233 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: nuklear
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Colin MacKenzie IV
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2022-03-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake-compiler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: minitest
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '5.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '5.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: opengl-bindings
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: ruby-sdl2
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: ''
98
+ email:
99
+ - sinisterchipmunk@gmail.com
100
+ executables: []
101
+ extensions:
102
+ - ext/nuklear/extconf.rb
103
+ - ext/nuklear_renderer_opengl2/extconf.rb
104
+ - ext/nuklear_renderer_opengl4/extconf.rb
105
+ extra_rdoc_files: []
106
+ files:
107
+ - ".gitignore"
108
+ - ".travis.yml"
109
+ - Gemfile
110
+ - Gemfile.lock
111
+ - LICENSE.txt
112
+ - README.md
113
+ - Rakefile
114
+ - bin/console
115
+ - bin/setup
116
+ - examples/arial.ttf
117
+ - examples/calculator.rb
118
+ - examples/hello_nuklear.rb
119
+ - examples/lib/opengl_font.rb
120
+ - examples/lib/opengl_init.rb
121
+ - examples/lib/sdl2_init.rb
122
+ - examples/lib/sdl2_input.rb
123
+ - examples/lib/window.rb
124
+ - ext/freetype/extconf.rb
125
+ - ext/nuklear/extconf.rb
126
+ - ext/nuklear/nkrb.c
127
+ - ext/nuklear/nkrb.h
128
+ - ext/nuklear/nkrb_buffer.c
129
+ - ext/nuklear/nkrb_context.c
130
+ - ext/nuklear/nkrb_font.c
131
+ - ext/nuklear/nkrb_renderer.c
132
+ - ext/nuklear/nkrb_style.c
133
+ - ext/nuklear/nkrb_style_color.c
134
+ - ext/nuklear/nkrb_style_image.c
135
+ - ext/nuklear/nkrb_ui.c
136
+ - ext/nuklear/nkrb_ui_builder.c
137
+ - ext/nuklear/nkrb_ui_button.c
138
+ - ext/nuklear/nkrb_ui_color_picker.c
139
+ - ext/nuklear/nkrb_ui_combo.c
140
+ - ext/nuklear/nkrb_ui_container.c
141
+ - ext/nuklear/nkrb_ui_edit_string.c
142
+ - ext/nuklear/nkrb_ui_group.c
143
+ - ext/nuklear/nkrb_ui_label.c
144
+ - ext/nuklear/nkrb_ui_layout.c
145
+ - ext/nuklear/nkrb_ui_menu.c
146
+ - ext/nuklear/nkrb_ui_menu_item.c
147
+ - ext/nuklear/nkrb_ui_menubar.c
148
+ - ext/nuklear/nkrb_ui_popup.c
149
+ - ext/nuklear/nkrb_ui_progress.c
150
+ - ext/nuklear/nkrb_ui_property.c
151
+ - ext/nuklear/nkrb_ui_selectables.c
152
+ - ext/nuklear/nkrb_ui_slider.c
153
+ - ext/nuklear/nkrb_ui_tree.c
154
+ - ext/nuklear/nkrb_ui_widget.c
155
+ - ext/nuklear/nkrb_ui_window.c
156
+ - ext/nuklear/nuklear.h
157
+ - ext/nuklear_renderer_opengl2/KHR/khrplatform.h
158
+ - ext/nuklear_renderer_opengl2/extconf.rb
159
+ - ext/nuklear_renderer_opengl2/glad.c
160
+ - ext/nuklear_renderer_opengl2/glad.h
161
+ - ext/nuklear_renderer_opengl2/nuklear_renderer_opengl2.c
162
+ - ext/nuklear_renderer_opengl4/KHR/khrplatform.h
163
+ - ext/nuklear_renderer_opengl4/extconf.rb
164
+ - ext/nuklear_renderer_opengl4/glad.c
165
+ - ext/nuklear_renderer_opengl4/glad.h
166
+ - ext/nuklear_renderer_opengl4/nuklear_renderer_opengl4.c
167
+ - lib/nuklear.rb
168
+ - lib/nuklear/context.rb
169
+ - lib/nuklear/dsl.rb
170
+ - lib/nuklear/event_buffer.rb
171
+ - lib/nuklear/renderer.rb
172
+ - lib/nuklear/renderer/opengl24.rb
173
+ - lib/nuklear/style.rb
174
+ - lib/nuklear/style/color.rb
175
+ - lib/nuklear/style/image.rb
176
+ - lib/nuklear/test_case.rb
177
+ - lib/nuklear/ui.rb
178
+ - lib/nuklear/ui/base.rb
179
+ - lib/nuklear/ui/button.rb
180
+ - lib/nuklear/ui/checkbox.rb
181
+ - lib/nuklear/ui/col.rb
182
+ - lib/nuklear/ui/color_picker.rb
183
+ - lib/nuklear/ui/combo_box.rb
184
+ - lib/nuklear/ui/container.rb
185
+ - lib/nuklear/ui/edit_string.rb
186
+ - lib/nuklear/ui/enableable.rb
187
+ - lib/nuklear/ui/events.rb
188
+ - lib/nuklear/ui/group.rb
189
+ - lib/nuklear/ui/label.rb
190
+ - lib/nuklear/ui/menu.rb
191
+ - lib/nuklear/ui/menu_bar.rb
192
+ - lib/nuklear/ui/menu_item.rb
193
+ - lib/nuklear/ui/option.rb
194
+ - lib/nuklear/ui/option_group.rb
195
+ - lib/nuklear/ui/popup.rb
196
+ - lib/nuklear/ui/progress.rb
197
+ - lib/nuklear/ui/property.rb
198
+ - lib/nuklear/ui/row.rb
199
+ - lib/nuklear/ui/select_list.rb
200
+ - lib/nuklear/ui/selectable.rb
201
+ - lib/nuklear/ui/slider.rb
202
+ - lib/nuklear/ui/text_align.rb
203
+ - lib/nuklear/ui/tree.rb
204
+ - lib/nuklear/ui/window.rb
205
+ - lib/nuklear/version.rb
206
+ - nuklear.gemspec
207
+ homepage: https://github.com/sinisterchipmunk/nuklear-ruby
208
+ licenses:
209
+ - MIT
210
+ metadata:
211
+ allowed_push_host: https://www.rubygems.org
212
+ homepage_uri: https://github.com/sinisterchipmunk/nuklear-ruby
213
+ source_code_uri: https://github.com/sinisterchipmunk/nuklear-ruby
214
+ post_install_message:
215
+ rdoc_options: []
216
+ require_paths:
217
+ - lib
218
+ required_ruby_version: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ required_rubygems_version: !ruby/object:Gem::Requirement
224
+ requirements:
225
+ - - ">="
226
+ - !ruby/object:Gem::Version
227
+ version: '0'
228
+ requirements: []
229
+ rubygems_version: 3.3.7
230
+ signing_key:
231
+ specification_version: 4
232
+ summary: ''
233
+ test_files: []