[Bf-blender-cvs] [c59c11d4207] temp-3d-texturing-brush-b: Use template callback function.

Jeroen Bakker noreply at git.blender.org
Wed Mar 16 14:10:48 CET 2022


Commit: c59c11d4207cbacf39194cba365defb534e08fa9
Author: Jeroen Bakker
Date:   Wed Mar 16 10:43:32 2022 +0100
Branches: temp-3d-texturing-brush-b
https://developer.blender.org/rBc59c11d4207cbacf39194cba365defb534e08fa9

Use template callback function.

===================================================================

M	source/blender/editors/sculpt_paint/sculpt_texture_paint_d.cc

===================================================================

diff --git a/source/blender/editors/sculpt_paint/sculpt_texture_paint_d.cc b/source/blender/editors/sculpt_paint/sculpt_texture_paint_d.cc
index 600dd331727..9c59cd15a49 100644
--- a/source/blender/editors/sculpt_paint/sculpt_texture_paint_d.cc
+++ b/source/blender/editors/sculpt_paint/sculpt_texture_paint_d.cc
@@ -41,7 +41,7 @@ namespace blender::ed::sculpt_paint::texture_paint {
 namespace painting {
 
 /** Reading and writing to image buffer with 4 float channels. */
-class ImagePixelAccessorFloat4 {
+class ImageBufferFloat4 {
  private:
   int pixel_offset;
 
@@ -201,6 +201,7 @@ static void do_vertex_brush_test(void *__restrict userdata,
   BKE_pbvh_vertex_iter_end;
 }
 
+template<typename PaintingKernelType>
 static void do_task_cb_ex(void *__restrict userdata,
                           const int n,
                           const TaskParallelTLS *__restrict tls)
@@ -250,7 +251,7 @@ static void do_task_cb_ex(void *__restrict userdata,
 
   const int thread_id = BLI_task_parallel_thread_id(tls);
   MVert *mvert = SCULPT_mesh_deformed_mverts_get(ss);
-  PaintingKernel<ImagePixelAccessorFloat4> kernel(ss, brush, thread_id, mvert);
+  PaintingKernelType kernel(ss, brush, thread_id, mvert);
 
   int packages_clipped = 0;
   for (const PixelsPackage &encoded_pixels : node_data->encoded_pixels) {
@@ -328,7 +329,12 @@ void SCULPT_do_texture_paint_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int
 
   TIMEIT_START(texture_painting);
   BLI_task_parallel_range(0, totnode, &data, painting::do_vertex_brush_test, &settings);
-  BLI_task_parallel_range(0, totnode, &data, painting::do_task_cb_ex, &settings);
+  BLI_task_parallel_range(
+      0,
+      totnode,
+      &data,
+      painting::do_task_cb_ex<painting::PaintingKernel<painting::ImageBufferFloat4>>,
+      &settings);
   TIMEIT_END(texture_painting);
 
   ss->mode.texture_paint.drawing_target = nullptr;



More information about the Bf-blender-cvs mailing list