|
Golias Engine
A C++ 20 'game engine' built with SDL3 with wide platform support.
|
Abstract base class for rendering devices. More...
#include <rendering_device.h>
Public Member Functions | |
| virtual | ~RenderingDevice ()=default |
| virtual bool | initialize (SDL_Window *sdl_window)=0 |
| virtual void | shutdown ()=0 |
| virtual RID | shader_create_from_source (const String &vertex_src, const String &fragment_src)=0 |
| virtual void | shader_destroy (RID shader)=0 |
| virtual RID | buffer_create (size_t size, uint32_t usage_flags, const void *data=nullptr)=0 |
| virtual void | buffer_update (RID buffer, size_t offset, size_t size, const void *data)=0 |
| virtual void | buffer_destroy (RID buffer)=0 |
| virtual RID | texture_create (const TextureFormat &format, void *data=nullptr)=0 |
| virtual void | texture_update (RID texture, uint32_t mip_level, uint32_t layer, const void *data, size_t size)=0 |
| virtual void | texture_generate_mipmaps (RID texture)=0 |
| virtual void | texture_destroy (RID texture)=0 |
| virtual void | get_texture_size (RID texture, uint32_t &width, uint32_t &height)=0 |
| virtual uint32_t | texture_get_native_handle (RID texture)=0 |
| virtual Texture | get_texture (RID texture)=0 |
| virtual RID | sampler_create (const SamplerState &state)=0 |
| virtual void | sampler_destroy (RID sampler)=0 |
| virtual RID | framebuffer_create (const Vector< RenderPassAttachment > &attachments)=0 |
| virtual void | framebuffer_destroy (RID framebuffer)=0 |
| virtual RID | pipeline_create (const PipelineState &state)=0 |
| virtual void | pipeline_destroy (RID pipeline)=0 |
| virtual void | begin_frame ()=0 |
| virtual void | end_frame ()=0 |
| virtual void | render_pass_begin (RID framebuffer, const Viewport &viewport, const Scissor &scissor)=0 |
| virtual void | render_pass_end ()=0 |
| virtual void | bind_pipeline (RID pipeline)=0 |
| virtual void | bind_vertex_buffers (const Vector< RID > &buffers, const Vector< size_t > &offsets={})=0 |
| virtual void | bind_index_buffer (RID buffer, IndexType type, size_t offset=0)=0 |
| virtual void | bind_uniform_buffer (uint32_t binding, RID buffer, size_t offset=0, size_t size=0)=0 |
| virtual void | bind_texture (uint32_t binding, RID texture, RID sampler)=0 |
| virtual void | push_constant (const String &name, const void *data, size_t size)=0 |
| virtual void | draw (uint32_t vertex_count, uint32_t instance_count=1, uint32_t first_vertex=0, uint32_t first_instance=0)=0 |
| virtual void | draw_indexed (uint32_t index_count, uint32_t instance_count=1, uint32_t first_index=0, int32_t vertex_offset=0, uint32_t first_instance=0)=0 |
| virtual void | set_viewport (const Viewport &viewport)=0 |
| virtual void | set_scissor (const Scissor &scissor)=0 |
| virtual void | clear_color (const glm::vec4 &color)=0 |
| virtual void | clear_depth_stencil (float depth=1.0f, uint32_t stencil=0)=0 |
| virtual void | swap_buffers ()=0 |
| virtual void | get_drawable_size (int &width, int &height) |
Public Member Functions inherited from RIDAllocator | |
| RIDAllocator ()=default | |
| virtual | ~RIDAllocator ()=default |
| RID | allocate_rid () |
Protected Attributes | |
| SDL_Window * | _window = nullptr |
Protected Attributes inherited from RIDAllocator | |
| RID | next_rid = 1 |
Abstract base class for rendering devices.
|
virtualdefault |
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
virtual |
Implemented in RenderingDeviceGLES3, and RenderingDeviceSDL_GPU.
|
pure virtual |
Implemented in RenderingDeviceGLES3, and RenderingDeviceSDL_GPU.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceSDL_GPU, and RenderingDeviceGLES3.
|
pure virtual |
Implemented in RenderingDeviceGLES3, and RenderingDeviceSDL_GPU.
|
pure virtual |
Implemented in RenderingDeviceGLES3, and RenderingDeviceSDL_GPU.
|
pure virtual |
Implemented in RenderingDeviceGLES3, and RenderingDeviceSDL_GPU.
|
pure virtual |
Implemented in RenderingDeviceGLES3, and RenderingDeviceSDL_GPU.
|
protected |