diff options
Diffstat (limited to 'source/blender/blenkernel/BKE_DerivedMesh.h')
-rw-r--r-- | source/blender/blenkernel/BKE_DerivedMesh.h | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h index 229d2fc17cd..236eae29967 100644 --- a/source/blender/blenkernel/BKE_DerivedMesh.h +++ b/source/blender/blenkernel/BKE_DerivedMesh.h @@ -88,6 +88,7 @@ struct MTFace; struct Object; struct Scene; struct Mesh; +struct MLoopNorSpaceArray; struct BMEditMesh; struct KeyBlock; struct ModifierData; @@ -147,6 +148,7 @@ typedef int (*DMSetMaterial)(int mat_nr, void *attribs); typedef int (*DMCompareDrawOptions)(void *userData, int cur_index, int next_index); typedef void (*DMSetDrawInterpOptions)(void *userData, int index, float t); typedef DMDrawOption (*DMSetDrawOptions)(void *userData, int index); +typedef DMDrawOption (*DMSetDrawOptionsMappedTex)(void *userData, int origindex, int mat_nr); typedef DMDrawOption (*DMSetDrawOptionsTex)(struct MTFace *tface, const bool has_vcol, int matnr); typedef enum DMDrawFlag { @@ -196,7 +198,11 @@ struct DerivedMesh { void (*calcNormals)(DerivedMesh *dm); /** Calculate loop (split) normals */ - void (*calcLoopNormals)(DerivedMesh *dm, const float split_angle); + void (*calcLoopNormals)(DerivedMesh *dm, const bool use_split_normals, const float split_angle); + + /** Calculate loop (split) normals, and returns split loop normal spacearr. */ + void (*calcLoopNormalsSpaceArray)(DerivedMesh *dm, const bool use_split_normals, const float split_angle, + struct MLoopNorSpaceArray *r_lnors_spacearr); /** Recalculates mesh tessellation */ void (*recalcTessellation)(DerivedMesh *dm); @@ -423,7 +429,7 @@ struct DerivedMesh { * - Drawing options too complicated to enumerate, look at code. */ void (*drawMappedFacesTex)(DerivedMesh *dm, - DMSetDrawOptions setDrawOptions, + DMSetDrawOptionsMappedTex setDrawOptions, DMCompareDrawOptions compareDrawOptions, void *userData, DMDrawFlag uvflag); @@ -497,7 +503,7 @@ int DM_release(DerivedMesh *dm); /** utility function to convert a DerivedMesh to a Mesh */ -void DM_to_mesh(DerivedMesh *dm, struct Mesh *me, struct Object *ob, CustomDataMask mask); +void DM_to_mesh(DerivedMesh *dm, struct Mesh *me, struct Object *ob, CustomDataMask mask, bool take_ownership); struct BMEditMesh *DM_to_editbmesh(struct DerivedMesh *dm, struct BMEditMesh *existing, const bool do_tessellate); @@ -745,6 +751,8 @@ typedef struct DMVertexAttribs { void DM_vertex_attributes_from_gpu(DerivedMesh *dm, struct GPUVertexAttribs *gattribs, DMVertexAttribs *attribs); +void DM_draw_attrib_vertex(DMVertexAttribs *attribs, int a, int index, int vert); + void DM_add_tangent_layer(DerivedMesh *dm); void DM_calc_auto_bump_scale(DerivedMesh *dm); |