[Bf-blender-cvs] [29ff1539e1a] new-object-types: Fix failure to display volumes with negative start location
Brecht Van Lommel
noreply at git.blender.org
Tue Feb 25 14:27:22 CET 2020
Commit: 29ff1539e1af79d0f248c6b3db1ac59eb2605bf1
Author: Brecht Van Lommel
Date: Tue Feb 25 14:25:29 2020 +0100
Branches: new-object-types
https://developer.blender.org/rB29ff1539e1af79d0f248c6b3db1ac59eb2605bf1
Fix failure to display volumes with negative start location
===================================================================
M intern/cycles/blender/blender_image.cpp
M intern/cycles/blender/blender_util.h
M source/blender/blenkernel/BKE_volume_render.h
M source/blender/blenkernel/intern/volume_render.cc
M source/blender/draw/intern/draw_cache_impl_volume.c
===================================================================
diff --git a/intern/cycles/blender/blender_image.cpp b/intern/cycles/blender/blender_image.cpp
index 87022ea9b57..90da67862b1 100644
--- a/intern/cycles/blender/blender_image.cpp
+++ b/intern/cycles/blender/blender_image.cpp
@@ -88,7 +88,7 @@ void BlenderSession::builtin_image_info(const string &builtin_name,
metadata.builtin_free_cache = !b_grid.is_loaded();
/* Compute grid dimensions. */
- size_t min[3], max[3];
+ ssize_t min[3], max[3];
if (!BKE_volume_grid_dense_bounds(volume, volume_grid, min, max)) {
return;
}
@@ -312,7 +312,7 @@ bool BlenderSession::builtin_image_float_pixels(const string &builtin_name,
VolumeGrid *volume_grid = (VolumeGrid *)b_grid.ptr.data;
/* TODO: don't compute resolution twice */
- size_t min[3], max[3];
+ ssize_t min[3], max[3];
if (BKE_volume_grid_dense_bounds(volume, volume_grid, min, max)) {
BKE_volume_grid_dense_voxels(volume, volume_grid, min, max, pixels);
}
diff --git a/intern/cycles/blender/blender_util.h b/intern/cycles/blender/blender_util.h
index e6807496e07..68956b2e858 100644
--- a/intern/cycles/blender/blender_util.h
+++ b/intern/cycles/blender/blender_util.h
@@ -40,16 +40,16 @@ float *BKE_image_get_float_pixels_for_frame(void *image, int frame, int tile);
struct VolumeGrid;
bool BKE_volume_grid_dense_bounds(const Volume *volume,
VolumeGrid *volume_grid,
- size_t min[3],
- size_t max[3]);
+ ssize_t min[3],
+ ssize_t max[3]);
void BKE_volume_grid_dense_transform_matrix(const VolumeGrid *volume_grid,
- const size_t min[3],
- const size_t max[3],
+ const ssize_t min[3],
+ const ssize_t max[3],
float mat[4][4]);
void BKE_volume_grid_dense_voxels(const Volume *volume,
VolumeGrid *volume_grid,
- const size_t min[3],
- const size_t max[3],
+ const ssize_t min[3],
+ const ssize_t max[3],
float *voxels);
}
diff --git a/source/blender/blenkernel/BKE_volume_render.h b/source/blender/blenkernel/BKE_volume_render.h
index acc2236f313..eacc50ac674 100644
--- a/source/blender/blenkernel/BKE_volume_render.h
+++ b/source/blender/blenkernel/BKE_volume_render.h
@@ -38,16 +38,16 @@ struct VolumeGrid;
bool BKE_volume_grid_dense_bounds(const struct Volume *volume,
struct VolumeGrid *volume_grid,
- size_t min[3],
- size_t max[3]);
+ ssize_t min[3],
+ ssize_t max[3]);
void BKE_volume_grid_dense_transform_matrix(const struct VolumeGrid *volume_grid,
- const size_t min[3],
- const size_t max[3],
+ const ssize_t min[3],
+ const ssize_t max[3],
float mat[4][4]);
void BKE_volume_grid_dense_voxels(const struct Volume *volume,
struct VolumeGrid *volume_grid,
- const size_t min[3],
- const size_t max[3],
+ const ssize_t min[3],
+ const ssize_t max[3],
float *voxels);
/* Wireframe */
diff --git a/source/blender/blenkernel/intern/volume_render.cc b/source/blender/blenkernel/intern/volume_render.cc
index 8e03895a794..0902777eca6 100644
--- a/source/blender/blenkernel/intern/volume_render.cc
+++ b/source/blender/blenkernel/intern/volume_render.cc
@@ -41,8 +41,8 @@
bool BKE_volume_grid_dense_bounds(const Volume *volume,
VolumeGrid *volume_grid,
- size_t min[3],
- size_t max[3])
+ ssize_t min[3],
+ ssize_t max[3])
{
#ifdef WITH_OPENVDB
openvdb::GridBase::ConstPtr grid = BKE_volume_grid_openvdb_for_read(volume, volume_grid);
@@ -73,8 +73,8 @@ bool BKE_volume_grid_dense_bounds(const Volume *volume,
/* Transform matrix from unit cube to object space, for 3D texture sampling. */
void BKE_volume_grid_dense_transform_matrix(const VolumeGrid *volume_grid,
- const size_t min[3],
- const size_t max[3],
+ const ssize_t min[3],
+ const ssize_t max[3],
float mat[4][4])
{
#ifdef WITH_OPENVDB
@@ -96,8 +96,8 @@ void BKE_volume_grid_dense_transform_matrix(const VolumeGrid *volume_grid,
void BKE_volume_grid_dense_voxels(const Volume *volume,
VolumeGrid *volume_grid,
- const size_t min[3],
- const size_t max[3],
+ const ssize_t min[3],
+ const ssize_t max[3],
float *voxels)
{
#ifdef WITH_OPENVDB
diff --git a/source/blender/draw/intern/draw_cache_impl_volume.c b/source/blender/draw/intern/draw_cache_impl_volume.c
index 72dd0331eb0..e32ef8cbc2b 100644
--- a/source/blender/draw/intern/draw_cache_impl_volume.c
+++ b/source/blender/draw/intern/draw_cache_impl_volume.c
@@ -229,7 +229,7 @@ static DRWVolumeGrid *volume_grid_cache_get(Volume *volume,
BKE_volume_grid_load(volume, grid);
/* Compute dense voxel grid size. */
- size_t dense_min[3], dense_max[3];
+ ssize_t dense_min[3], dense_max[3];
if (BKE_volume_grid_dense_bounds(volume, grid, dense_min, dense_max)) {
cache_grid->resolution[0] = dense_max[0] - dense_min[0];
cache_grid->resolution[1] = dense_max[1] - dense_min[1];
More information about the Bf-blender-cvs
mailing list