// enum TexEnvFlags // { // Alpha = 0x20000, // Software = 0x40000, // MipMap = 0x80000 // } struct gfxBitmap { void *lpAlloc; short Width; short Height; IDirectDrawSurface7 *DDrawSurface; unsigned int RefCount; gfxBitmap *PreviousBitmap; }; struct gfxImage { enum gfxImageFormat { ARGB_8888 = 1, RGB_0888 = 2, ARGB_1555 = 3, RGB_0555 = 4, // 555 or 565 Palette8 = 5, Palette4 = 6, }; short Width; short Height; short Size; short Type; // gfxImageFormat unsigned int TexEnv; void *lpImage; unsigned int *Array14; unsigned int RefCount; gfxImage *PreviousImage; unsigned int dword20; unsigned int dword24; }; struct gfxTexture { unsigned int VglBindIndex; const char *Name; unsigned short Width; unsigned short Height; unsigned int TexEnv; unsigned int DominantColor; IDirectDrawSurface7 *DirectDrawSurface; IDirectDrawPalette *DirectDrawPalette; gfxTextureCacheEntry *CacheEntry; gfxTextureCachePool *CachePool; unsigned int RefCount; gfxTexture *PrevLOD; gfxTexture *NextLOD; unsigned char MaxLODCount; unsigned char LODCount; }; struct gfxTextureCachePool { unsigned short Width; unsigned short Height; unsigned short MipMapCount; unsigned short TextureCount; unsigned short EntryCount; unsigned short HasNoSurface; gfxTextureCacheEntry *FirstEntry; gfxTextureCachePool *PrevPool; DDPIXELFORMAT PixelFormat; }; struct gfxTextureCacheEntry { gfxTexture *GfxTexture; IDirectDrawSurface7 *DirectDrawSurface; unsigned int LastAccessTime; gfxTextureCacheEntry *PrevEntry; };