ClanLib
2.3.7
|
GL Graphic Context. More...
#include <opengl_graphic_context.h>
Public Member Functions | |
CL_GraphicContext_GL () | |
Construction. More... | |
CL_GraphicContext_GL (CL_GraphicContext &gc) | |
Create a GL specific graphics context. More... | |
~CL_GraphicContext_GL () | |
std::vector< CL_String > | get_extensions () |
Get the list of opengl extensions. More... | |
void | get_opengl_shading_language_version (int &version_major, int &version_minor) |
Get the opengl shading language version. More... | |
void | get_opengl_version (int &version_major, int &version_minor) |
Get the opengl version. More... | |
CL_String | get_renderer_string () |
Get the opengl renderer string. More... | |
CL_String | get_vendor_string () |
Get the opengl vendor string. More... | |
bool | is_null () const |
Attributes. More... | |
void | set_active () |
Operations. More... | |
void | throw_if_null () const |
Throw an exception if this object is invalid. More... | |
Attributes | |
CL_Texture | get_texture (int index) const |
Returns the currently selected texture for the specified index. More... | |
std::vector< CL_Texture > | get_textures () const |
Returns the currently selected textures. More... | |
CL_BlendMode | get_blend_mode () const |
Returns the blending mode description. More... | |
CL_BufferControl | get_buffer_control () const |
Returns the buffer control description. More... | |
CL_PolygonRasterizer | get_polygon_rasterizer () const |
Returns the polygon rasterizer setup. More... | |
CL_FrameBuffer | get_write_frame_buffer () const |
Returns the currently selected write frame buffer. More... | |
CL_FrameBuffer | get_read_frame_buffer () const |
Returns the currently selected read frame buffer. More... | |
CL_Pen | get_pen () const |
Returns the currently selected pen. More... | |
int | get_width () const |
Returns the current width of the context. More... | |
int | get_height () const |
Returns the current height of the context. More... | |
CL_Size | get_size () const |
Returns the current size of the context. More... | |
CL_Rect | get_cliprect () const |
Returns the current clipping rectangle used on the graphic context. More... | |
const CL_Mat4f & | get_modelview () const |
Returns the current effective modelview matrix. More... | |
CL_Size | get_max_texture_size () const |
Returns the maximum size of a texture this graphic context supports. More... | |
CL_GraphicContextProvider * | get_provider () |
Returns the provider for this graphic context. More... | |
const CL_GraphicContextProvider *const | get_provider () const |
Operations | |
CL_PixelBuffer | get_pixeldata (const CL_Rect &rect, CL_TextureFormat pixel_format=cl_abgr8, bool clamp=true) const |
Return the content of the read buffer into a pixel buffer. More... | |
CL_PixelBuffer | get_pixeldata (CL_TextureFormat pixel_format=cl_abgr8, bool clamp=true) const |
Return the content of the read buffer into a pixel buffer. More... | |
void | set_frame_buffer (const CL_FrameBuffer &write_buffer) |
Sets the current frame buffer. More... | |
void | set_frame_buffer (const CL_FrameBuffer &write_buffer, const CL_FrameBuffer &read_buffer) |
void | reset_frame_buffer () |
Resets the current frame buffer to be the initial frame buffer. More... | |
void | set_texture (int unit_index, const CL_Texture &texture) |
Select texture into index. More... | |
void | set_textures (std::vector< CL_Texture > &textures) |
Select textures. More... | |
void | reset_texture (int unit_index) |
Remove texture from index. More... | |
void | reset_textures () |
Remove all selected textures. More... | |
void | set_program_object (CL_StandardProgram standard_program) |
Set active program object to the standard program specified. More... | |
void | set_program_object (const CL_ProgramObject &program, int program_matrix_flags=cl_program_matrix_all_standard) |
Set active program object. More... | |
void | reset_program_object () |
Remove active program object. More... | |
void | set_blend_mode (const CL_BlendMode &blend_mode) |
Set blending modes. More... | |
void | reset_blend_mode () |
Reset blending to the default. More... | |
void | set_buffer_control (const CL_BufferControl &buffer_control) |
Set buffer control states. More... | |
void | reset_buffer_control () |
Set default buffer control states. More... | |
void | set_pen (const CL_Pen &pen) |
Select pen. More... | |
void | reset_pen () |
Reset pen settings to defaults. More... | |
void | set_polygon_rasterizer (const CL_PolygonRasterizer &raster) |
Set polygon rasterizer settings. More... | |
void | reset_polygon_rasterizer () |
Reset polygon rasterizer settings to defaults. More... | |
void | draw_primitives (CL_PrimitivesType type, int num_vertices, const CL_PrimitivesArray &array) |
Draw primitives on gc. More... | |
void | set_primitives_array (const CL_PrimitivesArray &array) |
Set the primitives array on the gc. More... | |
void | draw_primitives_array (CL_PrimitivesType type, int num_vertices) |
Draws primitives from the current assigned primitives array. More... | |
void | draw_primitives_array (CL_PrimitivesType type, int offset, int num_vertices) |
Draw primitives array. More... | |
void | draw_primitives_array_instanced (CL_PrimitivesType type, int offset, int num_vertices, int instance_count) |
Draw primitives array instanced. More... | |
void | draw_primitives_elements (CL_PrimitivesType type, int count, unsigned int *indices) |
Draw primitives elements. More... | |
void | draw_primitives_elements (CL_PrimitivesType type, int count, unsigned short *indices) |
Draw primitives elements. More... | |
void | draw_primitives_elements (CL_PrimitivesType type, int count, unsigned char *indices) |
Draw primitives elements. More... | |
void | draw_primitives_elements (CL_PrimitivesType type, int count, CL_ElementArrayBuffer &element_array, CL_VertexAttributeDataType indices_type, void *offset=0) |
Draw primitives elements. More... | |
void | draw_primitives_elements_instanced (CL_PrimitivesType type, int count, unsigned int *indices, int instance_count) |
Draw primitives elements instanced. More... | |
void | draw_primitives_elements_instanced (CL_PrimitivesType type, int count, unsigned short *indices, int instance_count) |
Draw primitives elements instanced. More... | |
void | draw_primitives_elements_instanced (CL_PrimitivesType type, int count, unsigned char *indices, int instance_count) |
Draw primitives elements instanced. More... | |
void | draw_primitives_elements_instanced (CL_PrimitivesType type, int count, CL_ElementArrayBuffer &element_array, CL_VertexAttributeDataType indices_type, void *offset, int instance_count) |
Draw primitives elements instanced. More... | |
void | reset_primitives_array () |
Reset the primitives arrays. More... | |
void | draw_pixels (float x, float y, const CL_PixelBuffer &pixel_buffer, const CL_Rect &src_rect, const CL_Colorf &color=CL_Colorf::white) |
Draw pixel buffer on gc. More... | |
void | draw_pixels (float x, float y, float zoom_x, float zoom_y, const CL_PixelBuffer &pixel_buffer, const CL_Rect &src_rect, const CL_Colorf &color=CL_Colorf::white) |
Draw pixels. More... | |
void | clear (const CL_Colorf &color=CL_Colorf::black) |
Clears the whole context using the specified color. More... | |
void | clear_stencil (int value=0) |
Clear the stencil buffer. More... | |
void | clear_depth (float value=0) |
Clear the depth buffer. More... | |
void | set_cliprect (const CL_Rect &rect) |
Set the current clipping rectangle. More... | |
void | push_cliprect (const CL_Rect &rect) |
Push current clipping rectangle to stack. More... | |
void | push_cliprect () |
Push cliprect. More... | |
void | pop_cliprect () |
Pop current clipping rectangle from the stack. More... | |
void | reset_cliprect () |
Removes the set clipping rectangle and empties the cliprect stack. More... | |
void | set_map_mode (CL_MapMode mode) |
Set the projection mapping mode. More... | |
void | set_viewport (const CL_Rectf &viewport) |
Set the viewport to be used in user projection map mode. More... | |
void | set_projection (const CL_Mat4f &matrix) |
Set the projection matrix to be used in user projection map mode. More... | |
void | set_modelview (const CL_Mat4f &matrix) |
Sets the model view matrix to a new matrix. More... | |
void | mult_modelview (const CL_Mat4f &matrix) |
Multiplies the passed matrix onto the model view matrix. More... | |
void | push_modelview () |
Pushes current model view matrix onto the model view stack. More... | |
void | set_translate (float x, float y, float z=0.0) |
Sets a translate offset matrix, ignoring any earlier model view settings. More... | |
void | mult_translate (float x, float y, float z=0.0) |
Adds the translate offset. More... | |
void | push_translate (float x, float y, float z=0.0) |
Push translation offset onto model view stack. More... | |
void | set_rotate (const CL_Angle &angle, float x=0.0, float y=0.0, float z=1.0, bool normalize=true) |
Sets a rotation matrix, ignoring any earlier model view settings. More... | |
void | mult_rotate (const CL_Angle &angle, float x=0.0, float y=0.0, float z=1.0, bool normalize=true) |
Adds a rotation matrix to existing model view. More... | |
void | push_rotate (const CL_Angle &angle, float x=0.0, float y=0.0, float z=1.0) |
Pushes a rotation matrix onto model view stack. More... | |
void | set_scale (float x, float y, float z=1.0) |
Sets a scale matrix, ignoring any earlier model view settings. More... | |
void | mult_scale (float x, float y, float z=1.0) |
Adds a scale matrix to existing model view. More... | |
void | push_scale (float x, float y, float z=1.0) |
Pushes a scale matrix onto model view stack. More... | |
void | pop_modelview () |
Pops last pushed model view matrix off the stack and makes it the active one. More... | |
void | flush_batcher () |
Flushes the render batcher currently active. More... | |
void | set_batcher (CL_RenderBatcher *batcher) |
Specifies which render batcher is to be currently active. More... | |
Events | |
CL_Signal_v0 & | sig_gc_destruction_imminent () |
Called when the last GC in the thread is about to be destroyed. More... | |
GL Graphic Context.
|
inline |
Construction.
CL_GraphicContext_GL::CL_GraphicContext_GL | ( | CL_GraphicContext & | gc) |
Create a GL specific graphics context.
CL_GraphicContext_GL::~CL_GraphicContext_GL | ( | ) |
|
inherited |
Clears the whole context using the specified color.
|
inherited |
Clear the depth buffer.
value,: | value to clear to. Range 0.0 - 1.0. |
|
inherited |
Clear the stencil buffer.
value | value to clear to. |
|
inherited |
Draw pixel buffer on gc.
Note, For OpenGL targets this is slow. Consider drawing a texture with a pixelbuffer object (created via CL_PixelBuffer(gc, ...) )
|
inherited |
Draw pixels.
Note, For OpenGL targets this is slow. Consider drawing a texture with a pixelbuffer object (created via CL_PixelBuffer(gc, ...) )
x | = value |
y | = value |
zoom_x | = value |
zoom_y | = value |
pixel_buffer | = Pixel Buffer Ref |
src_rect | = Source rect |
color | = Colorf |
|
inherited |
Draw primitives on gc.
|
inherited |
Draws primitives from the current assigned primitives array.
|
inherited |
Draw primitives array.
type | = Primitives Type |
offset | = value |
num_vertices | = value |
|
inherited |
Draw primitives array instanced.
type | = Primitives Type |
offset | = value |
num_vertices | = value |
instance_count | = number of instances drawn |
|
inherited |
Draw primitives elements.
type | = Primitives Type |
count | = value |
indices | = value |
|
inherited |
Draw primitives elements.
type | = Primitives Type |
count | = value |
indices | = short |
|
inherited |
Draw primitives elements.
type | = Primitives Type |
count | = value |
indices | = char |
|
inherited |
Draw primitives elements.
type | = Primitives Type |
count | = value |
element_array | = Element Array Buffer |
indices_type | = Vertex Attribute Data Type |
offset | = void |
|
inherited |
Draw primitives elements instanced.
type | = Primitives Type |
count | = value |
indices | = value |
instance_count | = number of instances drawn |
|
inherited |
Draw primitives elements instanced.
type | = Primitives Type |
count | = value |
indices | = short |
instance_count | = number of instances drawn |
|
inherited |
Draw primitives elements instanced.
type | = Primitives Type |
count | = value |
indices | = char |
instance_count | = number of instances drawn |
|
inherited |
Draw primitives elements instanced.
type | = Primitives Type |
count | = value |
element_array | = Element Array Buffer |
indices_type | = Vertex Attribute Data Type |
offset | = void |
instance_count | = number of instances drawn |
|
inherited |
Flushes the render batcher currently active.
|
inherited |
Returns the blending mode description.
|
inherited |
Returns the buffer control description.
|
inherited |
Returns the current clipping rectangle used on the graphic context.
std::vector<CL_String> CL_GraphicContext_GL::get_extensions | ( | ) |
Get the list of opengl extensions.
|
inherited |
Returns the current height of the context.
|
inherited |
Returns the maximum size of a texture this graphic context supports.
It returns CL_Size(0,0) if there is no known limitation to the max texture size.
|
inherited |
Returns the current effective modelview matrix.
void CL_GraphicContext_GL::get_opengl_shading_language_version | ( | int & | version_major, |
int & | version_minor | ||
) |
Get the opengl shading language version.
version_major | = On Return: Major |
version_minor | = On Return: Minor |
void CL_GraphicContext_GL::get_opengl_version | ( | int & | version_major, |
int & | version_minor | ||
) |
Get the opengl version.
version_major | = On Return: Major |
version_minor | = On Return: Minor |
|
inherited |
Returns the currently selected pen.
|
inherited |
Return the content of the read buffer into a pixel buffer.
|
inherited |
Return the content of the read buffer into a pixel buffer.
|
inherited |
Returns the polygon rasterizer setup.
|
inherited |
Returns the provider for this graphic context.
|
inherited |
|
inherited |
Returns the currently selected read frame buffer.
CL_String CL_GraphicContext_GL::get_renderer_string | ( | ) |
Get the opengl renderer string.
|
inherited |
Returns the current size of the context.
|
inherited |
Returns the currently selected texture for the specified index.
index | = 0 to x, the index of the texture |
|
inherited |
Returns the currently selected textures.
CL_String CL_GraphicContext_GL::get_vendor_string | ( | ) |
Get the opengl vendor string.
|
inherited |
Returns the current width of the context.
|
inherited |
Returns the currently selected write frame buffer.
|
inline |
Attributes.
Returns true if this object is invalid.
|
inherited |
Multiplies the passed matrix onto the model view matrix.
|
inherited |
Adds a rotation matrix to existing model view.
|
inherited |
Adds a scale matrix to existing model view.
|
inherited |
Adds the translate offset.
This offset will affect any subsequent display operations on the current displaycard, by translating the position of the display operation with the offset. The offset will be offset by any previous offsets pushed onto the stack, eg. it inherits the previous offset.
|
inherited |
Pop current clipping rectangle from the stack.
|
inherited |
Pops last pushed model view matrix off the stack and makes it the active one.
|
inherited |
Push current clipping rectangle to stack.
If a rectangle is passed, it afterwards sets clipping rectangle to the union of the current rectangle and the passed rectangle.
|
inherited |
Push cliprect.
|
inherited |
Pushes current model view matrix onto the model view stack.
|
inherited |
Pushes a rotation matrix onto model view stack.
|
inherited |
Pushes a scale matrix onto model view stack.
|
inherited |
Push translation offset onto model view stack.
This function is a convenience function for calling push_modelview, then mult_translate.
This offset will affect any subsequent display operations on the current displaycard, by translating the position of the display operation with the offset. The offset will be offset by any previous offsets pushed onto the stack, eg. it inherits the previous offset.
|
inherited |
Reset blending to the default.
|
inherited |
Set default buffer control states.
|
inherited |
Removes the set clipping rectangle and empties the cliprect stack.
|
inherited |
Resets the current frame buffer to be the initial frame buffer.
|
inherited |
Reset pen settings to defaults.
|
inherited |
Reset polygon rasterizer settings to defaults.
|
inherited |
Reset the primitives arrays.
|
inherited |
Remove active program object.
|
inherited |
Remove texture from index.
unit_index | = 0 to x, the index of the texture |
|
inherited |
Remove all selected textures.
void CL_GraphicContext_GL::set_active | ( | ) |
Operations.
Sets the thread's OpenGL context to the one used by the graphic context
This is the same as calling CL_OpenGL::set_active(gc);
|
inherited |
Specifies which render batcher is to be currently active.
If the render batcher is already active, nothing happens. If a different render batcher is currently active, it is flushed before the new batcher is made active.
|
inherited |
Set blending modes.
|
inherited |
Set buffer control states.
|
inherited |
Set the current clipping rectangle.
|
inherited |
Sets the current frame buffer.
|
inherited |
|
inherited |
Set the projection mapping mode.
|
inherited |
Sets the model view matrix to a new matrix.
|
inherited |
Select pen.
|
inherited |
Set polygon rasterizer settings.
|
inherited |
Set the primitives array on the gc.
|
inherited |
Set active program object to the standard program specified.
|
inherited |
Set active program object.
program | = Program to set |
program_matrix_flags | = Which matricies will be set in the program object ( CL_ProgramMatrixFlags bitmask flags) |
|
inherited |
Set the projection matrix to be used in user projection map mode.
|
inherited |
Sets a rotation matrix, ignoring any earlier model view settings.
|
inherited |
Sets a scale matrix, ignoring any earlier model view settings.
|
inherited |
Select texture into index.
unit_index | = 0 to x, the index of this texture |
texture | = The texture to select. This can be an empty texture CL_Texture() |
|
inherited |
Select textures.
Only textures units from 0 to textures.size()-1 are set.
textures | = The texture to select (placed at unit_index 0 to texture.size()-1). These may contain null textures |
|
inherited |
Sets a translate offset matrix, ignoring any earlier model view settings.
This offset will affect any subsequent display operations on the current displaycard, by translating the position of the display operation with the offset.
|
inherited |
Set the viewport to be used in user projection map mode.
|
inherited |
Called when the last GC in the thread is about to be destroyed.
void CL_GraphicContext_GL::throw_if_null | ( | ) | const |
Throw an exception if this object is invalid.