class RbSDL2::Window::HitTest
Constants
- HIT_TEST_RESULT
Public Class Methods
callback_set(window, obj, userdata = nil)
click to toggle source
# File lib/rb_sdl2/window/hit_test.rb, line 8 def callback_set(window, obj, userdata = nil) func = if Proc === obj new(&obj) else obj end @mutex.synchronize do err = ::SDL2.SDL_SetWindowHitTest(window, func, userdata) raise RbSDL2Error if err < 0 id = window.id if obj @callbacks[id] = [func, userdata] else @callbacks.delete(id) end end [obj, userdata] end
new(&block)
click to toggle source
Calls superclass method
# File lib/rb_sdl2/window/hit_test.rb, line 41 def initialize(&block) # typedef SDL_HitTestResult (*SDL_HitTest)(SDL_Window *win, # const SDL_Point *area, void *data); super(:int, [:pointer, :pointer, :pointer]) do |win, area, _data| # コールバック実行終了を OS が待つようなので、与えらえた window ポインターは有効なものとしてよいだろう。 # area には SDL_Point のアドレスが入る。SDL_Point は x, y の2つの int 型メンバーである。 HIT_TEST_RESULT[yield(Window.to_ptr(win), ::SDL2::SDL_Point.new(area).values)] end end