Merge branch 'blender-v2.83-release'
This commit is contained in:
commit
06860ba29b
@ -137,9 +137,7 @@ void OVERLAY_armature_cache_init(OVERLAY_Data *vedata)
|
||||
pd->armature.do_pose_fade_geom = pd->armature.do_pose_xray &&
|
||||
((draw_ctx->object_mode & OB_MODE_WEIGHT_PAINT) == 0) &&
|
||||
draw_ctx->object_pose != NULL;
|
||||
|
||||
DRWState state = DRW_STATE_WRITE_COLOR | DRW_STATE_DEPTH_LESS_EQUAL | DRW_STATE_BLEND_ADD;
|
||||
DRW_PASS_CREATE(psl->armature_transp_ps, state | pd->clipping_state);
|
||||
DRWState state;
|
||||
|
||||
if (pd->armature.do_pose_fade_geom) {
|
||||
state = DRW_STATE_WRITE_COLOR | DRW_STATE_DEPTH_EQUAL | DRW_STATE_BLEND_ALPHA;
|
||||
@ -163,17 +161,21 @@ void OVERLAY_armature_cache_init(OVERLAY_Data *vedata)
|
||||
|
||||
OVERLAY_InstanceFormats *formats = OVERLAY_shader_instance_formats_get();
|
||||
OVERLAY_ArmatureCallBuffers *cb = &pd->armature_call_buffers[i];
|
||||
DRWPass **p_armature_ps = &psl->armature_ps[i];
|
||||
|
||||
cb->custom_shapes_ghash = BLI_ghash_ptr_new(__func__);
|
||||
cb->custom_shapes_transp_ghash = BLI_ghash_ptr_new(__func__);
|
||||
|
||||
DRWPass **p_armature_ps = &psl->armature_ps[i];
|
||||
DRWState infront_state = (DRW_state_is_select() && (i == 1)) ? DRW_STATE_IN_FRONT_SELECT : 0;
|
||||
state = DRW_STATE_WRITE_COLOR | DRW_STATE_DEPTH_LESS_EQUAL | DRW_STATE_WRITE_DEPTH;
|
||||
DRW_PASS_CREATE(*p_armature_ps, state | pd->clipping_state | infront_state);
|
||||
|
||||
DRWPass *armature_ps = *p_armature_ps;
|
||||
|
||||
DRWPass **p_armature_trans_ps = &psl->armature_transp_ps[i];
|
||||
state = DRW_STATE_WRITE_COLOR | DRW_STATE_DEPTH_LESS_EQUAL | DRW_STATE_BLEND_ADD;
|
||||
DRW_PASS_CREATE(*p_armature_trans_ps, state | pd->clipping_state);
|
||||
DRWPass *armature_transp_ps = *p_armature_trans_ps;
|
||||
|
||||
#define BUF_INSTANCE DRW_shgroup_call_buffer_instance
|
||||
#define BUF_LINE(grp, format) DRW_shgroup_call_buffer(grp, format, GPU_PRIM_LINES)
|
||||
|
||||
@ -231,7 +233,7 @@ void OVERLAY_armature_cache_init(OVERLAY_Data *vedata)
|
||||
DRW_shgroup_uniform_block_persistent(grp, "globalsBlock", G_draw.block_ubo);
|
||||
cb->dof_lines = BUF_INSTANCE(grp, format, DRW_cache_bone_dof_lines_get());
|
||||
|
||||
grp = DRW_shgroup_create(sh, psl->armature_transp_ps);
|
||||
grp = DRW_shgroup_create(sh, armature_transp_ps);
|
||||
DRW_shgroup_uniform_block_persistent(grp, "globalsBlock", G_draw.block_ubo);
|
||||
cb->dof_sphere = BUF_INSTANCE(grp, format, DRW_cache_bone_dof_sphere_get());
|
||||
}
|
||||
@ -270,7 +272,7 @@ void OVERLAY_armature_cache_init(OVERLAY_Data *vedata)
|
||||
format = formats->instance_bone_envelope_distance;
|
||||
|
||||
sh = OVERLAY_shader_armature_envelope(false);
|
||||
grp = DRW_shgroup_create(sh, psl->armature_transp_ps);
|
||||
grp = DRW_shgroup_create(sh, armature_transp_ps);
|
||||
DRW_shgroup_uniform_block_persistent(grp, "globalsBlock", G_draw.block_ubo);
|
||||
DRW_shgroup_uniform_bool_copy(grp, "isDistance", true);
|
||||
DRW_shgroup_state_enable(grp, DRW_STATE_CULL_FRONT);
|
||||
@ -2255,7 +2257,7 @@ void OVERLAY_armature_draw(OVERLAY_Data *vedata)
|
||||
{
|
||||
OVERLAY_PassList *psl = vedata->psl;
|
||||
|
||||
DRW_draw_pass(psl->armature_transp_ps);
|
||||
DRW_draw_pass(psl->armature_transp_ps[0]);
|
||||
DRW_draw_pass(psl->armature_ps[0]);
|
||||
}
|
||||
|
||||
@ -2264,6 +2266,7 @@ void OVERLAY_armature_in_front_draw(OVERLAY_Data *vedata)
|
||||
OVERLAY_PassList *psl = vedata->psl;
|
||||
|
||||
if (psl->armature_bone_select_ps == NULL || DRW_state_is_select()) {
|
||||
DRW_draw_pass(psl->armature_transp_ps[1]);
|
||||
DRW_draw_pass(psl->armature_ps[1]);
|
||||
}
|
||||
}
|
||||
@ -2285,6 +2288,7 @@ void OVERLAY_pose_draw(OVERLAY_Data *vedata)
|
||||
GPU_framebuffer_clear_depth(fbl->overlay_line_in_front_fb, 1.0f);
|
||||
}
|
||||
|
||||
DRW_draw_pass(psl->armature_transp_ps[1]);
|
||||
DRW_draw_pass(psl->armature_ps[1]);
|
||||
}
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ typedef struct OVERLAY_PassList {
|
||||
DRWPass *antialiasing_ps;
|
||||
DRWPass *armature_ps[2];
|
||||
DRWPass *armature_bone_select_ps;
|
||||
DRWPass *armature_transp_ps;
|
||||
DRWPass *armature_transp_ps[2];
|
||||
DRWPass *background_ps;
|
||||
DRWPass *clipping_frustum_ps;
|
||||
DRWPass *edit_curve_wire_ps[2];
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
#include "DEG_depsgraph.h"
|
||||
|
||||
#include "ED_object.h"
|
||||
#include "ED_screen.h"
|
||||
#include "PIL_time.h"
|
||||
|
||||
@ -154,7 +155,7 @@ static bool fluid_initjob(
|
||||
{
|
||||
FluidModifierData *mmd = NULL;
|
||||
FluidDomainSettings *mds;
|
||||
Object *ob = CTX_data_active_object(C);
|
||||
Object *ob = ED_object_active_context(C);
|
||||
|
||||
mmd = (FluidModifierData *)BKE_modifiers_findby_type(ob, eModifierType_Fluid);
|
||||
if (!mmd) {
|
||||
@ -170,7 +171,7 @@ static bool fluid_initjob(
|
||||
job->bmain = CTX_data_main(C);
|
||||
job->scene = CTX_data_scene(C);
|
||||
job->depsgraph = CTX_data_depsgraph_pointer(C);
|
||||
job->ob = CTX_data_active_object(C);
|
||||
job->ob = ob;
|
||||
job->mmd = mmd;
|
||||
job->type = op->type->idname;
|
||||
job->name = op->type->name;
|
||||
@ -616,7 +617,7 @@ static int fluid_free_exec(struct bContext *C, struct wmOperator *op)
|
||||
{
|
||||
FluidModifierData *mmd = NULL;
|
||||
FluidDomainSettings *mds;
|
||||
Object *ob = CTX_data_active_object(C);
|
||||
Object *ob = ED_object_active_context(C);
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
|
||||
/*
|
||||
@ -679,7 +680,7 @@ static int fluid_pause_exec(struct bContext *C, struct wmOperator *op)
|
||||
{
|
||||
FluidModifierData *mmd = NULL;
|
||||
FluidDomainSettings *mds;
|
||||
Object *ob = CTX_data_active_object(C);
|
||||
Object *ob = ED_object_active_context(C);
|
||||
|
||||
/*
|
||||
* Get modifier data
|
||||
|
Loading…
Reference in New Issue
Block a user