23 #define OVERLAY_EDIT_TEXT \
24 (V3D_OVERLAY_EDIT_EDGE_LEN | V3D_OVERLAY_EDIT_FACE_AREA | V3D_OVERLAY_EDIT_FACE_ANG | \
25 V3D_OVERLAY_EDIT_EDGE_ANG | V3D_OVERLAY_EDIT_INDICES)
101 for (
int i = 0; i < 2; i++) {
122 "isConstantScreenSizeNormals",
137 for (
int i = 0; i < 2; i++) {
146 for (
int j = 0; j < 2; j++) {
151 state = state_common;
182 int vert_mask[4] = {0xFF, 0xFF, 0xFF, 0xFF};
197 if (select_face && show_face_dots) {
214 struct GPUBatch *geom_tris, *geom_verts, *geom_edges, *geom_fcenter, *skin_roots, *circle;
215 DRWShadingGroup *vert_shgrp, *edge_shgrp, *fdot_shgrp, *face_shgrp, *skin_roots_shgrp;
217 bool has_edit_mesh_cage =
false;
218 bool has_skin_roots =
false;
226 has_edit_mesh_cage = editmesh_eval_cage && (editmesh_eval_cage != editmesh_eval_final);
246 if (has_skin_roots) {
279 if (do_occlude_wire || (do_in_front && draw_as_solid)) {
284 if (vnormals_do || lnormals_do || fnormals_do) {
CustomData interface, see also DNA_customdata_types.h.
int CustomData_get_offset(const struct CustomData *data, int type)
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)
#define SET_FLAG_FROM_TEST(value, test, flag)
#define SCE_SELECT_VERTEX
@ USER_GPU_FLAG_NO_EDIT_MODE_SMOOTH_WIRE
@ V3D_OVERLAY_EDIT_VERT_NORMALS
@ V3D_OVERLAY_EDIT_FREESTYLE_FACE
@ V3D_OVERLAY_EDIT_LOOP_NORMALS
@ V3D_OVERLAY_EDIT_FACE_NORMALS
@ V3D_OVERLAY_EDIT_CREASES
@ V3D_OVERLAY_EDIT_FREESTYLE_EDGE
@ V3D_OVERLAY_EDIT_CONSTANT_SCREEN_SIZE_NORMALS
@ V3D_OVERLAY_EDIT_FACE_DOT
@ V3D_OVERLAY_EDIT_OCCLUDE_WIRE
@ V3D_OVERLAY_EDIT_STATVIS
@ V3D_OVERLAY_EDIT_BWEIGHTS
#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 XRAY_FLAG_ENABLED(v3d)
void GPU_framebuffer_bind(GPUFrameBuffer *fb)
struct GPUShader GPUShader
struct GPUTexture GPUTexture
GPUBatch * DRW_cache_circle_get(void)
GPUBatch * DRW_cache_normal_arrow_get(void)
GPUBatch * DRW_cache_mesh_surface_get(Object *ob)
GPUBatch * DRW_cache_mesh_surface_mesh_analysis_get(Object *ob)
struct GPUBatch * DRW_mesh_batch_cache_get_edit_vertices(struct Mesh *me)
struct GPUBatch * DRW_mesh_batch_cache_get_edit_vnors(struct Mesh *me)
struct GPUBatch * DRW_mesh_batch_cache_get_edit_edges(struct Mesh *me)
struct GPUBatch * DRW_mesh_batch_cache_get_edit_skin_roots(struct Mesh *me)
struct GPUBatch * DRW_mesh_batch_cache_get_edit_triangles(struct Mesh *me)
struct GPUBatch * DRW_mesh_batch_cache_get_edit_facedots(struct Mesh *me)
struct GPUBatch * DRW_mesh_batch_cache_get_edit_lnors(struct Mesh *me)
DRWView * DRW_view_create_with_zoffset(const DRWView *parent_view, const RegionView3D *rv3d, float offset)
bool DRW_state_show_text(void)
bool DRW_state_is_fbo(void)
const DRWContextState * DRW_context_state_get(void)
DefaultTextureList * DRW_viewport_texture_list_get(void)
void DRW_shgroup_uniform_float_copy(DRWShadingGroup *shgroup, const char *name, const float value)
void DRW_shgroup_uniform_texture(DRWShadingGroup *shgroup, const char *name, const GPUTexture *tex)
const DRWView * DRW_view_default_get(void)
void DRW_shgroup_state_enable(DRWShadingGroup *shgroup, DRWState state)
void DRW_shgroup_call_instances_with_attrs(DRWShadingGroup *shgroup, Object *ob, struct GPUBatch *geom, struct GPUBatch *inst_attributes)
bool DRW_pass_is_empty(DRWPass *pass)
DRWShadingGroup * DRW_shgroup_create(struct GPUShader *shader, DRWPass *pass)
void DRW_shgroup_uniform_ivec4(DRWShadingGroup *shgroup, const char *name, const int *value, int arraysize)
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_ivec4_copy(DRWShadingGroup *shgroup, const char *name, const int *value)
void DRW_draw_pass(DRWPass *pass)
void DRW_view_set_active(const DRWView *view)
void DRW_text_edit_mesh_measure_stats(ARegion *region, View3D *v3d, Object *ob, const UnitSettings *unit)
ccl_gpu_kernel_postfix ccl_global float int int int int sh
ccl_device_inline float4 mask(const int4 &mask, const float4 &a)
static void overlay_edit_mesh_draw_components(OVERLAY_PassList *psl, OVERLAY_PrivateData *pd, bool in_front)
void OVERLAY_edit_mesh_cache_init(OVERLAY_Data *vedata)
void OVERLAY_edit_mesh_cache_populate(OVERLAY_Data *vedata, Object *ob)
void OVERLAY_edit_mesh_init(OVERLAY_Data *vedata)
static void overlay_edit_mesh_add_ob_to_pass(OVERLAY_PrivateData *pd, Object *ob, bool in_front)
#define OVERLAY_EDIT_TEXT
void OVERLAY_edit_mesh_draw(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_edit_mesh_edge(bool use_flat_interp)
GPUShader * OVERLAY_shader_edit_mesh_facedot(void)
GPUShader * OVERLAY_shader_edit_mesh_skin_root(void)
GPUShader * OVERLAY_shader_edit_mesh_vert(void)
GPUShader * OVERLAY_shader_edit_mesh_face(void)
GPUShader * OVERLAY_shader_edit_mesh_normal(void)
GPUShader * OVERLAY_shader_depth_only(void)
GPUShader * OVERLAY_shader_edit_mesh_analysis(void)
struct RegionView3D * rv3d
struct GPUUniformBuf * block_ubo
struct GPUTexture * weight_ramp
struct GPUTexture * depth
struct BMEditMesh * edit_mesh
OVERLAY_StorageList * stl
OVERLAY_FramebufferList * fbl
OVERLAY_TextureList * txl
struct GPUFrameBuffer * overlay_in_front_fb
struct GPUFrameBuffer * overlay_default_fb
DRWPass * edit_mesh_depth_ps[2]
DRWPass * edit_mesh_edges_ps[2]
DRWPass * edit_mesh_faces_ps[2]
DRWPass * edit_mesh_analysis_ps
DRWPass * edit_mesh_verts_ps[2]
DRWPass * edit_mesh_faces_cage_ps[2]
DRWPass * edit_mesh_normals_ps
OVERLAY_ShadingData shdata
DRWView * view_edit_faces_cage
DRWShadingGroup * edit_mesh_normals_grp
DRWView * view_edit_faces
DRWShadingGroup * edit_mesh_faces_cage_grp[2]
DRWShadingGroup * edit_mesh_depth_grp[2]
DRWShadingGroup * edit_mesh_edges_grp[2]
struct OVERLAY_PrivateData::@252 edit_mesh
DRWView * view_edit_edges
DRWShadingGroup * edit_mesh_analysis_grp
DRWShadingGroup * edit_mesh_verts_grp[2]
DRWShadingGroup * edit_mesh_faces_grp[2]
DRWShadingGroup * edit_mesh_skin_roots_grp[2]
DRWView * view_edit_verts
DRWShadingGroup * edit_mesh_facedots_grp[2]
struct OVERLAY_PrivateData * pd
struct GPUTexture * dummy_depth_tx
struct ToolSettings * toolsettings
float normals_constant_screen_size