refactor: renderer (#29)

* refactor(render): move render files to subdirectory, add RAII vertex buffer/array classes

* refactor(render): encapsulate OpenGL textures into Texture class

* refactor(texture): encapsulate textures with unique_ptr and bind methods

Replace raw GLuint framebuffer textures with std::unique_ptr<Texture>. Update TextureManager to return const Texture* instead of GLuint. Use Texture::bind() for active texture binding. Add RGBA16F and RGB formats. Add texture parameter methods. Update destructors accordingly.

* refactor(render): use Texture, VertexBuffer, VertexArray classes

* feat(render): add FrameBuffer class to encapsulate framebuffer operations

* refactor(render): extract world rendering into WorldRenderer class

* refactor(render): rename projection and model matrix members for clarity

* chore(render): remove unused matrix members

* fix(texture-manager): correct delet_texture typo and add null checks for textures
This commit is contained in:
zhenyan121
2026-07-10 14:51:43 +08:00
committed by GitHub
parent b1341d7da4
commit 913809a5f0
33 changed files with 2263 additions and 1547 deletions

View File

@@ -11,7 +11,7 @@ target_sources(${PROJECT_NAME}
gameplay/tree.cpp
input.cpp
map_table.cpp
renderer.cpp
render/renderer.cpp
shader.cpp
texture_manager.cpp
tools/cubed_random.cpp
@@ -43,7 +43,7 @@ target_sources(${PROJECT_NAME}
gameplay/client_player.cpp
gameplay/session.cpp
gameplay/network_client.cpp
player_renderer.cpp
render/player_renderer.cpp
audio/audio_engine.cpp
audio/audio_loader.cpp
audio/audio_source.cpp
@@ -54,4 +54,10 @@ target_sources(${PROJECT_NAME}
audio/audio_filter.cpp
audio/audio_effect.cpp
audio/audio_effect_slot.cpp
render/vertex_buffer.cpp
render/vertex_array.cpp
render/texture.cpp
render/frame_buffer.cpp
render/shader_manager.cpp
render/world_renderer.cpp
)