spamming with vu1 packets 2

This commit is contained in:
h4570
2022-07-23 15:55:38 +02:00
parent 17d7634f1d
commit 1ffba47119
6 changed files with 139 additions and 99 deletions
@@ -25,7 +25,7 @@ class DynPipCore {
DynPipProgramsRepository repository;
void init(RendererCore* t_core);
void init(RendererCore* t_core, const u32& t_packetSize);
/** Force starting VU1 program instead of continueing */
void clear() { qbufferRenderer.clearLastProgramName(); }
@@ -36,11 +36,9 @@ class DynPipCore {
*/
void initParts(DynPipBag* data);
// TODO: TEST!
void renderTEST(DynPipBag** bags, const u32& count);
/** Render 3D via "bags" */
void renderPart(DynPipBag* data, const bool& frustumCull = true);
void renderPart(DynPipBag** bags, const u32& count,
const bool& frustumCull = true);
/** Get max vert count of VU1 qbuffer (for optimizations) */
u32 getMaxVertCountByParams(const bool& isLightingEnabled,
@@ -21,15 +21,15 @@ class DynPipRenderer {
DynPipRenderer();
~DynPipRenderer();
void init(RendererCore* t_core, DynPipProgramsRepository* t_programRepo);
void init(RendererCore* t_core, DynPipProgramsRepository* t_programRepo,
const u32& t_packetSize);
void reinitVU1();
void sendObjectData(DynPipBag* bag, M4x4* mvp,
RendererCoreTextureBuffers* texBuffers) const;
void render(DynPipBag* bag);
void renderTEST(DynPipBag** bags, const u32& count);
void render(DynPipBag** bags, const u32& count);
void clearLastProgramName();
@@ -41,9 +41,8 @@ class DynPipRenderer {
void uploadPrograms();
void setDoubleBuffer();
void addBufferDataToPacketTEST(DynPipVU1Program* program, DynPipBag** bags,
const u32& count);
void addBufferDataToPacket(DynPipVU1Program* program, DynPipBag* bag);
void addBufferDataToPacket(DynPipVU1Program* program, DynPipBag** bags,
const u32& count);
void sendPacket();
packet2_t* packets[2];
@@ -24,6 +24,8 @@ class DynamicPipeline : public Renderer3DPipeline {
DynamicPipeline();
~DynamicPipeline();
static const u32 buffersCount;
DynPipCore core;
void init(RendererCore* core);
@@ -39,6 +41,14 @@ class DynamicPipeline : public Renderer3DPipeline {
private:
RendererCore* rendererCore;
Vec4* colorsCache;
DynPipBag* buffers;
static const u32 halfBuffersCount;
void setBuffer(DynPipBag* buffers, DynPipBag* buffer, u16* bufferIndex,
const DynPipFrustumCulling& frustumCulling);
void sendRestOfBuffers(DynPipBag* buffers, u16* bufferIndex,
const DynPipFrustumCulling& frustumCulling);
void addVertices(MeshMaterialFrame* materialFrameFrom,
MeshMaterialFrame* materialFrameTo, DynPipBag* bag,