[Bf-blender-cvs] [38f793d3491] temp-image-engine: Remove visible flag. all textures are visible at all moments.

Jeroen Bakker noreply at git.blender.org
Wed Dec 7 14:28:46 CET 2022


Commit: 38f793d349148e0324fbc0ad8b45f7406a71fe34
Author: Jeroen Bakker
Date:   Wed Dec 7 08:53:26 2022 +0100
Branches: temp-image-engine
https://developer.blender.org/rB38f793d349148e0324fbc0ad8b45f7406a71fe34

Remove visible flag. all textures are visible at all moments.

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

M	source/blender/draw/engines/image/image_drawing_mode.hh
M	source/blender/draw/engines/image/image_instance_data.hh
M	source/blender/draw/engines/image/image_texture_info.hh

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

diff --git a/source/blender/draw/engines/image/image_drawing_mode.hh b/source/blender/draw/engines/image/image_drawing_mode.hh
index 7337dc1815c..dcc869a9217 100644
--- a/source/blender/draw/engines/image/image_drawing_mode.hh
+++ b/source/blender/draw/engines/image/image_drawing_mode.hh
@@ -47,16 +47,12 @@ struct FullScreenTextures {
 
     BLI_rctf_init(
         &instance_data->texture_infos[0].clipping_bounds, min_co.x, mid_co.x, min_co.y, mid_co.y);
-    instance_data->texture_infos[0].visible = true;
     BLI_rctf_init(
         &instance_data->texture_infos[1].clipping_bounds, mid_co.x, max_co.x, min_co.y, mid_co.y);
-    instance_data->texture_infos[1].visible = true;
     BLI_rctf_init(
         &instance_data->texture_infos[2].clipping_bounds, min_co.x, mid_co.x, mid_co.y, max_co.y);
-    instance_data->texture_infos[2].visible = true;
     BLI_rctf_init(
         &instance_data->texture_infos[3].clipping_bounds, mid_co.x, max_co.x, mid_co.y, max_co.y);
-    instance_data->texture_infos[3].visible = true;
   }
 
   void update_screen_uv_bounds()
@@ -134,10 +130,6 @@ template<typename TextureMethod> class ScreenSpaceDrawingMode : public AbstractD
     unit_m4(image_mat);
     for (int i = 0; i < SCREEN_SPACE_DRAWING_MODE_TEXTURE_LEN; i++) {
       const TextureInfo &info = instance_data->texture_infos[i];
-      if (!info.visible) {
-        continue;
-      }
-
       DRWShadingGroup *shgrp_sub = DRW_shgroup_create_sub(shgrp);
       DRW_shgroup_uniform_ivec2_copy(shgrp_sub, "offset", info.offset());
       DRW_shgroup_uniform_texture_ex(shgrp_sub, "imageTexture", info.texture, GPU_SAMPLER_DEFAULT);
@@ -167,10 +159,6 @@ template<typename TextureMethod> class ScreenSpaceDrawingMode : public AbstractD
 
     for (int i = 0; i < SCREEN_SPACE_DRAWING_MODE_TEXTURE_LEN; i++) {
       const TextureInfo &info = instance_data.texture_infos[i];
-      if (!info.visible) {
-        continue;
-      }
-
       LISTBASE_FOREACH (ImageTile *, image_tile_ptr, &image->tiles) {
         const ImageTileWrapper image_tile(image_tile_ptr);
         const int tile_x = image_tile.get_tile_x_offset();
@@ -280,9 +268,6 @@ template<typename TextureMethod> class ScreenSpaceDrawingMode : public AbstractD
         if (info.need_full_update) {
           continue;
         }
-        if (!info.visible) {
-          continue;
-        }
         GPUTexture *texture = info.texture;
         const float texture_width = GPU_texture_width(texture);
         const float texture_height = GPU_texture_height(texture);
@@ -384,9 +369,6 @@ template<typename TextureMethod> class ScreenSpaceDrawingMode : public AbstractD
       if (!info.need_full_update) {
         continue;
       }
-      if (!info.visible) {
-        continue;
-      }
       do_full_update_gpu_texture(info, instance_data, image_user);
     }
   }
diff --git a/source/blender/draw/engines/image/image_instance_data.hh b/source/blender/draw/engines/image/image_instance_data.hh
index 522d9095cc8..8eb5d4f80a4 100644
--- a/source/blender/draw/engines/image/image_instance_data.hh
+++ b/source/blender/draw/engines/image/image_instance_data.hh
@@ -78,11 +78,10 @@ struct IMAGE_InstanceData {
     for (int i = 0; i < SCREEN_SPACE_DRAWING_MODE_TEXTURE_LEN; i++) {
       TextureInfo &info = texture_infos[i];
       const bool is_allocated = info.texture != nullptr;
-      const bool is_visible = info.visible;
       const bool resolution_changed = assign_if_different(info.last_viewport_size,
                                                           float2(DRW_viewport_size_get()));
-      const bool should_be_freed = is_allocated && (!is_visible || resolution_changed);
-      const bool should_be_created = is_visible && (!is_allocated || resolution_changed);
+      const bool should_be_freed = is_allocated && resolution_changed;
+      const bool should_be_created = !is_allocated || resolution_changed;
 
       if (should_be_freed) {
         GPU_texture_free(info.texture);
diff --git a/source/blender/draw/engines/image/image_texture_info.hh b/source/blender/draw/engines/image/image_texture_info.hh
index 018e84836a1..e4545d8b81f 100644
--- a/source/blender/draw/engines/image/image_texture_info.hh
+++ b/source/blender/draw/engines/image/image_texture_info.hh
@@ -14,13 +14,6 @@
 #include "GPU_texture.h"
 
 struct TextureInfo {
-  /**
-   * \brief Is the texture clipped.
-   *
-   * Resources of clipped textures are freed and ignored when performing partial updates.
-   */
-  bool visible : 1;
-
   /**
    * \brief does this texture need a full update.
    *



More information about the Bf-blender-cvs mailing list