MCPcopy Create free account
hub / github.com/defold/defold / SetMeshWriteAttributeParams

Function SetMeshWriteAttributeParams

engine/rig/src/rig.cpp:1244–1274  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1242 }
1243
1244 void SetMeshWriteAttributeParams(dmGraphics::WriteAttributeParams* params,
1245 const dmGraphics::VertexAttributeInfos* attribute_infos,
1246 dmGraphics::VertexStepFunction step_function,
1247 const float** world_matrix,
1248 const float** normal_matrix,
1249 const float** positions_world_space,
1250 const float** positions_local_space,
1251 const float** normals,
1252 const float** tangents,
1253 const float** colors,
1254 const float** texture_transform_2d,
1255 const float** uv_channels,
1256 uint32_t uv_channels_count)
1257 {
1258 memset(params, 0, sizeof(dmGraphics::WriteAttributeParams));
1259 params->m_VertexAttributeInfos = attribute_infos;
1260 params->m_StepFunction = step_function;
1261
1262 // Per-primitive channels
1263 dmGraphics::SetWriteAttributeStreamDesc(&params->m_WorldMatrix, world_matrix, dmGraphics::VertexAttribute::VECTOR_TYPE_MAT4, 1, true);
1264 dmGraphics::SetWriteAttributeStreamDesc(&params->m_NormalMatrix, normal_matrix, dmGraphics::VertexAttribute::VECTOR_TYPE_MAT4, 1, true);
1265 dmGraphics::SetWriteAttributeStreamDesc(&params->m_TextureTransform2D, texture_transform_2d, dmGraphics::VertexAttribute::VECTOR_TYPE_MAT3, 1, true);
1266
1267 // Per-vertex channels
1268 dmGraphics::SetWriteAttributeStreamDesc(&params->m_PositionsWorldSpace, positions_world_space, dmGraphics::VertexAttribute::VECTOR_TYPE_VEC3, 1, false);
1269 dmGraphics::SetWriteAttributeStreamDesc(&params->m_PositionsLocalSpace, positions_local_space, dmGraphics::VertexAttribute::VECTOR_TYPE_VEC3, 1, false);
1270 dmGraphics::SetWriteAttributeStreamDesc(&params->m_Normals, normals, dmGraphics::VertexAttribute::VECTOR_TYPE_VEC3, 1, false);
1271 dmGraphics::SetWriteAttributeStreamDesc(&params->m_Tangents, tangents, dmGraphics::VertexAttribute::VECTOR_TYPE_VEC4, 1, false);
1272 dmGraphics::SetWriteAttributeStreamDesc(&params->m_Colors, colors, dmGraphics::VertexAttribute::VECTOR_TYPE_VEC4, 1, false);
1273 dmGraphics::SetWriteAttributeStreamDesc(&params->m_TexCoords, uv_channels, dmGraphics::VertexAttribute::VECTOR_TYPE_VEC2, uv_channels_count, false);
1274 }
1275
1276 static uint8_t* WriteVertexDataByAttributes(const dmRigDDF::Mesh* mesh, const float* positions_world, const float* positions_local, const float* normals, const float* tangents, const dmGraphics::VertexAttributeInfos* attribute_infos, uint32_t vertex_stride, const dmVMath::Matrix4& world_matrix, const dmVMath::Matrix4& normal_matrix, uint8_t* out_write_ptr)
1277 {

Callers 2

WriteMeshAttributesFunction · 0.85

Calls 1

Tested by

no test coverage detected