diff options
author | Hans Goudey <h.goudey@me.com> | 2022-09-12 01:36:06 +0300 |
---|---|---|
committer | Hans Goudey <h.goudey@me.com> | 2022-09-12 01:36:06 +0300 |
commit | 0aeb1f0c5bb95be426d96a5ad9924610d909899d (patch) | |
tree | 7662d28b86f0de0894e48f2aa9ece429424c1a0b /source/blender/render/intern | |
parent | 789297ecb91002aa7c4e7c59a8a6c4fd2b80c462 (diff) |
Start converting mesh positions to a generic attribute
Diffstat (limited to 'source/blender/render/intern')
-rw-r--r-- | source/blender/render/intern/bake.c | 4 | ||||
-rw-r--r-- | source/blender/render/intern/multires_bake.c | 15 | ||||
-rw-r--r-- | source/blender/render/intern/texture_margin.cc | 2 | ||||
-rw-r--r-- | source/blender/render/intern/texture_pointdensity.c | 2 |
4 files changed, 11 insertions, 12 deletions
diff --git a/source/blender/render/intern/bake.c b/source/blender/render/intern/bake.c index c383d13e4e1..5031cb6bdea 100644 --- a/source/blender/render/intern/bake.c +++ b/source/blender/render/intern/bake.c @@ -459,7 +459,7 @@ static TriTessFace *mesh_calc_tri_tessface(Mesh *me, bool tangent, Mesh *me_eval unsigned int mpoly_prev = UINT_MAX; float no[3]; - const MVert *verts = BKE_mesh_verts(me); + const MVert *verts = BKE_mesh_positions(me); const MPoly *polys = BKE_mesh_polys(me); const MLoop *loops = BKE_mesh_loops(me); @@ -741,7 +741,7 @@ void RE_bake_pixels_populate(Mesh *me, const int tottri = poly_to_tri_count(me->totpoly, me->totloop); MLoopTri *looptri = MEM_mallocN(sizeof(*looptri) * tottri, __func__); - const MVert *verts = BKE_mesh_verts(me); + const MVert *verts = BKE_mesh_positions(me); const MPoly *polys = BKE_mesh_polys(me); const MLoop *loops = BKE_mesh_loops(me); BKE_mesh_recalc_looptri(loops, polys, verts, me->totloop, me->totpoly, looptri); diff --git a/source/blender/render/intern/multires_bake.c b/source/blender/render/intern/multires_bake.c index 79eddd20bdf..96a59d22869 100644 --- a/source/blender/render/intern/multires_bake.c +++ b/source/blender/render/intern/multires_bake.c @@ -60,7 +60,7 @@ typedef struct MultiresBakeResult { } MultiresBakeResult; typedef struct { - MVert *mvert; + const float (*positions)[3]; const float (*vert_normals)[3]; MPoly *mpoly; const int *material_indices; @@ -125,7 +125,7 @@ static void multiresbake_get_normal(const MResolvePixelData *data, copy_v3_v3(r_normal, data->precomputed_normals[poly_index]); } else { - BKE_mesh_calc_poly_normal(mp, &data->mloop[mp->loopstart], data->mvert, r_normal); + BKE_mesh_calc_poly_normal(mp, &data->mloop[mp->loopstart], data->positions, r_normal); } } } @@ -472,7 +472,7 @@ static void do_multires_bake(MultiresBakeRender *bkr, MultiresBakeThread *handles; MultiresBakeQueue queue; - MVert *mvert = dm->getVertArray(dm); + const float(*positions)[3] = dm->getVertArray(dm); MPoly *mpoly = dm->getPolyArray(dm); MLoop *mloop = dm->getLoopArray(dm); MLoopUV *mloopuv = dm->getLoopDataArray(dm, CD_MLOOPUV); @@ -485,9 +485,9 @@ static void do_multires_bake(MultiresBakeRender *bkr, Mesh *temp_mesh = BKE_mesh_new_nomain( dm->getNumVerts(dm), dm->getNumEdges(dm), 0, dm->getNumLoops(dm), dm->getNumPolys(dm)); - memcpy(BKE_mesh_verts_for_write(temp_mesh), + memcpy(BKE_mesh_positions_for_write(temp_mesh), dm->getVertArray(dm), - temp_mesh->totvert * sizeof(MVert)); + temp_mesh->totvert * sizeof(float[3])); memcpy(BKE_mesh_edges_for_write(temp_mesh), dm->getEdgeArray(dm), temp_mesh->totedge * sizeof(MEdge)); @@ -555,7 +555,7 @@ static void do_multires_bake(MultiresBakeRender *bkr, handle->data.mpoly = mpoly; handle->data.material_indices = CustomData_get_layer_named( &dm->polyData, CD_PROP_INT32, "material_index"); - handle->data.mvert = mvert; + handle->data.positions = positions; handle->data.vert_normals = vert_normals; handle->data.mloopuv = mloopuv; BKE_image_get_tile_uv(ima, tile->tile_number, handle->data.uv_offset); @@ -674,8 +674,7 @@ static void get_ccgdm_data(DerivedMesh *lodm, mpoly = lodm->getPolyArray(lodm) + poly_index; g_index = grid_offset[poly_index]; - S = mdisp_rot_face_to_crn(lodm->getVertArray(lodm), - mpoly, + S = mdisp_rot_face_to_crn(mpoly, lodm->getLoopArray(lodm), lt, face_side, diff --git a/source/blender/render/intern/texture_margin.cc b/source/blender/render/intern/texture_margin.cc index 66ab7ba6e2e..e2a36edd6d5 100644 --- a/source/blender/render/intern/texture_margin.cc +++ b/source/blender/render/intern/texture_margin.cc @@ -520,7 +520,7 @@ static void generate_margin(ImBuf *ibuf, tottri = poly_to_tri_count(me->totpoly, me->totloop); looptri_mem = static_cast<MLoopTri *>(MEM_mallocN(sizeof(*looptri) * tottri, __func__)); BKE_mesh_recalc_looptri( - mloop, mpoly, me->verts().data(), me->totloop, me->totpoly, looptri_mem); + mloop, mpoly, me->positions().data(), me->totloop, me->totpoly, looptri_mem); looptri = looptri_mem; } else { diff --git a/source/blender/render/intern/texture_pointdensity.c b/source/blender/render/intern/texture_pointdensity.c index 2a2b62be1f0..0ec716fb3a3 100644 --- a/source/blender/render/intern/texture_pointdensity.c +++ b/source/blender/render/intern/texture_pointdensity.c @@ -380,7 +380,7 @@ static void pointdensity_cache_object(PointDensity *pd, Object *ob) } #endif - mvert = BKE_mesh_verts(mesh); /* local object space */ + mvert = BKE_mesh_positions(mesh); /* local object space */ pd->totpoints = mesh->totvert; if (pd->totpoints == 0) { return; |