Refactor: Make display_init a base render method

Should be no functional changes.

Pull Request: https://projects.blender.org/blender/blender/pulls/111047
This commit is contained in:
Sergey Sharybin
2023-08-11 13:01:17 +02:00
committed by Gitea
parent f604235206
commit 9094a3a9ab
3 changed files with 12 additions and 2 deletions

View File

@@ -1048,7 +1048,7 @@ static void render_result_uncrop(Render *re)
BLI_rw_mutex_unlock(&re->resultmutex);
re->display_init_cb(re->dih, re->result);
re->display_init(re->result);
re->display_update(re->result, nullptr);
/* restore the disprect from border */
@@ -1778,7 +1778,7 @@ static bool render_init_from_main(Render *re,
/* Init-state makes new result, have to send changed tags around. */
ntreeCompositTagRender(re->scene);
re->display_init_cb(re->dih, re->result);
re->display_init(re->result);
re->display_clear(re->result);
return true;

View File

@@ -41,6 +41,13 @@ Render::~Render()
render_result_free(pushedresult);
}
void Render::display_init(RenderResult *render_result)
{
if (display_init_cb) {
display_init_cb(dih, render_result);
}
}
void Render::display_clear(RenderResult *render_result)
{
if (display_clear_cb) {

View File

@@ -49,6 +49,7 @@ struct BaseRender {
const char *view_name) = 0;
virtual void compositor_free() = 0;
virtual void display_init(RenderResult *render_result) = 0;
virtual void display_clear(RenderResult *render_result) = 0;
virtual void display_update(RenderResult *render_result, rcti *rect) = 0;
virtual void current_scene_update(struct Scene *scene) = 0;
@@ -101,6 +102,7 @@ struct ViewRender : public BaseRender {
}
void compositor_free() override {}
void display_init(RenderResult * /*render_result*/) override {}
void display_clear(RenderResult * /*render_result*/) override {}
void display_update(RenderResult * /*render_result*/, rcti * /*rect*/) override {}
void current_scene_update(struct Scene * /*scene*/) override {}
@@ -142,6 +144,7 @@ struct Render : public BaseRender {
const char *view_name) override;
void compositor_free() override;
void display_init(RenderResult *render_result) override;
void display_clear(RenderResult *render_result) override;
void display_update(RenderResult *render_result, rcti *rect) override;
void current_scene_update(struct Scene *scene) override;