Loading...
Searching...
No Matches
hellfire::IGraphicsContext Class Referenceabstract

Abstract graphics context. More...

#include <graphics_api.h>

Inheritance diagram for hellfire::IGraphicsContext:
Collaboration diagram for hellfire::IGraphicsContext:

Public Member Functions

virtual ~IGraphicsContext ()=default
 
virtual void begin_frame ()=0
 
virtual void end_frame ()=0
 
virtual void clear (float r, float g, float b)=0
 
virtual void draw_mesh (uint32_t vertex_array, uint32_t index_count)=0
 
virtual void draw_instanced (uint32_t vertex_array, uint32_t index_count, uint32_t instance_count)=0
 
virtual uint32_t create_shader_program (const char *vertex_src, const char *fragment_src)=0
 
virtual void use_shader_program (uint32_t program_id)=0
 
virtual void set_uniform_mat4 (uint32_t program_id, const char *name, const float *data)=0
 
virtual void set_uniform_vec3 (uint32_t program_id, const char *name, float x, float y, float z)=0
 
virtual void set_uniform_float (uint32_t program_id, const char *name, float value)=0
 
virtual void set_uniform_int (uint32_t program_id, const char *name, int value)=0
 
virtual uint32_t create_framebuffer (uint32_t width, uint32_t height)=0
 
virtual void bind_framebuffer (uint32_t framebuffer_id)=0
 
virtual void unbind_framebuffer ()=0
 
virtual uint32_t get_framebuffer_texture (uint32_t framebuffer_id)=0
 
virtual void resize_framebuffer (uint32_t framebuffer_id, uint32_t width, uint32_t height)=0
 

Detailed Description

Abstract graphics context.

Definition at line 44 of file graphics_api.h.

Constructor & Destructor Documentation

◆ ~IGraphicsContext()

virtual hellfire::IGraphicsContext::~IGraphicsContext ( )
virtualdefault

Member Function Documentation

◆ begin_frame()

virtual void hellfire::IGraphicsContext::begin_frame ( )
pure virtual

Implemented in hellfire::OpenGLContext.

◆ bind_framebuffer()

virtual void hellfire::IGraphicsContext::bind_framebuffer ( uint32_t  framebuffer_id)
pure virtual

Implemented in hellfire::OpenGLContext.

◆ clear()

virtual void hellfire::IGraphicsContext::clear ( float  r,
float  g,
float  b 
)
pure virtual

Implemented in hellfire::OpenGLContext.

◆ create_framebuffer()

virtual uint32_t hellfire::IGraphicsContext::create_framebuffer ( uint32_t  width,
uint32_t  height 
)
pure virtual

Implemented in hellfire::OpenGLContext.

◆ create_shader_program()

virtual uint32_t hellfire::IGraphicsContext::create_shader_program ( const char *  vertex_src,
const char *  fragment_src 
)
pure virtual

Implemented in hellfire::OpenGLContext.

◆ draw_instanced()

virtual void hellfire::IGraphicsContext::draw_instanced ( uint32_t  vertex_array,
uint32_t  index_count,
uint32_t  instance_count 
)
pure virtual

Implemented in hellfire::OpenGLContext.

◆ draw_mesh()

virtual void hellfire::IGraphicsContext::draw_mesh ( uint32_t  vertex_array,
uint32_t  index_count 
)
pure virtual

Implemented in hellfire::OpenGLContext.

◆ end_frame()

virtual void hellfire::IGraphicsContext::end_frame ( )
pure virtual

Implemented in hellfire::OpenGLContext.

◆ get_framebuffer_texture()

virtual uint32_t hellfire::IGraphicsContext::get_framebuffer_texture ( uint32_t  framebuffer_id)
pure virtual

Implemented in hellfire::OpenGLContext.

◆ resize_framebuffer()

virtual void hellfire::IGraphicsContext::resize_framebuffer ( uint32_t  framebuffer_id,
uint32_t  width,
uint32_t  height 
)
pure virtual

Implemented in hellfire::OpenGLContext.

◆ set_uniform_float()

virtual void hellfire::IGraphicsContext::set_uniform_float ( uint32_t  program_id,
const char *  name,
float  value 
)
pure virtual

Implemented in hellfire::OpenGLContext.

◆ set_uniform_int()

virtual void hellfire::IGraphicsContext::set_uniform_int ( uint32_t  program_id,
const char *  name,
int  value 
)
pure virtual

Implemented in hellfire::OpenGLContext.

◆ set_uniform_mat4()

virtual void hellfire::IGraphicsContext::set_uniform_mat4 ( uint32_t  program_id,
const char *  name,
const float *  data 
)
pure virtual

Implemented in hellfire::OpenGLContext.

◆ set_uniform_vec3()

virtual void hellfire::IGraphicsContext::set_uniform_vec3 ( uint32_t  program_id,
const char *  name,
float  x,
float  y,
float  z 
)
pure virtual

Implemented in hellfire::OpenGLContext.

◆ unbind_framebuffer()

virtual void hellfire::IGraphicsContext::unbind_framebuffer ( )
pure virtual

Implemented in hellfire::OpenGLContext.

◆ use_shader_program()

virtual void hellfire::IGraphicsContext::use_shader_program ( uint32_t  program_id)
pure virtual

Implemented in hellfire::OpenGLContext.


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