MCPcopy Create free account
hub / github.com/beefytech/Beef / Gfx_DrawIndexedVertices2D

Function Gfx_DrawIndexedVertices2D

BeefySysLib/BeefySysLib.cpp:753–784  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

751}
752
753BF_EXPORT void BF_CALLTYPE Gfx_DrawIndexedVertices2D(int vertexSize, void* vtxData, int vtxCount, uint16* idxData, int idxCount, float a, float b, float c, float d, float tx, float ty, float z)
754{
755 DrawLayer* drawLayer = gBFApp->mRenderDevice->mCurDrawLayer;
756
757 uint16 idxOfs;
758 void* drawBatchVtxPtr;
759 uint16* drawBatchIdxPtr;
760 gBFApp->mRenderDevice->mCurDrawLayer->AllocIndexed(vtxCount, idxCount, (void**)&drawBatchVtxPtr, &drawBatchIdxPtr, &idxOfs);
761 BF_ASSERT(gBFApp->mRenderDevice->mCurDrawLayer->mCurDrawBatch->mVtxSize == vertexSize);
762
763 uint16* idxPtr = idxData;
764 for (int idxIdx = 0; idxIdx < idxCount; idxIdx++)
765 *(drawBatchIdxPtr++) = *(idxPtr++) + idxOfs;
766
767 //memcpy(drawBatchIdxPtr, idxData, sizeof(uint16) * idxCount);
768 //memcpy(drawBatchVtxPtr, vtxData, vertexSize * vtxCount);
769
770 void* vtxPtr = vtxData;
771 for (int vtxIdx = 0; vtxIdx < vtxCount; vtxIdx++)
772 {
773 Vector3* srcPos = (Vector3*)vtxPtr;
774 Vector3* destPos = (Vector3*)drawBatchVtxPtr;
775
776 destPos->mX = srcPos->mX * a + srcPos->mY * c + tx;
777 destPos->mY = srcPos->mX * b + srcPos->mY * d + ty;
778 destPos->mZ = srcPos->mZ + z;
779
780 memcpy((uint8*)drawBatchVtxPtr + sizeof(Vector3), (uint8*)vtxPtr + sizeof(Vector3), vertexSize - sizeof(Vector3));
781 drawBatchVtxPtr = (uint8*)drawBatchVtxPtr + vertexSize;
782 vtxPtr = (uint8*)vtxPtr + vertexSize;
783 }
784}
785
786BF_EXPORT void BF_CALLTYPE Gfx_SetShaderConstantData(int usageIdx, int slotIdx, void* constData, int size)
787{

Callers

nothing calls this directly

Calls 1

AllocIndexedMethod · 0.80

Tested by

no test coverage detected