rb_sdl2 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +31 -0
  3. data/README.md +1 -1
  4. data/lib/rb_sdl2/audio/audio.rb +162 -0
  5. data/lib/rb_sdl2/audio/audio_buffer.rb +12 -19
  6. data/lib/rb_sdl2/audio/audio_device.rb +17 -23
  7. data/lib/rb_sdl2/audio/audio_spec.rb +38 -6
  8. data/lib/rb_sdl2/audio/audio_spec_reader.rb +10 -0
  9. data/lib/rb_sdl2/clipboard.rb +31 -31
  10. data/lib/rb_sdl2/cpu_info.rb +34 -17
  11. data/lib/rb_sdl2/cursor.rb +105 -24
  12. data/lib/rb_sdl2/display.rb +16 -16
  13. data/lib/rb_sdl2/display_mode.rb +1 -1
  14. data/lib/rb_sdl2/error.rb +11 -4
  15. data/lib/rb_sdl2/errors.rb +7 -0
  16. data/lib/rb_sdl2/event/event.rb +130 -0
  17. data/lib/rb_sdl2/event/event_filter.rb +34 -70
  18. data/lib/rb_sdl2/event/event_pointer.rb +26 -0
  19. data/lib/rb_sdl2/event/event_queue.rb +97 -120
  20. data/lib/rb_sdl2/event/event_type.rb +147 -205
  21. data/lib/rb_sdl2/filesystem.rb +8 -9
  22. data/lib/rb_sdl2/hint.rb +26 -24
  23. data/lib/rb_sdl2/keyboard/keyboard.rb +50 -0
  24. data/lib/rb_sdl2/keyboard/mod_state.rb +68 -0
  25. data/lib/rb_sdl2/keyboard/state.rb +39 -0
  26. data/lib/rb_sdl2/message_box.rb +69 -102
  27. data/lib/rb_sdl2/mouse/global_mouse.rb +10 -3
  28. data/lib/rb_sdl2/mouse/mouse.rb +64 -0
  29. data/lib/rb_sdl2/mouse/mouse_button.rb +13 -11
  30. data/lib/rb_sdl2/mouse/mouse_class.rb +9 -17
  31. data/lib/rb_sdl2/mouse/mouse_wheel.rb +21 -37
  32. data/lib/rb_sdl2/mouse/relative_mouse.rb +15 -1
  33. data/lib/rb_sdl2/palette.rb +12 -12
  34. data/lib/rb_sdl2/pixel_format_enum.rb +87 -55
  35. data/lib/rb_sdl2/platform.rb +1 -1
  36. data/lib/rb_sdl2/power_info.rb +34 -23
  37. data/lib/rb_sdl2/rect.rb +7 -1
  38. data/lib/rb_sdl2/ref_count_pointer.rb +25 -10
  39. data/lib/rb_sdl2/rw_ops/rw_file.rb +19 -0
  40. data/lib/rb_sdl2/rw_ops/rw_memory.rb +18 -0
  41. data/lib/rb_sdl2/rw_ops/rw_object.rb +126 -0
  42. data/lib/rb_sdl2/rw_ops/rw_ops.rb +104 -0
  43. data/lib/rb_sdl2/rw_ops/rw_ops_pointer.rb +14 -0
  44. data/lib/rb_sdl2/sdl.rb +67 -28
  45. data/lib/rb_sdl2/sdl_pointer.rb +22 -0
  46. data/lib/rb_sdl2/surface/blend_mode.rb +41 -41
  47. data/lib/rb_sdl2/surface/pixel_format.rb +34 -33
  48. data/lib/rb_sdl2/surface.rb +280 -265
  49. data/lib/rb_sdl2/text_input.rb +21 -15
  50. data/lib/rb_sdl2/timer.rb +36 -31
  51. data/lib/rb_sdl2/version.rb +3 -3
  52. data/lib/rb_sdl2/video.rb +17 -5
  53. data/lib/rb_sdl2/window/accessor.rb +135 -0
  54. data/lib/rb_sdl2/window/display.rb +8 -8
  55. data/lib/rb_sdl2/window/flash.rb +22 -0
  56. data/lib/rb_sdl2/window/hit_test.rb +22 -43
  57. data/lib/rb_sdl2/window/shape.rb +55 -40
  58. data/lib/rb_sdl2/window/state.rb +178 -0
  59. data/lib/rb_sdl2/window/window.rb +149 -0
  60. data/lib/rb_sdl2.rb +79 -17
  61. data/rb_sdl2.gemspec +4 -4
  62. metadata +31 -35
  63. data/lib/rb_sdl2/audio/audio_allowed_changes.rb +0 -17
  64. data/lib/rb_sdl2/audio/audio_format.rb +0 -23
  65. data/lib/rb_sdl2/audio.rb +0 -132
  66. data/lib/rb_sdl2/cursor/color_cursor.rb +0 -19
  67. data/lib/rb_sdl2/cursor/cursor_class.rb +0 -24
  68. data/lib/rb_sdl2/cursor/cursor_pointer.rb +0 -12
  69. data/lib/rb_sdl2/cursor/default_cursor.rb +0 -18
  70. data/lib/rb_sdl2/cursor/system_cursor.rb +0 -45
  71. data/lib/rb_sdl2/event.rb +0 -161
  72. data/lib/rb_sdl2/keyboard/key_mod.rb +0 -37
  73. data/lib/rb_sdl2/keyboard/keyboard_state.rb +0 -34
  74. data/lib/rb_sdl2/keyboard.rb +0 -50
  75. data/lib/rb_sdl2/mouse/window_mouse.rb +0 -17
  76. data/lib/rb_sdl2/mouse.rb +0 -74
  77. data/lib/rb_sdl2/rw_ops/rw_operator.rb +0 -105
  78. data/lib/rb_sdl2/rw_ops.rb +0 -149
  79. data/lib/rb_sdl2/screen_saver.rb +0 -11
  80. data/lib/rb_sdl2/window/dialog.rb +0 -19
  81. data/lib/rb_sdl2/window/grab.rb +0 -23
  82. data/lib/rb_sdl2/window/position.rb +0 -38
  83. data/lib/rb_sdl2/window/size.rb +0 -59
  84. data/lib/rb_sdl2/window/window_flags.rb +0 -78
  85. data/lib/rb_sdl2/window.rb +0 -242
@@ -1,105 +0,0 @@
1
- module RbSDL2
2
- class RWOperator
3
- # コールバック関数からの例外は全てコールバック中で拾いエラーを表す戻り値に変える。
4
- # SDL がコールバック関数を呼び出すときに与える引数はチェックされていないことを前提とするべきである。
5
- # SDL が期待するコールバック関数の戻り値は成功か失敗(エラー)かであり、
6
- # read, write などの戻り値を考慮した動作を行わない。
7
- # コールバック関数を実装する際には Ruby アプリケーションが困らない設計を行えばよい。
8
-
9
- class CloseCallback < ::FFI::Function
10
- def initialize(obj)
11
- # int (* close) (struct SDL_RWops * context);
12
- super(:int, [:pointer]) do |_context|
13
- # close の際に _context ポインターを開放してはならない。ポインターは GC が管理する。
14
- (obj.close; 0) rescue -1
15
- end
16
- end
17
- end
18
-
19
- class ReadCallback < ::FFI::Function
20
- def initialize(obj)
21
- # size_t (* read) (struct SDL_RWops * context, void *ptr, size_t size, size_t maxnum);
22
- super(:size_t, [:pointer, :pointer, :size_t, :size_t]) do |_context, ptr, size, max_num|
23
- return 0 if ptr.null?
24
- max = size * max_num
25
- str = obj.read(max)
26
- len = str.size
27
- # len > max は obj.read が壊れている。
28
- return 0 if str.nil? || len > max
29
- ptr.write_bytes(str, 0, len)
30
- len / size
31
- rescue
32
- 0
33
- end
34
- end
35
- end
36
-
37
- class SeekCallback < ::FFI::Function
38
- def initialize(obj)
39
- # Sint64 (* seek) (struct SDL_RWops * context, Sint64 offset, int whence);
40
- super(:int64, [:pointer, :int64, :int]) do |_context, offset, whence|
41
- obj.seek(offset, whence) rescue -1
42
- end
43
- end
44
- end
45
-
46
- class SizeCallback < ::FFI::Function
47
- def initialize(obj)
48
- # Sint64 (* size) (struct SDL_RWops * context);
49
- super(:int64, [:pointer]) do |_context|
50
- # 不明な時は -1。Ruby では size が不明確なオブジェクトは size メソッドがないだろう。
51
- obj.size rescue -1
52
- end
53
- end
54
- end
55
-
56
- class WriteCallback < ::FFI::Function
57
- def initialize(obj)
58
- # size_t (* write) (struct SDL_RWops * context, const void *ptr, size_t size, size_t num);
59
- super(:size_t, [:pointer, :pointer, :size_t, :size_t]) do |_context, ptr, size, max_num|
60
- return 0 if ptr.null?
61
- obj.write(ptr.read_bytes(size * max_num)) / size rescue 0
62
- end
63
- end
64
- end
65
-
66
- class RWOperatorPointer < RWOps::RWOpsPointer
67
- class << self
68
- def release(ptr)
69
- # オブジェクトはクローズしない。(GC 回収の時には close コールバックオブジェクトは消えている)
70
- # SDL_AllocRW で確保したポインターのみ SDL_FreeRW で開放できる。
71
- ::SDL2.SDL_FreeRW(ptr)
72
- end
73
- end
74
- end
75
-
76
- class << self
77
- # obj は Ruby IO と同じようにふるまうことを期待している。
78
- # obj に対して close, seek, size, read, write のメソッドを呼び出す。
79
- # メソッドの呼び出し引数は Ruby IO と同様である。
80
- # メソッドの戻り値は Ruby IO と同じ値を返せばよい。
81
- # メソッド内での例外は SDL のエラーに変換され、Ruby 側には反映されない。
82
- # obj がメソッド呼び出しに応答しない場合も安全である。その場合は SDL 側にエラーが通知される。
83
- def new(obj)
84
- ptr = RWOperatorPointer.new(::SDL2.SDL_AllocRW)
85
- raise RbSDL2Error if ptr.null?
86
- super(ptr, obj)
87
- end
88
- end
89
-
90
- def initialize(ptr, obj)
91
- @obj = obj
92
- @st = ::SDL2::SDL_RWops.new(ptr).tap do |st|
93
- st[:close] = @close = CloseCallback.new(obj)
94
- st[:read] = @read = ReadCallback.new(obj)
95
- st[:seek] = @seek = SeekCallback.new(obj)
96
- st[:size] = @size = SizeCallback.new(obj)
97
- st[:write] = @write = WriteCallback.new(obj)
98
- end
99
- end
100
-
101
- def __getobj__ = @obj
102
-
103
- def to_ptr = @st.to_ptr
104
- end
105
- end
@@ -1,149 +0,0 @@
1
- module RbSDL2
2
- class RWOps
3
- class RWOpsPointer < ::FFI::AutoPointer
4
- class << self
5
- def release(ptr)
6
- # SDL_RWclose は RWOps構造体を開放する。そのため呼び出しは1回しかできない。
7
- # ::FFI::AutoPointer を使うことで2重開放を防ぐ。
8
- err = ::SDL2.SDL_RWclose(ptr)
9
- raise RbSDL2Error if err < 0
10
- end
11
- end
12
-
13
- def free
14
- @released = true
15
- super
16
- end
17
-
18
- def released? = @released
19
- end
20
-
21
- # マルチスレッド対応はしていない。
22
- # close メソッドは SDL 側からクローズされていた場合に対応していない。
23
- class << self
24
- def from_memory(mem, size, autoclose: true, readonly: true)
25
- ptr = if readonly
26
- ::SDL2.SDL_RWFromConstMem(mem, size)
27
- else
28
- ::SDL2.SDL_RWFromMem(mem, size)
29
- end
30
- ptr = RWOpsPointer.new(ptr)
31
- raise RbSDL2Error if ptr.null?
32
- ptr.autorelease = autoclose
33
- obj = allocate
34
- obj.__send__(:initialize, ptr, mem)
35
- if block_given?
36
- begin
37
- yield(obj)
38
- ensure
39
- obj.close
40
- end
41
- else
42
- obj
43
- end
44
- end
45
-
46
- # mode は一般的なファイルAPIと同じ文字列が使用できる。
47
- def new(file, _mode = "rb", autoclose: true, mode: _mode)
48
- ptr = RWOpsPointer.new(::SDL2.SDL_RWFromFile(file.to_s, mode))
49
- raise RbSDL2Error if ptr.null?
50
- ptr.autorelease = autoclose
51
- obj = super(ptr, file)
52
- if block_given?
53
- begin
54
- yield(obj)
55
- ensure
56
- obj.close
57
- end
58
- else
59
- obj
60
- end
61
- end
62
- alias open new
63
-
64
- require_relative 'rw_ops/rw_operator'
65
-
66
- # io 引数には Ruby の IO オブジェクトのように振る舞うオブジェクトを与える。
67
- # オブジェクトは自動的にクローズされない。(close が呼ばれた場合はクローズする)
68
- # autoclose オプション引数に false を与えて、RWOps#to_ptr から取り出したポインターを
69
- # C のスコープへ渡す場合、ポインターが利用されている間 RWOps オブジェクトを生存させる必要がある。
70
- def with_object(io, autoclose: true)
71
- rw = RWOperator.new(io)
72
- ptr = rw.to_ptr
73
- ptr.autorelease = autoclose
74
- obj = allocate
75
- obj.__send__(:initialize, ptr, rw)
76
- if block_given?
77
- begin
78
- yield(obj)
79
- ensure
80
- obj.close
81
- end
82
- else
83
- obj
84
- end
85
- end
86
- end
87
-
88
- def initialize(ptr, obj = nil)
89
- @obj = obj
90
- @ptr = ptr
91
- end
92
-
93
- def autoclose=(bool)
94
- @ptr.autorelease = bool
95
- end
96
-
97
- def autoclose? = @ptr.autorelease?
98
-
99
- def close = @ptr.free
100
-
101
- def closed? = @ptr.released?
102
-
103
- def inspect
104
- "#<#{self.class.name}:#{@obj.inspect}>"
105
- end
106
-
107
- def read(length = nil)
108
- raise IOError if closed?
109
- len = length.nil? ? size : length.to_i
110
- raise ArgumentError if len < 0
111
- return "" if len == 0
112
- ptr = ::FFI::MemoryPointer.new(len)
113
- num = ::SDL2.SDL_RWread(self, ptr, 1, len)
114
- raise RbSDL2Error if num == 0
115
- ptr.read_bytes(num)
116
- end
117
-
118
- def seek(offset, whence = IO::SEEK_SET)
119
- raise IOError if closed?
120
- raise RbSDL2Error if ::SDL2.SDL_RWseek(self, offset, whence) == -1
121
- 0
122
- end
123
-
124
- def size
125
- raise IOError if closed?
126
- num = ::SDL2.SDL_RWsize(self)
127
- raise RbSDL2Error if num < 0
128
- num
129
- end
130
-
131
- def to_ptr
132
- raise IOError if closed?
133
- @ptr
134
- end
135
-
136
- def write(*str)
137
- raise FrozenError if frozen?
138
- raise IOError if closed?
139
- str.inject(0) do |sum, obj|
140
- bytes = obj.to_s
141
- len = bytes.size
142
- ptr = ::FFI::MemoryPointer.new(len).write_bytes(bytes)
143
- num = ::SDL2.SDL_RWwrite(self, ptr, 1, len)
144
- raise RbSDL2Error if num < len
145
- sum + len
146
- end
147
- end
148
- end
149
- end
@@ -1,11 +0,0 @@
1
- module RbSDL2
2
- module ScreenSaver
3
- class << self
4
- def enable = ::SDL2.SDL_EnableScreenSaver
5
-
6
- def enabled? = ::SDL2.SDL_IsScreenSaverEnabled == ::SDL2::SDL_TRUE
7
-
8
- def disable = ::SDL2.SDL_DisableScreenSaver
9
- end
10
- end
11
- end
@@ -1,19 +0,0 @@
1
- module RbSDL2
2
- class Window
3
- module Dialog
4
- require_relative '../message_box'
5
-
6
- def alert(message, **opts) = MessageBox.alert(message, self, **opts)
7
-
8
- def confirm(message, **opts) = MessageBox.confirm(message, self, **opts)
9
-
10
- def dialog(message, **opts) = MessageBox.dialog(message, self, **opts)
11
-
12
- def error_alert(message, **opts) = MessageBox.error(message, self, **opts)
13
-
14
- def info_alert(message, **opts) = MessageBox.info(message, self, **opts)
15
-
16
- def warn_alert(message, **opts) = MessageBox.warn(message, self, **opts)
17
- end
18
- end
19
- end
@@ -1,23 +0,0 @@
1
- module RbSDL2
2
- class Window
3
- module Grab
4
- def grab=(bool)
5
- ::SDL2.SDL_SetWindowGrab(self, bool ? ::SDL2::SDL_TRUE : ::SDL2::SDL_FALSE)
6
- end
7
-
8
- def grabbed? = ::SDL2.SDL_GetWindowGrab(self) == ::SDL2::SDL_TRUE
9
-
10
- def grabbed_keyboard? = ::SDL2.SDL_GetWindowKeyboardGrab(self) == ::SDL2::SDL_TRUE
11
-
12
- def grabbed_mouse? = ::SDL2.SDL_GetWindowMouseGrab(self) == ::SDL2::SDL_TRUE
13
-
14
- def keyboard_grab=(bool)
15
- ::SDL2.SDL_SetWindowKeyboardGrab(self, bool ? ::SDL2::SDL_TRUE : ::SDL2::SDL_FALSE)
16
- end
17
-
18
- def mouse_grab=(bool)
19
- ::SDL2.SDL_SetWindowMouseGrab(self, bool ? ::SDL2::SDL_TRUE : ::SDL2::SDL_FALSE)
20
- end
21
- end
22
- end
23
- end
@@ -1,38 +0,0 @@
1
- module RbSDL2
2
- class Window
3
- module Position
4
- def position
5
- x_y = Array.new(2) { ::FFI::MemoryPointer.new(:int) }
6
- ::SDL2.SDL_GetWindowPosition(self, *x_y)
7
- x_y.map(&:read_int)
8
- end
9
-
10
- def position=(x_y)
11
- wx, wy = x_y
12
- wx ||= ::SDL2::SDL_WINDOWPOS_CENTERED_MASK
13
- wy ||= ::SDL2::SDL_WINDOWPOS_CENTERED_MASK
14
- ::SDL2.SDL_SetWindowPosition(self, wx, wy)
15
- end
16
-
17
- def x
18
- ptr = ::FFI::MemoryPointer.new(:int)
19
- ::SDL2.SDL_GetWindowPosition(self, ptr, nil)
20
- ptr.read_int
21
- end
22
-
23
- def x=(num)
24
- self.position = [num, y]
25
- end
26
-
27
- def y
28
- ptr = ::FFI::MemoryPointer.new(:int)
29
- ::SDL2.SDL_GetWindowPosition(self, nil, ptr)
30
- ptr.read_int
31
- end
32
-
33
- def y=(num)
34
- self.position = [x, num]
35
- end
36
- end
37
- end
38
- end
@@ -1,59 +0,0 @@
1
- module RbSDL2
2
- class Window
3
- module Size
4
- def height
5
- ptr = ::FFI::MemoryPointer.new(:int)
6
- ::SDL2.SDL_GetWindowSize(self, nil, ptr)
7
- ptr.read_int
8
- end
9
- alias h height
10
-
11
- def height=(num)
12
- self.size = [w, num]
13
- end
14
- alias h= height=
15
-
16
- def maximum_size
17
- w_h = Array.new(2) { ::FFI::MemoryPointer.new(:int) }
18
- ::SDL2.SDL_GetWindowMaximumSize(self, *w_h)
19
- w_h.map(&:read_int)
20
- end
21
-
22
- def maximum_size=(w_h)
23
- ::SDL2.SDL_SetWindowMaximumSize(self, *w_h)
24
- end
25
-
26
- def minimum_size
27
- w_h = Array.new(2) { ::FFI::MemoryPointer.new(:int) }
28
- ::SDL2.SDL_GetWindowMinimumSize(self, *w_h)
29
- w_h.map(&:read_int)
30
- end
31
-
32
- def minimum_size=(w_h)
33
- ::SDL2.SDL_SetWindowMinimumSize(self, *w_h)
34
- end
35
-
36
- def size
37
- w_h = Array.new(2) { ::FFI::MemoryPointer.new(:int) }
38
- ::SDL2.SDL_GetWindowSize(self, *w_h)
39
- w_h.map(&:read_int)
40
- end
41
-
42
- def size=(w_h)
43
- ::SDL2.SDL_SetWindowSize(self, *w_h)
44
- end
45
-
46
- def width
47
- ptr = ::FFI::MemoryPointer.new(:int)
48
- ::SDL2.SDL_GetWindowSize(self, ptr, nil)
49
- ptr.read_int
50
- end
51
- alias w width
52
-
53
- def width=(num)
54
- self.size = [num, h]
55
- end
56
- alias w= width=
57
- end
58
- end
59
- end
@@ -1,78 +0,0 @@
1
- module RbSDL2
2
- class Window
3
- module WindowFlags
4
- class << self
5
- def to_num(allow_high_dpi: false, always_on_top: false, borderless: false, foreign: false,
6
- fullscreen: false, fullscreen_desktop: false, hidden: false, input_focus: false,
7
- input_grabbed: false, maximized: false, minimized: false, mouse_capture: false,
8
- mouse_focus: false, opengl: false, popup_menu: false, resizable: false,
9
- shown: false, skip_taskbar: false, tooltip: false, utility: false, vulkan: false)
10
- 0 |
11
- (allow_high_dpi ? ::SDL2::SDL_WINDOW_ALLOW_HIGHDPI : 0) |
12
- (always_on_top ? ::SDL2::SDL_WINDOW_ALWAYS_ON_TOP : 0) |
13
- (borderless ? ::SDL2::SDL_WINDOW_BORDERLESS : 0) |
14
- (foreign ? ::SDL2::SDL_WINDOW_FOREIGN : 0) |
15
- (fullscreen ? ::SDL2::SDL_WINDOW_FULLSCREEN : 0) |
16
- (fullscreen_desktop ? ::SDL2::SDL_WINDOW_FULLSCREEN_DESKTOP : 0) |
17
- (hidden ? ::SDL2::SDL_WINDOW_HIDDEN : 0) |
18
- (input_focus ? ::SDL2::SDL_WINDOW_INPUT_FOCUS : 0) |
19
- (input_grabbed ? ::SDL2::SDL_WINDOW_INPUT_GRABBED : 0) |
20
- (maximized ? ::SDL2::SDL_WINDOW_MAXIMIZED : 0) |
21
- (minimized ? ::SDL2::SDL_WINDOW_MINIMIZED : 0) |
22
- (mouse_capture ? ::SDL2::SDL_WINDOW_MOUSE_CAPTURE : 0) |
23
- (mouse_focus ? ::SDL2::SDL_WINDOW_MOUSE_FOCUS : 0) |
24
- (opengl ? ::SDL2::SDL_WINDOW_OPENGL : 0) |
25
- (popup_menu ? ::SDL2::SDL_WINDOW_POPUP_MENU : 0) |
26
- (resizable ? ::SDL2::SDL_WINDOW_RESIZABLE : 0) |
27
- (shown ? ::SDL2::SDL_WINDOW_SHOWN : 0) |
28
- (skip_taskbar ? ::SDL2::SDL_WINDOW_SKIP_TASKBAR : 0) |
29
- (tooltip ? ::SDL2::SDL_WINDOW_TOOLTIP : 0) |
30
- (utility ? ::SDL2::SDL_WINDOW_UTILITY : 0) |
31
- (vulkan ? ::SDL2::SDL_WINDOW_VULKAN : 0)
32
- end
33
- end
34
-
35
- def allow_high_dpi? = ::SDL2::SDL_WINDOW_ALLOW_HIGHDPI & flags != 0
36
-
37
- def always_on_top? = ::SDL2::SDL_WINDOW_ALWAYS_ON_TOP & flags != 0
38
-
39
- def borderless? = ::SDL2::SDL_WINDOW_BORDERLESS & flags != 0
40
-
41
- def foreign? = ::SDL2::SDL_WINDOW_FOREIGN & flags != 0
42
-
43
- def fullscreen? = ::SDL2::SDL_WINDOW_FULLSCREEN & flags != 0
44
-
45
- def fullscreen_desktop? = ::SDL2::SDL_WINDOW_FULLSCREEN_DESKTOP & flags != 0
46
-
47
- def hidden? = ::SDL2::SDL_WINDOW_HIDDEN & flags != 0
48
-
49
- def input_focused? = ::SDL2::SDL_WINDOW_INPUT_FOCUS & flags != 0
50
-
51
- def input_grabbed? = ::SDL2::SDL_WINDOW_INPUT_GRABBED & flags != 0
52
-
53
- def maximized? = ::SDL2::SDL_WINDOW_MAXIMIZED & flags != 0
54
-
55
- def minimized? = ::SDL2::SDL_WINDOW_MINIMIZED & flags != 0
56
-
57
- def mouse_captured? = ::SDL2::SDL_WINDOW_MOUSE_CAPTURE & flags != 0
58
-
59
- def mouse_focused? = ::SDL2::SDL_WINDOW_MOUSE_FOCUS & flags != 0
60
-
61
- def opengl? = ::SDL2::SDL_WINDOW_OPENGL & flags != 0
62
-
63
- def popup_menu? = ::SDL2::SDL_WINDOW_POPUP_MENU & flags != 0
64
-
65
- def resizable? = ::SDL2::SDL_WINDOW_RESIZABLE & flags != 0
66
-
67
- def skip_taskbar? = ::SDL2::SDL_WINDOW_SKIP_TASKBAR & flags != 0
68
-
69
- def shown? = ::SDL2::SDL_WINDOW_SHOWN & flags != 0
70
-
71
- def tooltip? = ::SDL2::SDL_WINDOW_TOOLTIP & flags != 0
72
-
73
- def utility? = ::SDL2::SDL_WINDOW_UTILITY & flags != 0
74
-
75
- def vulkan? = ::SDL2::SDL_WINDOW_VULKAN & flags != 0
76
- end
77
- end
78
- end