launching vu1 programs
This commit is contained in:
@@ -40,8 +40,7 @@ class DynPipCore {
|
||||
void renderPart(DynPipBag* data, const bool& frustumCull = true);
|
||||
|
||||
/** Get max vert count of VU1 qbuffer (for optimizations) */
|
||||
u32 getMaxVertCountByParams(const bool& isSingleColor,
|
||||
const bool& isLightingEnabled,
|
||||
u32 getMaxVertCountByParams(const bool& isLightingEnabled,
|
||||
const bool& isTextureEnabled);
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
/*
|
||||
# ______ ____ ___
|
||||
# | \/ ____| |___|
|
||||
# | | | \ | |
|
||||
#-----------------------------------------------------------------------
|
||||
# Copyright 2022, tyra - https://github.com/h4570/tyra
|
||||
# Licenced under Apache License 2.0
|
||||
# Sandro Sobczyński <sandro.sobczynski@gmail.com>
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "./bag/dynpip_bag.hpp"
|
||||
|
||||
namespace Tyra {
|
||||
|
||||
class DynPipQBuffer {
|
||||
public:
|
||||
DynPipQBuffer();
|
||||
~DynPipQBuffer();
|
||||
|
||||
void setMaxVertCount(const u32& count);
|
||||
|
||||
DynPipBag* bag;
|
||||
|
||||
Vec4* verticesFrom;
|
||||
Vec4* verticesTo;
|
||||
|
||||
Vec4* stsFrom;
|
||||
Vec4* stsTo;
|
||||
|
||||
Vec4* normalsFrom;
|
||||
Vec4* normalsTo;
|
||||
|
||||
/** Size per frame */
|
||||
u32 size;
|
||||
|
||||
void print() const;
|
||||
void print(const char* name) const;
|
||||
void print(const std::string& name) const { print(name.c_str()); }
|
||||
std::string getPrint(const char* name = nullptr) const;
|
||||
|
||||
private:
|
||||
u32 maxVertCount;
|
||||
};
|
||||
|
||||
} // namespace Tyra
|
||||
@@ -25,16 +25,10 @@ class DynPipRenderer {
|
||||
|
||||
void reinitVU1();
|
||||
|
||||
// DynPipQBuffer* getBuffer();
|
||||
|
||||
void sendObjectData(DynPipBag* bag, M4x4* mvp,
|
||||
RendererCoreTextureBuffers* texBuffers) const;
|
||||
|
||||
// void setMaxVertCount(const u32& count);
|
||||
|
||||
// void setInfo(PipelineInfoBag* bag);
|
||||
|
||||
// void render(DynPipQBuffer* buffer);
|
||||
void render(DynPipBag* bag);
|
||||
|
||||
void clearLastProgramName();
|
||||
|
||||
@@ -46,9 +40,8 @@ class DynPipRenderer {
|
||||
void uploadPrograms();
|
||||
void setDoubleBuffer();
|
||||
|
||||
// void addBufferDataToPacket(DynPipVU1Program* program, DynPipQBuffer*
|
||||
// buffer); void sendPacket();
|
||||
// DynPipQBuffer buffers[2];
|
||||
void addBufferDataToPacket(DynPipVU1Program* program, DynPipBag* bag);
|
||||
void sendPacket();
|
||||
|
||||
packet2_t* packets[2];
|
||||
packet2_t* programsPacket;
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
#include "./dynpip_program_name.hpp"
|
||||
#include "renderer/core/paths/path1/vu1_program.hpp"
|
||||
#include "./programs/dynpip_vu1_shared_defines.h"
|
||||
#include "./dynpip_qbuffer.hpp"
|
||||
#include "./bag/dynpip_bag.hpp"
|
||||
|
||||
namespace Tyra {
|
||||
|
||||
@@ -28,11 +28,9 @@ class DynPipVU1Program : public VU1Program {
|
||||
|
||||
const DynPipProgramName& getName() const;
|
||||
|
||||
u16 getMaxVertCount(const bool& singleColorEnabled,
|
||||
const u16& vu1DBufferSize) const;
|
||||
u16 getMaxVertCount(const u16& vu1DBufferSize) const;
|
||||
|
||||
void addBufferDataToPacket(packet2_t* packet, DynPipQBuffer* buffer,
|
||||
prim_t* prim);
|
||||
void addBufferDataToPacket(packet2_t* packet, DynPipBag* bag, prim_t* prim);
|
||||
|
||||
protected:
|
||||
DynPipProgramName name;
|
||||
@@ -40,10 +38,10 @@ class DynPipVU1Program : public VU1Program {
|
||||
u32 destinationAddress, reglist;
|
||||
|
||||
virtual void addProgramQBufferDataToPacket(packet2_t* packet,
|
||||
DynPipQBuffer* qbuffer) const = 0;
|
||||
DynPipBag* bag) const = 0;
|
||||
|
||||
private:
|
||||
void addStandardBufferDataToPacket(packet2_t* packet, DynPipQBuffer* buffer,
|
||||
void addStandardBufferDataToPacket(packet2_t* packet, DynPipBag* bag,
|
||||
prim_t* prim);
|
||||
};
|
||||
|
||||
|
||||
@@ -22,8 +22,7 @@ class DynPipCVU1Program : public DynPipVU1Program {
|
||||
~DynPipCVU1Program();
|
||||
|
||||
std::string getStringName() const;
|
||||
void addProgramQBufferDataToPacket(packet2_t* packet,
|
||||
DynPipQBuffer* qbuffer) const;
|
||||
void addProgramQBufferDataToPacket(packet2_t* packet, DynPipBag* bag) const;
|
||||
};
|
||||
|
||||
} // namespace Tyra
|
||||
|
||||
@@ -22,8 +22,7 @@ class DynPipDVU1Program : public DynPipVU1Program {
|
||||
~DynPipDVU1Program();
|
||||
|
||||
std::string getStringName() const;
|
||||
void addProgramQBufferDataToPacket(packet2_t* packet,
|
||||
DynPipQBuffer* qbuffer) const;
|
||||
void addProgramQBufferDataToPacket(packet2_t* packet, DynPipBag* bag) const;
|
||||
};
|
||||
|
||||
} // namespace Tyra
|
||||
|
||||
@@ -22,8 +22,7 @@ class DynPipTCVU1Program : public DynPipVU1Program {
|
||||
~DynPipTCVU1Program();
|
||||
|
||||
std::string getStringName() const;
|
||||
void addProgramQBufferDataToPacket(packet2_t* packet,
|
||||
DynPipQBuffer* qbuffer) const;
|
||||
void addProgramQBufferDataToPacket(packet2_t* packet, DynPipBag* bag) const;
|
||||
};
|
||||
|
||||
} // namespace Tyra
|
||||
|
||||
@@ -22,8 +22,7 @@ class DynPipTDVU1Program : public DynPipVU1Program {
|
||||
~DynPipTDVU1Program();
|
||||
|
||||
std::string getStringName() const;
|
||||
void addProgramQBufferDataToPacket(packet2_t* packet,
|
||||
DynPipQBuffer* qbuffer) const;
|
||||
void addProgramQBufferDataToPacket(packet2_t* packet, DynPipBag* bag) const;
|
||||
};
|
||||
|
||||
} // namespace Tyra
|
||||
|
||||
@@ -14,10 +14,19 @@
|
||||
|
||||
namespace Tyra {
|
||||
|
||||
enum DynPipFrustumCulling {
|
||||
DynPipFrustumCulling_None = 0,
|
||||
DynPipFrustumCulling_Simple = 1,
|
||||
DynPipFrustumCulling_Precise = 2,
|
||||
};
|
||||
|
||||
class DynPipOptions : public PipelineOptions {
|
||||
public:
|
||||
DynPipOptions() {}
|
||||
~DynPipOptions() {}
|
||||
|
||||
/** Default: Simple */
|
||||
DynPipFrustumCulling frustumCulling;
|
||||
};
|
||||
|
||||
} // namespace Tyra
|
||||
|
||||
Reference in New Issue
Block a user