Class: RbSDL2::SDLPointer

Inherits:
FFI::AutoPointer
  • Object
show all
Defined in:
lib/rb_sdl2/sdl_pointer.rb

Overview

SDL のメモリーアロケーターで確保されたメモリー領域を表すクラスです。 SDL 関数の戻り値がポインターで Ruby 側でメモリー開放が必要な時(例えば char ポインター)に使用します。

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.from_string(s) ⇒ Object



12
13
14
15
# File 'lib/rb_sdl2/sdl_pointer.rb', line 12

def from_string(s)
  sdl = SDL.str_to_sdl(s)
  malloc(sdl.bytesize + 1).write_string(sdl)
end

.malloc(size) ⇒ Object

Raises:

  • (NoMemoryError)


6
7
8
9
10
# File 'lib/rb_sdl2/sdl_pointer.rb', line 6

def malloc(size)
  ptr = ::SDL.calloc(1, size)
  raise NoMemoryError if ptr.null?
  new(ptr)
end

.release(ptr) ⇒ Object



17
# File 'lib/rb_sdl2/sdl_pointer.rb', line 17

def release(ptr) = ::SDL.free(ptr)

Instance Method Details

#to_sObject



20
# File 'lib/rb_sdl2/sdl_pointer.rb', line 20

def to_s = SDL.ptr_to_str(self)