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:
@@ -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];
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user