Blender
V3.3
|
Mesh API for render engines. More...
#include <optional>
#include "MEM_guardedalloc.h"
#include "BLI_bitmap.h"
#include "BLI_buffer.h"
#include "BLI_edgehash.h"
#include "BLI_index_range.hh"
#include "BLI_listbase.h"
#include "BLI_map.hh"
#include "BLI_math_bits.h"
#include "BLI_math_vector.h"
#include "BLI_span.hh"
#include "BLI_string.h"
#include "BLI_string_ref.hh"
#include "BLI_task.h"
#include "BLI_utildefines.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "BKE_attribute.h"
#include "BKE_customdata.h"
#include "BKE_deform.h"
#include "BKE_editmesh.h"
#include "BKE_editmesh_cache.h"
#include "BKE_editmesh_tangent.h"
#include "BKE_mesh.h"
#include "BKE_mesh_runtime.h"
#include "BKE_mesh_tangent.h"
#include "BKE_modifier.h"
#include "BKE_object_deform.h"
#include "BKE_paint.h"
#include "BKE_pbvh.h"
#include "BKE_subdiv_modifier.h"
#include "atomic_ops.h"
#include "bmesh.h"
#include "GPU_batch.h"
#include "GPU_material.h"
#include "DRW_render.h"
#include "ED_mesh.h"
#include "ED_uvedit.h"
#include "draw_cache_extract.hh"
#include "draw_cache_inline.h"
#include "draw_subdivision.h"
#include "draw_cache_impl.h"
#include "mesh_extractors/extract_mesh.hh"
Go to the source code of this file.
Mesh API for render engines.
Definition in file draw_cache_impl_mesh.cc.
#define _BATCH_MAP1 | ( | a | ) | batches_that_use_buffer(BUFFER_INDEX(a)) |
Definition at line 82 of file draw_cache_impl_mesh.cc.
#define _BATCH_MAP10 | ( | a, | |
b, | |||
c, | |||
d, | |||
e, | |||
f, | |||
g, | |||
h, | |||
i, | |||
j | |||
) | _BATCH_MAP9(a, b, c, d, e, f, g, h, i) | _BATCH_MAP1(j) |
Definition at line 91 of file draw_cache_impl_mesh.cc.
#define _BATCH_MAP2 | ( | a, | |
b | |||
) | _BATCH_MAP1(a) | _BATCH_MAP1(b) |
Definition at line 83 of file draw_cache_impl_mesh.cc.
#define _BATCH_MAP3 | ( | a, | |
b, | |||
c | |||
) | _BATCH_MAP2(a, b) | _BATCH_MAP1(c) |
Definition at line 84 of file draw_cache_impl_mesh.cc.
#define _BATCH_MAP4 | ( | a, | |
b, | |||
c, | |||
d | |||
) | _BATCH_MAP3(a, b, c) | _BATCH_MAP1(d) |
Definition at line 85 of file draw_cache_impl_mesh.cc.
#define _BATCH_MAP5 | ( | a, | |
b, | |||
c, | |||
d, | |||
e | |||
) | _BATCH_MAP4(a, b, c, d) | _BATCH_MAP1(e) |
Definition at line 86 of file draw_cache_impl_mesh.cc.
#define _BATCH_MAP6 | ( | a, | |
b, | |||
c, | |||
d, | |||
e, | |||
f | |||
) | _BATCH_MAP5(a, b, c, d, e) | _BATCH_MAP1(f) |
Definition at line 87 of file draw_cache_impl_mesh.cc.
#define _BATCH_MAP7 | ( | a, | |
b, | |||
c, | |||
d, | |||
e, | |||
f, | |||
g | |||
) | _BATCH_MAP6(a, b, c, d, e, f) | _BATCH_MAP1(g) |
Definition at line 88 of file draw_cache_impl_mesh.cc.
#define _BATCH_MAP8 | ( | a, | |
b, | |||
c, | |||
d, | |||
e, | |||
f, | |||
g, | |||
h | |||
) | _BATCH_MAP7(a, b, c, d, e, f, g) | _BATCH_MAP1(h) |
Definition at line 89 of file draw_cache_impl_mesh.cc.
#define _BATCH_MAP9 | ( | a, | |
b, | |||
c, | |||
d, | |||
e, | |||
f, | |||
g, | |||
h, | |||
i | |||
) | _BATCH_MAP8(a, b, c, d, e, f, g, h) | _BATCH_MAP1(i) |
Definition at line 90 of file draw_cache_impl_mesh.cc.
#define BATCH_MAP | ( | ... | ) | VA_NARGS_CALL_OVERLOAD(_BATCH_MAP, __VA_ARGS__) |
Definition at line 93 of file draw_cache_impl_mesh.cc.
#define BUFFER_INDEX | ( | buff_name | ) | ((offsetof(MeshBufferList, buff_name) - offsetof(MeshBufferList, vbo)) / sizeof(void *)) |
Definition at line 79 of file draw_cache_impl_mesh.cc.
#define BUFFER_LEN (sizeof(MeshBufferList) / sizeof(void *)) |
Definition at line 80 of file draw_cache_impl_mesh.cc.
#define TRIS_PER_MAT_INDEX BUFFER_LEN |
Definition at line 97 of file draw_cache_impl_mesh.cc.
|
staticconstexpr |
Definition at line 99 of file draw_cache_impl_mesh.cc.
References BUFFER_INDEX, MBC_ALL_EDGES, MBC_ALL_VERTS, MBC_EDGE_DETECTION, MBC_EDIT_EDGES, MBC_EDIT_FACEDOTS, MBC_EDIT_LNOR, MBC_EDIT_MESH_ANALYSIS, MBC_EDIT_SELECTION_EDGES, MBC_EDIT_SELECTION_FACEDOTS, MBC_EDIT_SELECTION_FACES, MBC_EDIT_SELECTION_VERTS, MBC_EDIT_TRIANGLES, MBC_EDIT_VERTICES, MBC_EDIT_VNOR, MBC_EDITUV_EDGES, MBC_EDITUV_FACEDOTS, MBC_EDITUV_FACES, MBC_EDITUV_FACES_STRETCH_ANGLE, MBC_EDITUV_FACES_STRETCH_AREA, MBC_EDITUV_VERTS, MBC_LOOSE_EDGES, MBC_SCULPT_OVERLAYS, MBC_SKIN_ROOTS, MBC_SURFACE, MBC_SURFACE_PER_MAT, MBC_SURFACE_WEIGHTS, MBC_WIRE_EDGES, MBC_WIRE_LOOPS, MBC_WIRE_LOOPS_UVS, and TRIS_PER_MAT_INDEX.
Referenced by DRW_mesh_batch_cache_create_requested().
|
static |
Definition at line 1288 of file draw_cache_impl_mesh.cc.
References MeshBufferList::attr, batch, DRW_vbo_request(), DRW_Attributes::num_requests, and MeshBufferList::vbo.
Referenced by DRW_mesh_batch_cache_create_requested().
void DRW_mesh_batch_cache_create_requested | ( | struct TaskGraph * | task_graph, |
Object * | ob, | ||
Mesh * | me, | ||
const Scene * | scene, | ||
const bool | is_paint_mode, | ||
const bool | use_hide | ||
) |
TODO: The code and data structure is ready to support modified UV display but the selection code for UVs needs to support it first. So for now, only display the cage in all cases.
Definition at line 1331 of file draw_cache_impl_mesh.cc.
References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_or_modify(), MeshBatchList::all_edges, MeshBatchList::all_verts, MeshBatchCache::attr_needed, MeshBatchCache::attr_used, MeshBatchCache::attr_used_over_time, MeshBatchCache::batch, MeshBatchCache::batch_ready, MeshBatchCache::batch_requested, batches_that_use_buffer(), BKE_object_get_editmesh_eval_cage(), BKE_object_get_editmesh_eval_final(), BKE_pbvh_update_normals(), BKE_subsurf_modifier_has_gpu_subdiv(), BLI_assert, BLI_task_graph_work_and_wait(), MeshBufferCache::buff, BUFFER_INDEX, MeshBatchCache::cage, MeshBatchCache::cd_needed, CD_ORCO, MeshBatchCache::cd_used, MeshBatchCache::cd_used_over_time, CustomData_get_layer(), Object::data, drw_add_attributes_vbo(), drw_attributes_clear(), drw_attributes_merge(), drw_attributes_overlap(), DRW_batch_requested(), DRW_create_subdivision(), DRW_ibo_request(), drw_mesh_weight_state_clear(), drw_mesh_weight_state_copy(), drw_mesh_weight_state_extract(), DRW_object_is_in_edit_mode(), DRW_vbo_request(), MeshBatchList::edge_detection, MeshBufferList::edge_fac, MeshBufferList::edge_idx, MeshBufferList::edit_data, MeshBatchList::edit_edges, MeshBatchList::edit_fdots, MeshBatchList::edit_lnor, Mesh::edit_mesh, MeshBatchList::edit_mesh_analysis, MeshBatchList::edit_selection_edges, MeshBatchList::edit_selection_faces, MeshBatchList::edit_selection_fdots, MeshBatchList::edit_selection_verts, MeshBatchList::edit_skin_roots, MeshBatchList::edit_triangles, MeshBatchList::edit_vertices, MeshBatchList::edit_vnor, MeshBufferList::edituv_data, MeshBatchList::edituv_edges, MeshBatchList::edituv_faces, MeshBatchList::edituv_faces_stretch_angle, MeshBatchList::edituv_faces_stretch_area, MeshBufferList::edituv_fdots, MeshBatchList::edituv_fdots, MeshBufferList::edituv_lines, MeshBufferList::edituv_points, MeshBufferList::edituv_stretch_angle, MeshBufferList::edituv_stretch_area, MeshBufferList::edituv_tris, MeshBatchList::edituv_verts, MeshBufferList::fdot_idx, MeshBufferList::fdots, MeshBufferList::fdots_edituv_data, MeshBufferList::fdots_nor, MeshBufferList::fdots_pos, MeshBufferList::fdots_uv, MeshBatchCache::final, FOREACH_MESH_BUFFER_CACHE, GPU_BATCH_CLEAR_SAFE, GPU_INDEXBUF_DISCARD_SAFE, GPU_MAX_ATTR, GPU_PRIM_LINES, GPU_PRIM_LINES_ADJ, GPU_PRIM_POINTS, GPU_PRIM_TRIS, GPU_VERTBUF_DISCARD_SAFE, MeshBufferList::ibo, Mesh_Runtime::is_original, MeshBatchCache::is_uvsyncsel, MeshBufferList::lines, MeshBufferList::lines_adjacency, MeshBufferList::lines_loose, MeshBufferList::lines_paint_mask, MeshBufferList::lnor, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup(), MeshBatchList::loose_edges, MeshBatchCache::mat_len, MBC_ALL_EDGES, MBC_ALL_VERTS, MBC_EDGE_DETECTION, MBC_EDIT_EDGES, MBC_EDIT_FACEDOTS, MBC_EDIT_LNOR, MBC_EDIT_MESH_ANALYSIS, MBC_EDIT_SELECTION_EDGES, MBC_EDIT_SELECTION_FACEDOTS, MBC_EDIT_SELECTION_FACES, MBC_EDIT_SELECTION_VERTS, MBC_EDIT_TRIANGLES, MBC_EDIT_VERTICES, MBC_EDIT_VNOR, MBC_EDITUV, MBC_EDITUV_EDGES, MBC_EDITUV_FACEDOTS, MBC_EDITUV_FACES, MBC_EDITUV_FACES_STRETCH_ANGLE, MBC_EDITUV_FACES_STRETCH_AREA, MBC_EDITUV_VERTS, MBC_LOOSE_EDGES, MBC_SCULPT_OVERLAYS, MBC_SKIN_ROOTS, MBC_SURFACE, MBC_SURFACE_PER_MAT, MBC_SURFACE_WEIGHTS, MBC_WIRE_EDGES, MBC_WIRE_LOOPS, MBC_WIRE_LOOPS_UVS, ME_WRAPPER_TYPE_BMESH, mesh, MeshBufferList::mesh_analysis, mesh_batch_cache_check_vertex_group(), mesh_batch_cache_free_subdiv_cache(), mesh_batch_cache_get(), blender::draw::mesh_buffer_cache_create_requested(), mesh_cd_layers_type_clear(), mesh_cd_layers_type_merge(), mesh_cd_layers_type_overlap(), Object::mode, OB_MESH, OB_MODE_EDIT, Object::obmat, DRW_MeshCDMask::orco, MeshBufferList::orco, SculptSession::pbvh, MeshBufferList::points, MeshBufferList::poly_idx, MeshBufferList::pos_nor, Mesh_Runtime::render_mutex, Mesh::runtime, scene, Object::sculpt, MeshBufferList::sculpt_data, DRW_MeshCDMask::sculpt_overlays, MeshBatchList::sculpt_overlays, MeshBufferList::skin_roots, Mesh_Runtime::subdiv_ccg, MeshBatchList::surface, MeshBatchCache::surface_per_mat, MeshBatchList::surface_weights, DRW_MeshCDMask::tan, MeshBufferList::tan, DRW_MeshCDMask::tan_orco, Scene::toolsettings, MeshBufferList::tris, MeshBatchCache::tris_per_mat, TRIS_PER_MAT_INDEX, Object::type, UNUSED, DRW_MeshCDMask::uv, MeshBufferList::uv, MeshBatchCache::uv_cage, ToolSettings::uv_flag, UV_SYNC_SELECTION, MeshBufferList::vbo, Mesh::vdata, MeshBufferList::vert_idx, MeshBatchCache::weight_state, MeshBufferList::weights, MeshBatchList::wire_edges, MeshBatchList::wire_loops, MeshBatchList::wire_loops_uvs, and Mesh_Runtime::wrapper_type.
void DRW_mesh_batch_cache_dirty_tag | ( | Mesh * | me, |
eMeshBatchDirtyMode | mode | ||
) |
Definition at line 737 of file draw_cache_impl_mesh.cc.
References Mesh_Runtime::batch_cache, BATCH_MAP, BKE_MESH_BATCH_DIRTY_ALL, BKE_MESH_BATCH_DIRTY_SELECT, BKE_MESH_BATCH_DIRTY_SELECT_PAINT, BKE_MESH_BATCH_DIRTY_SHADING, BKE_MESH_BATCH_DIRTY_UVEDIT_ALL, BKE_MESH_BATCH_DIRTY_UVEDIT_SELECT, BLI_assert, FOREACH_MESH_BUFFER_CACHE, GPU_INDEXBUF_DISCARD_SAFE, GPU_VERTBUF_DISCARD_SAFE, MeshBatchCache::is_dirty, mesh_batch_cache_discard_batch(), mesh_batch_cache_discard_shaded_tri(), mesh_batch_cache_discard_uvedit(), mesh_batch_cache_discard_uvedit_select(), and Mesh::runtime.
Referenced by DRW_engines_register().
Definition at line 856 of file draw_cache_impl_mesh.cc.
References Mesh_Runtime::batch_cache, MEM_SAFE_FREE, mesh_batch_cache_clear(), and Mesh::runtime.
Referenced by DRW_engines_register().
Thread safety need to be assured by caller. Don't call this during drawing.
Definition at line 1264 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::attr_used, MeshBatchCache::attr_used_over_time, Mesh_Runtime::batch_cache, MeshBatchCache::cd_used, MeshBatchCache::cd_used_over_time, drw_attributes_clear(), drw_attributes_overlap(), MeshBatchCache::lastmatch, mesh_batch_cache_discard_shaded_tri(), mesh_cd_layers_type_clear(), mesh_cd_layers_type_equal(), and Mesh::runtime.
Referenced by DRW_batch_cache_free_old().
Definition at line 920 of file draw_cache_impl_mesh.cc.
References MeshBatchList::all_edges, MeshBatchCache::batch, DRW_batch_request(), MBC_ALL_EDGES, mesh_batch_cache_add_request(), and mesh_batch_cache_get().
Referenced by DRW_cache_mesh_all_edges_get(), and drw_shgroup_bone_custom_mesh_wire().
Definition at line 913 of file draw_cache_impl_mesh.cc.
References MeshBatchList::all_verts, MeshBatchCache::batch, DRW_batch_request(), MBC_ALL_VERTS, mesh_batch_cache_add_request(), and mesh_batch_cache_get().
Referenced by DRW_cache_mesh_all_verts_get().
Definition at line 953 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, DRW_batch_request(), MeshBatchList::edge_detection, MeshBatchCache::is_manifold, MBC_EDGE_DETECTION, mesh_batch_cache_add_request(), and mesh_batch_cache_get().
Referenced by DRW_cache_mesh_edge_detection_get(), and drw_shgroup_bone_custom_solid_mesh().
Definition at line 1150 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, DRW_batch_request(), MeshBatchList::edit_selection_edges, MBC_EDIT_SELECTION_EDGES, mesh_batch_cache_add_request(), and mesh_batch_cache_get().
Referenced by draw_select_id_edit_mesh(), draw_select_id_mesh(), and select_cache_populate().
Definition at line 1088 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, DRW_batch_request(), MeshBatchList::edit_edges, MBC_EDIT_EDGES, mesh_batch_cache_add_request(), and mesh_batch_cache_get().
Referenced by overlay_edit_mesh_add_ob_to_pass().
Definition at line 1116 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, DRW_batch_request(), MeshBatchList::edit_fdots, MBC_EDIT_FACEDOTS, mesh_batch_cache_add_request(), and mesh_batch_cache_get().
Referenced by overlay_edit_mesh_add_ob_to_pass(), and OVERLAY_edit_mesh_cache_populate().
Definition at line 1109 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, DRW_batch_request(), MeshBatchList::edit_lnor, MBC_EDIT_LNOR, mesh_batch_cache_add_request(), and mesh_batch_cache_get().
Referenced by OVERLAY_edit_mesh_cache_populate().
Definition at line 972 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, DRW_batch_request(), MeshBatchList::edit_mesh_analysis, MBC_EDIT_MESH_ANALYSIS, mesh_batch_cache_add_request(), and mesh_batch_cache_get().
Referenced by DRW_cache_mesh_surface_mesh_analysis_get().
Definition at line 1123 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, DRW_batch_request(), MeshBatchList::edit_skin_roots, MBC_SKIN_ROOTS, mesh_batch_cache_add_request(), and mesh_batch_cache_get().
Referenced by overlay_edit_mesh_add_ob_to_pass().
Definition at line 1081 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, DRW_batch_request(), MeshBatchList::edit_triangles, MBC_EDIT_TRIANGLES, mesh_batch_cache_add_request(), and mesh_batch_cache_get().
Referenced by DRW_draw_depth_object(), and overlay_edit_mesh_add_ob_to_pass().
Definition at line 1095 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, DRW_batch_request(), MeshBatchList::edit_vertices, MBC_EDIT_VERTICES, mesh_batch_cache_add_request(), and mesh_batch_cache_get().
Referenced by overlay_edit_mesh_add_ob_to_pass().
Definition at line 1102 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, DRW_batch_request(), MeshBatchList::edit_vnor, MBC_EDIT_VNOR, mesh_batch_cache_add_request(), and mesh_batch_cache_get().
Referenced by OVERLAY_edit_mesh_cache_populate().
Definition at line 1218 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, DRW_batch_request(), MeshBatchList::edituv_edges, edituv_request_active_uv(), MBC_EDITUV_EDGES, mesh_batch_cache_add_request(), and mesh_batch_cache_get().
Referenced by overlay_edit_uv_cache_populate().
Definition at line 1234 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, DRW_batch_request(), MeshBatchList::edituv_fdots, edituv_request_active_uv(), MBC_EDITUV_FACEDOTS, mesh_batch_cache_add_request(), and mesh_batch_cache_get().
Referenced by overlay_edit_uv_cache_populate().
Definition at line 1210 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, DRW_batch_request(), MeshBatchList::edituv_faces, edituv_request_active_uv(), MBC_EDITUV_FACES, mesh_batch_cache_add_request(), and mesh_batch_cache_get().
Referenced by overlay_edit_uv_cache_populate().
Definition at line 1202 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, DRW_batch_request(), MeshBatchList::edituv_faces_stretch_angle, edituv_request_active_uv(), MBC_EDITUV_FACES_STRETCH_ANGLE, mesh_batch_cache_add_request(), and mesh_batch_cache_get().
Referenced by overlay_edit_uv_cache_populate().
GPUBatch* DRW_mesh_batch_cache_get_edituv_faces_stretch_area | ( | struct Object * | object, |
struct Mesh * | me, | ||
float ** | tot_area, | ||
float ** | tot_uv_area | ||
) |
Creates the GPUBatch for drawing the UV Stretching Area Overlay. Optional retrieves the total area or total uv area of the mesh.
The cache->tot_area
and cache->tot_uv_areaupdate are calculation are only valid after calling
DRW_mesh_batch_cache_create_requested`.
Definition at line 1184 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, DRW_batch_request(), MeshBatchList::edituv_faces_stretch_area, edituv_request_active_uv(), MBC_EDITUV_FACES_STRETCH_AREA, mesh_batch_cache_add_request(), mesh_batch_cache_get(), MeshBatchCache::tot_area, and MeshBatchCache::tot_uv_area.
Referenced by overlay_edit_uv_cache_populate().
Definition at line 1226 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, DRW_batch_request(), edituv_request_active_uv(), MeshBatchList::edituv_verts, MBC_EDITUV_VERTS, mesh_batch_cache_add_request(), and mesh_batch_cache_get().
Referenced by overlay_edit_uv_cache_populate().
Definition at line 1143 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, DRW_batch_request(), MeshBatchList::edit_selection_fdots, MBC_EDIT_SELECTION_FACEDOTS, mesh_batch_cache_add_request(), and mesh_batch_cache_get().
Referenced by draw_select_id_edit_mesh().
Definition at line 935 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, DRW_batch_request(), MeshBatchList::loose_edges, MBC_LOOSE_EDGES, mesh_batch_cache_add_request(), mesh_batch_cache_get(), and MeshBatchCache::no_loose_wire.
Referenced by DRW_cache_mesh_loose_edges_get(), and drw_shgroup_bone_custom_solid_mesh().
Definition at line 1048 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, MeshBatchCache::cd_needed, DRW_batch_request(), MBC_SCULPT_OVERLAYS, mesh_batch_cache_add_request(), mesh_batch_cache_get(), DRW_MeshCDMask::sculpt_overlays, and MeshBatchList::sculpt_overlays.
Referenced by OVERLAY_sculpt_cache_populate().
Definition at line 927 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, mesh_batch_cache_get(), mesh_batch_cache_request_surface_batches(), and MeshBatchList::surface.
Referenced by draw_select_id_edit_mesh(), DRW_cache_mesh_surface_get(), DRW_draw_depth_object(), drw_shgroup_bone_custom_solid_mesh(), and select_cache_populate().
Definition at line 1250 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, DRW_batch_request(), MBC_WIRE_LOOPS, mesh_batch_cache_add_request(), mesh_batch_cache_get(), texpaint_request_active_uv(), and MeshBatchList::wire_loops.
Referenced by DRW_cache_mesh_surface_edges_get().
Definition at line 1029 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::attr_needed, MeshBatchCache::batch, drw_attributes_merge(), mesh_batch_cache_get(), mesh_batch_cache_request_surface_batches(), Mesh_Runtime::render_mutex, request_active_and_default_color_attributes(), Mesh::runtime, and MeshBatchList::surface.
Referenced by DRW_cache_mesh_surface_sculptcolors_get().
GPUBatch** DRW_mesh_batch_cache_get_surface_shaded | ( | Object * | object, |
Mesh * | me, | ||
struct GPUMaterial ** | gpumat_array, | ||
uint | gpumat_array_len | ||
) |
Definition at line 979 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::attr_needed, BLI_assert, MeshBatchCache::cd_needed, drw_attributes_clear(), drw_attributes_merge(), MeshBatchCache::mat_len, mesh_batch_cache_get(), mesh_batch_cache_request_surface_batches(), mesh_cd_calc_used_gpu_layers(), mesh_cd_layers_type_merge(), Mesh_Runtime::render_mutex, Mesh::runtime, and MeshBatchCache::surface_per_mat.
Referenced by DRW_cache_mesh_surface_shaded_get().
Definition at line 999 of file draw_cache_impl_mesh.cc.
References mesh_batch_cache_get(), mesh_batch_cache_request_surface_batches(), MeshBatchCache::surface_per_mat, and texpaint_request_active_uv().
Referenced by DRW_cache_mesh_surface_texpaint_get().
Definition at line 1007 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, mesh_batch_cache_get(), mesh_batch_cache_request_surface_batches(), MeshBatchList::surface, and texpaint_request_active_uv().
Referenced by DRW_cache_mesh_surface_texpaint_single_get().
Definition at line 1015 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::attr_needed, MeshBatchCache::batch, drw_attributes_merge(), mesh_batch_cache_get(), mesh_batch_cache_request_surface_batches(), Mesh_Runtime::render_mutex, request_active_and_default_color_attributes(), Mesh::runtime, and MeshBatchList::surface.
Referenced by DRW_cache_mesh_surface_vertpaint_get().
Definition at line 946 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, DRW_batch_request(), MBC_SURFACE_WEIGHTS, mesh_batch_cache_add_request(), mesh_batch_cache_get(), and MeshBatchList::surface_weights.
Referenced by DRW_cache_mesh_surface_weights_get().
Definition at line 1136 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, DRW_batch_request(), MeshBatchList::edit_selection_faces, MBC_EDIT_SELECTION_FACES, mesh_batch_cache_add_request(), and mesh_batch_cache_get().
Referenced by draw_select_id_edit_mesh(), draw_select_id_mesh(), and select_cache_populate().
Definition at line 1242 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, DRW_batch_request(), edituv_request_active_uv(), MBC_WIRE_LOOPS_UVS, mesh_batch_cache_add_request(), mesh_batch_cache_get(), and MeshBatchList::wire_loops_uvs.
Referenced by overlay_edit_uv_cache_populate().
Definition at line 1157 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, DRW_batch_request(), MeshBatchList::edit_selection_verts, MBC_EDIT_SELECTION_VERTS, mesh_batch_cache_add_request(), and mesh_batch_cache_get().
Referenced by draw_select_id_edit_mesh(), draw_select_id_mesh(), and select_cache_populate().
Definition at line 965 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, DRW_batch_request(), MBC_WIRE_EDGES, mesh_batch_cache_add_request(), mesh_batch_cache_get(), and MeshBatchList::wire_edges.
Referenced by DRW_cache_mesh_face_wireframe_get().
GPUVertBuf* DRW_mesh_batch_cache_pos_vertbuf_get | ( | Mesh * | me | ) |
Definition at line 1065 of file draw_cache_impl_mesh.cc.
References MeshBufferCache::buff, DRW_vbo_request(), MeshBatchCache::final, mesh_batch_cache_get(), mesh_batch_cache_request_surface_batches(), MeshBufferList::pos_nor, and MeshBufferList::vbo.
Referenced by DRW_cache_object_pos_vertbuf_get().
Definition at line 621 of file draw_cache_impl_mesh.cc.
References mesh_batch_cache_clear(), mesh_batch_cache_init(), and mesh_batch_cache_valid().
Referenced by drw_batch_cache_validate(), drw_shgroup_bone_custom_mesh_wire(), drw_shgroup_bone_custom_solid_mesh(), and OVERLAY_edit_uv_cache_init().
Definition at line 451 of file draw_cache_impl_mesh.cc.
References size().
Referenced by drw_mesh_weight_state_compare().
Definition at line 1043 of file draw_cache_impl_mesh.cc.
References mesh_render_mat_len_get().
|
static |
Reset the selection structure, deallocating heap memory as appropriate.
Definition at line 418 of file draw_cache_impl_mesh.cc.
References DRW_MeshWeightState::defgroup_active, DRW_MeshWeightState::defgroup_locked, DRW_MeshWeightState::defgroup_sel, DRW_MeshWeightState::defgroup_unlocked, and MEM_SAFE_FREE.
Referenced by DRW_mesh_batch_cache_create_requested(), mesh_batch_cache_check_vertex_group(), mesh_batch_cache_clear(), and mesh_batch_cache_init().
|
static |
Compare two selection structures.
Definition at line 458 of file draw_cache_impl_mesh.cc.
References Freestyle::a, usdtokens::b(), and drw_mesh_flags_equal().
Referenced by mesh_batch_cache_check_vertex_group().
|
static |
Copy selection data from one structure to another, including heap memory.
Definition at line 430 of file draw_cache_impl_mesh.cc.
References DRW_MeshWeightState::defgroup_locked, DRW_MeshWeightState::defgroup_sel, DRW_MeshWeightState::defgroup_unlocked, MEM_dupallocN, and MEM_SAFE_FREE.
Referenced by DRW_mesh_batch_cache_create_requested().
|
static |
Definition at line 469 of file draw_cache_impl_mesh.cc.
References DRW_MeshWeightState::alert_mode, ToolSettings::auto_normalize, BKE_object_defgroup_check_lock_relative(), BKE_object_defgroup_check_lock_relative_multi(), BKE_object_defgroup_lock_flags_get(), BKE_object_defgroup_mirror_selection(), BKE_object_defgroup_selected_get(), BKE_object_defgroup_split_locked_validmap(), BKE_object_defgroup_validmap_get(), BLI_listbase_count(), DRW_MeshWeightState::defgroup_active, DRW_MeshWeightState::defgroup_len, DRW_MeshWeightState::defgroup_locked, DRW_MeshWeightState::defgroup_sel, DRW_MeshWeightState::defgroup_sel_count, DRW_MeshWeightState::defgroup_unlocked, DRW_MESH_WEIGHT_STATE_AUTO_NORMALIZE, DRW_MESH_WEIGHT_STATE_LOCK_RELATIVE, DRW_MESH_WEIGHT_STATE_MULTIPAINT, DRW_MeshWeightState::flags, ME_USING_MIRROR_X_VERTEX_GROUPS, MEM_SAFE_FREE, ToolSettings::multipaint, Mesh::vertex_group_active_index, Mesh::vertex_group_names, ToolSettings::weightuser, and ToolSettings::wpaint_lock_relative.
Referenced by DRW_mesh_batch_cache_create_requested().
|
static |
Definition at line 1170 of file draw_cache_impl_mesh.cc.
References BLI_assert, MeshBatchCache::cd_needed, DRW_MeshCDMask::edit_uv, mesh_cd_calc_active_mask_uv_layer(), mesh_cd_calc_active_uv_layer(), mesh_cd_calc_edit_uv_layer(), mesh_cd_layers_type_clear(), and mesh_cd_layers_type_merge().
Referenced by DRW_mesh_batch_cache_get_edituv_edges(), DRW_mesh_batch_cache_get_edituv_facedots(), DRW_mesh_batch_cache_get_edituv_faces(), DRW_mesh_batch_cache_get_edituv_faces_stretch_angle(), DRW_mesh_batch_cache_get_edituv_faces_stretch_area(), DRW_mesh_batch_cache_get_edituv_verts(), and DRW_mesh_batch_cache_get_uv_edges().
BLI_INLINE void mesh_batch_cache_add_request | ( | MeshBatchCache * | cache, |
DRWBatchFlag | new_flag | ||
) |
Definition at line 542 of file draw_cache_impl_mesh.cc.
References atomic_fetch_and_or_uint32(), and MeshBatchCache::batch_requested.
Referenced by DRW_mesh_batch_cache_get_all_edges(), DRW_mesh_batch_cache_get_all_verts(), DRW_mesh_batch_cache_get_edge_detection(), DRW_mesh_batch_cache_get_edges_with_select_id(), DRW_mesh_batch_cache_get_edit_edges(), DRW_mesh_batch_cache_get_edit_facedots(), DRW_mesh_batch_cache_get_edit_lnors(), DRW_mesh_batch_cache_get_edit_mesh_analysis(), DRW_mesh_batch_cache_get_edit_skin_roots(), DRW_mesh_batch_cache_get_edit_triangles(), DRW_mesh_batch_cache_get_edit_vertices(), DRW_mesh_batch_cache_get_edit_vnors(), DRW_mesh_batch_cache_get_edituv_edges(), DRW_mesh_batch_cache_get_edituv_facedots(), DRW_mesh_batch_cache_get_edituv_faces(), DRW_mesh_batch_cache_get_edituv_faces_stretch_angle(), DRW_mesh_batch_cache_get_edituv_faces_stretch_area(), DRW_mesh_batch_cache_get_edituv_verts(), DRW_mesh_batch_cache_get_facedots_with_select_id(), DRW_mesh_batch_cache_get_loose_edges(), DRW_mesh_batch_cache_get_sculpt_overlays(), DRW_mesh_batch_cache_get_surface_edges(), DRW_mesh_batch_cache_get_surface_weights(), DRW_mesh_batch_cache_get_triangles_with_select_id(), DRW_mesh_batch_cache_get_uv_edges(), DRW_mesh_batch_cache_get_verts_with_select_id(), DRW_mesh_batch_cache_get_wireframes_face(), and mesh_batch_cache_request_surface_batches().
|
static |
Definition at line 634 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, MeshBatchCache::batch_ready, drw_mesh_weight_state_clear(), drw_mesh_weight_state_compare(), FOREACH_MESH_BUFFER_CACHE, GPU_BATCH_CLEAR_SAFE, GPU_VERTBUF_DISCARD_SAFE, MBC_SURFACE_WEIGHTS, MeshBatchList::surface_weights, and MeshBatchCache::weight_state.
Referenced by DRW_mesh_batch_cache_create_requested().
Definition at line 825 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, batch, Mesh_Runtime::batch_cache, MeshBatchCache::batch_ready, drw_mesh_weight_state_clear(), FOREACH_MESH_BUFFER_CACHE, GPU_BATCH_DISCARD_SAFE, GPU_INDEXBUF_DISCARD_SAFE, GPUBatch, MeshBatchCache::mat_len, MEM_SAFE_FREE, mesh_batch_cache_discard_shaded_tri(), mesh_batch_cache_discard_uvedit(), mesh_batch_cache_free_subdiv_cache(), mesh_buffer_cache_clear(), Mesh::runtime, MeshBatchCache::surface_per_mat, MeshBatchCache::tris_per_mat, and MeshBatchCache::weight_state.
Referenced by DRW_mesh_batch_cache_free(), and DRW_mesh_batch_cache_validate().
|
static |
Definition at line 201 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, MeshBatchCache::batch_ready, GPU_BATCH_DISCARD_SAFE, GPUBatch, MBC_BATCH_LEN, MBC_SURFACE_PER_MAT, and mesh_batch_cache_discard_surface_batches().
Referenced by DRW_mesh_batch_cache_dirty_tag(), mesh_batch_cache_discard_shaded_tri(), mesh_batch_cache_discard_uvedit(), and mesh_batch_cache_discard_uvedit_select().
|
static |
Definition at line 670 of file draw_cache_impl_mesh.cc.
References BATCH_MAP, MeshBatchCache::cd_used, FOREACH_MESH_BUFFER_CACHE, GPU_VERTBUF_DISCARD_SAFE, mesh_batch_cache_discard_batch(), and mesh_cd_layers_type_clear().
Referenced by DRW_mesh_batch_cache_dirty_tag(), DRW_mesh_batch_cache_free_old(), and mesh_batch_cache_clear().
|
static |
Definition at line 661 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, MeshBatchCache::batch_ready, GPU_BATCH_DISCARD_SAFE, MeshBatchCache::mat_len, MBC_SURFACE, MeshBatchList::surface, and MeshBatchCache::surface_per_mat.
Referenced by mesh_batch_cache_discard_batch().
|
static |
Definition at line 682 of file draw_cache_impl_mesh.cc.
References BATCH_MAP, MeshBatchCache::batch_ready, MeshBatchCache::cd_used, DRW_MeshCDMask::edit_uv, FOREACH_MESH_BUFFER_CACHE, GPU_INDEXBUF_DISCARD_SAFE, GPU_VERTBUF_DISCARD_SAFE, MBC_EDITUV, mesh_batch_cache_discard_batch(), MeshBatchCache::tot_area, MeshBatchCache::tot_uv_area, and DRW_MeshCDMask::uv.
Referenced by DRW_mesh_batch_cache_dirty_tag(), and mesh_batch_cache_clear().
|
static |
Definition at line 718 of file draw_cache_impl_mesh.cc.
References BATCH_MAP, FOREACH_MESH_BUFFER_CACHE, GPU_INDEXBUF_DISCARD_SAFE, GPU_VERTBUF_DISCARD_SAFE, and mesh_batch_cache_discard_batch().
Referenced by DRW_mesh_batch_cache_dirty_tag().
|
static |
Definition at line 816 of file draw_cache_impl_mesh.cc.
References draw_subdiv_cache_free(), MEM_freeN, and MeshBatchCache::subdiv_cache.
Referenced by DRW_mesh_batch_cache_create_requested(), and mesh_batch_cache_clear().
|
static |
Definition at line 629 of file draw_cache_impl_mesh.cc.
References Mesh_Runtime::batch_cache, and Mesh::runtime.
Referenced by DRW_mesh_batch_cache_create_requested(), DRW_mesh_batch_cache_get_all_edges(), DRW_mesh_batch_cache_get_all_verts(), DRW_mesh_batch_cache_get_edge_detection(), DRW_mesh_batch_cache_get_edges_with_select_id(), DRW_mesh_batch_cache_get_edit_edges(), DRW_mesh_batch_cache_get_edit_facedots(), DRW_mesh_batch_cache_get_edit_lnors(), DRW_mesh_batch_cache_get_edit_mesh_analysis(), DRW_mesh_batch_cache_get_edit_skin_roots(), DRW_mesh_batch_cache_get_edit_triangles(), DRW_mesh_batch_cache_get_edit_vertices(), DRW_mesh_batch_cache_get_edit_vnors(), DRW_mesh_batch_cache_get_edituv_edges(), DRW_mesh_batch_cache_get_edituv_facedots(), DRW_mesh_batch_cache_get_edituv_faces(), DRW_mesh_batch_cache_get_edituv_faces_stretch_angle(), DRW_mesh_batch_cache_get_edituv_faces_stretch_area(), DRW_mesh_batch_cache_get_edituv_verts(), DRW_mesh_batch_cache_get_facedots_with_select_id(), DRW_mesh_batch_cache_get_loose_edges(), DRW_mesh_batch_cache_get_sculpt_overlays(), DRW_mesh_batch_cache_get_surface(), DRW_mesh_batch_cache_get_surface_edges(), DRW_mesh_batch_cache_get_surface_sculpt(), DRW_mesh_batch_cache_get_surface_shaded(), DRW_mesh_batch_cache_get_surface_texpaint(), DRW_mesh_batch_cache_get_surface_texpaint_single(), DRW_mesh_batch_cache_get_surface_vertpaint(), DRW_mesh_batch_cache_get_surface_weights(), DRW_mesh_batch_cache_get_triangles_with_select_id(), DRW_mesh_batch_cache_get_uv_edges(), DRW_mesh_batch_cache_get_verts_with_select_id(), DRW_mesh_batch_cache_get_wireframes_face(), and DRW_mesh_batch_cache_pos_vertbuf_get().
Definition at line 583 of file draw_cache_impl_mesh.cc.
References Mesh_Runtime::batch_cache, MeshBatchCache::batch_ready, MeshBatchCache::batch_requested, BKE_pbvh_is_drawing(), drw_mesh_weight_state_clear(), Mesh::edit_mesh, GPUBatch, MeshBatchCache::is_dirty, MeshBatchCache::is_editmode, MeshBatchCache::mat_len, MEM_callocN, mesh_render_mat_len_get(), SculptSession::pbvh, MeshBatchCache::pbvh_is_drawing, Mesh::runtime, Object::sculpt, MeshBatchCache::surface_per_mat, MeshBatchCache::tris_per_mat, and MeshBatchCache::weight_state.
Referenced by DRW_mesh_batch_cache_validate().
|
static |
Definition at line 649 of file draw_cache_impl_mesh.cc.
References MeshBatchCache::batch, DRW_batch_request(), MeshBatchCache::mat_len, MBC_SURFACE, mesh_batch_cache_add_request(), MeshBatchList::surface, and MeshBatchCache::surface_per_mat.
Referenced by DRW_mesh_batch_cache_get_surface(), DRW_mesh_batch_cache_get_surface_sculpt(), DRW_mesh_batch_cache_get_surface_shaded(), DRW_mesh_batch_cache_get_surface_texpaint(), DRW_mesh_batch_cache_get_surface_texpaint_single(), DRW_mesh_batch_cache_get_surface_vertpaint(), and DRW_mesh_batch_cache_pos_vertbuf_get().
Definition at line 549 of file draw_cache_impl_mesh.cc.
References Mesh_Runtime::batch_cache, BKE_pbvh_draw_cache_invalid(), BKE_pbvh_is_drawing(), Mesh::edit_mesh, MeshBatchCache::is_dirty, MeshBatchCache::is_editmode, MeshBatchCache::mat_len, mesh_render_mat_len_get(), SculptSession::pbvh, MeshBatchCache::pbvh_is_drawing, Mesh::runtime, and Object::sculpt.
Referenced by DRW_mesh_batch_cache_validate().
|
static |
Definition at line 802 of file draw_cache_impl_mesh.cc.
References MeshBufferCache::buff, MeshExtractLooseGeom::edge_len, MeshExtractLooseGeom::edges, MeshBufferCache::loose_geom, MeshBufferCache::mat_tri_len, MEM_SAFE_FREE, mesh_buffer_list_clear(), MeshBufferCache::poly_sorted, MeshBufferCache::tri_first_index, MeshExtractLooseGeom::vert_len, MeshExtractLooseGeom::verts, and MeshBufferCache::visible_tri_len.
Referenced by mesh_batch_cache_clear().
|
static |
Definition at line 790 of file draw_cache_impl_mesh.cc.
References GPU_INDEXBUF_DISCARD_SAFE, GPU_VERTBUF_DISCARD_SAFE, MeshBufferList::ibo, and MeshBufferList::vbo.
Referenced by mesh_buffer_cache_clear().
|
static |
Definition at line 256 of file draw_cache_impl_mesh.cc.
References CD_MLOOPUV, CustomData_get_stencil_layer(), editmesh_final_or_this(), mesh_cd_ldata_get_from_mesh(), and DRW_MeshCDMask::uv.
Referenced by edituv_request_active_uv(), and texpaint_request_active_uv().
|
static |
Definition at line 244 of file draw_cache_impl_mesh.cc.
References CD_MLOOPUV, CustomData_get_active_layer(), editmesh_final_or_this(), mesh_cd_ldata_get_from_mesh(), and DRW_MeshCDMask::uv.
Referenced by edituv_request_active_uv(), and texpaint_request_active_uv().
|
static |
Definition at line 239 of file draw_cache_impl_mesh.cc.
References DRW_MeshCDMask::edit_uv.
Referenced by edituv_request_active_uv().
|
static |
Definition at line 268 of file draw_cache_impl_mesh.cc.
References ATTR_DOMAIN_CORNER, ATTR_DOMAIN_EDGE, ATTR_DOMAIN_FACE, ATTR_DOMAIN_POINT, BKE_id_attribute_copy_domains_temp(), BKE_id_attributes_render_color_get(), blender::StringRefNull::c_str(), CD_AUTO_FROM_NAME, CD_MLOOPUV, CD_MTFACE, CD_ORCO, CD_PROP_BOOL, CD_PROP_BYTE_COLOR, CD_PROP_COLOR, CD_PROP_FLOAT, CD_PROP_FLOAT2, CD_PROP_FLOAT3, CD_PROP_INT32, CD_PROP_INT8, CD_TANGENT, CustomData_get_named_layer(), CustomData_get_render_layer(), drw_attributes_add_request(), drw_custom_data_match_attribute(), editmesh_final_or_this(), GPU_material_attributes(), Mesh::id, ID_ME, LISTBASE_FOREACH, mesh_cd_edata_get_from_mesh(), mesh_cd_layers_type_clear(), mesh_cd_ldata_get_from_mesh(), mesh_cd_pdata_get_from_mesh(), mesh_cd_vdata_get_from_mesh(), CustomDataLayer::name, DRW_MeshCDMask::orco, DRW_MeshCDMask::tan, DRW_MeshCDMask::tan_orco, type, and DRW_MeshCDMask::uv.
Referenced by DRW_mesh_batch_cache_get_surface_shaded().
BLI_INLINE void mesh_cd_layers_type_clear | ( | DRW_MeshCDMask * | a | ) |
Definition at line 234 of file draw_cache_impl_mesh.cc.
References Freestyle::a.
Referenced by DRW_mesh_batch_cache_create_requested(), DRW_mesh_batch_cache_free_old(), edituv_request_active_uv(), mesh_batch_cache_discard_shaded_tri(), mesh_cd_calc_used_gpu_layers(), and texpaint_request_active_uv().
BLI_INLINE bool mesh_cd_layers_type_equal | ( | DRW_MeshCDMask | a, |
DRW_MeshCDMask | b | ||
) |
Definition at line 222 of file draw_cache_impl_mesh.cc.
References Freestyle::a, and usdtokens::b().
Referenced by DRW_mesh_batch_cache_free_old().
BLI_INLINE void mesh_cd_layers_type_merge | ( | DRW_MeshCDMask * | a, |
DRW_MeshCDMask | b | ||
) |
Definition at line 227 of file draw_cache_impl_mesh.cc.
References Freestyle::a, atomic_fetch_and_or_uint32(), and usdtokens::b().
Referenced by DRW_mesh_batch_cache_create_requested(), DRW_mesh_batch_cache_get_surface_shaded(), edituv_request_active_uv(), and texpaint_request_active_uv().
BLI_INLINE bool mesh_cd_layers_type_overlap | ( | DRW_MeshCDMask | a, |
DRW_MeshCDMask | b | ||
) |
Definition at line 217 of file draw_cache_impl_mesh.cc.
References Freestyle::a, and usdtokens::b().
Referenced by DRW_mesh_batch_cache_create_requested().
|
static |
Definition at line 881 of file draw_cache_impl_mesh.cc.
References blender::compositor::active, ATTR_DOMAIN_CORNER, ATTR_DOMAIN_POINT, BKE_id_attribute_copy_domains_temp(), BKE_id_attributes_active_color_get(), BKE_id_attributes_render_color_get(), drw_attributes_add_request(), drw_custom_data_match_attribute(), editmesh_final_or_this(), Mesh::id, ID_ME, mesh, mesh_cd_ldata_get_from_mesh(), mesh_cd_vdata_get_from_mesh(), and type.
Referenced by DRW_mesh_batch_cache_get_surface_sculpt(), and DRW_mesh_batch_cache_get_surface_vertpaint().
|
static |
Definition at line 868 of file draw_cache_impl_mesh.cc.
References BLI_assert, MeshBatchCache::cd_needed, mesh_cd_calc_active_mask_uv_layer(), mesh_cd_calc_active_uv_layer(), mesh_cd_layers_type_clear(), mesh_cd_layers_type_merge(), and DRW_MeshCDMask::uv.
Referenced by DRW_mesh_batch_cache_get_surface_edges(), DRW_mesh_batch_cache_get_surface_texpaint(), and DRW_mesh_batch_cache_get_surface_texpaint_single().