00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef TPAGE_H
00025 #define TPAGE_H
00026
00027 #include <Windows.h>
00028
00029 #include <DDraw.h>
00030 #include <D3D.H>
00031
00032 typedef struct TPage_Mgr TPage_Mgr;
00033 typedef struct TPage TPage;
00034 typedef struct TPage_Block TPage_Block;
00035
00036
00037
00038
00039
00040
00041
00042
00043 TPage_Mgr *TPage_MgrCreate(LPDIRECTDRAW7 lpDD, const DDSURFACEDESC2 *SurfaceDesc, int32 NumPages);
00044
00045 void TPage_MgrDestroy(TPage_Mgr **TPageMgr);
00046 geBoolean TPage_MgrHasTPage(TPage_Mgr *Mgr, TPage *Page);
00047 geBoolean TPage_MgrAttachTPage(TPage_Mgr *Mgr, TPage *TPage);
00048 void TPage_MgrDetachTPage(TPage_Mgr *Mgr, TPage *TPage);
00049 TPage_Block *TPage_MgrFindOptimalBlock(TPage_Mgr *Mgr, uint32 LRU);
00050
00051
00052
00053
00054
00055
00056
00057
00058 TPage *TPage_Create(LPDIRECTDRAW7 lpDD, const DDSURFACEDESC2 *SurfDesc);
00059
00060 void TPage_CreateRef(TPage *Page);
00061 void TPage_Destroy(TPage **Page1);
00062 geBoolean TPage_HasBlock(TPage *TPage, TPage_Block *Block);
00063 geBoolean TPage_AttachBlock(TPage *Page, TPage_Block *Block);
00064 void TPage_DetachBlock(TPage *TPage, TPage_Block *Block);
00065
00066
00067
00068
00069 geBoolean TPage_CreateSurfaces(TPage *Page, LPDIRECTDRAW7 lpDD, const DDSURFACEDESC2 *SurfDesc);
00070
00071 void TPage_DestroySurfaces(TPage *Page);
00072
00073
00074
00075
00076
00077
00078
00079
00080 TPage_Block *TPage_BlockCreate(LPDIRECTDRAWSURFACE7 Surface, LPDIRECTDRAWSURFACE7 Texture, const RECT *Rect);
00081
00082
00083 geBoolean TPage_BlockCreateRef(TPage_Block *Block);
00084 void TPage_BlockDestroy(TPage_Block **Block);
00085
00086
00087
00088
00089
00090 LPDIRECTDRAWSURFACE7 TPage_BlockGetTexture(TPage_Block *Block);
00091 LPDIRECTDRAWSURFACE7 TPage_BlockGetSurface(TPage_Block *Block);
00092
00093 const RECT *TPage_BlockGetRect(TPage_Block *Block);
00094 void TPage_BlockSetLRU(TPage_Block *Block, uint32 LRU);
00095 void TPage_BlockSetUserData(TPage_Block *Block, void *UserData);
00096 void *TPage_BlockGetUserData(TPage_Block *Block);
00097
00098 #endif