[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