X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=retrace%2Fd3d10state.cpp;h=d5e41da04146d3597264ed8f1dbea2e74c0f46c6;hb=7a9fb5103e052150232b64cb5d99374cda3f1234;hp=fd0eb5b16cd0dab1aa1ee499f4aca0db02c1335e;hpb=944088ed749f195699228598ce3955063696931b;p=apitrace diff --git a/retrace/d3d10state.cpp b/retrace/d3d10state.cpp index fd0eb5b..d5e41da 100644 --- a/retrace/d3d10state.cpp +++ b/retrace/d3d10state.cpp @@ -28,19 +28,67 @@ #include -#include "d3d11imports.hpp" -#include "json.hpp" +#include "d3d10imports.hpp" +#include "d3d10state.hpp" namespace d3dstate { +const GUID +GUID_D3DSTATE = {0x7D71CAC9,0x7F58,0x432C,{0xA9,0x75,0xA1,0x9F,0xCF,0xCE,0xFD,0x14}}; + + +static void +dumpShaders(JSONWriter &json, ID3D10Device *pDevice) +{ + json.beginMember("shaders"); + json.beginObject(); + + ID3D10VertexShader *pVertexShader = NULL; + pDevice->VSGetShader(&pVertexShader); + if (pVertexShader) { + dumpShader(json, "VS", pVertexShader); + pVertexShader->Release(); + } + + ID3D10GeometryShader *pGeometryShader = NULL; + pDevice->GSGetShader(&pGeometryShader); + if (pGeometryShader) { + dumpShader(json, "GS", pGeometryShader); + pGeometryShader->Release(); + } + + ID3D10PixelShader *pPixelShader = NULL; + pDevice->PSGetShader(&pPixelShader); + if (pPixelShader) { + dumpShader(json, "PS", pPixelShader); + } + + json.endObject(); + json.endMember(); // shaders +} + + void dumpDevice(std::ostream &os, ID3D10Device *pDevice) { JSONWriter json(os); /* TODO */ + json.beginMember("parameters"); + json.beginObject(); + json.endObject(); + json.endMember(); // parameters + + dumpShaders(json, pDevice); + + json.beginMember("textures"); + json.beginObject(); + json.endObject(); + json.endMember(); // textures + + dumpFramebuffer(json, pDevice); }