Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen Bakker <j.bakker@atmind.nl>2018-04-16 09:20:12 +0300
committerJeroen Bakker <j.bakker@atmind.nl>2018-04-16 09:20:12 +0300
commit7ffc8bc25d1c248900ddf9838490485b2d98effb (patch)
treef2e52c5ba8268e2d2f269ad8461a9ebe342aab49 /source/blender/draw/intern
parent7bf252ddc0b31cac2b944ecdbfdff01a66c11b00 (diff)
parent9777cd2b1e65035085d6fe2f9d0f1923a48afe01 (diff)
Merge branch 'blender2.8' into blender2.8-workbench
Diffstat (limited to 'source/blender/draw/intern')
-rw-r--r--source/blender/draw/intern/DRW_render.h2
-rw-r--r--source/blender/draw/intern/draw_manager.c2
-rw-r--r--source/blender/draw/intern/draw_manager_exec.c10
3 files changed, 11 insertions, 3 deletions
diff --git a/source/blender/draw/intern/DRW_render.h b/source/blender/draw/intern/DRW_render.h
index 60e855108f9..66ca8971a46 100644
--- a/source/blender/draw/intern/DRW_render.h
+++ b/source/blender/draw/intern/DRW_render.h
@@ -404,7 +404,7 @@ typedef struct DRWMatrixState {
void DRW_viewport_init(const bContext *C);
void DRW_viewport_matrix_get(float mat[4][4], DRWViewportMatrixType type);
void DRW_viewport_matrix_get_all(DRWMatrixState *state);
-void DRW_viewport_matrix_override_set(float mat[4][4], DRWViewportMatrixType type);
+void DRW_viewport_matrix_override_set(const float mat[4][4], DRWViewportMatrixType type);
void DRW_viewport_matrix_override_set_all(DRWMatrixState *state);
void DRW_viewport_matrix_override_unset(DRWViewportMatrixType type);
void DRW_viewport_matrix_override_unset_all(void);
diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index f9968fdc16c..b8ed341e2c5 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -518,7 +518,7 @@ void DRW_viewport_matrix_get_all(DRWMatrixState *state)
memcpy(state, DST.view_data.matstate.mat, sizeof(DRWMatrixState));
}
-void DRW_viewport_matrix_override_set(float mat[4][4], DRWViewportMatrixType type)
+void DRW_viewport_matrix_override_set(const float mat[4][4], DRWViewportMatrixType type)
{
BLI_assert(type < DRW_MAT_COUNT);
copy_m4_m4(DST.view_data.matstate.mat[type], mat);
diff --git a/source/blender/draw/intern/draw_manager_exec.c b/source/blender/draw/intern/draw_manager_exec.c
index e69a1026815..6021863c690 100644
--- a/source/blender/draw/intern/draw_manager_exec.c
+++ b/source/blender/draw/intern/draw_manager_exec.c
@@ -390,7 +390,8 @@ void DRW_state_clip_planes_reset(void)
* BKE_boundbox_init_from_minmax(&bbox, (const float[3]){-1.0f, -1.0f, -1.0f}, (const float[3]){1.0f, 1.0f, 1.0f});
* for (int i = 0; i < 8; i++) {mul_project_m4_v3(viewprojinv, bbox.vec[i]);}
*/
-static void draw_frustum_boundbox_calc(const float (*projmat)[4], const float (*viewinv)[4], BoundBox *r_bbox)
+static void UNUSED_FUNCTION(draw_frustum_boundbox_calc)(
+ const float (*projmat)[4], const float (*viewinv)[4], BoundBox *r_bbox)
{
float screenvecs[3][3], loc[3], near, far, w_half, h_half;
bool is_persp = projmat[3][3] == 0.0f;
@@ -492,7 +493,14 @@ static void draw_clipping_setup_from_view(void)
/* Extract Clipping Planes */
BoundBox bbox;
+#if 0 /* does not currently work for all casses. */
draw_frustum_boundbox_calc(projmat, viewinv, &bbox);
+#else
+ BKE_boundbox_init_from_minmax(&bbox, (const float[3]){-1.0f, -1.0f, -1.0f}, (const float[3]){1.0f, 1.0f, 1.0f});
+ for (int i = 0; i < 8; i++) {
+ mul_project_m4_v3(DST.view_data.matstate.mat[DRW_MAT_PERSINV], bbox.vec[i]);
+ }
+#endif
/* Compute clip planes using the world space frustum corners. */
for (int p = 0; p < 6; p++) {