[Bf-blender-cvs] [810e7c032ce] master: Cleanup: move part of render module to C++
Brecht Van Lommel
noreply at git.blender.org
Mon Aug 29 19:57:29 CEST 2022
Commit: 810e7c032ceb324a51440aae1be5af506c0b9cfb
Author: Brecht Van Lommel
Date: Sat Aug 20 13:42:10 2022 +0200
Branches: master
https://developer.blender.org/rB810e7c032ceb324a51440aae1be5af506c0b9cfb
Cleanup: move part of render module to C++
===================================================================
M source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp
M source/blender/render/CMakeLists.txt
M source/blender/render/RE_engine.h
M source/blender/render/intern/bake.c
R090 source/blender/render/intern/engine.c source/blender/render/intern/engine.cc
R100 source/blender/render/intern/initrender.c source/blender/render/intern/initrender.cc
R090 source/blender/render/intern/pipeline.c source/blender/render/intern/pipeline.cc
R082 source/blender/render/intern/render_result.c source/blender/render/intern/render_result.cc
M source/blender/render/intern/render_result.h
M source/blender/render/intern/render_types.h
M source/blender/render/intern/texture_image.c
M source/blender/render/intern/texture_pointdensity.c
M source/blender/render/intern/texture_procedural.c
===================================================================
diff --git a/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp b/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp
index 979673fd736..68d6be485a3 100644
--- a/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp
+++ b/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp
@@ -32,6 +32,7 @@
#include "BKE_idprop.h"
#include "BKE_layer.h"
#include "BKE_lib_id.h" /* free_libblock */
+#include "BKE_main.h"
#include "BKE_material.h"
#include "BKE_mesh.h"
#include "BKE_node.h"
diff --git a/source/blender/render/CMakeLists.txt b/source/blender/render/CMakeLists.txt
index db406ae96f2..5e876e5d6f2 100644
--- a/source/blender/render/CMakeLists.txt
+++ b/source/blender/render/CMakeLists.txt
@@ -26,11 +26,11 @@ set(INC
set(SRC
intern/bake.c
- intern/engine.c
- intern/initrender.c
+ intern/engine.cc
+ intern/initrender.cc
intern/multires_bake.c
- intern/pipeline.c
- intern/render_result.c
+ intern/pipeline.cc
+ intern/render_result.cc
intern/texture_image.c
intern/texture_margin.cc
intern/texture_pointdensity.c
diff --git a/source/blender/render/RE_engine.h b/source/blender/render/RE_engine.h
index d7815ef3f3c..b79ae310636 100644
--- a/source/blender/render/RE_engine.h
+++ b/source/blender/render/RE_engine.h
@@ -154,11 +154,6 @@ typedef struct RenderEngine {
ThreadMutex update_render_passes_mutex;
update_render_passes_cb_t update_render_passes_cb;
void *update_render_passes_data;
-
- rctf last_viewplane;
- rcti last_disprect;
- float last_viewmat[4][4];
- int last_winx, last_winy;
} RenderEngine;
RenderEngine *RE_engine_create(RenderEngineType *type);
diff --git a/source/blender/render/intern/bake.c b/source/blender/render/intern/bake.c
index 54497a6572f..74e9662d5db 100644
--- a/source/blender/render/intern/bake.c
+++ b/source/blender/render/intern/bake.c
@@ -72,7 +72,6 @@
#include "RE_texture_margin.h"
/* local include */
-#include "render_types.h"
#include "zbuf.h"
typedef struct BakeDataZSpan {
diff --git a/source/blender/render/intern/engine.c b/source/blender/render/intern/engine.cc
similarity index 90%
rename from source/blender/render/intern/engine.c
rename to source/blender/render/intern/engine.cc
index 266e66092b8..e80e66a7b25 100644
--- a/source/blender/render/intern/engine.c
+++ b/source/blender/render/intern/engine.cc
@@ -54,7 +54,7 @@
/* Render Engine Types */
-ListBase R_engines = {NULL, NULL};
+ListBase R_engines = {nullptr, nullptr};
void RE_engines_init(void)
{
@@ -72,7 +72,7 @@ void RE_engines_exit(void)
DRW_engines_free();
- for (type = R_engines.first; type; type = next) {
+ for (type = static_cast<RenderEngineType *>(R_engines.first); type; type = next) {
next = type->next;
BLI_remlink(&R_engines, type);
@@ -97,11 +97,11 @@ void RE_engines_register(RenderEngineType *render_type)
RenderEngineType *RE_engines_find(const char *idname)
{
- RenderEngineType *type;
-
- type = BLI_findstring(&R_engines, idname, offsetof(RenderEngineType, idname));
+ RenderEngineType *type = static_cast<RenderEngineType *>(
+ BLI_findstring(&R_engines, idname, offsetof(RenderEngineType, idname)));
if (!type) {
- type = BLI_findstring(&R_engines, "BLENDER_EEVEE", offsetof(RenderEngineType, idname));
+ type = static_cast<RenderEngineType *>(
+ BLI_findstring(&R_engines, "BLENDER_EEVEE", offsetof(RenderEngineType, idname)));
}
return type;
@@ -115,7 +115,8 @@ bool RE_engine_is_external(const Render *re)
bool RE_engine_is_opengl(RenderEngineType *render_type)
{
/* TODO: refine? Can we have ogl render engine without ogl render pipeline? */
- return (render_type->draw_engine != NULL) && DRW_engine_render_support(render_type->draw_engine);
+ return (render_type->draw_engine != nullptr) &&
+ DRW_engine_render_support(render_type->draw_engine);
}
bool RE_engine_supports_alembic_procedural(const RenderEngineType *render_type, Scene *scene)
@@ -135,7 +136,7 @@ bool RE_engine_supports_alembic_procedural(const RenderEngineType *render_type,
RenderEngine *RE_engine_create(RenderEngineType *type)
{
- RenderEngine *engine = MEM_callocN(sizeof(RenderEngine), "RenderEngine");
+ RenderEngine *engine = MEM_cnew<RenderEngine>("RenderEngine");
engine->type = type;
BLI_mutex_init(&engine->update_render_passes_mutex);
@@ -153,7 +154,7 @@ static void engine_depsgraph_free(RenderEngine *engine)
}
DEG_graph_free(engine->depsgraph);
- engine->depsgraph = NULL;
+ engine->depsgraph = nullptr;
if (use_gpu_context) {
DRW_render_context_disable(engine->re);
@@ -181,7 +182,7 @@ void RE_engine_free(RenderEngine *engine)
static RenderResult *render_result_from_bake(RenderEngine *engine, int x, int y, int w, int h)
{
/* Create render result with specified size. */
- RenderResult *rr = MEM_callocN(sizeof(RenderResult), __func__);
+ RenderResult *rr = MEM_cnew<RenderResult>(__func__);
rr->rectx = w;
rr->recty = h;
@@ -191,7 +192,7 @@ static RenderResult *render_result_from_bake(RenderEngine *engine, int x, int y,
rr->tilerect.ymax = y + h;
/* Add single baking render layer. */
- RenderLayer *rl = MEM_callocN(sizeof(RenderLayer), "bake render layer");
+ RenderLayer *rl = MEM_cnew<RenderLayer>("bake render layer");
rl->rectx = w;
rl->recty = h;
BLI_addtail(&rr->layers, rl);
@@ -240,7 +241,8 @@ static RenderResult *render_result_from_bake(RenderEngine *engine, int x, int y,
static void render_result_to_bake(RenderEngine *engine, RenderResult *rr)
{
- RenderPass *rpass = RE_pass_find_by_name(rr->layers.first, RE_PASSNAME_COMBINED, "");
+ RenderPass *rpass = RE_pass_find_by_name(
+ static_cast<RenderLayer *>(rr->layers.first), RE_PASSNAME_COMBINED, "");
if (!rpass) {
return;
@@ -296,7 +298,7 @@ static void engine_tile_highlight_set(RenderEngine *engine,
BLI_mutex_lock(&re->highlighted_tiles_mutex);
- if (re->highlighted_tiles == NULL) {
+ if (re->highlighted_tiles == nullptr) {
re->highlighted_tiles = BLI_gset_new(
BLI_ghashutil_inthash_v4_p, BLI_ghashutil_inthash_v4_cmp, "highlighted tiles");
}
@@ -304,7 +306,7 @@ static void engine_tile_highlight_set(RenderEngine *engine,
if (highlight) {
HighlightedTile **tile_in_set;
if (!BLI_gset_ensure_p_ex(re->highlighted_tiles, tile, (void ***)&tile_in_set)) {
- *tile_in_set = MEM_mallocN(sizeof(HighlightedTile), __func__);
+ *tile_in_set = MEM_cnew<HighlightedTile>(__func__);
**tile_in_set = *tile;
}
}
@@ -351,7 +353,7 @@ RenderResult *RE_engine_begin_result(
/* TODO: make this thread safe. */
- /* can be NULL if we CLAMP the width or height to 0 */
+ /* can be nullptr if we CLAMP the width or height to 0 */
if (result) {
render_result_clone_passes(re, result, viewname);
render_result_passes_allocated_ensure(result);
@@ -390,8 +392,9 @@ void RE_engine_update_result(RenderEngine *engine, RenderResult *result)
if (result) {
re_ensure_passes_allocated_thread_safe(re);
render_result_merge(re->result, result);
- result->renlay = result->layers.first; /* weak, draws first layer always */
- re->display_update(re->duh, result, NULL);
+ result->renlay = static_cast<RenderLayer *>(
+ result->layers.first); /* weak, draws first layer always */
+ re->display_update(re->duh, result, nullptr);
}
}
@@ -407,7 +410,7 @@ void RE_engine_add_pass(RenderEngine *engine,
return;
}
- RE_create_render_pass(re->result, name, channels, chan_id, layername, NULL, false);
+ RE_create_render_pass(re->result, name, channels, chan_id, layername, nullptr, false);
}
void RE_engine_end_result(
@@ -440,8 +443,9 @@ void RE_engine_end_result(
/* draw */
if (!re->test_break(re->tbh)) {
- result->renlay = result->layers.first; /* weak, draws first layer always */
- re->display_update(re->duh, result, NULL);
+ result->renlay = static_cast<RenderLayer *>(
+ result->layers.first); /* weak, draws first layer always */
+ re->display_update(re->duh, result, nullptr);
}
}
@@ -479,8 +483,8 @@ void RE_engine_update_stats(RenderEngine *engine, const char *stats, const char
re->i.statstr = stats;
re->i.infostr = info;
re->stats_draw(re->sdh, &re->i);
- re->i.infostr = NULL;
- re->i.statstr = NULL;
+ re->i.infostr = nullptr;
+ re->i.statstr = nullptr;
}
/* set engine text */
@@ -522,20 +526,20 @@ void RE_engine_report(RenderEngine *engine, int type, const char *msg)
Render *re = engine->re;
if (re) {
- BKE_report(engine->re->reports, type, msg);
+ BKE_report(engine->re->reports, (eReportType)type, msg);
}
else if (engine->reports) {
- BKE_report(engine->reports, type, msg);
+ BKE_report(engine->reports, (eReportType)type, msg);
}
}
void RE_engine_set_error_message(RenderEngine *engine, const char *msg)
{
Render *re = engine->re;
- if (re != NULL) {
+ if (re != nullptr) {
RenderResult *rr = RE_AcquireResultRead(re);
if (rr) {
- if (rr->error != NULL) {
+ if (rr->error != nullptr) {
MEM_freeN(rr->error);
}
rr->error = BLI_strdup(msg);
@@ -547,17 +551,17 @@ void RE_engine_set_error_message(RenderEngine *engine, const char *msg)
RenderPass *RE_engine_pass_by_index_get(RenderEngine *engine, const char *layer_name, int index)
{
Render *re = engine->re;
- if (re == NULL) {
- return NULL;
+ if (re == nullptr) {
+ return nullptr;
}
- RenderPass *pass = NULL;
+ RenderPass *pass = nullptr;
RenderResult *rr = RE_AcquireResultRead(re);
- if (rr != NULL) {
+ if (rr != nullptr) {
const RenderLayer *layer = RE_GetRenderLayer(rr, layer_name);
- if (layer != NULL) {
- pass = BLI_findlink(&layer->passes, index);
+ if (layer != nullptr) {
+ pass = static_cast<RenderPass *>(BLI_findlink(&layer->passes, index));
}
}
RE_ReleaseResult(re);
@@ -582,8 +586,8 @@ float RE_engine_get_camera_shift_x(RenderEngine *engine, Object *camera, bool us
/* When using spherical stereo, get camera shift without multiview,
* leaving stereo to be handled by
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list