MF_API void MFRenderLayer_AddMesh(MFRenderLayer *pLayer, MFMesh *pMesh, MFMaterial *pMaterial, const MFStateBlock *pEntity, const MFStateBlock *pMaterialOverride, const MFStateBlock *pView) { if(pMesh->numIndices) MFRenderLayer_AddIndexedVertices(pLayer, pMesh->pMeshState, pMesh->indexOffset, pMesh->numIndices, pMesh->primType, pMaterial, pEntity, pMaterialOverride, pView); else MFRenderLayer_AddVertices(pLayer, pMesh->pMeshState, pMesh->vertexOffset, pMesh->numVertices, pMesh->primType, pMaterial, pEntity, pMaterialOverride, pView); }
void Game_Draw() { // render the prism MFView_SetAspectRatio(1.f); MFView_SetProjection(); MFRenderLayer *pLayer = MFRenderer_GetLayer(pRenderer, 0); MFRenderLayer_AddVertices(pLayer, pPrismMeshStateBlock, 0, 3*12, MFPT_TriangleList, MFMaterial_GetStockMaterial(MFMat_White), pPrismStateBlock, NULL, MFView_GetViewState()); // render the box MFView_SetAspectRatio(MFDisplay_GetAspectRatio()); MFView_SetProjection(); pLayer = MFRenderer_GetLayer(pRenderer, 1); MFRenderLayer_AddVertices(pLayer, pBoxMeshStateBlock, 0, 3*12, MFPT_TriangleList, pPrismRenderTarget, pBoxStateBlock, NULL, MFView_GetViewState()); }
MF_API void MFRenderer_AddVertices(const MFStateBlock *pMeshStateBlock, int firstVertex, int numVertices, MFPrimType primType, MFMaterial *pMaterial, const MFStateBlock *pEntity, const MFStateBlock *pMaterialOverride, const MFStateBlock *pView) { // TODO: choose appropriate layer from layer set... MFRenderLayer_AddVertices(gCurrentLayers.pSolidLayer, pMeshStateBlock, firstVertex, numVertices, primType, pMaterial, pEntity, pMaterialOverride, pView); }