class RbSDL2::Window::Display::GammaRamp
Public Class Methods
[](*a)
click to toggle source
# File lib/rb_sdl2/window/display.rb, line 38 def [](*a) raise ArgumentError if a.length != 256 ptr = ::FFI::MemoryPointer.new(:uint16, 256).write_array_of_uint16(a) obj = allocate obj.__send__(:initialize, ptr) obj end
new(gamma)
click to toggle source
Calls superclass method
# File lib/rb_sdl2/window/display.rb, line 46 def new(gamma) ptr = ::FFI::MemoryPointer.new(:uint16, 256) ::SDL2.SDL_CalculateGammaRamp(gamma, ptr) super(ptr) end
new(ptr)
click to toggle source
# File lib/rb_sdl2/window/display.rb, line 53 def initialize(ptr) @ptr = ptr end
Public Instance Methods
gamma=(rgb)
click to toggle source
- r_gamma, g_gamma, b_gamma
-
| gamma
# File lib/rb_sdl2/window/display.rb, line 64 def gamma=(rgb) r, g, b = *rgb self.gamma_ramp = (!g && !b ? [r, r, r] : [r, g, b]).map { |f| GammaRamp.new(f) } end
gamma_ramp()
click to toggle source
# File lib/rb_sdl2/window/display.rb, line 69 def gamma_ramp rgb = Array.new(3) { GammaRamp.new } err = ::SDL2.SDL_GetWindowGammaRamp(self, *rgb) raise RbSDL2Error if err < 0 rgb.map(&:to_a) end
gamma_ramp=(r_g_b)
click to toggle source
r_g_b: [[r,…],,[b,…]] 画面全体に影響を与える。OSからリセットされることもある。 アプリケーションが終了しても永続的に影響をあたえる。ユーザにとって望ましくないだろう。
# File lib/rb_sdl2/window/display.rb, line 79 def gamma_ramp=(r_g_b) err = ::SDL2.SDL_SetWindowGammaRamp(self, *r_g_b.map { |a| GammaRamp[*a] }) raise RbSDL2Error if err < 0 end
to_a(= @ptr.read_array_of_uint16(256))
click to toggle source
# File lib/rb_sdl2/window/display.rb, line 59 def to_a = @ptr.read_array_of_uint16(256) alias to_ary to_a end
to_ptr(= @ptr)
click to toggle source
# File lib/rb_sdl2/window/display.rb, line 57 def to_ptr = @ptr def to_a = @ptr.read_array_of_uint16(256) alias to_ary to_a end # [r_gamma, g_gamma, b_gamma] | gamma def gamma=(rgb) r, g, b = *rgb self.gamma_ramp = (!g && !b ? [r, r, r] : [r, g, b]).map { |f| GammaRamp.new(f) } end def gamma_ramp rgb = Array.new(3) { GammaRamp.new } err = ::SDL2.SDL_GetWindowGammaRamp(self, *rgb) raise RbSDL2Error if err < 0 rgb.map(&:to_a) end # r_g_b: [[r,...],[g,...],[b,...]] # 画面全体に影響を与える。OSからリセットされることもある。 # アプリケーションが終了しても永続的に影響をあたえる。ユーザにとって望ましくないだろう。 def gamma_ramp=(r_g_b) err = ::SDL2.SDL_SetWindowGammaRamp(self, *r_g_b.map { |a| GammaRamp[*a] }) raise RbSDL2Error if err < 0 end end