62 for (
int xray = 0; xray < (is_material_shmode ? 1 : 2); xray++) {
80 for (
int use_coloring = 0; use_coloring < 2; use_coloring++) {
107 if (is_material_shmode) {
109 for (
int use_coloring = 0; use_coloring < 2; use_coloring++) {
127 float dupli_mat[4][4];
128 if ((dupli_parent !=
NULL) && (dupli_object !=
NULL)) {
132 if (collection !=
NULL) {
149 const bool use_coloring =
true;
166 bool has_edit_mesh_cage =
false;
167 bool is_mesh_verts_only =
false;
175 has_edit_mesh_cage = editmesh_eval_cage && (editmesh_eval_cage != editmesh_eval_final);
176 if (editmesh_eval_final) {
177 me = editmesh_eval_final;
223 if (dupli && !init_dupli) {
251 bool draw_as_points =
true;
258 if (draw_as_points) {
275 if (use_wire && (!is_mesh || (!is_edit_mode || has_edit_mesh_cage))) {
283 const bool use_coloring = (use_wire && !is_edit_mode && !is_sculpt_mode &&
284 !has_edit_mesh_cage && !instance_parent_in_edit_mode);
287 if (geom || use_sculpt_pbvh) {
288 if (use_sculpt_pbvh) {
291 else if (all_wires) {
295 shgrp = pd->
wires_grp[is_xray][use_coloring];
302 else if (use_sculpt_pbvh) {
310 else if (is_mesh && (!is_edit_mode || has_edit_mesh_cage)) {
316 if (is_mesh_verts_only) {
display list (or rather multi purpose list) stuff.
General operations, lookup, etc. for blender objects.
struct Mesh * BKE_object_get_editmesh_eval_final(const struct Object *object)
struct Mesh * BKE_object_get_editmesh_eval_cage(const struct Object *object)
bool BKE_sculptsession_use_pbvh_draw(const struct Object *ob, const struct RegionView3D *rv3d)
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_uniform_block(shgroup, name, ubo)
#define DRW_shgroup_call(shgroup, geom, ob)
struct GPUShader GPUShader
struct GPUTexture GPUTexture
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert a color
GPUBatch * DRW_cache_curve_edge_wire_get(Object *ob)
GPUBatch * DRW_cache_text_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)
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)
const DRWView * DRW_view_default_get(void)
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_shgroup_uniform_mat4_copy(DRWShadingGroup *shgroup, const char *name, const float(*value)[4])
void DRW_draw_pass(DRWPass *pass)
void DRW_view_set_active(const DRWView *view)
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 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::@249 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 Collection * instance_collection
struct SculptSession * sculpt
float wireframe_threshold