[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