mirror of https://git.suyu.dev/suyu/suyu
Pica: Remove geometry dumper (PICA_DUMP_GEOMETRY)
This commit is contained in:
parent
0b7efc2be2
commit
ff7c798d86
|
@ -249,10 +249,6 @@ static void WritePicaReg(u32 id, u32 value, u32 mask) {
|
|||
const u16* index_address_16 = reinterpret_cast<const u16*>(index_address_8);
|
||||
bool index_u16 = index_info.format != 0;
|
||||
|
||||
#if PICA_DUMP_GEOMETRY
|
||||
DebugUtils::GeometryDumper geometry_dumper;
|
||||
PrimitiveAssembler<DebugUtils::GeometryDumper::Vertex> dumping_primitive_assembler(regs.triangle_topology.Value());
|
||||
#endif
|
||||
PrimitiveAssembler<Shader::OutputVertex>& primitive_assembler = g_state.primitive_assembler;
|
||||
|
||||
if (g_debug_context) {
|
||||
|
@ -388,17 +384,6 @@ static void WritePicaReg(u32 id, u32 value, u32 mask) {
|
|||
if (g_debug_context)
|
||||
g_debug_context->OnEvent(DebugContext::Event::VertexLoaded, (void*)&input);
|
||||
|
||||
#if PICA_DUMP_GEOMETRY
|
||||
// NOTE: When dumping geometry, we simply assume that the first input attribute
|
||||
// corresponds to the position for now.
|
||||
DebugUtils::GeometryDumper::Vertex dumped_vertex = {
|
||||
input.attr[0][0].ToFloat32(), input.attr[0][1].ToFloat32(), input.attr[0][2].ToFloat32()
|
||||
};
|
||||
using namespace std::placeholders;
|
||||
dumping_primitive_assembler.SubmitVertex(dumped_vertex,
|
||||
std::bind(&DebugUtils::GeometryDumper::AddTriangle,
|
||||
&geometry_dumper, _1, _2, _3));
|
||||
#endif
|
||||
// Send to vertex shader
|
||||
output = Shader::Run(shader_unit, input, attribute_config.GetNumTotalAttributes());
|
||||
|
||||
|
@ -424,10 +409,6 @@ static void WritePicaReg(u32 id, u32 value, u32 mask) {
|
|||
range.second, range.first);
|
||||
}
|
||||
|
||||
#if PICA_DUMP_GEOMETRY
|
||||
geometry_dumper.Dump();
|
||||
#endif
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -85,35 +85,6 @@ std::shared_ptr<DebugContext> g_debug_context; // TODO: Get rid of this global
|
|||
|
||||
namespace DebugUtils {
|
||||
|
||||
void GeometryDumper::AddTriangle(Vertex& v0, Vertex& v1, Vertex& v2) {
|
||||
vertices.push_back(v0);
|
||||
vertices.push_back(v1);
|
||||
vertices.push_back(v2);
|
||||
|
||||
int num_vertices = (int)vertices.size();
|
||||
faces.push_back({{ num_vertices-3, num_vertices-2, num_vertices-1 }});
|
||||
}
|
||||
|
||||
void GeometryDumper::Dump() {
|
||||
static int index = 0;
|
||||
std::string filename = std::string("geometry_dump") + std::to_string(++index) + ".obj";
|
||||
|
||||
std::ofstream file(filename);
|
||||
|
||||
for (const auto& vertex : vertices) {
|
||||
file << "v " << vertex.pos[0]
|
||||
<< " " << vertex.pos[1]
|
||||
<< " " << vertex.pos[2] << std::endl;
|
||||
}
|
||||
|
||||
for (const Face& face : faces) {
|
||||
file << "f " << 1+face.index[0]
|
||||
<< " " << 1+face.index[1]
|
||||
<< " " << 1+face.index[2] << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void DumpShader(const std::string& filename, const Regs::ShaderConfig& config, const Shader::ShaderSetup& setup, const Regs::VSOutputAttributes* output_attributes)
|
||||
{
|
||||
struct StuffToWrite {
|
||||
|
|
|
@ -158,30 +158,9 @@ extern std::shared_ptr<DebugContext> g_debug_context; // TODO: Get rid of this g
|
|||
|
||||
namespace DebugUtils {
|
||||
|
||||
#define PICA_DUMP_GEOMETRY 0
|
||||
#define PICA_DUMP_TEXTURES 0
|
||||
#define PICA_LOG_TEV 0
|
||||
|
||||
// Simple utility class for dumping geometry data to an OBJ file
|
||||
class GeometryDumper {
|
||||
public:
|
||||
struct Vertex {
|
||||
std::array<float,3> pos;
|
||||
};
|
||||
|
||||
void AddTriangle(Vertex& v0, Vertex& v1, Vertex& v2);
|
||||
|
||||
void Dump();
|
||||
|
||||
private:
|
||||
struct Face {
|
||||
int index[3];
|
||||
};
|
||||
|
||||
std::vector<Vertex> vertices;
|
||||
std::vector<Face> faces;
|
||||
};
|
||||
|
||||
void DumpShader(const std::string& filename, const Regs::ShaderConfig& config,
|
||||
const Shader::ShaderSetup& setup, const Regs::VSOutputAttributes* output_attributes);
|
||||
|
||||
|
|
|
@ -68,7 +68,5 @@ void PrimitiveAssembler<VertexType>::Reconfigure(Regs::TriangleTopology topology
|
|||
// explicitly instantiate use cases
|
||||
template
|
||||
struct PrimitiveAssembler<Shader::OutputVertex>;
|
||||
template
|
||||
struct PrimitiveAssembler<DebugUtils::GeometryDumper::Vertex>;
|
||||
|
||||
} // namespace
|
||||
|
|
Loading…
Reference in New Issue