public GpuDisplayListRunner(GpuDisplayList GpuDisplayList, State.GlobalGpuState GlobalGpuState) { this.GpuDisplayList = GpuDisplayList; this.GlobalGpuState = GlobalGpuState; }
//[GpuOpCodesNotImplemented] public void OP_RET() { GpuDisplayList.Ret(); }
/** * Start filling a new display-context * * Contexts available are: * - GU_DIRECT - Rendering is performed as list is filled * - GU_CALL - List is setup to be called from the main list * - GU_SEND - List is buffered for a later call to sceGuSendList() * * The previous context-type is stored so that it can be restored at sceGuFinish(). * * @param cid - Context Type * @param list - Pointer to display-list (16 byte aligned) **/ // void sceGuStart(int cid, void* list); /** * Finish current display list and go back to the parent context * * If the context is GU_DIRECT, the stall-address is updated so that the entire list will * execute. Otherwise, only the terminating action is written to the list, depending on * context-type. * * The finish-callback will get a zero as argument when using this function. * * This also restores control back to whatever context that was active prior to this call. * * @return Size of finished display list **/ // int sceGuFinish(void); /** * Finish current display list and go back to the parent context, sending argument id for * the finish callback. * * If the context is GU_DIRECT, the stall-address is updated so that the entire list will * execute. Otherwise, only the terminating action is written to the list, depending on * context-type. * * @param id - Finish callback id (16-bit) * @return Size of finished display list **/ // int sceGuFinishId(unsigned int id); /** * Call previously generated display-list * * @param list - Display list to call **/ // void sceGuCallList(const void* list); /** * Set wether to use stack-based calls or signals to handle execution of called lists. * * @param mode - GU_TRUE(1) to enable signals, GU_FALSE(0) to disable signals and use * normal calls instead. **/ // void sceGuCallMode(int mode); /** * Check how large the current display-list is * * @return The size of the current display list **/ // int sceGuCheckList(void); /** * Send a list to the GE directly * * Available modes are: * - GU_TAIL - Place list last in the queue, so it executes in-order * - GU_HEAD - Place list first in queue so that it executes as soon as possible * * @param mode - Whether to place the list first or last in queue * @param list - List to send * @param context - Temporary storage for the GE context **/ // void sceGuSendList(int mode, const void* list, PspGeContext* context); public void OP_JUMP() { GpuDisplayList.Jump((uint)( GpuDisplayList.GpuStateStructPointer->BaseAddress | (Params24 & ~3) )); }
//[GpuOpCodesNotImplemented] public void OP_CALL() { GpuDisplayList.Call((uint)( GpuDisplayList.GpuStateStructPointer->BaseAddress | (Params24 & ~3) )); }