Cleanup: use a define for BMUVOffsets that doesn't reference any layers

Reduce the number of places that need to be updated when struct members
change and reduces the binary size a little.
This commit is contained in:
Campbell Barton
2025-10-08 14:56:43 +11:00
parent 37382b7c39
commit 377e3cfca5
3 changed files with 13 additions and 6 deletions

View File

@@ -58,6 +58,9 @@ struct BMUVOffsets {
int pin;
};
/** All values reference none layers. */
#define BMUVOFFSETS_NONE {-1, -1, -1, -1}
/* A data type large enough to hold 1 element from any custom-data layer type. */
struct CDBlockBytes {
unsigned char data[64];

View File

@@ -23,7 +23,7 @@ BMUVOffsets BM_uv_map_offsets_from_layer(const BMesh *bm, const int layer)
using namespace blender::bke;
const int layer_index = CustomData_get_layer_index_n(&bm->ldata, CD_PROP_FLOAT2, layer);
if (layer_index == -1) {
return {-1, -1, -1, -1};
return BMUVOFFSETS_NONE;
}
const StringRef name = bm->ldata.layers[layer_index].name;
@@ -45,7 +45,7 @@ BMUVOffsets BM_uv_map_offsets_get(const BMesh *bm)
{
const int layer = CustomData_get_active_layer(&bm->ldata, CD_PROP_FLOAT2);
if (layer == -1) {
return {-1, -1, -1, -1};
return BMUVOFFSETS_NONE;
}
return BM_uv_map_offsets_from_layer(bm, layer);
}

View File

@@ -116,6 +116,7 @@ static void extract_edit_data_mesh(const MeshRenderData &mr, MutableSpan<EditLoo
MutableSpan loose_edge_data = vbo_data.slice(mr.corners_num, mr.loose_edges.size() * 2);
MutableSpan loose_vert_data = vbo_data.take_back(mr.loose_verts.size());
const BMUVOffsets uv_offsets_none = BMUVOFFSETS_NONE;
const OffsetIndices faces = mr.faces;
const Span<int> corner_verts = mr.corner_verts;
const Span<int> corner_edges = mr.corner_edges;
@@ -125,7 +126,7 @@ static void extract_edit_data_mesh(const MeshRenderData &mr, MutableSpan<EditLoo
EditLoopData &value = corners_data[corner];
value = {};
if (const BMFace *bm_face = bm_original_face_get(mr, face)) {
mesh_render_data_face_flag(mr, bm_face, {-1, -1, -1, -1}, value);
mesh_render_data_face_flag(mr, bm_face, uv_offsets_none, value);
}
if (const BMVert *bm_vert = bm_original_vert_get(mr, corner_verts[corner])) {
mesh_render_data_vert_flag(mr, bm_vert, value);
@@ -179,6 +180,7 @@ static void extract_edit_data_bm(const MeshRenderData &mr, MutableSpan<EditLoopD
MutableSpan loose_vert_data = vbo_data.take_back(mr.loose_verts.size());
const BMesh &bm = *mr.bm;
const BMUVOffsets uv_offsets_none = BMUVOFFSETS_NONE;
threading::parallel_for(IndexRange(bm.totface), 2048, [&](const IndexRange range) {
for (const int face_index : range) {
@@ -188,7 +190,7 @@ static void extract_edit_data_bm(const MeshRenderData &mr, MutableSpan<EditLoopD
const int index = BM_elem_index_get(loop);
EditLoopData &value = corners_data[index];
value = {};
mesh_render_data_face_flag(mr, &face, {-1, -1, -1, -1}, corners_data[index]);
mesh_render_data_face_flag(mr, &face, uv_offsets_none, corners_data[index]);
mesh_render_data_edge_flag(mr, loop->e, corners_data[index]);
mesh_render_data_vert_flag(mr, loop->v, corners_data[index]);
loop = loop->next;
@@ -239,6 +241,7 @@ static void extract_edit_subdiv_data_mesh(const MeshRenderData &mr,
const DRWSubdivCache &subdiv_cache,
MutableSpan<EditLoopData> vbo_data)
{
const BMUVOffsets uv_offsets_none = BMUVOFFSETS_NONE;
const int corners_num = subdiv_cache.num_subdiv_loops;
const int loose_edges_num = mr.loose_edges.size();
const int verts_per_edge = subdiv_verts_per_coarse_edge(subdiv_cache);
@@ -259,7 +262,7 @@ static void extract_edit_subdiv_data_mesh(const MeshRenderData &mr,
value = {};
if (const BMFace *bm_face = bm_original_face_get(mr, coarse_face)) {
mesh_render_data_face_flag(mr, bm_face, {-1, -1, -1, -1}, value);
mesh_render_data_face_flag(mr, bm_face, uv_offsets_none, value);
}
const int vert_origindex = subdiv_loop_vert_index[subdiv_corner];
@@ -317,6 +320,7 @@ static void extract_edit_subdiv_data_bm(const MeshRenderData &mr,
const DRWSubdivCache &subdiv_cache,
MutableSpan<EditLoopData> vbo_data)
{
const BMUVOffsets uv_offsets_none = BMUVOFFSETS_NONE;
const int corners_num = subdiv_cache.num_subdiv_loops;
const int loose_edges_num = mr.loose_edges.size();
const int verts_per_edge = subdiv_verts_per_coarse_edge(subdiv_cache);
@@ -337,7 +341,7 @@ static void extract_edit_subdiv_data_bm(const MeshRenderData &mr,
EditLoopData &value = corners_data[subdiv_corner];
value = {};
mesh_render_data_face_flag(mr, bm_face, {-1, -1, -1, -1}, value);
mesh_render_data_face_flag(mr, bm_face, uv_offsets_none, value);
const int vert_origindex = subdiv_loop_vert_index[subdiv_corner];
if (vert_origindex != -1) {