Module: SDL2

Extended by:
FFI::Library, Library
Defined in:
lib/sdl2.rb,
lib/sdl2/log.rb,
lib/sdl2/ttf.rb,
lib/sdl2/init.rb,
lib/sdl2/rect.rb,
lib/sdl2/audio.rb,
lib/sdl2/color.rb,
lib/sdl2/debug.rb,
lib/sdl2/error.rb,
lib/sdl2/event.rb,
lib/sdl2/hints.rb,
lib/sdl2/image.rb,
lib/sdl2/mixer.rb,
lib/sdl2/mouse.rb,
lib/sdl2/point.rb,
lib/sdl2/power.rb,
lib/sdl2/rwops.rb,
lib/sdl2/syswm.rb,
lib/sdl2/timer.rb,
lib/sdl2/touch.rb,
lib/sdl2/union.rb,
lib/sdl2/video.rb,
lib/sdl2/assert.rb,
lib/sdl2/events.rb,
lib/sdl2/haptic.rb,
lib/sdl2/pixels.rb,
lib/sdl2/render.rb,
lib/sdl2/stdinc.rb,
lib/sdl2/struct.rb,
lib/sdl2/window.rb,
lib/sdl2/cpuinfo.rb,
lib/sdl2/display.rb,
lib/sdl2/gesture.rb,
lib/sdl2/keycode.rb,
lib/sdl2/library.rb,
lib/sdl2/palette.rb,
lib/sdl2/surface.rb,
lib/sdl2/texture.rb,
lib/sdl2/version.rb,
lib/struct_array.rb,
lib/sdl2/event/os.rb,
lib/sdl2/joystick.rb,
lib/sdl2/keyboard.rb,
lib/sdl2/renderer.rb,
lib/sdl2/scancode.rb,
lib/sdl2/ttf/font.rb,
lib/sdl2/blendmode.rb,
lib/sdl2/clipboard.rb,
lib/sdl2/syswm/msg.rb,
lib/sdl2/event/drop.rb,
lib/sdl2/event/quit.rb,
lib/sdl2/event/type.rb,
lib/sdl2/event/user.rb,
lib/sdl2/sdl_module.rb,
lib/sdl2/syswm/info.rb,
lib/sdl2/event/state.rb,
lib/sdl2/gem_version.rb,
lib/sdl2/mixer/chunk.rb,
lib/sdl2/display/mode.rb,
lib/sdl2/event/action.rb,
lib/sdl2/event/common.rb,
lib/sdl2/event/sys_wm.rb,
lib/sdl2/event/window.rb,
lib/sdl2/pixel_format.rb,
lib/sdl2/display/modes.rb,
lib/sdl2/event/joy_hat.rb,
lib/sdl2/joystick/axes.rb,
lib/sdl2/joystick/hats.rb,
lib/sdl2/renderer_info.rb,
lib/sdl2/struct_helper.rb,
lib/sdl2/typed_pointer.rb,
lib/sdl2/event/abstract.rb,
lib/sdl2/event/joy_axis.rb,
lib/sdl2/event/joy_ball.rb,
lib/sdl2/event/keyboard.rb,
lib/sdl2/gamecontroller.rb,
lib/sdl2/joystick/balls.rb,
lib/sdl2/managed_struct.rb,
lib/sdl2/mixer/lib_paths.rb,
lib/sdl2/event/joy_button.rb,
lib/sdl2/event/joy_device.rb,
lib/sdl2/event/text_input.rb,
lib/sdl2/joystick/buttons.rb,
lib/sdl2/event/mouse_wheel.rb,
lib/sdl2/event/mouse_button.rb,
lib/sdl2/event/mouse_motion.rb,
lib/sdl2/event/text_editing.rb,
lib/sdl2/event/touch_finger.rb,
lib/sdl2/ttf/sdl_ttf_module.rb,
lib/sdl2/event/multi_gesture.rb,
lib/sdl2/joystick/components.rb,
lib/sdl2/event/dollar_gesture.rb,
lib/sdl2/event/controller_axis.rb,
lib/sdl2/image/sdl_image_module.rb,
lib/sdl2/event/controller_button.rb,
lib/sdl2/event/controller_device.rb

Overview

SDL_syswm.h

Defined Under Namespace

Modules: ARRAYORDER, Audio, BITMAPORDER, BLENDMODE, Clipboard, Debug, FLIP, GLattr, GLcontextFlag, GLprofile, HAT, HINT, INIT, Image, KEYCODE, KEYMOD, Keyboard, Library, Log, Mixer, Mouse, PACKEDLAYOUT, PACKEDORDER, PIXELFORMAT, PIXELTYPE, POWERSTATE, RENDERER, SCANCODE, ScreenSaver, StructHelper, SysWM, TEXTUREACCESS, TEXTUREMODULATE, TTF, Touch, Video, WINDOWEVENT, WINDOWPOS Classes: Color, Cursor, Display, Event, EventFilterStruct, GameController, Haptic, Hint, Joystick, JoystickGUID, Keysym, ManagedStruct, Palette, PixelFormat, Point, RWops, Rect, Renderer, RendererInfo, Struct, StructArray, Surface, Texture, TypedPointer, Union, Version, Window

Constant Summary collapse

MIX_MAXVOLUME =
128
Colour =

Alternative spelling of Color

Color
IMG =

Alias to follow IMG_xxx convention

Image
MIX =

Alias for constants like, ex: MIX_DEFAULT_FORMAT -> MIX::DEFAULT_FORMAT

Mixer
Mix =

Alias for method calls

Mixer
SYSWM =

Because I don’t care about case.

SysWM
TOUCH_MOUSEID =
-1
##
# SDL's touch functionality.
RELEASED =

General keyboard/mouse released state

0
PRESSED =

General keyboard/mouse pressed state

1
ALPHA_OPAQUE =
255
ALPHA_TRANSPARENT =
0
OK_WHEN_ZERO =

When the result is zero, everything is ok.

Proc.new { |result| result == 0 }
OK_WHEN_ONE =

When the result is one, everything is ok

Proc.new{|result| result == 1}
OK_WHEN_GTE_ZERO =

When the result must be positive

Proc.new{|result| result >= 0}
OK_WHEN_NOT_ZERO =

When result is anything but zero

Proc.new { |result| result != 0  }
OK_WHEN_NOT_NULL =

When resultnot null?

Proc.new { |result| (!result.nil?) and (!result.null?) }
OK_WHEN_TRUE =

When result is true

Proc.new { |result| result == true  }
CACHELINE_SIZE =
128
SCANCODE_MASK =

TODO: Review if I translated lines 44~45 right.

1<<30
NUM_SCANCODES =

Not a key, just marks the number of scancodes for array bounds

512
SDL_MODULE =

Default load-path. To modify what library this RubyGem loads: 1) require ‘sdl2/sdl_module’ before anything else.

2) Modify the SDL2::SDL_MODULE array. 3) require any of the rest of the SDL2 module: require ‘sdl2/video’, etc

['libSDL2','/usr/local/lib/libSDL2.so']
GEM_VERSION =
"0.0.7"

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Library

api, boolean?, metaclass, raise_error, raise_error_if, raise_error_unless, returns_error

Class Method Details

.bitsperpixel(x) ⇒ Object

MACRO: SDL_BITSPERPIXEL(X) (((X) >> 8) & 0xFF)



113
# File 'lib/sdl2/pixels.rb', line 113

def self.bitsperpixel(x);   (((x) >> 8) & 0xFF); end

.blit_scaled(src, srcrect, dst, dstrect) ⇒ Object

using upper_blit_scaled



299
300
301
# File 'lib/sdl2/surface.rb', line 299

def self.blit_scaled(src, srcrect, dst, dstrect)
  upper_blit_scaled(src, srcrect, dst, dstrect)
end

.blit_surface(src, srcrect, dst, dstrect) ⇒ Object

using upper_blit



281
282
283
284
# File 'lib/sdl2/surface.rb', line 281

def self.blit_surface(src, srcrect, dst, dstrect)
  
  upper_blit(src, srcrect, dst, dstrect)
end

.bytesperpixel(x) ⇒ Object

MACRO: SDL_BYTESPERPIXEL(X) \

(SDL_ISPIXELFORMAT_FOURCC(X) ? \
    ((((X) == SDL_PIXELFORMAT_YUY2) || \
      ((X) == SDL_PIXELFORMAT_UYVY) || \
      ((X) == SDL_PIXELFORMAT_YVYU)) ? 2 : 1) : (((X) >> 0) & 0xFF))


120
121
122
123
124
125
# File 'lib/sdl2/pixels.rb', line 120

def self.bytesperpixel(x)
  (ispixelformat_fourcc(x) ?
  ((( x == PIXELFORMAT.YUV2 ) ||
  ( x == PIXELFORMAT.UYVY ) ||
  ( x == PIXELFORMAT.YVYU )) ? 2 : 1) : ((x >> 0) & 0xFF))
end

.define_pixelformat(type, order, layout, bits, bytes) ⇒ Object

MACRO: SDL_DEFINE_PIXELFORMAT(type, order, layout, bits, bytes) \

((1 << 28) | ((type) << 24) | ((order) << 20) | ((layout) << 16) | \
 ((bits) << 8) | ((bytes) << 0))


95
96
97
98
# File 'lib/sdl2/pixels.rb', line 95

def self.define_pixelformat(type, order, layout, bits, bytes)
  ((1 << 28) | ((type) << 24) | ((order) << 20) | ((layout) << 16) | 
   ((bits) << 8) | ((bytes) << 0))
end

.define_pixelfourcc(a, b, c, d) ⇒ Object

MACRO: SDL_DEFINE_PIXELFOURCC(A, B, C, D) SDL_FOURCC(A, B, C, D)



88
89
90
# File 'lib/sdl2/pixels.rb', line 88

def self.define_pixelfourcc(a,b,c,d)
  SDL2.fourcc(a,b,c,d);
end

.fourcc(*args) ⇒ Object

Define a four character code as a Uint32 MACRO: SDL_FOURCC(A, B, C, D) \

((SDL_static_cast(Uint32, SDL_static_cast(Uint8, (A))) << 0) | \
 (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (B))) << 8) | \
 (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (C))) << 16) | \
 (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (D))) << 24))


14
15
16
17
18
19
20
21
22
23
# File 'lib/sdl2/stdinc.rb', line 14

def self.fourcc(*args)
  bit_cnt = 0
  result = 0
  args.each do |arg|
    arg = arg.codepoints[0] if arg.kind_of? String
    result = result | (arg << bit_cnt)
    bit_cnt += 8
  end
  return result
end

.ispixelformat_alpha(format) ⇒ Object

MACRO: SDL_ISPIXELFORMAT_ALPHA(format) \ (!SDL_ISPIXELFORMAT_FOURCC(format) && \ ((SDL_PIXELORDER(format) == SDL_PACKEDORDER_ARGB) || \ (SDL_PIXELORDER(format) == SDL_PACKEDORDER_RGBA) || \ (SDL_PIXELORDER(format) == SDL_PACKEDORDER_ABGR) || \ (SDL_PIXELORDER(format) == SDL_PACKEDORDER_BGRA)))



145
146
147
148
149
150
151
# File 'lib/sdl2/pixels.rb', line 145

def self.ispixelformat_alpha(format)
  (!pixelformat_fourcc(format) &&
  ((pixelorder(format) == PACKEDORDER.ARGB) ||
  (pixelorder(format) == PACKEDORDER.RGBA) ||
  (pixelorder(format) == PACKEDORDER.ABGR) ||
  (pixelorder(format) == PACKEDORDER.BGRA)))
end

.ispixelformat_fourcc(format) ⇒ Object

MACRO: SDL_ISPIXELFORMAT_FOURCC(format) \ ((format) && (SDL_PIXELFLAG(format) != 1))



155
156
157
# File 'lib/sdl2/pixels.rb', line 155

def self.ispixelformat_fourcc(format)
  ((format) && (pixelflag(format) != 1))
end

.ispixelformat_indexed(format) ⇒ Object

MACRO: SDL_ISPIXELFORMAT_INDEXED(format) \ (!SDL_ISPIXELFORMAT_FOURCC(format) && \ ((SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX1) || \ (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX4) || \ (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX8)))



132
133
134
135
136
137
# File 'lib/sdl2/pixels.rb', line 132

def self.ispixelformat_indexed(format)
  (!ispixelformat_fourcc(format) &&
  ((pixeltype(format) == PIXELTYPE.INDEX1) ||
  (pixeltype(format) == PIXELTYPE.INDEX4) ||
  (pixeltype(format) == PIXELTYPE.INDEX8)))
end

.load_bmp(file) ⇒ Object

Redefine SDL_LoadBMP macro:



212
213
214
# File 'lib/sdl2/surface.rb', line 212

def self.load_bmp(file)
  SDL2.load_bmp_rw(RWops.from_file(file, 'rb'), 1)
end

.load_wav(file, spec, audio_buf, audio_len) ⇒ Object



147
148
149
# File 'lib/sdl2/audio.rb', line 147

def self.load_wav(file, spec, audio_buf, audio_len)
  load_wav_rw(rw_from_file)
end

.pixelflag(x) ⇒ Object

MACRO: SDL_PIXELFLAG(X) (((X) >> 28) & 0x0F)



101
# File 'lib/sdl2/pixels.rb', line 101

def self.pixelflag(x);      (((x) >> 28) & 0x0F); end

.pixellayout(x) ⇒ Object

MACRO: SDL_PIXELLAYOUT(X) (((X) >> 16) & 0x0F)



110
# File 'lib/sdl2/pixels.rb', line 110

def self.pixellayout(x);    (((x) >> 16) & 0x0F); end

.pixelorder(x) ⇒ Object

MACRO: SDL_PIXELORDER(X) (((X) >> 20) & 0x0F)



107
# File 'lib/sdl2/pixels.rb', line 107

def self.pixelorder(x);     (((x) >> 20) & 0x0F); end

.pixeltype(x) ⇒ Object

MACRO: SDL_PIXELTYPE(X) (((X) >> 24) & 0x0F)



104
# File 'lib/sdl2/pixels.rb', line 104

def self.pixeltype(x);      (((x) >> 24) & 0x0F); end

.save_bmp(surface, file) ⇒ Object



222
223
224
# File 'lib/sdl2/surface.rb', line 222

def self.save_bmp(surface, file)
  SDL2.save_bmp_rw(surface, RWops.from_file(file, 'wb'), 1)
end

.scancode_to_keycode(scancode) ⇒ Object



12
13
14
# File 'lib/sdl2/keycode.rb', line 12

def self.scancode_to_keycode(scancode)
  scancode | SCANCODE_MASK
end

Instance Method Details

#event_filterObject

callback event_filter #=> Proc.new do |pointer, event|; return int; end



36
# File 'lib/sdl2/events.rb', line 36

callback :event_filter, [:pointer, Event.by_ref], :int

#get_event_state(type) ⇒ Object



59
60
61
# File 'lib/sdl2/events.rb', line 59

def get_event_state(type)
  event_state(type, EVENTSTATE::QUERY)
end

#init_sub_system!(flags) ⇒ Object



31
32
33
34
35
36
# File 'lib/sdl2/init.rb', line 31

def init_sub_system!(flags)
  error_code = init_sub_system(flags)
  if (error_code != 0)
    throw get_error
  end
end