20 bool initialize(SDL_Window* sdl_window)
override;
26 RID buffer_create(
size_t size, uint32_t usage_flags,
const void* data =
nullptr)
override;
27 void buffer_update(
RID buffer,
size_t offset,
size_t size,
const void* data)
override;
31 void texture_update(
RID texture_rid, uint32_t mip_level, uint32_t layer,
const void* data,
size_t size)
override;
61 void draw(uint32_t vertex_count, uint32_t instance_count = 1, uint32_t first_vertex = 0, uint32_t first_instance = 0)
override;
62 void draw_indexed(uint32_t index_count, uint32_t instance_count = 1, uint32_t first_index = 0, int32_t vertex_offset = 0,
63 uint32_t first_instance = 0)
override;
83 SDL_GLContext gl_context =
nullptr;
85 GLuint compile_shader(GLenum type,
const String& source);
86 GLenum to_gl_format(
DataFormat format,
bool* is_int =
nullptr);
92 GLenum to_gl_blend_op(
BlendOp op);
Rendering device implementation using OpenGL/ES 3.
Definition: rendering_device_gles3.h:15
RID texture_create(const TextureFormat &format, void *data=nullptr) override
Definition: rendering_device_gles3.cpp:234
void end_frame() override
Definition: rendering_device_gles3.cpp:920
void buffer_update(RID buffer, size_t offset, size_t size, const void *data) override
Definition: rendering_device_gles3.cpp:185
RID shader_create_from_source(const String &vertex_src, const String &fragment_src) override
Definition: rendering_device_gles3.cpp:126
bool initialize(SDL_Window *sdl_window) override
Definition: rendering_device_gles3.cpp:10
void shutdown() override
Definition: rendering_device_gles3.cpp:73
RID framebuffer_create(const Vector< RenderPassAttachment > &attachments) override
Definition: rendering_device_gles3.cpp:706
void get_texture_size(RID texture_rid, uint32_t &width, uint32_t &height) override
Definition: rendering_device_gles3.cpp:300
void texture_destroy(RID texture_rid) override
Definition: rendering_device_gles3.cpp:291
void set_viewport(const Viewport &viewport) override
Definition: rendering_device_gles3.cpp:800
void swap_buffers() override
Definition: rendering_device_gles3.cpp:822
void bind_index_buffer(RID buffer, IndexType type, size_t offset=0) override
Definition: rendering_device_gles3.cpp:559
void render_pass_end() override
Definition: rendering_device_gles3.cpp:796
RID sampler_create(const SamplerState &state) override
Definition: rendering_device_gles3.cpp:645
void bind_uniform_buffer(uint32_t binding, RID buffer, size_t offset=0, size_t size=0) override
Definition: rendering_device_gles3.cpp:615
RID buffer_create(size_t size, uint32_t usage_flags, const void *data=nullptr) override
Definition: rendering_device_gles3.cpp:167
void pipeline_destroy(RID pipeline) override
Definition: rendering_device_gles3.cpp:336
void sampler_destroy(RID sampler) override
Definition: rendering_device_gles3.cpp:665
void shader_destroy(RID shader) override
Definition: rendering_device_gles3.cpp:159
void bind_vertex_buffers(const Vector< RID > &buffers, const Vector< size_t > &offsets={}) override
Definition: rendering_device_gles3.cpp:463
void texture_generate_mipmaps(RID texture_rid) override
Definition: rendering_device_gles3.cpp:899
void framebuffer_destroy(RID framebuffer) override
Definition: rendering_device_gles3.cpp:753
void push_constant(const String &name, const void *data, size_t size) override
Definition: rendering_device_gles3.cpp:826
void clear_depth_stencil(float depth=1.0f, uint32_t stencil=0) override
Definition: rendering_device_gles3.cpp:816
void buffer_destroy(RID buffer) override
Definition: rendering_device_gles3.cpp:194
void begin_frame() override
Definition: rendering_device_gles3.cpp:916
void draw(uint32_t vertex_count, uint32_t instance_count=1, uint32_t first_vertex=0, uint32_t first_instance=0) override
Definition: rendering_device_gles3.cpp:567
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) override
Definition: rendering_device_gles3.cpp:580
void set_scissor(const Scissor &scissor) override
Definition: rendering_device_gles3.cpp:806
void clear_color(const glm::vec4 &color) override
Definition: rendering_device_gles3.cpp:811
~RenderingDeviceGLES3() override
Definition: rendering_device_gles3.cpp:6
uint32_t texture_get_native_handle(RID texture_rid) override
Definition: rendering_device_gles3.cpp:311
void render_pass_begin(RID framebuffer, const Viewport &viewport, const Scissor &scissor) override
Definition: rendering_device_gles3.cpp:762
RenderingDeviceGLES3()=default
void bind_pipeline(RID pipeline) override
Definition: rendering_device_gles3.cpp:345
void texture_update(RID texture_rid, uint32_t mip_level, uint32_t layer, const void *data, size_t size) override
Definition: rendering_device_gles3.cpp:865
void bind_texture(uint32_t binding, RID texture, RID sampler) override
Definition: rendering_device_gles3.cpp:625
RID pipeline_create(const PipelineState &state) override
Definition: rendering_device_gles3.cpp:327
Texture get_texture(RID texture_rid) override
Definition: rendering_device_gles3.cpp:319
Abstract base class for rendering devices.
Definition: rendering_device.h:326
IndexType
Definition: rendering_device.h:151
BlendFactor
Definition: rendering_device.h:117
CompareOp
Definition: rendering_device.h:113
DataFormat
Definition: rendering_device.h:83
PrimitiveTopology
Definition: rendering_device.h:136
BlendOp
Definition: rendering_device.h:130
constexpr RID INVALID_RID
Definition: rendering_device.h:13
TextureFilter
Definition: rendering_device.h:109
TextureWrap
Definition: rendering_device.h:111
StencilOp
Definition: rendering_device.h:115
uint32_t RID
Definition: rendering_device.h:12
Definition: rendering_device.h:213
Definition: rendering_device.h:238
Definition: rendering_device.h:202
Definition: rendering_device.h:188
Definition: rendering_device.h:253
Definition: rendering_device.h:176
Definition: rendering_device.h:301
Definition: rendering_device.h:248
std::unordered_map< K, V > HashMap
Definition: type_alias.h:20