mirror of
https://github.com/thug1src/thug.git
synced 2025-01-22 05:43:47 +00:00
133 lines
3.0 KiB
C++
133 lines
3.0 KiB
C++
#include "line.h"
|
|
#include "render.h"
|
|
|
|
|
|
namespace NxPs2
|
|
{
|
|
|
|
|
|
void BeginLines2D(uint32 rgba)
|
|
{
|
|
// // dma tag
|
|
// dma::BeginTag(dma::cnt, 0);
|
|
//
|
|
// vu1::Buffer = vu1::Loc;
|
|
//
|
|
// // GS context
|
|
// gs::BeginPrim(ABS,0,0);
|
|
// gs::Reg1(gs::ALPHA_1, PackALPHA(0,1,0,1,0));
|
|
// gs::Reg1(gs::RGBAQ, (uint64)rgba);
|
|
// gs::EndPrim(0);
|
|
//
|
|
// // unpack giftag
|
|
// vif::UNPACK(0, V4_32, 1, ABS, UNSIGNED, 0);
|
|
// gif::BeginTagImmediate(gs::XYZ2, 1, PACKED, LINE|ABE, 1, VU1_ADDR(GSPrim));
|
|
//
|
|
// // begin unpack for coordinates
|
|
// vif::BeginUNPACK(0, V4_32, ABS, SIGNED, 1);
|
|
}
|
|
|
|
|
|
|
|
void DrawLine2D(float x0, float y0, float z0, float x1, float y1, float z1)
|
|
{
|
|
// vif::StoreV4_32(0x6C00+(sint32)(x0*16),0x7200+(sint32)(y0*16),0xFFFFFF,0);
|
|
// vif::StoreV4_32(0x6C00+(sint32)(x1*16),0x7200+(sint32)(y1*16),0xFFFFFF,0);
|
|
//
|
|
// if (((dma::pLoc - gif::pTag)>>4) >= 250)
|
|
// {
|
|
// vif::EndUNPACK();
|
|
// gif::EndTagImmediate(1,0);
|
|
// vif::MSCAL(VU1_ADDR(Parser));
|
|
// vif::UNPACK(0, V4_32, 1, ABS, UNSIGNED, 0);
|
|
// gif::BeginTagImmediate(gs::XYZ2, 1, PACKED, LINE|ABE, 1, VU1_ADDR(GSPrim));
|
|
// vif::BeginUNPACK(0, V4_32, ABS, SIGNED, 1);
|
|
// }
|
|
//
|
|
}
|
|
|
|
|
|
void EndLines2D(void)
|
|
{
|
|
// vif::EndUNPACK();
|
|
// gif::EndTagImmediate(1,0);
|
|
// vif::MSCAL(VU1_ADDR(Parser));
|
|
// dma::EndTag();
|
|
}
|
|
|
|
|
|
|
|
void BeginLines3D(uint32 rgba)
|
|
{
|
|
// // dma tag
|
|
// dma::BeginTag(dma::cnt, 0);
|
|
//
|
|
// vu1::Buffer = vu1::Loc;
|
|
//
|
|
// // VU context
|
|
// vu1::BeginPrim(ABS, VU1_ADDR(L_VF10));
|
|
// vu1::StoreVec(ViewportScale); // VF10
|
|
// vu1::StoreVec(ViewportOffset); // VF11
|
|
// vu1::StoreMat(WorldToFrustum); // VF12-15
|
|
// vu1::EndPrim(0);
|
|
//
|
|
// // GS context
|
|
// gs::BeginPrim(ABS,0,0);
|
|
// gs::Reg1(gs::ALPHA_1, PackALPHA(0,1,0,1,0));
|
|
// gs::Reg1(gs::RGBAQ, (uint64)rgba);
|
|
// gs::EndPrim(0);
|
|
//
|
|
// // all lines will be rendered with simple culling
|
|
// vif::ITOP(CULL);
|
|
//
|
|
// // unpack giftag
|
|
// vif::UNPACK(0, V4_32, 1, ABS, UNSIGNED, 0);
|
|
// gif::BeginTagImmediate(gs::XYZ2, 1, PACKED, LINE|ABE, 1, VU1_ADDR(ProjLine));
|
|
//
|
|
// // offset mode
|
|
// vif::STMOD(1);
|
|
//
|
|
// // begin unpack for coordinates
|
|
// vif::BeginUNPACK(0, V4_32, ABS, SIGNED, 1);
|
|
}
|
|
|
|
|
|
void DrawLine3D(float x0, float y0, float z0, float x1, float y1, float z1)
|
|
{
|
|
// vif::StoreV4_32((sint32)(x0*256.0f), (sint32)(y0*256.0f), (sint32)(z0*256.0f), 0);
|
|
// vif::StoreV4_32((sint32)(x1*256.0f), (sint32)(y1*256.0f), (sint32)(z1*256.0f), 0);
|
|
//
|
|
// if (((dma::pLoc - gif::pTag)>>4) >= 250)
|
|
// {
|
|
// vif::EndUNPACK();
|
|
// gif::EndTagImmediate(1,1);
|
|
// vif::STMOD(0);
|
|
// vif::MSCAL(VU1_ADDR(Parser));
|
|
// vif::UNPACK(0, V4_32, 1, ABS, UNSIGNED, 0);
|
|
// gif::BeginTagImmediate(gs::XYZ2, 1, PACKED, LINE|ABE, 1, VU1_ADDR(ProjLine));
|
|
// vif::STMOD(1);
|
|
// vif::BeginUNPACK(0, V4_32, ABS, SIGNED, 1);
|
|
// }
|
|
//
|
|
}
|
|
|
|
|
|
void EndLines3D(void)
|
|
{
|
|
// vif::EndUNPACK();
|
|
//
|
|
// if (vif::UnpackSize)
|
|
// {
|
|
// gif::EndTagImmediate(1,1);
|
|
// vif::STMOD(0);
|
|
// vif::MSCAL(VU1_ADDR(Parser));
|
|
// }
|
|
// else
|
|
// dma::pLoc -= 24;
|
|
//
|
|
// dma::EndTag();
|
|
}
|
|
|
|
} // namespace NxPs2
|
|
|