Refactor: Introduce ViewRender for viewport renders #110244
|
@ -34,6 +34,7 @@ set(SRC
|
|||
intern/multires_bake.cc
|
||||
intern/pipeline.cc
|
||||
intern/render_result.cc
|
||||
intern/render_types.cc
|
||||
intern/texture_image.c
|
||||
intern/texture_margin.cc
|
||||
intern/texture_pointdensity.c
|
||||
|
|
|
@ -555,33 +555,6 @@ void RE_InitRenderCB(Render *re)
|
|||
|
||||
void RE_FreeRender(Render *re)
|
||||
{
|
||||
if (re->engine) {
|
||||
RE_engine_free(re->engine);
|
||||
}
|
||||
|
||||
RE_compositor_free(*re);
|
||||
|
||||
RE_blender_gpu_context_free(re);
|
||||
RE_system_gpu_context_free(re);
|
||||
|
||||
BLI_rw_mutex_end(&re->resultmutex);
|
||||
BLI_mutex_end(&re->engine_draw_mutex);
|
||||
BLI_mutex_end(&re->highlighted_tiles_mutex);
|
||||
BLI_mutex_end(&re->gpu_compositor_mutex);
|
||||
|
||||
BKE_curvemapping_free_data(&re->r.mblur_shutter_curve);
|
||||
|
||||
if (re->highlighted_tiles != nullptr) {
|
||||
BLI_gset_free(re->highlighted_tiles, MEM_freeN);
|
||||
}
|
||||
|
||||
/* main dbase can already be invalid now, some database-free code checks it */
|
||||
re->main = nullptr;
|
||||
re->scene = nullptr;
|
||||
|
||||
render_result_free(re->result);
|
||||
render_result_free(re->pushedresult);
|
||||
|
||||
RenderGlobal.render_list.remove(re);
|
||||
|
||||
MEM_delete(re);
|
||||
|
|
|
@ -0,0 +1,49 @@
|
|||
/* SPDX-FileCopyrightText: 2023 Blender Foundation
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
/** \file
|
||||
* \ingroup render
|
||||
*/
|
||||
|
||||
#include "render_types.h"
|
||||
|
||||
#include "BLI_ghash.h"
|
||||
|
||||
#include "BKE_colortools.h"
|
||||
|
||||
#include "RE_compositor.hh"
|
||||
#include "RE_engine.h"
|
||||
|
||||
#include "render_result.h"
|
||||
|
||||
BaseRender::~BaseRender()
|
||||
{
|
||||
if (engine) {
|
||||
RE_engine_free(engine);
|
||||
}
|
||||
|
||||
render_result_free(result);
|
||||
|
||||
BLI_rw_mutex_end(&resultmutex);
|
||||
BLI_mutex_end(&engine_draw_mutex);
|
||||
}
|
||||
|
||||
Render::~Render()
|
||||
{
|
||||
RE_compositor_free(*this);
|
||||
|
||||
RE_blender_gpu_context_free(this);
|
||||
RE_system_gpu_context_free(this);
|
||||
|
||||
BLI_mutex_end(&highlighted_tiles_mutex);
|
||||
BLI_mutex_end(&gpu_compositor_mutex);
|
||||
|
||||
BKE_curvemapping_free_data(&r.mblur_shutter_curve);
|
||||
|
||||
if (highlighted_tiles != nullptr) {
|
||||
BLI_gset_free(highlighted_tiles, MEM_freeN);
|
||||
}
|
||||
|
||||
render_result_free(pushedresult);
|
||||
}
|
|
@ -36,7 +36,7 @@ struct HighlightedTile {
|
|||
|
||||
struct BaseRender {
|
||||
BaseRender() = default;
|
||||
virtual ~BaseRender() = default;
|
||||
virtual ~BaseRender();
|
||||
|
||||
/* Result of rendering */
|
||||
RenderResult *result = nullptr;
|
||||
|
@ -58,7 +58,7 @@ struct Render : public BaseRender {
|
|||
/* NOTE: Currently unused, provision for the future.
|
||||
* Add these now to allow the guarded memory allocator to catch C-specific function calls. */
|
||||
Render() = default;
|
||||
virtual ~Render() = default;
|
||||
virtual ~Render();
|
||||
|
||||
char name[RE_MAXNAME] = "";
|
||||
int slot = 0;
|
||||
|
|
Loading…
Reference in New Issue