Interface for implementing a GraphicContext target. More...
#include <graphic_context_provider.h>
Public Member Functions | |
Construction | |
virtual | ~GraphicContextProvider () |
Attributes | |
virtual int | get_max_attributes ()=0 |
Returns the maximum amount of attributes available. More... | |
virtual Size | get_max_texture_size () const =0 |
Returns the maximum size of a texture this graphic context supports. More... | |
virtual Size | get_display_window_size () const =0 |
Returns the current size of the display window. More... | |
virtual float | get_pixel_ratio () const =0 |
Physical pixels/dots per inch. More... | |
virtual Signal< void(const Size &)> & | sig_window_resized ()=0 |
Get the window resized signal. More... | |
virtual ProgramObject | get_program_object (StandardProgram standard_program) const =0 |
Get a program object from the standard program specified. More... | |
Operations | |
virtual ClipZRange | get_clip_z_range () const =0 |
Returns in what range clip space z values are clipped. More... | |
virtual TextureImageYAxis | get_texture_image_y_axis () const =0 |
Returns the Y axis direction for viewports, clipping rects, textures and render targets. More... | |
virtual ShaderLanguage | get_shader_language () const =0 |
Returns the shader language used. More... | |
virtual int | get_major_version () const =0 |
Returns the major version / feature level supported by the hardware. More... | |
virtual int | get_minor_version () const =0 |
Returns the major version / feature level supported by the hardware. More... | |
virtual bool | has_compute_shader_support () const =0 |
Returns true if the hardware supports compute shaders. More... | |
virtual PixelBuffer | get_pixeldata (const Rect &rect, TextureFormat texture_format, bool clamp) const =0 |
Return the content of the draw buffer into a pixel buffer. More... | |
virtual TextureProvider * | alloc_texture (TextureDimensions texture_dimensions)=0 |
Allocate texture provider for this gc. More... | |
virtual OcclusionQueryProvider * | alloc_occlusion_query ()=0 |
Allocate occlusion query provider of this gc. More... | |
virtual ProgramObjectProvider * | alloc_program_object ()=0 |
Allocate program object provider of this gc. More... | |
virtual ShaderObjectProvider * | alloc_shader_object ()=0 |
Allocate shader object provider of this gc. More... | |
virtual FrameBufferProvider * | alloc_frame_buffer ()=0 |
Allocate frame buffer provider for this gc. More... | |
virtual RenderBufferProvider * | alloc_render_buffer ()=0 |
Allocate render buffer provider for this gc. More... | |
virtual VertexArrayBufferProvider * | alloc_vertex_array_buffer ()=0 |
Allocate vertex array buffer provider for this gc. More... | |
virtual UniformBufferProvider * | alloc_uniform_buffer ()=0 |
Allocate uniform buffer provider for this gc. More... | |
virtual StorageBufferProvider * | alloc_storage_buffer ()=0 |
Allocate storage buffer provider for this gc. More... | |
virtual ElementArrayBufferProvider * | alloc_element_array_buffer ()=0 |
Allocate element array buffer provider for this gc. More... | |
virtual TransferBufferProvider * | alloc_transfer_buffer ()=0 |
Allocate transfer buffer provider for this gc. More... | |
virtual PixelBufferProvider * | alloc_pixel_buffer ()=0 |
Allocate pixel buffer provider for this gc. More... | |
virtual PrimitivesArrayProvider * | alloc_primitives_array ()=0 |
Allocate primitives array provider for this gc. More... | |
virtual std::shared_ptr< RasterizerStateProvider > | create_rasterizer_state (const RasterizerStateDescription &desc)=0 |
Retrieve rasterizer state object. More... | |
virtual std::shared_ptr< BlendStateProvider > | create_blend_state (const BlendStateDescription &desc)=0 |
Retrieve blend state object. More... | |
virtual std::shared_ptr< DepthStencilStateProvider > | create_depth_stencil_state (const DepthStencilStateDescription &desc)=0 |
Retrieve depth-stencil state object. More... | |
virtual void | set_rasterizer_state (RasterizerStateProvider *state)=0 |
Set active rasterizer state. More... | |
virtual void | set_blend_state (BlendStateProvider *state, const Colorf &blend_color, unsigned int sample_mask)=0 |
Set active blend state. More... | |
virtual void | set_depth_stencil_state (DepthStencilStateProvider *state, int stencil_ref)=0 |
Set active depth stencil state. More... | |
virtual void | set_program_object (StandardProgram standard_program)=0 |
Set active program object to the standard program specified. More... | |
virtual void | set_program_object (const ProgramObject &program)=0 |
Set active program object. More... | |
virtual void | reset_program_object ()=0 |
Remove active program object. More... | |
virtual void | set_uniform_buffer (int index, const UniformBuffer &buffer)=0 |
Select uniform buffer into index. More... | |
virtual void | reset_uniform_buffer (int index)=0 |
Remove uniform buffer from index. More... | |
virtual void | set_storage_buffer (int index, const StorageBuffer &buffer)=0 |
Select storage buffer into index. More... | |
virtual void | reset_storage_buffer (int index)=0 |
Remove storage buffer from index. More... | |
virtual void | set_texture (int unit_index, const Texture &texture)=0 |
Select texture into unit. More... | |
virtual void | reset_texture (int unit_index)=0 |
Remove texture from unit. More... | |
virtual void | set_image_texture (int unit_index, const Texture &texture)=0 |
Select texture into image unit. More... | |
virtual void | reset_image_texture (int unit_index)=0 |
Remove texture from image unit. More... | |
virtual bool | is_frame_buffer_owner (const FrameBuffer &fb)=0 |
Returns true if this frame buffer object is owned by this graphic context. More... | |
virtual void | set_frame_buffer (const FrameBuffer &write_buffer, const FrameBuffer &read_buffer)=0 |
Set a frame buffer for off-screen rendering. More... | |
virtual void | reset_frame_buffer ()=0 |
Set the rendering buffer back to the screen. More... | |
virtual void | set_draw_buffer (DrawBuffer buffer)=0 |
virtual bool | is_primitives_array_owner (const PrimitivesArray &primitives_array)=0 |
Returns true if this primitives_array is owned by this graphic context. More... | |
virtual void | draw_primitives (PrimitivesType type, int num_vertices, const PrimitivesArray &primitives_array)=0 |
Draw primitives on gc. More... | |
virtual void | set_primitives_array (const PrimitivesArray &primitives_array)=0 |
Set the primitives array on the gc. More... | |
virtual void | draw_primitives_array (PrimitivesType type, int offset, int num_vertices)=0 |
Draws primitives from the current assigned primitives array. More... | |
virtual void | draw_primitives_array_instanced (PrimitivesType type, int offset, int num_vertices, int instance_count)=0 |
Draws instanced primitives from the current assigned primitives array. More... | |
virtual void | set_primitives_elements (ElementArrayBufferProvider *array_provider)=0 |
Sets current elements array buffer. More... | |
virtual void | draw_primitives_elements (PrimitivesType type, int count, VertexAttributeDataType indices_type, size_t offset=0)=0 |
Draw primitives elements. More... | |
virtual void | draw_primitives_elements_instanced (PrimitivesType type, int count, VertexAttributeDataType indices_type, size_t offset, int instance_count)=0 |
Draw primitives elements instanced. More... | |
virtual void | reset_primitives_elements ()=0 |
Resets current elements array buffer. More... | |
virtual void | draw_primitives_elements (PrimitivesType type, int count, ElementArrayBufferProvider *array_provider, VertexAttributeDataType indices_type, void *offset)=0 |
Draw primitives elements. More... | |
virtual void | draw_primitives_elements_instanced (PrimitivesType type, int count, ElementArrayBufferProvider *array_provider, VertexAttributeDataType indices_type, void *offset, int instance_count)=0 |
Draw primitives elements instanced. More... | |
virtual void | reset_primitives_array ()=0 |
Reset the primitives arrays. More... | |
virtual void | set_scissor (const Rect &rect)=0 |
Set scissor. More... | |
virtual void | reset_scissor ()=0 |
Reset scissor. More... | |
virtual void | dispatch (int x, int y, int z)=0 |
Execute a compute shader. More... | |
virtual void | clear (const Colorf &color)=0 |
Clears the whole context using the specified color. More... | |
virtual void | clear_depth (float value)=0 |
Clear the depth buffer. More... | |
virtual void | clear_stencil (int value)=0 |
Clear the stencil buffer. More... | |
virtual void | set_viewport (const Rectf &viewport)=0 |
Set the viewport to be used in user projection map mode. More... | |
virtual void | set_viewport (int index, const Rectf &viewport)=0 |
Set the specified viewport to be used in user projection map mode. More... | |
virtual void | set_depth_range (float n, float f)=0 |
Specifies the depth range for all viewports. More... | |
virtual void | set_depth_range (int viewport, float n, float f)=0 |
Specifies the depth range for the specified viewport. More... | |
virtual void | flush ()=0 |
Interface for implementing a GraphicContext target.