static inline void dumpStateObjectDesc(JSONWriter &json, Interface *pObj) { if (pObj) { typename ExtractDescType< decltype( &Interface::GetDesc ) >::type Desc; pObj->GetDesc(&Desc); dumpStateObject(json, Desc); } else { json.writeNull(); } }
static void dumpViewports(StateWriter &writer, ID3D10Device *pDevice) { D3D10_VIEWPORT vps[D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE]; UINT numViewports = 0, i; pDevice->RSGetViewports(&numViewports, NULL); pDevice->RSGetViewports(&numViewports, vps); writer.beginMember("Viewports"); writer.beginArray(); for (i = 0; i < numViewports; ++i) { dumpStateObject(writer, vps[i]); } writer.endArray(); writer.endMember(); }
static void dumpScissors(StateWriter &writer, ID3D10Device *pDevice) { D3D10_RECT rects[D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE]; UINT numRects = 0, i; pDevice->RSGetScissorRects(&numRects, NULL); pDevice->RSGetScissorRects(&numRects, rects); writer.beginMember("Scissors"); writer.beginArray(); for (i = 0; i < numRects; ++i) { dumpStateObject(writer, rects[i]); } writer.endArray(); writer.endMember(); }