diff options
author | Jeroen Bakker <j.bakker@atmind.nl> | 2018-04-16 09:20:12 +0300 |
---|---|---|
committer | Jeroen Bakker <j.bakker@atmind.nl> | 2018-04-16 09:20:12 +0300 |
commit | 7ffc8bc25d1c248900ddf9838490485b2d98effb (patch) | |
tree | f2e52c5ba8268e2d2f269ad8461a9ebe342aab49 /source/blender/draw/intern | |
parent | 7bf252ddc0b31cac2b944ecdbfdff01a66c11b00 (diff) | |
parent | 9777cd2b1e65035085d6fe2f9d0f1923a48afe01 (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.h | 2 | ||||
-rw-r--r-- | source/blender/draw/intern/draw_manager.c | 2 | ||||
-rw-r--r-- | source/blender/draw/intern/draw_manager_exec.c | 10 |
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++) { |