module GLUT
Constants
- GLUTButtonBoxFunc_cb_args
- GLUTButtonBoxFunc_cb_retval
- GLUTDialsFunc_cb_args
- GLUTDialsFunc_cb_retval
- GLUTDisplayFunc_cb_args
- GLUTDisplayFunc_cb_retval
- GLUTEntryFunc_cb_args
- GLUTEntryFunc_cb_retval
- GLUTIdleFunc_cb_args
- GLUTIdleFunc_cb_retval
- GLUTJoystickFunc_cb_args
- GLUTJoystickFunc_cb_retval
- GLUTKeyboardFunc_cb_args
- GLUTKeyboardFunc_cb_retval
- GLUTKeyboardUpFunc_cb_args
- GLUTKeyboardUpFunc_cb_retval
- GLUTMenuFunc_cb_args
- GLUTMenuFunc_cb_retval
- GLUTMenuStateFunc_cb_args
- GLUTMenuStateFunc_cb_retval
- GLUTMenuStatusFunc_cb_args
- GLUTMenuStatusFunc_cb_retval
- GLUTMotionFunc_cb_args
- GLUTMotionFunc_cb_retval
- GLUTMouseFunc_cb_args
- GLUTMouseFunc_cb_retval
- GLUTOverlayDisplayFunc_cb_args
- GLUTOverlayDisplayFunc_cb_retval
- GLUTPassiveMotionFunc_cb_args
- GLUTPassiveMotionFunc_cb_retval
- GLUTReshapeFunc_cb_args
- GLUTReshapeFunc_cb_retval
- GLUTSpaceballButtonFunc_cb_args
- GLUTSpaceballButtonFunc_cb_retval
- GLUTSpaceballMotionFunc_cb_args
- GLUTSpaceballMotionFunc_cb_retval
- GLUTSpaceballRotateFunc_cb_args
- GLUTSpaceballRotateFunc_cb_retval
- GLUTSpecialFunc_cb_args
- GLUTSpecialFunc_cb_retval
- GLUTSpecialUpFunc_cb_args
- GLUTSpecialUpFunc_cb_retval
- GLUTTabletButtonFunc_cb_args
- GLUTTabletButtonFunc_cb_retval
- GLUTTabletMotionFunc_cb_args
- GLUTTabletMotionFunc_cb_retval
- GLUTTimerFunc_cb_args
- GLUTTimerFunc_cb_retval
- GLUTVisibilityFunc_cb_args
- GLUTVisibilityFunc_cb_retval
- GLUTWindowStatusFunc_cb_args
- GLUTWindowStatusFunc_cb_retval
- GLUT_ACCUM
- GLUT_ACTIVE_ALT
- GLUT_ACTIVE_CTRL
- GLUT_ACTIVE_SHIFT
- GLUT_ALPHA
- GLUT_API_VERSION
defines
- GLUT_BLUE
- GLUT_CURSOR_BOTTOM_LEFT_CORNER
- GLUT_CURSOR_BOTTOM_RIGHT_CORNER
- GLUT_CURSOR_BOTTOM_SIDE
- GLUT_CURSOR_CROSSHAIR
- GLUT_CURSOR_CYCLE
- GLUT_CURSOR_DESTROY
- GLUT_CURSOR_FULL_CROSSHAIR
- GLUT_CURSOR_HELP
- GLUT_CURSOR_INFO
- GLUT_CURSOR_INHERIT
- GLUT_CURSOR_LEFT_ARROW
- GLUT_CURSOR_LEFT_RIGHT
- GLUT_CURSOR_LEFT_SIDE
- GLUT_CURSOR_NONE
- GLUT_CURSOR_RIGHT_ARROW
- GLUT_CURSOR_RIGHT_SIDE
- GLUT_CURSOR_SPRAY
- GLUT_CURSOR_TEXT
- GLUT_CURSOR_TOP_LEFT_CORNER
- GLUT_CURSOR_TOP_RIGHT_CORNER
- GLUT_CURSOR_TOP_SIDE
- GLUT_CURSOR_UP_DOWN
- GLUT_CURSOR_WAIT
- GLUT_DEPTH
- GLUT_DEVICE_IGNORE_KEY_REPEAT
- GLUT_DEVICE_KEY_REPEAT
- GLUT_DISPLAY_MODE_POSSIBLE
- GLUT_DOUBLE
- GLUT_DOWN
- GLUT_ELAPSED_TIME
- GLUT_ENTERED
- GLUT_FULLY_COVERED
- GLUT_FULLY_RETAINED
- GLUT_GAME_MODE_ACTIVE
- GLUT_GAME_MODE_DISPLAY_CHANGED
- GLUT_GAME_MODE_HEIGHT
- GLUT_GAME_MODE_PIXEL_DEPTH
- GLUT_GAME_MODE_POSSIBLE
- GLUT_GAME_MODE_REFRESH_RATE
- GLUT_GAME_MODE_WIDTH
- GLUT_GREEN
- GLUT_HAS_DIAL_AND_BUTTON_BOX
- GLUT_HAS_JOYSTICK
- GLUT_HAS_KEYBOARD
- GLUT_HAS_MOUSE
- GLUT_HAS_OVERLAY
- GLUT_HAS_SPACEBALL
- GLUT_HAS_TABLET
- GLUT_HIDDEN
- GLUT_INDEX
- GLUT_INIT_DISPLAY_MODE
- GLUT_INIT_STATE
- GLUT_INIT_WINDOW_HEIGHT
- GLUT_INIT_WINDOW_WIDTH
- GLUT_INIT_WINDOW_X
- GLUT_INIT_WINDOW_Y
- GLUT_JOYSTICK_AXES
- GLUT_JOYSTICK_BUTTONS
- GLUT_JOYSTICK_BUTTON_A
- GLUT_JOYSTICK_BUTTON_B
- GLUT_JOYSTICK_BUTTON_C
- GLUT_JOYSTICK_BUTTON_D
- GLUT_JOYSTICK_POLL_RATE
- GLUT_KEY_DOWN
- GLUT_KEY_END
- GLUT_KEY_F1
- GLUT_KEY_F10
- GLUT_KEY_F11
- GLUT_KEY_F12
- GLUT_KEY_F2
- GLUT_KEY_F3
- GLUT_KEY_F4
- GLUT_KEY_F5
- GLUT_KEY_F6
- GLUT_KEY_F7
- GLUT_KEY_F8
- GLUT_KEY_F9
- GLUT_KEY_HOME
- GLUT_KEY_INSERT
- GLUT_KEY_LEFT
- GLUT_KEY_PAGE_DOWN
- GLUT_KEY_PAGE_UP
- GLUT_KEY_REPEAT_DEFAULT
- GLUT_KEY_REPEAT_OFF
- GLUT_KEY_REPEAT_ON
- GLUT_KEY_RIGHT
- GLUT_KEY_UP
- GLUT_LAYER_IN_USE
- GLUT_LEFT
- GLUT_LEFT_BUTTON
- GLUT_LUMINANCE
- GLUT_MENU_IN_USE
- GLUT_MENU_NOT_IN_USE
- GLUT_MENU_NUM_ITEMS
- GLUT_MIDDLE_BUTTON
- GLUT_MULTISAMPLE
- GLUT_NORMAL
- GLUT_NORMAL_DAMAGED
- GLUT_NOT_VISIBLE
- GLUT_NUM_BUTTON_BOX_BUTTONS
- GLUT_NUM_DIALS
- GLUT_NUM_MOUSE_BUTTONS
- GLUT_NUM_SPACEBALL_BUTTONS
- GLUT_NUM_TABLET_BUTTONS
- GLUT_OVERLAY
- GLUT_OVERLAY_DAMAGED
- GLUT_OVERLAY_POSSIBLE
- GLUT_OWNS_JOYSTICK
- GLUT_PARTIALLY_RETAINED
- GLUT_RED
- GLUT_RGB
- GLUT_RGBA
- GLUT_RIGHT_BUTTON
- GLUT_SCREEN_HEIGHT
- GLUT_SCREEN_HEIGHT_MM
- GLUT_SCREEN_WIDTH
- GLUT_SCREEN_WIDTH_MM
- GLUT_SINGLE
- GLUT_STENCIL
- GLUT_STEREO
- GLUT_TRANSPARENT_INDEX
- GLUT_UP
- GLUT_VIDEO_RESIZE_HEIGHT
- GLUT_VIDEO_RESIZE_HEIGHT_DELTA
- GLUT_VIDEO_RESIZE_IN_USE
- GLUT_VIDEO_RESIZE_POSSIBLE
- GLUT_VIDEO_RESIZE_WIDTH
- GLUT_VIDEO_RESIZE_WIDTH_DELTA
- GLUT_VIDEO_RESIZE_X
- GLUT_VIDEO_RESIZE_X_DELTA
- GLUT_VIDEO_RESIZE_Y
- GLUT_VIDEO_RESIZE_Y_DELTA
- GLUT_VISIBLE
- GLUT_WINDOW_ACCUM_ALPHA_SIZE
- GLUT_WINDOW_ACCUM_BLUE_SIZE
- GLUT_WINDOW_ACCUM_GREEN_SIZE
- GLUT_WINDOW_ACCUM_RED_SIZE
- GLUT_WINDOW_ALPHA_SIZE
- GLUT_WINDOW_BLUE_SIZE
- GLUT_WINDOW_BUFFER_SIZE
- GLUT_WINDOW_COLORMAP_SIZE
- GLUT_WINDOW_CURSOR
- GLUT_WINDOW_DEPTH_SIZE
- GLUT_WINDOW_DOUBLEBUFFER
- GLUT_WINDOW_FORMAT_ID
- GLUT_WINDOW_GREEN_SIZE
- GLUT_WINDOW_HEIGHT
- GLUT_WINDOW_NUM_CHILDREN
- GLUT_WINDOW_NUM_SAMPLES
- GLUT_WINDOW_PARENT
- GLUT_WINDOW_RED_SIZE
- GLUT_WINDOW_RGBA
- GLUT_WINDOW_STENCIL_SIZE
- GLUT_WINDOW_STEREO
- GLUT_WINDOW_WIDTH
- GLUT_WINDOW_X
- GLUT_WINDOW_Y
Public Class Methods
create_callback(sym, proc=nil, &blk)
click to toggle source
Creates a callback as an instance of Fiddle::Function
# File lib/glut.rb, line 227 def self.create_callback(sym, proc=nil, &blk) if block_given? return bind(@@glut_cb_function_signature[sym], nil, &blk) else return bind(@@glut_cb_function_signature[sym], nil, &proc) end end
create_callback_closure(sym, proc=nil, &blk)
click to toggle source
Creates a callback as an instance of Fiddle::Closure::BlockCaller
# File lib/glut.rb, line 318 def self.create_callback_closure(sym, proc=nil, &blk) cb_retval = @@glut_cb_closure_signature[sym][0] cb_args = @@glut_cb_closure_signature[sym][1] if block_given? return Fiddle::Closure::BlockCaller.new(cb_retval, cb_args, Fiddle::Function::DEFAULT, &blk) else return Fiddle::Closure::BlockCaller.new(cb_retval, cb_args, Fiddle::Function::DEFAULT, &proc) end end
import_symbols(output_error = false)
click to toggle source
# File lib/glut.rb, line 490 def self.import_symbols(output_error = false) # defines if GL.get_platform == :OPENGL_PLATFORM_WINDOWS const_set('GLUT_STROKE_ROMAN', Fiddle::Pointer.new(0x0000)) const_set('GLUT_STROKE_MONO_ROMAN', Fiddle::Pointer.new(0x0001)) const_set('GLUT_BITMAP_9_BY_15', Fiddle::Pointer.new(0x0002)) const_set('GLUT_BITMAP_8_BY_13', Fiddle::Pointer.new(0x0003)) const_set('GLUT_BITMAP_TIMES_ROMAN_10', Fiddle::Pointer.new(0x0004)) const_set('GLUT_BITMAP_TIMES_ROMAN_24', Fiddle::Pointer.new(0x0005)) const_set('GLUT_BITMAP_HELVETICA_10', Fiddle::Pointer.new(0x0006)) const_set('GLUT_BITMAP_HELVETICA_12', Fiddle::Pointer.new(0x0007)) const_set('GLUT_BITMAP_HELVETICA_18', Fiddle::Pointer.new(0x0008)) else const_set('GLUT_STROKE_ROMAN', import_symbol("glutStrokeRoman")) const_set('GLUT_STROKE_MONO_ROMAN', import_symbol("glutStrokeMonoRoman")) const_set('GLUT_BITMAP_9_BY_15', import_symbol("glutBitmap9By15")) const_set('GLUT_BITMAP_8_BY_13', import_symbol("glutBitmap8By13")) const_set('GLUT_BITMAP_TIMES_ROMAN_10', import_symbol("glutBitmapTimesRoman10")) const_set('GLUT_BITMAP_TIMES_ROMAN_24', import_symbol("glutBitmapTimesRoman24")) const_set('GLUT_BITMAP_HELVETICA_10', import_symbol("glutBitmapHelvetica10")) const_set('GLUT_BITMAP_HELVETICA_12', import_symbol("glutBitmapHelvetica12")) const_set('GLUT_BITMAP_HELVETICA_18', import_symbol("glutBitmapHelvetica18")) end # function @@lib_signature.each do |sig| begin extern sig rescue $stderr.puts("[Warning] Failed to import #{sig}.") if output_error end end # Convert method names (e.g.: GLUT.glutInit -> GLUT.Init) self.singleton_methods(false).each do |method_name| m = singleton_method(method_name) if m.name.to_s.start_with? 'glut' modified_api = m.name.to_s[4..-1] # omit prefix "glut" define_singleton_method(modified_api, m) # define alias end end # Convert constant names (e.g.: GLUT::GLUT_KEY_F1 -> GLUT::KEY_F1) self.constants.each do |constant| cs = constant.to_s if cs[0..4] == "GLUT_" if cs[5] =~ /\d/ # We have to abandon name conversion like 'GL_2D, GL_3D_COLOR, GL_4_BYTES, etc. # Because constants can't start with a digit or underscore. # [Note] This rule has been inherited from Yoshi's very original ruby-opengl (confirmed with opengl-0.32g, 2004-07-17). else # Convert by omitting the 'GLUT_' prefix const_set(cs[5..-1], GLUT.const_get(constant)) end end end @@glut_import_done = true end
load_lib(lib_path = nil, output_error = false)
click to toggle source
Load native library.
# File lib/glut.rb, line 336 def self.load_lib(lib_path = nil, output_error = false) if lib_path == nil lib_path = case GL.get_platform when :OPENGL_PLATFORM_WINDOWS Dir.pwd + '/freeglut.dll' when :OPENGL_PLATFORM_MACOSX '/System/Library/Frameworks/GLUT.framework/GLUT' else 'libglut.so' # not tested end end dlload(lib_path) import_symbols(output_error) unless @@glut_import_done end