Route render target binding through platform services
This commit is contained in:
10
src/app.cpp
10
src/app.cpp
@@ -620,11 +620,7 @@ void App::draw(float dt)
|
||||
|
||||
if (!vr_only)
|
||||
{
|
||||
#if __IOS__
|
||||
[ios_view->glview bindDrawable];
|
||||
#else
|
||||
glBindFramebuffer(framebuffer_target(), default_framebuffer_id());
|
||||
#endif
|
||||
bind_main_render_target();
|
||||
glViewport(off_x, off_y, (GLsizei)width, (GLsizei)height);
|
||||
glEnable(scissor_test_state());
|
||||
for (int i = 0; i < layout[main_id]->m_children.size(); i++)
|
||||
@@ -947,7 +943,7 @@ void App::ui_thread_tick()
|
||||
update(0);
|
||||
render_task([this]
|
||||
{
|
||||
glBindFramebuffer(framebuffer_target(), default_framebuffer_id());
|
||||
bind_default_render_target();
|
||||
clear();
|
||||
draw(0);
|
||||
async_swap();
|
||||
@@ -1039,7 +1035,7 @@ void App::ui_thread_main()
|
||||
update(t_frame);
|
||||
render_task([this, t_frame]
|
||||
{
|
||||
glBindFramebuffer(framebuffer_target(), default_framebuffer_id());
|
||||
bind_default_render_target();
|
||||
clear();
|
||||
draw(t_frame);
|
||||
async_swap();
|
||||
|
||||
@@ -196,6 +196,8 @@ public:
|
||||
void acquire_render_context();
|
||||
void release_render_context();
|
||||
void present_render_context();
|
||||
void bind_default_render_target();
|
||||
void bind_main_render_target();
|
||||
void begin_render_capture_frame();
|
||||
void end_render_capture_frame();
|
||||
[[nodiscard]] bool platform_deletes_recorded_files_on_clear();
|
||||
|
||||
@@ -237,6 +237,16 @@ void App::present_render_context()
|
||||
active_platform_services().present_render_context();
|
||||
}
|
||||
|
||||
void App::bind_default_render_target()
|
||||
{
|
||||
active_platform_services().bind_default_render_target();
|
||||
}
|
||||
|
||||
void App::bind_main_render_target()
|
||||
{
|
||||
active_platform_services().bind_main_render_target();
|
||||
}
|
||||
|
||||
void App::begin_render_capture_frame()
|
||||
{
|
||||
active_platform_services().begin_render_capture_frame();
|
||||
|
||||
@@ -33,6 +33,8 @@ public:
|
||||
virtual void acquire_render_context() = 0;
|
||||
virtual void release_render_context() = 0;
|
||||
virtual void present_render_context() = 0;
|
||||
virtual void bind_default_render_target() = 0;
|
||||
virtual void bind_main_render_target() = 0;
|
||||
virtual void begin_render_capture_frame() = 0;
|
||||
virtual void end_render_capture_frame() = 0;
|
||||
[[nodiscard]] virtual bool deletes_recorded_files_on_clear() = 0;
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "app.h"
|
||||
#include "app_core/document_platform_io.h"
|
||||
#include "renderer_gl/opengl_capabilities.h"
|
||||
|
||||
#ifdef __ANDROID__
|
||||
void displayKeyboard(bool pShow);
|
||||
@@ -224,6 +225,22 @@ public:
|
||||
#endif
|
||||
}
|
||||
|
||||
void bind_default_render_target() override
|
||||
{
|
||||
glBindFramebuffer(
|
||||
static_cast<GLenum>(pp::renderer::gl::framebuffer_target()),
|
||||
pp::renderer::gl::default_framebuffer_id());
|
||||
}
|
||||
|
||||
void bind_main_render_target() override
|
||||
{
|
||||
#if __IOS__
|
||||
[App::I->ios_view->glview bindDrawable];
|
||||
#else
|
||||
bind_default_render_target();
|
||||
#endif
|
||||
}
|
||||
|
||||
void begin_render_capture_frame() override
|
||||
{
|
||||
}
|
||||
|
||||
@@ -250,6 +250,18 @@ public:
|
||||
win32_async_swap();
|
||||
}
|
||||
|
||||
void bind_default_render_target() override
|
||||
{
|
||||
glBindFramebuffer(
|
||||
static_cast<GLenum>(pp::renderer::gl::framebuffer_target()),
|
||||
pp::renderer::gl::default_framebuffer_id());
|
||||
}
|
||||
|
||||
void bind_main_render_target() override
|
||||
{
|
||||
bind_default_render_target();
|
||||
}
|
||||
|
||||
void begin_render_capture_frame() override
|
||||
{
|
||||
win32_renderdoc_frame_start();
|
||||
|
||||
Reference in New Issue
Block a user