2 Copyright (C) 2003 Rice1964
4 This program is free software; you can redistribute it and/or
5 modify it under the terms of the GNU General Public License
6 as published by the Free Software Foundation; either version 2
7 of the License, or (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 #ifndef _EXTENDED_RENDER_H_
20 #define _EXTENDED_RENDER_H_
22 #include "RSP_Parser.h"
23 #include "RSP_S2DEX.h"
25 // Define the render extension interface and provide empty implementation of
26 // the render extension functions.
27 // Real render can either implement or not implement these extended render functions
29 // These extended render functions are in different groups:
30 // - Group #1: Related to frame buffer
31 // - Group #2: Related to 2D sprite
32 // - Group #3: Related BG and ScaledBG
36 virtual ~CExtendedRender() {}
38 virtual void DrawFrameBuffer(bool useVIreg=false, uint32 left=0, uint32 top=0, uint32 width=0, uint32 height=0) {};
39 virtual void LoadFrameBuffer(bool useVIreg=false, uint32 left=0, uint32 top=0, uint32 width=0, uint32 height=0) {};
40 virtual void LoadTxtrBufFromRDRAM(void) {};
41 virtual void LoadTxtrBufIntoTexture(void) {};
43 virtual void DrawSprite2D(Sprite2DInfo &info, uint32 ucode) {};
44 virtual void LoadSprite2D(Sprite2DInfo &info, uint32 ucode) {};
47 virtual void DrawSprite(uObjTxSprite &sprite, bool rectR = true) {};
48 virtual void DrawObjBG1CYC(uObjScaleBg &bg, bool scaled=true) {};
49 virtual void DrawObjBGCopy(uObjBg &info) {};
50 virtual void LoadObjBGCopy(uObjBg &info) {};
51 virtual void LoadObjBG1CYC(uObjScaleBg &info) {};
52 virtual void LoadObjSprite(uObjTxSprite &info, bool useTIAddr=false) {};
54 virtual void DrawText(const char* str, RECT *rect) {};