Loading...
Searching...
No Matches
OpenGLContext.h
Go to the documentation of this file.
1//
2// Created by denzel on 25/09/2025.
3//
4
5#pragma once
6#include "hellfire/graphics/renderer/graphics_api.h"
7
8namespace hellfire {
9 class OpenGLContext final : public IGraphicsContext {
10 public:
11 void begin_frame() override;
12
13 void end_frame() override;
14
15 void clear(float r, float g, float b) override;
16
17 void draw_mesh(uint32_t vertex_array, uint32_t index_count) override;
18
19 void draw_instanced(uint32_t vertex_array, uint32_t index_count, uint32_t instance_count) override;
20
21 uint32_t create_shader_program(const char *vertex_src, const char *fragment_src) override;
22
23 void use_shader_program(uint32_t program_id) override;
24
25 void set_uniform_mat4(uint32_t program_id, const char *name, const float *data) override;
26
27 void set_uniform_vec3(uint32_t program_id, const char *name, float x, float y, float z) override;
28
29 void set_uniform_float(uint32_t program_id, const char *name, float value) override;
30
31 void set_uniform_int(uint32_t program_id, const char *name, int value) override;
32
33 uint32_t create_framebuffer(uint32_t width, uint32_t height) override;
34
35 void bind_framebuffer(uint32_t framebuffer_id) override;
36
37 void unbind_framebuffer() override;
38
39 uint32_t get_framebuffer_texture(uint32_t framebuffer_id) override;
40
41 void resize_framebuffer(uint32_t framebuffer_id, uint32_t width, uint32_t height) override;
42
43 private:
45 };
46};
Abstract graphics context.
void unbind_framebuffer() override
void clear(float r, float g, float b) override
void draw_instanced(uint32_t vertex_array, uint32_t index_count, uint32_t instance_count) override
void draw_mesh(uint32_t vertex_array, uint32_t index_count) override
uint32_t create_shader_program(const char *vertex_src, const char *fragment_src) override
void resize_framebuffer(uint32_t framebuffer_id, uint32_t width, uint32_t height) override
uint32_t create_framebuffer(uint32_t width, uint32_t height) override
uint32_t get_framebuffer_texture(uint32_t framebuffer_id) override
void set_uniform_vec3(uint32_t program_id, const char *name, float x, float y, float z) override
void use_shader_program(uint32_t program_id) override
void end_frame() override
void bind_framebuffer(uint32_t framebuffer_id) override
void begin_frame() override
void set_uniform_mat4(uint32_t program_id, const char *name, const float *data) override
void set_uniform_float(uint32_t program_id, const char *name, float value) override
void set_uniform_int(uint32_t program_id, const char *name, int value) override