[Bf-blender-cvs] [f11a80d83b3] temp-gpu-image-engine: Detected a crash.

Jeroen Bakker noreply at git.blender.org
Fri Nov 26 16:04:12 CET 2021


Commit: f11a80d83b3dd769ee04ce0cf98513a6aaca2e5b
Author: Jeroen Bakker
Date:   Fri Nov 26 14:17:39 2021 +0100
Branches: temp-gpu-image-engine
https://developer.blender.org/rBf11a80d83b3dd769ee04ce0cf98513a6aaca2e5b

Detected a crash.

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

M	source/blender/draw/engines/image/image_drawing_mode_screen_space.hh
M	source/blender/draw/engines/image/image_private.hh
M	source/blender/draw/engines/image/image_space_image.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 36b9f5a2788..7ce77980bc4 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
@@ -32,6 +32,8 @@ using namespace blender::bke::image::partial_update;
 
 /* TODO: Should we use static class functions in stead of a namespace. */
 namespace clipping {
+
+/** \brief Update the texture slot uv and screen space bounds. */
 static void update_texture_slots_bounds(const AbstractSpaceAccessor *space, IMAGE_PrivateData *pd)
 {
   // each texture
diff --git a/source/blender/draw/engines/image/image_private.hh b/source/blender/draw/engines/image/image_private.hh
index 519f312809c..1099d6e54d6 100644
--- a/source/blender/draw/engines/image/image_private.hh
+++ b/source/blender/draw/engines/image/image_private.hh
@@ -67,6 +67,8 @@ struct IMAGE_ScreenSpaceTextureInfo {
 
   /** \brief area of the texture in screen space. */
   rctf clipping_bounds;
+  /** \brief uv area of the texture. */
+  rctf uv_bounds;
 };
 
 struct IMAGE_PrivateData {
@@ -80,7 +82,8 @@ struct IMAGE_PrivateData {
 
   /* Data used in screen space drawing mode. */
   struct {
-    /* TODO: partial_update_user isn't freed with the space leading to a memory leak. */
+    /* TODO: partial_update_user isn't freed with the space leading to a memory leak.
+     * port mechanism from tmp-eevee-rewrite to master.*/
     struct PartialUpdateUser *partial_update_user;
     const struct Image *partial_update_image;
     IMAGE_ScreenSpaceTextureInfo texture_infos[SCREEN_SPACE_DRAWING_MODE_TEXTURE_LEN];
diff --git a/source/blender/draw/engines/image/image_space_image.hh b/source/blender/draw/engines/image/image_space_image.hh
index 7728a963254..9fe0e11137e 100644
--- a/source/blender/draw/engines/image/image_space_image.hh
+++ b/source/blender/draw/engines/image/image_space_image.hh
@@ -106,9 +106,14 @@ class SpaceImageAccessor : public AbstractSpaceAccessor {
   {
     return false;
   }
-  DRWView *create_view_override(const ARegion *UNUSED(region)) override
+
+  DRWView *create_view_override(const ARegion *region) override
   {
-    return nullptr;
+    /* Setup a screen pixel view. The backdrop of the node editor doesn't follow the region. */
+    float winmat[4][4], viewmat[4][4];
+    orthographic_m4(viewmat, 0.0, region->winx, 0.0, region->winy, 0.0, 1.0);
+    unit_m4(winmat);
+    return DRW_view_create(viewmat, winmat, nullptr, nullptr, nullptr);
   }
 
   void get_gpu_textures(Image *image,



More information about the Bf-blender-cvs mailing list