Commit: f90272b650a7c92b2b98281c6c94e2b860d7a8ce Author: Miguel Pozo Date: Mon Oct 17 13:05:53 2022 +0200 Branches: tmp-workbench-rewrite2 https://developer.blender.org/rBf90272b650a7c92b2b98281c6c94e2b860d7a8ce
clip planes (w.i.p.) =================================================================== M source/blender/draw/engines/workbench/workbench_engine.cc =================================================================== diff --git a/source/blender/draw/engines/workbench/workbench_engine.cc b/source/blender/draw/engines/workbench/workbench_engine.cc index 0de83b2c560..f6c7b600aae 100644 --- a/source/blender/draw/engines/workbench/workbench_engine.cc +++ b/source/blender/draw/engines/workbench/workbench_engine.cc @@ -53,8 +53,9 @@ class Instance { DRWState cull_state; DRWState clip_state; + Vector<float4> clip_planes = {}; + eContextObjectMode ob_mode; - eGPUShaderConfig clip_mode; View3DShading shading; @@ -91,8 +92,14 @@ class Instance { reset_taa = true; } clip_state = new_clip_state; - /* TODO(pragma37): Shouldn't clip_state be enough ? */ - clip_mode = context->sh_cfg; + + clip_planes.clear(); + if (clip_state & DRW_STATE_CLIP_PLANES) { + int plane_len = (RV3D_LOCK_FLAGS(rv3d) & RV3D_BOXCLIP) ? 4 : 6; + for (auto i : IndexRange(plane_len)) { + clip_planes.append(rv3d->clip[i]); + } + } if (rv3d && rv3d->rflag & RV3D_GPULIGHT_UPDATE) { reset_taa = true; @@ -516,6 +523,10 @@ class Instance { { resources.color_tx.acquire(int2(resources.depth_tx.size()), GPU_RGBA16F); + if (!clip_planes.is_empty()) { + view.set_clip_planes(clip_planes); + } + opaque_ps.draw_prepass(manager, view, resources.depth_tx); // transparent_ps.draw_prepass(manager, view, resources.depth_tx); // volume_ps.draw_prepass(manager, view, resources.depth_tx); _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs