[Bf-blender-cvs] [e3ae7d1f2f4] master: Fix T83942: improve error checking when trying to render high resolution volume
Jacques Lucke
noreply at git.blender.org
Fri Jan 8 12:14:23 CET 2021
Commit: e3ae7d1f2f4592a0cc9032e2056b2236a39795f8
Author: Jacques Lucke
Date: Fri Jan 8 12:14:12 2021 +0100
Branches: master
https://developer.blender.org/rBe3ae7d1f2f4592a0cc9032e2056b2236a39795f8
Fix T83942: improve error checking when trying to render high resolution volume
Reviewers: fclem
Differential Revision: https://developer.blender.org/D10032
===================================================================
M source/blender/draw/intern/draw_cache_impl_volume.c
===================================================================
diff --git a/source/blender/draw/intern/draw_cache_impl_volume.c b/source/blender/draw/intern/draw_cache_impl_volume.c
index 1119e0458a5..7244dfd12c3 100644
--- a/source/blender/draw/intern/draw_cache_impl_volume.c
+++ b/source/blender/draw/intern/draw_cache_impl_volume.c
@@ -330,9 +330,17 @@ static DRWVolumeGrid *volume_grid_cache_get(Volume *volume,
format,
GPU_DATA_FLOAT,
dense_grid.voxels);
- GPU_texture_swizzle_set(cache_grid->texture, (channels == 3) ? "rgb1" : "rrr1");
- GPU_texture_wrap_mode(cache_grid->texture, false, false);
- BKE_volume_dense_float_grid_clear(&dense_grid);
+ /* The texture can be null if the resolution along one axis is larger than
+ * GL_MAX_3D_TEXTURE_SIZE. */
+ if (cache_grid->texture != NULL) {
+ GPU_texture_swizzle_set(cache_grid->texture, (channels == 3) ? "rgb1" : "rrr1");
+ GPU_texture_wrap_mode(cache_grid->texture, false, false);
+ BKE_volume_dense_float_grid_clear(&dense_grid);
+ }
+ else {
+ MEM_freeN(dense_grid.voxels);
+ printf("Error: Could not allocate 3D texture for volume.\n");
+ }
}
/* Free grid from memory if it wasn't previously loaded. */
More information about the Bf-blender-cvs
mailing list