| 751 | } |
| 752 | |
| 753 | BF_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 | |
| 786 | BF_EXPORT void BF_CALLTYPE Gfx_SetShaderConstantData(int usageIdx, int slotIdx, void* constData, int size) |
| 787 | { |
nothing calls this directly
no test coverage detected