30 EmptyInstanceBuf axes_buf = {selection_type_,
"object_axes"};
31 EmptyInstanceBuf xform_origins_buf = {selection_type_,
"xform_origins"};
42 xform_origins_buf.clear();
54 Object *ob = ob_ref.object;
59 const bool use_display_axis = (ob->
dtx &
OB_AXIS) != 0;
61 (
state.scene->toolsettings->transform_flag &
64 if (!use_display_axis && !use_xform_origins_axis) {
69 if (use_xform_origins_axis) {
70 data.color_ =
float4(0.15f, 0.15f, 0.15f, 0.7f);
74 axes_buf.append(
data, res.select_id(ob_ref));
85 ps_.shader_set(res.shaders->extra_shape.get());
90 axes_buf.end_sync(ps_, res.shapes.arrows.get());
95 xform_origins_buf.end_sync(xform_origins_ps, res.shapes.arrows.get());
105 manager.submit(ps_,
view);
#define BASE_SELECTED(v3d, base)
void GPU_framebuffer_bind(blender::gpu::FrameBuffer *fb)
BMesh const char void * data
void state_set(DRWState state, int clip_plane_count=0)
detail::PassBase< command::DrawCommandBuf > Sub
Axes(const SelectionType selection_type)
void draw_line(Framebuffer &framebuffer, Manager &manager, View &view) final
void end_sync(Resources &res, const State &state) final
void object_sync(Manager &, const ObjectRef &ob_ref, Resources &res, const State &state) final
void begin_sync(Resources &, const State &state) final
#define DRW_CLIPPING_UBO_SLOT
#define OVERLAY_GLOBALS_SLOT
@ DRW_STATE_DEPTH_LESS_EQUAL
select::SelectionType SelectionType
static bool is_from_dupli_or_set(const Object *ob)
detail::Pass< command::DrawCommandBuf > PassSimple
VecBase< float, 4 > float4
static const ID select_invalid_id()