[Bf-blender-cvs] [d3f10f768a1] temp-gpu-image-engine: Cleanup use Tile drawing for wrap repeat.

Jeroen Bakker noreply at git.blender.org
Fri Dec 3 16:07:32 CET 2021


Commit: d3f10f768a1af3575116eeac1792eefbf4d831aa
Author: Jeroen Bakker
Date:   Fri Dec 3 16:07:09 2021 +0100
Branches: temp-gpu-image-engine
https://developer.blender.org/rBd3f10f768a1af3575116eeac1792eefbf4d831aa

Cleanup use Tile drawing for wrap repeat.

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

M	source/blender/draw/engines/image/image_drawing_mode_screen_space.hh
M	source/blender/draw/engines/image/image_engine.cc
M	source/blender/draw/engines/image/image_private.hh
M	source/blender/draw/engines/image/image_space_image.hh
M	source/blender/draw/engines/image/image_space_node.hh

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

diff --git a/source/blender/draw/engines/image/image_drawing_mode_screen_space.hh b/source/blender/draw/engines/image/image_drawing_mode_screen_space.hh
index c79ccd0a5da..8797b124373 100644
--- a/source/blender/draw/engines/image/image_drawing_mode_screen_space.hh
+++ b/source/blender/draw/engines/image/image_drawing_mode_screen_space.hh
@@ -259,7 +259,7 @@ class ScreenSpaceDrawingMode : public AbstractDrawingMode {
         break;
       case ePartialUpdateCollectResult::PartialChangesDetected:
         /* Partial update when wrap repeat is enabled is not supported. */
-        if (pd->flags.do_wrap_repeat) {
+        if (pd->flags.do_tile_drawing) {
           mark_all_texture_slots_dirty(pd);
         }
         else {
@@ -471,7 +471,7 @@ class ScreenSpaceDrawingMode : public AbstractDrawingMode {
     invert_m4(uv_to_texel);
     IMB_transform(&tile_buffer,
                   &texture_buffer,
-                  pd.flags.do_wrap_repeat ? IMB_TRANSFORM_MODE_WRAP_REPEAT :
+                  pd.flags.do_tile_drawing ? IMB_TRANSFORM_MODE_WRAP_REPEAT :
                                             IMB_TRANSFORM_MODE_REGULAR,
                   IMB_FILTER_NEAREST,
                   uv_to_texel,
diff --git a/source/blender/draw/engines/image/image_engine.cc b/source/blender/draw/engines/image/image_engine.cc
index fd75f52be94..01c2a68ac23 100644
--- a/source/blender/draw/engines/image/image_engine.cc
+++ b/source/blender/draw/engines/image/image_engine.cc
@@ -107,7 +107,7 @@ class ImageEngine {
       /* Early exit, nothing to draw. */
       return;
     }
-    pd->flags.do_wrap_repeat = pd->image->source != IMA_SRC_TILED && space->use_wrap_repeat();
+    pd->flags.do_tile_drawing = pd->image->source != IMA_SRC_TILED && space->use_tile_drawing();
     pd->ibuf = space->acquire_image_buffer(pd->image, &pd->lock);
     ImageUser *iuser = space->get_image_user();
     drawing_mode.cache_image(space.get(), vedata, pd->image, iuser, pd->ibuf);
diff --git a/source/blender/draw/engines/image/image_private.hh b/source/blender/draw/engines/image/image_private.hh
index 6a6eaae3780..c2a7c7cef1a 100644
--- a/source/blender/draw/engines/image/image_private.hh
+++ b/source/blender/draw/engines/image/image_private.hh
@@ -80,7 +80,13 @@ struct IMAGE_PrivateData {
   struct DRWView *view;
 
   struct {
-    bool do_wrap_repeat : 1;
+    /**
+     * \brief should we perform tile drawing (wrap repeat).
+     *
+     * Option is true when image is capable of tile drawing (image is not tiled) and the option is
+     * set in the space.
+     */
+    bool do_tile_drawing : 1;
   } flags;
 
   /* Data used in screen space drawing mode. */
@@ -216,7 +222,7 @@ class AbstractSpaceAccessor {
                              float r_mat[4][4]) const = 0;
 
   /** \brief Is (wrap) repeat option enabled in the space. */
-  virtual bool use_wrap_repeat() const = 0;
+  virtual bool use_tile_drawing() const = 0;
 };  // namespace blender::draw::image_engine
 
 /**
diff --git a/source/blender/draw/engines/image/image_space_image.hh b/source/blender/draw/engines/image/image_space_image.hh
index 48dce621ff1..31df05ee318 100644
--- a/source/blender/draw/engines/image/image_space_image.hh
+++ b/source/blender/draw/engines/image/image_space_image.hh
@@ -181,7 +181,7 @@ class SpaceImageAccessor : public AbstractSpaceAccessor {
     unit_m4(r_mat);
   }
 
-  bool use_wrap_repeat() const
+  bool use_tile_drawing() const
   {
     return (sima->flag & SI_DRAW_TILE) != 0;
   }
diff --git a/source/blender/draw/engines/image/image_space_node.hh b/source/blender/draw/engines/image/image_space_node.hh
index f2aef3becef..3717d45f414 100644
--- a/source/blender/draw/engines/image/image_space_node.hh
+++ b/source/blender/draw/engines/image/image_space_node.hh
@@ -134,7 +134,7 @@ class SpaceNodeAccessor : public AbstractSpaceAccessor {
     r_mat[3][1] = (region->winy - snode->zoom * ibuf_height) / 2 + snode->yof;
   }
 
-  bool use_wrap_repeat() const
+  bool use_tile_drawing() const
   {
     return false;
   }



More information about the Bf-blender-cvs mailing list