DRW: Remove some usage of DRW_viewport_matrix_get
This commit is contained in:
parent
e1153c6a1a
commit
676e1e7b26
|
@ -90,8 +90,7 @@ typedef struct EXTERNAL_PrivateData {
|
|||
bool update_depth;
|
||||
bool view_updated;
|
||||
|
||||
float last_mat[4][4];
|
||||
float curr_mat[4][4];
|
||||
float last_persmat[4][4];
|
||||
} EXTERNAL_PrivateData; /* Transient data */
|
||||
|
||||
/* Functions */
|
||||
|
@ -126,13 +125,11 @@ static void external_engine_init(void *vedata)
|
|||
}
|
||||
|
||||
{
|
||||
float view[4][4];
|
||||
float win[4][4];
|
||||
DRW_viewport_matrix_get(view, DRW_MAT_VIEW);
|
||||
DRW_viewport_matrix_get(win, DRW_MAT_WIN);
|
||||
mul_m4_m4m4(stl->g_data->curr_mat, view, win);
|
||||
if (!equals_m4m4(stl->g_data->curr_mat, stl->g_data->last_mat)) {
|
||||
float persmat[4][4];
|
||||
DRW_view_persmat_get(NULL, persmat, false);
|
||||
if (!equals_m4m4(persmat, stl->g_data->last_persmat)) {
|
||||
stl->g_data->update_depth = true;
|
||||
copy_m4_m4(stl->g_data->last_persmat, persmat);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -270,8 +267,6 @@ static void external_draw_scene(void *vedata)
|
|||
// copy tmp buffer to default
|
||||
GPU_framebuffer_blit(fbl->depth_buffer_fb, 0, dfbl->depth_only_fb, 0, GPU_DEPTH_BIT);
|
||||
}
|
||||
|
||||
copy_m4_m4(stl->g_data->last_mat, stl->g_data->curr_mat);
|
||||
}
|
||||
|
||||
static void external_view_update(void *vedata)
|
||||
|
|
|
@ -32,7 +32,7 @@ void studiolight_update_world(WORKBENCH_PrivateData *wpd,
|
|||
WORKBENCH_UBO_World *wd)
|
||||
{
|
||||
float view_matrix[4][4], rot_matrix[4][4];
|
||||
DRW_viewport_matrix_get(view_matrix, DRW_MAT_VIEW);
|
||||
DRW_view_viewmat_get(NULL, view_matrix, false);
|
||||
|
||||
if (USE_WORLD_ORIENTATION(wpd)) {
|
||||
axis_angle_to_mat4_single(rot_matrix, 'Z', -wpd->shading.studiolight_rot_z);
|
||||
|
|
|
@ -154,7 +154,7 @@ void workbench_volume_cache_populate(WORKBENCH_Data *vedata,
|
|||
|
||||
if (use_slice) {
|
||||
float invviewmat[4][4];
|
||||
DRW_viewport_matrix_get(invviewmat, DRW_MAT_VIEWINV);
|
||||
DRW_view_viewmat_get(NULL, invviewmat, true);
|
||||
|
||||
const int axis = (sds->slice_axis == SLICE_AXIS_AUTO) ?
|
||||
axis_dominant_v3_single(invviewmat[2]) :
|
||||
|
|
|
@ -1212,7 +1212,7 @@ bool DRW_object_is_flat(Object *ob, int *axis)
|
|||
bool DRW_object_axis_orthogonal_to_view(Object *ob, int axis)
|
||||
{
|
||||
float ob_rot[3][3], invviewmat[4][4];
|
||||
DRW_viewport_matrix_get(invviewmat, DRW_MAT_VIEWINV);
|
||||
DRW_view_viewmat_get(NULL, invviewmat, true);
|
||||
BKE_object_rot_to_mat3(ob, ob_rot, true);
|
||||
float dot = dot_v3v3(ob_rot[axis], invviewmat[2]);
|
||||
if (fabsf(dot) < 1e-3) {
|
||||
|
|
|
@ -531,7 +531,7 @@ static void OBJECT_engine_init(void *vedata)
|
|||
|
||||
{
|
||||
/* Grid precompute */
|
||||
float invviewmat[4][4], invwinmat[4][4];
|
||||
float viewinv[4][4], wininv[4][4];
|
||||
float viewmat[4][4], winmat[4][4];
|
||||
View3D *v3d = draw_ctx->v3d;
|
||||
Scene *scene = draw_ctx->scene;
|
||||
|
@ -546,10 +546,10 @@ static void OBJECT_engine_init(void *vedata)
|
|||
const bool show_ortho_grid = (v3d->gridflag & V3D_SHOW_ORTHO_GRID) != 0;
|
||||
e_data.draw_grid = show_axis_x || show_axis_y || show_axis_z || show_floor;
|
||||
|
||||
DRW_viewport_matrix_get(winmat, DRW_MAT_WIN);
|
||||
DRW_viewport_matrix_get(viewmat, DRW_MAT_VIEW);
|
||||
DRW_viewport_matrix_get(invwinmat, DRW_MAT_WININV);
|
||||
DRW_viewport_matrix_get(invviewmat, DRW_MAT_VIEWINV);
|
||||
DRW_view_winmat_get(NULL, winmat, false);
|
||||
DRW_view_winmat_get(NULL, wininv, true);
|
||||
DRW_view_viewmat_get(NULL, viewmat, false);
|
||||
DRW_view_viewmat_get(NULL, viewinv, true);
|
||||
|
||||
/* if perps */
|
||||
if (winmat[3][3] == 0.0f) {
|
||||
|
@ -561,7 +561,7 @@ static void OBJECT_engine_init(void *vedata)
|
|||
|
||||
/* convert the view vectors to view space */
|
||||
for (int i = 0; i < 2; i++) {
|
||||
mul_m4_v4(invwinmat, viewvecs[i]);
|
||||
mul_m4_v4(wininv, viewvecs[i]);
|
||||
mul_v3_fl(viewvecs[i], 1.0f / viewvecs[i][2]); /* perspective divide */
|
||||
}
|
||||
|
||||
|
@ -623,8 +623,8 @@ static void OBJECT_engine_init(void *vedata)
|
|||
e_data.zpos_flag = SHOW_AXIS_Z;
|
||||
|
||||
float zvec[3], campos[3];
|
||||
negate_v3_v3(zvec, invviewmat[2]);
|
||||
copy_v3_v3(campos, invviewmat[3]);
|
||||
negate_v3_v3(zvec, viewinv[2]);
|
||||
copy_v3_v3(campos, viewinv[3]);
|
||||
|
||||
/* z axis : chose the most facing plane */
|
||||
if (fabsf(zvec[0]) < fabsf(zvec[1])) {
|
||||
|
@ -2437,12 +2437,11 @@ static void DRW_shgroup_volume_extra(OBJECT_ShadingGroupList *sgl,
|
|||
|
||||
if (sds->slice_method == MOD_SMOKE_SLICE_AXIS_ALIGNED &&
|
||||
sds->axis_slice_method == AXIS_SLICE_SINGLE) {
|
||||
float invviewmat[4][4];
|
||||
DRW_viewport_matrix_get(invviewmat, DRW_MAT_VIEWINV);
|
||||
float viewinv[4][4];
|
||||
DRW_view_viewmat_get(NULL, viewinv, true);
|
||||
|
||||
const int axis = (sds->slice_axis == SLICE_AXIS_AUTO) ?
|
||||
axis_dominant_v3_single(invviewmat[2]) :
|
||||
sds->slice_axis - 1;
|
||||
const int axis = (sds->slice_axis == SLICE_AXIS_AUTO) ? axis_dominant_v3_single(viewinv[2]) :
|
||||
sds->slice_axis - 1;
|
||||
slice_axis = axis;
|
||||
line_count /= sds->res[axis];
|
||||
}
|
||||
|
|
|
@ -219,7 +219,7 @@ static void overlay_cache_init(void *vedata)
|
|||
|
||||
float winmat[4][4];
|
||||
float viewdist = rv3d->dist;
|
||||
DRW_viewport_matrix_get(winmat, DRW_MAT_WIN);
|
||||
DRW_view_winmat_get(NULL, winmat, false);
|
||||
/* special exception for ortho camera (viewdist isnt used for perspective cameras) */
|
||||
if (rv3d->persp == RV3D_CAMOB && rv3d->is_persp == false) {
|
||||
viewdist = 1.0f / max_ff(fabsf(rv3d->winmat[0][0]), fabsf(rv3d->winmat[1][1]));
|
||||
|
|
Loading…
Reference in New Issue