chore(gx): move GxDrawLockedElements from gx/Buffer into gx/Draw

This commit is contained in:
Joshua Achorn 2023-04-07 14:14:51 -04:00
parent d99c685dd1
commit 18b9ed493a
4 changed files with 22 additions and 21 deletions

View File

@ -433,25 +433,6 @@ void GxPrimLockVertexPtrs(uint32_t vertexCount, const C3Vector* pos, uint32_t po
GxPrimVertexPtr(vertexCount, pos, posStride, normal, normalStride, color, colorStride, tex0, tex0Stride, tex1, tex1Stride); GxPrimVertexPtr(vertexCount, pos, posStride, normal, normalStride, color, colorStride, tex0, tex0Stride, tex1, tex1Stride);
} }
void GxDrawLockedElements(EGxPrim primType, uint32_t indexCount, const uint16_t* indices) {
if (Buffer::s_lockVertexCount == 0) {
return;
}
GxPrimIndexPtr(indexCount, indices);
CGxBatch batch;
batch.m_primType = primType;
batch.m_minIndex = 0;
batch.m_maxIndex = Buffer::s_lockVertexCount - 1;
batch.m_start = 0;
batch.m_count = indexCount;
BLIZZARD_ASSERT(batch.m_count > 0);
g_theGxDevicePtr->Draw(&batch, 1);
}
void GxPrimUnlockVertexPtrs() { void GxPrimUnlockVertexPtrs() {
Buffer::s_lockVertexCount = 0; Buffer::s_lockVertexCount = 0;
} }

View File

@ -45,8 +45,6 @@ void GxPrimVertexPtr(uint32_t vertexCount, const C3Vector* pos, uint32_t posStri
void GxPrimLockVertexPtrs(uint32_t vertexCount, const C3Vector* pos, uint32_t posStride, const C3Vector* normal, uint32_t normalStride, const CImVector* color, uint32_t colorStride, const unsigned char* bone, uint32_t boneStride, const C2Vector* tex0, uint32_t tex0Stride, const C2Vector* tex1, uint32_t tex1Stride); void GxPrimLockVertexPtrs(uint32_t vertexCount, const C3Vector* pos, uint32_t posStride, const C3Vector* normal, uint32_t normalStride, const CImVector* color, uint32_t colorStride, const unsigned char* bone, uint32_t boneStride, const C2Vector* tex0, uint32_t tex0Stride, const C2Vector* tex1, uint32_t tex1Stride);
void GxDrawLockedElements(EGxPrim primType, uint32_t indexCount, const uint16_t* indices);
void GxPrimUnlockVertexPtrs(); void GxPrimUnlockVertexPtrs();
#endif #endif

View File

@ -1,10 +1,30 @@
#include "gx/Draw.hpp" #include "gx/Draw.hpp"
#include "gx/Device.hpp" #include "gx/Device.hpp"
#include <bc/Debug.hpp>
void GxDraw(CGxBatch* batch, int32_t indexed) { void GxDraw(CGxBatch* batch, int32_t indexed) {
g_theGxDevicePtr->Draw(batch, indexed); g_theGxDevicePtr->Draw(batch, indexed);
} }
void GxDrawLockedElements(EGxPrim primType, uint32_t indexCount, const uint16_t* indices) {
if (Buffer::s_lockVertexCount == 0) {
return;
}
GxPrimIndexPtr(indexCount, indices);
CGxBatch batch;
batch.m_primType = primType;
batch.m_minIndex = 0;
batch.m_maxIndex = Buffer::s_lockVertexCount - 1;
batch.m_start = 0;
batch.m_count = indexCount;
BLIZZARD_ASSERT(batch.m_count > 0);
g_theGxDevicePtr->Draw(&batch, 1);
}
void GxSceneClear(uint32_t mask, CImVector color) { void GxSceneClear(uint32_t mask, CImVector color) {
g_theGxDevicePtr->SceneClear(mask, color); g_theGxDevicePtr->SceneClear(mask, color);
} }

View File

@ -10,6 +10,8 @@ class CImVector;
void GxDraw(CGxBatch* batch, int32_t indexed); void GxDraw(CGxBatch* batch, int32_t indexed);
void GxDrawLockedElements(EGxPrim primType, uint32_t indexCount, const uint16_t* indices);
void GxSceneClear(uint32_t, CImVector); void GxSceneClear(uint32_t, CImVector);
void GxScenePresent(uint32_t a2); void GxScenePresent(uint32_t a2);