mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
rhi/gl: Loosen constraints on resource creation
It will be safe to call many of these functions in Vulkan even if a context is active, but the contents of buffers and textures will be considered undefined until updated.
This commit is contained in:
parent
3ec7163a34
commit
187e4a9442
1 changed files with 0 additions and 19 deletions
|
|
@ -568,8 +568,6 @@ GlCoreRhi::~GlCoreRhi() = default;
|
||||||
|
|
||||||
rhi::Handle<rhi::RenderPass> GlCoreRhi::create_render_pass(const rhi::RenderPassDesc& desc)
|
rhi::Handle<rhi::RenderPass> GlCoreRhi::create_render_pass(const rhi::RenderPassDesc& desc)
|
||||||
{
|
{
|
||||||
SRB2_ASSERT(graphics_context_active_ == false);
|
|
||||||
|
|
||||||
// GL has no formal render pass object
|
// GL has no formal render pass object
|
||||||
GlCoreRenderPass pass;
|
GlCoreRenderPass pass;
|
||||||
pass.desc = desc;
|
pass.desc = desc;
|
||||||
|
|
@ -578,15 +576,11 @@ rhi::Handle<rhi::RenderPass> GlCoreRhi::create_render_pass(const rhi::RenderPass
|
||||||
|
|
||||||
void GlCoreRhi::destroy_render_pass(rhi::Handle<rhi::RenderPass> handle)
|
void GlCoreRhi::destroy_render_pass(rhi::Handle<rhi::RenderPass> handle)
|
||||||
{
|
{
|
||||||
SRB2_ASSERT(graphics_context_active_ == false);
|
|
||||||
|
|
||||||
render_pass_slab_.remove(handle);
|
render_pass_slab_.remove(handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
rhi::Handle<rhi::Texture> GlCoreRhi::create_texture(const rhi::TextureDesc& desc)
|
rhi::Handle<rhi::Texture> GlCoreRhi::create_texture(const rhi::TextureDesc& desc)
|
||||||
{
|
{
|
||||||
SRB2_ASSERT(graphics_context_active_ == false);
|
|
||||||
|
|
||||||
GLenum internal_format = map_internal_texture_format(desc.format);
|
GLenum internal_format = map_internal_texture_format(desc.format);
|
||||||
SRB2_ASSERT(internal_format != GL_ZERO);
|
SRB2_ASSERT(internal_format != GL_ZERO);
|
||||||
GLenum format = GL_RGBA;
|
GLenum format = GL_RGBA;
|
||||||
|
|
@ -615,8 +609,6 @@ rhi::Handle<rhi::Texture> GlCoreRhi::create_texture(const rhi::TextureDesc& desc
|
||||||
|
|
||||||
void GlCoreRhi::destroy_texture(rhi::Handle<rhi::Texture> handle)
|
void GlCoreRhi::destroy_texture(rhi::Handle<rhi::Texture> handle)
|
||||||
{
|
{
|
||||||
SRB2_ASSERT(graphics_context_active_ == false);
|
|
||||||
|
|
||||||
SRB2_ASSERT(texture_slab_.is_valid(handle) == true);
|
SRB2_ASSERT(texture_slab_.is_valid(handle) == true);
|
||||||
GlCoreTexture casted = texture_slab_.remove(handle);
|
GlCoreTexture casted = texture_slab_.remove(handle);
|
||||||
GLuint name = casted.texture;
|
GLuint name = casted.texture;
|
||||||
|
|
@ -676,8 +668,6 @@ void GlCoreRhi::update_texture(
|
||||||
|
|
||||||
rhi::Handle<rhi::Buffer> GlCoreRhi::create_buffer(const rhi::BufferDesc& desc)
|
rhi::Handle<rhi::Buffer> GlCoreRhi::create_buffer(const rhi::BufferDesc& desc)
|
||||||
{
|
{
|
||||||
SRB2_ASSERT(graphics_context_active_ == false);
|
|
||||||
|
|
||||||
GLenum target = map_buffer_type(desc.type);
|
GLenum target = map_buffer_type(desc.type);
|
||||||
SRB2_ASSERT(target != GL_ZERO);
|
SRB2_ASSERT(target != GL_ZERO);
|
||||||
|
|
||||||
|
|
@ -702,10 +692,7 @@ rhi::Handle<rhi::Buffer> GlCoreRhi::create_buffer(const rhi::BufferDesc& desc)
|
||||||
|
|
||||||
void GlCoreRhi::destroy_buffer(rhi::Handle<rhi::Buffer> handle)
|
void GlCoreRhi::destroy_buffer(rhi::Handle<rhi::Buffer> handle)
|
||||||
{
|
{
|
||||||
SRB2_ASSERT(graphics_context_active_ == false);
|
|
||||||
|
|
||||||
SRB2_ASSERT(buffer_slab_.is_valid(handle) == true);
|
SRB2_ASSERT(buffer_slab_.is_valid(handle) == true);
|
||||||
SRB2_ASSERT(graphics_context_active_ == false);
|
|
||||||
GlCoreBuffer casted = buffer_slab_.remove(handle);
|
GlCoreBuffer casted = buffer_slab_.remove(handle);
|
||||||
GLuint name = casted.buffer;
|
GLuint name = casted.buffer;
|
||||||
|
|
||||||
|
|
@ -837,8 +824,6 @@ rhi::Handle<rhi::BindingSet> GlCoreRhi::create_binding_set(
|
||||||
|
|
||||||
rhi::Handle<rhi::Renderbuffer> GlCoreRhi::create_renderbuffer(const rhi::RenderbufferDesc& desc)
|
rhi::Handle<rhi::Renderbuffer> GlCoreRhi::create_renderbuffer(const rhi::RenderbufferDesc& desc)
|
||||||
{
|
{
|
||||||
SRB2_ASSERT(graphics_context_active_ == false);
|
|
||||||
|
|
||||||
GLuint name = 0;
|
GLuint name = 0;
|
||||||
gl_->GenRenderbuffers(1, &name);
|
gl_->GenRenderbuffers(1, &name);
|
||||||
|
|
||||||
|
|
@ -871,8 +856,6 @@ rhi::Handle<rhi::Renderbuffer> GlCoreRhi::create_renderbuffer(const rhi::Renderb
|
||||||
|
|
||||||
void GlCoreRhi::destroy_renderbuffer(rhi::Handle<rhi::Renderbuffer> handle)
|
void GlCoreRhi::destroy_renderbuffer(rhi::Handle<rhi::Renderbuffer> handle)
|
||||||
{
|
{
|
||||||
SRB2_ASSERT(graphics_context_active_ == false);
|
|
||||||
|
|
||||||
SRB2_ASSERT(renderbuffer_slab_.is_valid(handle) == true);
|
SRB2_ASSERT(renderbuffer_slab_.is_valid(handle) == true);
|
||||||
GlCoreRenderbuffer casted = renderbuffer_slab_.remove(handle);
|
GlCoreRenderbuffer casted = renderbuffer_slab_.remove(handle);
|
||||||
GLuint name = casted.renderbuffer;
|
GLuint name = casted.renderbuffer;
|
||||||
|
|
@ -1187,8 +1170,6 @@ rhi::Handle<rhi::Pipeline> GlCoreRhi::create_pipeline(const PipelineDesc& desc)
|
||||||
|
|
||||||
void GlCoreRhi::destroy_pipeline(rhi::Handle<rhi::Pipeline> handle)
|
void GlCoreRhi::destroy_pipeline(rhi::Handle<rhi::Pipeline> handle)
|
||||||
{
|
{
|
||||||
SRB2_ASSERT(graphics_context_active_ == false);
|
|
||||||
|
|
||||||
SRB2_ASSERT(pipeline_slab_.is_valid(handle) == true);
|
SRB2_ASSERT(pipeline_slab_.is_valid(handle) == true);
|
||||||
GlCorePipeline casted = pipeline_slab_.remove(handle);
|
GlCorePipeline casted = pipeline_slab_.remove(handle);
|
||||||
GLuint vertex_shader = casted.vertex_shader;
|
GLuint vertex_shader = casted.vertex_shader;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue