#pragma once #if 0 #include "D3DBase.h" #include "DecodedVArray.h" #include class CompiledDList { u32 *data; int dataSize; int pass; int codeSize; u8 *code; struct Batch { DecodedVArray varray; LPDIRECT3DINDEXBUFFER9 ibuffer; int numDraws; }; Batch *batches; int numBatches; u32 addr, size; bool Compile(); bool Pass1(); void Pass2(); void Run(); public: CompiledDList(u32 _addr, u32 _size); ~CompiledDList(); bool Call(); static void DrawHelperHelper(CompiledDList *dl, int vno, int prim); }; class DListCache { struct DLCacheEntry { CompiledDList *dlist; int frameCount; int pass; u32 size; DLCacheEntry() { pass=0; dlist=0; frameCount=0; } void Destroy() { if (dlist) delete dlist; } }; typedef std::map DLCache; static DLCache dlists; public: static void Init(); static void Cleanup(); static void Shutdown(); static void Call(u32 _addr, u32 _size); }; #endif