clan::GraphicContextProvider Class Referenceabstract

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 TextureProvideralloc_texture (TextureDimensions texture_dimensions)=0
 Allocate texture provider for this gc. More...
 
virtual OcclusionQueryProvideralloc_occlusion_query ()=0
 Allocate occlusion query provider of this gc. More...
 
virtual ProgramObjectProvideralloc_program_object ()=0
 Allocate program object provider of this gc. More...
 
virtual ShaderObjectProvideralloc_shader_object ()=0
 Allocate shader object provider of this gc. More...
 
virtual FrameBufferProvideralloc_frame_buffer ()=0
 Allocate frame buffer provider for this gc. More...
 
virtual RenderBufferProvideralloc_render_buffer ()=0
 Allocate render buffer provider for this gc. More...
 
virtual VertexArrayBufferProvideralloc_vertex_array_buffer ()=0
 Allocate vertex array buffer provider for this gc. More...
 
virtual UniformBufferProvideralloc_uniform_buffer ()=0
 Allocate uniform buffer provider for this gc. More...
 
virtual StorageBufferProvideralloc_storage_buffer ()=0
 Allocate storage buffer provider for this gc. More...
 
virtual ElementArrayBufferProvideralloc_element_array_buffer ()=0
 Allocate element array buffer provider for this gc. More...
 
virtual TransferBufferProvideralloc_transfer_buffer ()=0
 Allocate transfer buffer provider for this gc. More...
 
virtual PixelBufferProvideralloc_pixel_buffer ()=0
 Allocate pixel buffer provider for this gc. More...
 
virtual PrimitivesArrayProvideralloc_primitives_array ()=0
 Allocate primitives array provider for this gc. More...
 
virtual std::shared_ptr< RasterizerStateProvidercreate_rasterizer_state (const RasterizerStateDescription &desc)=0
 Retrieve rasterizer state object. More...
 
virtual std::shared_ptr< BlendStateProvidercreate_blend_state (const BlendStateDescription &desc)=0
 Retrieve blend state object. More...
 
virtual std::shared_ptr< DepthStencilStateProvidercreate_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
 

Detailed Description

Interface for implementing a GraphicContext target.


The documentation for this class was generated from the following file: