Skip to content

Conversation

@adriengivry
Copy link
Member

@adriengivry adriengivry commented Feb 24, 2025

Description

  • Updated OvRendering to be completely independent of its graphics backend.
  • Buffers objects and textures are now fully agnostic
  • Implementation made using template specialization
  • Removed the OvRendering::Buffers namespace, in favor of OvRendering::HAL
  • Graphics backend selection is done at compile-time, so not runtime switch is possible:
    • Better performance, no v-table, no pointer indirection for class/function selection
    • In the future could ship Overload (Editor + Game) pre-compiled with multiple backends, OvEditor_OpenGL.exe, OvEditor_Vulkan.exe, which would allow the user to select which backend they want to use (potentially through a launcher).
  • Added render buffer object
  • Reworked all buffers' interfaces: easier to use, and more consistent

To-Do

  • Finish implementation of HAL::Texture
  • Finish implementation of HAL::Shader
  • Add define to select the graphics API to premake
  • Add documentation to the HAL/Common headers
  • Finish None backend implementation
  • Hide GL types values from enums (conversion layer needed)
  • Investigate a way to auto-generate From/To OpenGL type conversion utility functions
  • Homogenize GL contexts var names (i.e. bufferID and id)

Related Issues

Closes #395
Closes #397
Closes #280

@adriengivry adriengivry self-assigned this Feb 24, 2025
@adriengivry adriengivry force-pushed the feature/fully_agnostic_renderer branch from f05da94 to 2ab390f Compare February 26, 2025 23:52
@adriengivry adriengivry marked this pull request as ready for review February 27, 2025 02:18
@adriengivry
Copy link
Member Author

adriengivry commented Feb 27, 2025

Currently investigating if I can add these as part of this PR:

Done ✅

@adriengivry adriengivry force-pushed the feature/fully_agnostic_renderer branch from ea45924 to 70fecae Compare February 28, 2025 08:00
…mebuffer and ShadowFramebuffer which wraps the HAL::Framebuffer and add the necessary attachment
@adriengivry adriengivry marked this pull request as draft February 28, 2025 21:44
@adriengivry adriengivry added Optimization Optimization related stuff Refactoring Something that needs a refactoring Graphics Graphical feature labels Mar 1, 2025
@adriengivry adriengivry marked this pull request as ready for review March 1, 2025 05:07
* enforced DSA usage when possible
* added FramebufferUtil to setup a framebuffer in one function call (cleaner than inheritance)
* code cleanup
Copy link
Contributor

@litelawliet litelawliet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@adriengivry adriengivry merged commit 1faa80b into main Mar 31, 2025
1 check passed
@adriengivry adriengivry deleted the feature/fully_agnostic_renderer branch March 31, 2025 22:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Graphics Graphical feature Optimization Optimization related stuff Refactoring Something that needs a refactoring

3 participants