77 for (
int xray = 0; xray < (is_material_shmode ? 1 : 2); xray++) {
95 for (
int use_coloring = 0; use_coloring < 2; use_coloring++) {
122 if (is_material_shmode) {
124 for (
int use_coloring = 0; use_coloring < 2; use_coloring++) {
142 float dupli_mat[4][4];
143 if ((dupli_parent !=
NULL) && (dupli_object !=
NULL)) {
147 if (collection !=
NULL) {
164 const bool use_coloring =
true;
181 bool has_edit_mesh_cage =
false;
182 bool is_mesh_verts_only =
false;
245 if (dupli && !init_dupli) {
259 bool draw_as_points =
true;
266 if (draw_as_points) {
280 if (use_wire && (!is_mesh || (!is_edit_mode || has_edit_mesh_cage))) {
284 const bool use_coloring = (use_wire && !is_edit_mode && !is_sculpt_mode &&
285 !has_edit_mesh_cage);
289 if (geom || use_sculpt_pbvh) {
290 if (use_sculpt_pbvh) {
293 else if (all_wires) {
297 shgrp = pd->
wires_grp[is_xray][use_coloring];
304 else if (use_sculpt_pbvh) {
317 else if (is_mesh && (!is_edit_mode || has_edit_mesh_cage)) {
323 if (is_mesh_verts_only) {
display list (or rather multi purpose list) stuff.
bool BKE_displist_has_faces(const struct ListBase *lb)
General operations, lookup, etc. for blender objects.
bool BKE_sculptsession_use_pbvh_draw(const struct Object *ob, const struct View3D *v3d)
void mul_m4_m4m4(float R[4][4], const float A[4][4], const float B[4][4])
bool invert_m4(float R[4][4])
void unit_m4(float m[4][4])
void copy_m4_m4(float m1[4][4], const float m2[4][4])
MINLINE void sub_v3_v3(float r[3], const float a[3])
Object groups, one object can be in many groups at once.
@ V3D_SHADING_OBJECT_COLOR
@ V3D_SHADING_RANDOM_COLOR
@ VOLUME_WIREFRAME_POINTS
#define DRW_shgroup_call_no_cull(shgroup, geom, ob)
@ DRW_STATE_DEPTH_LESS_EQUAL
@ DRW_STATE_FIRST_VERTEX_CONVENTION
#define DRW_PASS_CREATE(pass, state)
#define DRW_shgroup_call(shgroup, geom, ob)
struct GPUShader GPUShader
struct GPUTexture GPUTexture
GPUBatch * DRW_cache_curve_edge_wire_get(Object *ob)
GPUBatch * DRW_cache_mesh_all_verts_get(Object *ob)
GPUBatch * DRW_cache_object_face_wireframe_get(Object *ob)
GPUBatch * DRW_cache_surf_edge_wire_get(Object *ob)
GPUBatch * DRW_cache_mesh_loose_edges_get(Object *ob)
GPUBatch * DRW_cache_particles_get_hair(Object *object, ParticleSystem *psys, ModifierData *md)
GPUBatch * DRW_cache_text_loose_edges_get(Object *ob)
int DRW_object_wire_theme_get(Object *ob, ViewLayer *view_layer, float **r_color)
DRWView * DRW_view_create_with_zoffset(const DRWView *parent_view, const RegionView3D *rv3d, float offset)
struct Object * DRW_object_get_dupli_parent(const Object *UNUSED(ob))
bool DRW_state_is_select(void)
bool DRW_state_is_depth(void)
bool DRW_object_is_in_edit_mode(const Object *ob)
bool DRW_state_is_fbo(void)
struct DupliObject * DRW_object_get_dupli(const Object *UNUSED(ob))
bool DRW_object_is_visible_psys_in_active_context(const Object *object, const ParticleSystem *psys)
const DRWContextState * DRW_context_state_get(void)
bool DRW_state_is_image_render(void)
void DRW_shgroup_uniform_float_copy(DRWShadingGroup *shgroup, const char *name, const float value)
void DRW_shgroup_uniform_block(DRWShadingGroup *shgroup, const char *name, const GPUUniformBuf *ubo)
const DRWView * DRW_view_default_get(void)
void DRW_shgroup_uniform_vec4_array_copy(DRWShadingGroup *shgroup, const char *name, const float(*value)[4], int arraysize)
void DRW_shgroup_call_sculpt(DRWShadingGroup *shgroup, Object *ob, bool use_wire, bool use_mask)
DRWShadingGroup * DRW_shgroup_create(struct GPUShader *shader, DRWPass *pass)
DRWShadingGroup * DRW_shgroup_create_sub(DRWShadingGroup *shgroup)
void DRW_shgroup_uniform_texture_ref(DRWShadingGroup *shgroup, const char *name, GPUTexture **tex)
void DRW_shgroup_uniform_bool_copy(DRWShadingGroup *shgroup, const char *name, const bool value)
void DRW_view_set_active(DRWView *view)
void DRW_draw_pass(DRWPass *pass)
GPUShader * OVERLAY_shader_wireframe(bool custom_bias)
GPUShader * OVERLAY_shader_wireframe_select(void)
static void wireframe_hair_cache_populate(OVERLAY_Data *vedata, Object *ob, ParticleSystem *psys)
void OVERLAY_wireframe_in_front_draw(OVERLAY_Data *data)
void OVERLAY_wireframe_draw(OVERLAY_Data *data)
void OVERLAY_wireframe_cache_populate(OVERLAY_Data *vedata, Object *ob, OVERLAY_DupliData *dupli, bool init_dupli)
void OVERLAY_wireframe_cache_init(OVERLAY_Data *vedata)
void OVERLAY_wireframe_init(OVERLAY_Data *vedata)
struct Mesh * mesh_eval_final
struct Mesh * mesh_eval_cage
struct ViewLayer * view_layer
struct RegionView3D * rv3d
struct GPUUniformBuf * block_ubo
struct BMEditMesh * edit_mesh
OVERLAY_StorageList * stl
OVERLAY_TextureList * txl
struct GPUBatch * wire_geom
DRWShadingGroup * wire_shgrp
DRWPass * wireframe_xray_ps
OVERLAY_ShadingData shdata
struct OVERLAY_PrivateData::@239 antialiasing
DRWShadingGroup * wires_all_grp[2][2]
DRWShadingGroup * wires_hair_grp[2][2]
DRWShadingGroup * wires_grp[2][2]
DRWShadingGroup * wires_sculpt_grp[2]
struct OVERLAY_PrivateData * pd
struct GPUTexture * dummy_depth_tx
struct GPUTexture * temp_depth_tx
struct CurveCache * curve_cache
struct Collection * instance_collection
struct SculptSession * sculpt
float wireframe_threshold