Module: Rubygame::GL
- Defined in:
- ext/rubygame/rubygame_gl.c,
ext/rubygame/rubygame_gl.c
Overview
The GL module provides an interface to SDL’s OpenGL-related functions, allowing a Rubygame application to create hardware-accelerated 3D graphics with OpenGL.
Please note that Rubygame itself does not provide an interface to OpenGL functions – only functions which allow Rubygame to work together with OpenGL. You will need to use another library, for example ruby-opengl, to actually create graphics with OpenGL.
Users who wish to use Rubygame Surfaces as textures in OpenGL should see also the Surface#pixels method.
Constant Summary collapse
- RED_SIZE =
INT2NUM(SDL_GL_RED_SIZE)
- GREEN_SIZE =
INT2NUM(SDL_GL_GREEN_SIZE)
- BLUE_SIZE =
INT2NUM(SDL_GL_BLUE_SIZE)
- ALPHA_SIZE =
INT2NUM(SDL_GL_ALPHA_SIZE)
- BUFFER_SIZE =
INT2NUM(SDL_GL_BUFFER_SIZE)
- DOUBLEBUFFER =
INT2NUM(SDL_GL_DOUBLEBUFFER)
- DEPTH_SIZE =
INT2NUM(SDL_GL_DEPTH_SIZE)
- STENCIL_SIZE =
INT2NUM(SDL_GL_STENCIL_SIZE)
- ACCUM_RED_SIZE =
INT2NUM(SDL_GL_ACCUM_RED_SIZE)
- ACCUM_GREEN_SIZE =
INT2NUM(SDL_GL_ACCUM_GREEN_SIZE)
- ACCUM_BLUE_SIZE =
INT2NUM(SDL_GL_ACCUM_BLUE_SIZE)
- ACCUM_ALPHA_SIZE =
INT2NUM(SDL_GL_ACCUM_ALPHA_SIZE)
Class Method Summary collapse
-
.get_attrib(attrib) ⇒ Integer
Return the value of the the SDL/OpenGL attribute identified by
attrib, which should be one of the constants defined in the Rubygame::GL module. -
.set_attrib(attrib, value) ⇒ nil
Set the SDL/OpenGL attribute
attribtovalue. -
.swap_buffers ⇒ nil
Swap the back and front buffers, for double-buffered OpenGL displays.
Class Method Details
.get_attrib(attrib) ⇒ Integer
Return the value of the the SDL/OpenGL attribute identified by attrib, which should be one of the constants defined in the Rubygame::GL module. See #set_attrib for a list of attribute constants.
This method is useful after using #set_attrib and calling Screen#set_mode, to make sure the attribute is the expected value.
53 54 55 56 57 58 59 |
# File 'ext/rubygame/rubygame_gl.c', line 53
VALUE rbgm_gl_getattrib(VALUE module, VALUE attr)
{
int val;
if(SDL_GL_GetAttribute(NUM2INT(attr),&val)==-1)
rb_raise(eSDLError,"GL get attribute failed: %s",SDL_GetError());
return INT2NUM(val);
}
|
.set_attrib(attrib, value) ⇒ nil
Set the SDL/OpenGL attribute attrib to value. This should be called before you call Screen#set_mode with the OPENGL flag. You may wish to use #get_attrib after calling Screen#set_mode to confirm that the attribute is set to the desired value.
The full list of SDL/OpenGL attribute identifier constants (located under the Rubygame::GL module) is as follows:
- RED_SIZE
-
Size of framebuffer red component, in bits.
- GREEN_SIZE
-
Size of framebuffer green component, in bits.
- BLUE_SIZE
-
Size of framebuffer blue component, in bits.
- ALPHA_SIZE
-
Size of framebuffer alpha (opacity) component, in bits.
- BUFFER_SIZE
-
Size of framebuffer, in bits.
- DOUBLEBUFFER
-
Enable or disable double-buffering.
- DEPTH_SIZE
-
Size of depth buffer, in bits.
- STENCIL_SIZE
-
Size of stencil buffer, in bits.
- ACCUM_RED_SIZE
-
Size of accumulation buffer red component, in bits.
- ACCUM_GREEN_SIZE
-
Size of accumulation buffer green component, in bits.
- ACCUM_BLUE_SIZE
-
Size of accumulation buffer blue component, in bits.
- ACCUM_ALPHA_SIZE
-
Size of accumulation buffer alpha component, in bits.
86 87 88 89 90 91 |
# File 'ext/rubygame/rubygame_gl.c', line 86
VALUE rbgm_gl_setattrib(VALUE module,VALUE attr,VALUE val)
{
if(SDL_GL_SetAttribute(NUM2INT(attr),NUM2INT(val))==-1)
rb_raise(eSDLError,"GL set attribute failed: %s",SDL_GetError());
return Qnil;
}
|
.swap_buffers ⇒ nil
Swap the back and front buffers, for double-buffered OpenGL displays. Should be safe to use (albeit with no effect) on single-buffered OpenGL displays.
100 101 102 103 104 |
# File 'ext/rubygame/rubygame_gl.c', line 100
VALUE rbgm_gl_swapbuffers(VALUE module)
{
SDL_GL_SwapBuffers();
return Qnil;
}
|