/* Copyright 2000 TransGaming Technologies Inc. */ #ifndef DDRAW_DSURFACE_DIBTEXTURE_H_INCLUDED #define DDRAW_DSURFACE_DIBTEXTURE_H_INCLUDED #define DIBTEXTURE_PRIV(surf) \ ((DIBTexture_DirectDrawSurfaceImpl*)(surf->private)) #define DIBTEXTURE_PRIV_VAR(name,surf) \ DIBTexture_DirectDrawSurfaceImpl* name = DIBTEXTURE_PRIV(surf) /* We add a spot for 3D drivers to store some private data. A cleaner * solution would be to use SetPrivateData, but it's much too slow. */ union DIBTexture_data { int i; void* p; }; struct DIBTexture_DirectDrawSurfaceImpl_Part { union DIBTexture_data data; }; typedef struct { struct DIB_DirectDrawSurfaceImpl_Part dib; struct DIBTexture_DirectDrawSurfaceImpl_Part dibtexture; } DIBTexture_DirectDrawSurfaceImpl; HRESULT DIBTexture_DirectDrawSurface_Construct(IDirectDrawSurfaceImpl* This, IDirectDrawImpl* pDD, const DDSURFACEDESC2* pDDSD); HRESULT DIBTexture_DirectDrawSurface_Create(IDirectDrawImpl *pDD, const DDSURFACEDESC2 *pDDSD, LPDIRECTDRAWSURFACE7 *ppSurf, IUnknown *pUnkOuter); void DIBTexture_DirectDrawSurface_final_release(IDirectDrawSurfaceImpl* This); HRESULT DIBTexture_DirectDrawSurface_duplicate_surface(IDirectDrawSurfaceImpl* This, LPDIRECTDRAWSURFACE7* ppDup); #endif