Pica: Consolidate the primitive assembly code in PrimitiveAssembly and GeometryDumper.
This commit is contained in:
parent
9679d231df
commit
2f1c129f64
5 changed files with 73 additions and 45 deletions
|
@ -22,27 +22,17 @@ namespace Pica {
|
|||
|
||||
namespace DebugUtils {
|
||||
|
||||
void GeometryDumper::AddVertex(std::array<float,3> pos, TriangleTopology topology) {
|
||||
vertices.push_back({pos[0], pos[1], pos[2]});
|
||||
void GeometryDumper::AddTriangle(Vertex& v0, Vertex& v1, Vertex& v2) {
|
||||
vertices.push_back(v0);
|
||||
vertices.push_back(v1);
|
||||
vertices.push_back(v2);
|
||||
|
||||
int num_vertices = vertices.size();
|
||||
|
||||
switch (topology) {
|
||||
case TriangleTopology::List:
|
||||
case TriangleTopology::ListIndexed:
|
||||
if (0 == (num_vertices % 3))
|
||||
faces.push_back({ num_vertices-3, num_vertices-2, num_vertices-1 });
|
||||
break;
|
||||
|
||||
default:
|
||||
ERROR_LOG(GPU, "Unknown triangle topology %x", (int)topology);
|
||||
exit(0);
|
||||
break;
|
||||
}
|
||||
faces.push_back({ num_vertices-3, num_vertices-2, num_vertices-1 });
|
||||
}
|
||||
|
||||
void GeometryDumper::Dump() {
|
||||
// NOTE: Permanently enabling this just trashes hard disks for no reason.
|
||||
// NOTE: Permanently enabling this just trashes the hard disk for no reason.
|
||||
// Hence, this is currently disabled.
|
||||
return;
|
||||
|
||||
|
|
|
@ -14,20 +14,18 @@ namespace Pica {
|
|||
|
||||
namespace DebugUtils {
|
||||
|
||||
using TriangleTopology = Regs::TriangleTopology;
|
||||
|
||||
// Simple utility class for dumping geometry data to an OBJ file
|
||||
class GeometryDumper {
|
||||
public:
|
||||
void AddVertex(std::array<float,3> pos, TriangleTopology topology);
|
||||
|
||||
void Dump();
|
||||
|
||||
private:
|
||||
struct Vertex {
|
||||
std::array<float,3> pos;
|
||||
};
|
||||
|
||||
void AddTriangle(Vertex& v0, Vertex& v1, Vertex& v2);
|
||||
|
||||
void Dump();
|
||||
|
||||
private:
|
||||
struct Face {
|
||||
int index[3];
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue