Files
Work/ddraw/SFCDESC.HPP
2024-08-07 09:16:27 -04:00

318 lines
7.2 KiB
C++

#ifndef _DDRAW_SURFACEDESCRIPTION_HPP_
#define _DDRAW_SURFACEDESCRIPTION_HPP_
#ifndef _DDRAW_DDRAW_HPP_
#include <ddraw/ddraw.hpp>
#endif
#ifndef _DDRAW_SURFACECAPABILITIES_HPP_
#include <ddraw/sfccaps.hpp>
#endif
class SurfaceDescription : private DDSURFACEDESC2
{
public:
enum SurfaceFlags{Capabilities=DDSD_CAPS,Height=DDSD_HEIGHT,Width=DDSD_WIDTH,Pitch=DDSD_PITCH,
BackBufferCount=DDSD_BACKBUFFERCOUNT,ZBufferBitDepth=DDSD_ZBUFFERBITDEPTH,
AlphaBitDepth=DDSD_ALPHABITDEPTH,Surface=DDSD_LPSURFACE,PixelFormat=DDSD_PIXELFORMAT,
CKDestinationOverlay=DDSD_CKDESTOVERLAY,CKSourceOverlay=DDSD_CKSRCOVERLAY,
CKSourceBlt=DDSD_CKSRCBLT,MipMapCount=DDSD_MIPMAPCOUNT,RefreshRate=DDSD_REFRESHRATE,
LinearSize=DDSD_LINEARSIZE,TextureStage=DDSD_TEXTURESTAGE,All=DDSD_ALL};
SurfaceDescription(void);
SurfaceDescription(const SurfaceDescription &someSurfaceDescription);
SurfaceDescription(const DDSURFACEDESC2 &someDDSURFACEDESC2);
virtual ~SurfaceDescription();
SurfaceDescription &operator=(const SurfaceDescription &someSurfaceDescription);
SurfaceDescription &operator=(const DDSURFACEDESC2 &someDDSURFDESC2);
DWORD flags(void)const;
void flags(DWORD flags);
DWORD height(void)const;
void height(DWORD height);
DWORD width(void)const;
void width(DWORD width);
LONG lPitch(void)const;
void lPitch(LONG lPitch);
DWORD linearSize(void)const;
void linearSize(DWORD linearSize);
DWORD backBufferCount(void)const;
void backBufferCount(DWORD backBufferCount);
DWORD mipMapCount(void)const;
void mipMapCount(DWORD mipMapCount);
DWORD refreshRate(void)const;
void refreshRate(DWORD refreshRate);
DWORD alphaBitDepth(void)const;
void alphaBitDepth(DWORD alphaBitDepth);
LPVOID ptrSurface(void);
void ptrSurface(LPVOID pSurface);
const DDCOLORKEY &ckDestOverlay(void)const;
void ckDestOverlay(const DDCOLORKEY &ckDestOverlay);
const DDCOLORKEY &ckDestBlt(void)const;
void ckDestBlt(const DDCOLORKEY &ckDestBlt);
const DDCOLORKEY &ckSrcOverlay(void)const;
void ckSrcOverlay(const DDCOLORKEY &ckSrcOverlay);
const DDCOLORKEY &ckSrcBlt(void)const;
void ckSrcBlt(const DDCOLORKEY &ckSrcBlt);
const DDPIXELFORMAT &pixelFormat(void)const;
void pixelFormat(const DDPIXELFORMAT &pixelFormat);
SurfaceCapabilities surfaceCapabilities(void)const;
void surfaceCapabilities(const SurfaceCapabilities &surfaceCapabilities);
DWORD textureStage(void)const;
void textureStage(DWORD textureStage);
DDSURFACEDESC2 &getDDSURFACEDESC2(void);
private:
void zeroInit(void);
};
inline
SurfaceDescription::SurfaceDescription(void)
{
zeroInit();
}
inline
SurfaceDescription::SurfaceDescription(const SurfaceDescription &someSurfaceDescription)
{
*this=someSurfaceDescription;
}
inline
SurfaceDescription::SurfaceDescription(const DDSURFACEDESC2 &someDDSURFACEDESC2)
{
*this=someDDSURFACEDESC2;
}
inline
SurfaceDescription::~SurfaceDescription()
{
}
inline
SurfaceDescription &SurfaceDescription::operator=(const SurfaceDescription &someSurfaceDescription)
{
::memcpy(&getDDSURFACEDESC2(),&((SurfaceDescription&)someSurfaceDescription).getDDSURFACEDESC2(),sizeof(DDSURFACEDESC2));
return *this;
}
inline
SurfaceDescription &SurfaceDescription::operator=(const DDSURFACEDESC2 &someDDSURFACEDESC2)
{
::memcpy(&getDDSURFACEDESC2(),&someDDSURFACEDESC2,sizeof(DDSURFACEDESC2));
DDSURFACEDESC2::dwSize=sizeof(DDSURFACEDESC2);
return *this;
}
inline
DWORD SurfaceDescription::flags(void)const
{
return DDSURFACEDESC2::dwFlags;
}
inline
void SurfaceDescription::flags(DWORD flags)
{
DDSURFACEDESC2::dwFlags=flags;
}
inline
DWORD SurfaceDescription::height(void)const
{
return DDSURFACEDESC2::dwHeight;
}
inline
void SurfaceDescription::height(DWORD height)
{
DDSURFACEDESC2::dwHeight=height;
}
inline
DWORD SurfaceDescription::width(void)const
{
return DDSURFACEDESC2::dwWidth;
}
inline
void SurfaceDescription::width(DWORD width)
{
DDSURFACEDESC2::dwWidth=width;
}
inline
LONG SurfaceDescription::lPitch(void)const
{
return DDSURFACEDESC2::lPitch;
}
inline
void SurfaceDescription::lPitch(LONG lPitch)
{
DDSURFACEDESC2::lPitch=lPitch;
}
inline
DWORD SurfaceDescription::linearSize(void)const
{
return DDSURFACEDESC2::dwLinearSize;
}
inline
void SurfaceDescription::linearSize(DWORD linearSize)
{
DDSURFACEDESC2::dwLinearSize=linearSize;
}
inline
DWORD SurfaceDescription::backBufferCount(void)const
{
return DDSURFACEDESC2::dwBackBufferCount;
}
inline
void SurfaceDescription::backBufferCount(DWORD backBufferCount)
{
DDSURFACEDESC2::dwBackBufferCount=backBufferCount;
}
inline
DWORD SurfaceDescription::mipMapCount(void)const
{
return DDSURFACEDESC2::dwMipMapCount;
}
inline
void SurfaceDescription::mipMapCount(DWORD mipMapCount)
{
DDSURFACEDESC2::dwMipMapCount=mipMapCount;
}
inline
DWORD SurfaceDescription::refreshRate(void)const
{
return DDSURFACEDESC2::dwRefreshRate;
}
inline
void SurfaceDescription::refreshRate(DWORD refreshRate)
{
DDSURFACEDESC2::dwRefreshRate=refreshRate;
}
inline
DWORD SurfaceDescription::alphaBitDepth(void)const
{
return DDSURFACEDESC2::dwAlphaBitDepth;
}
inline
void SurfaceDescription::alphaBitDepth(DWORD alphaBitDepth)
{
DDSURFACEDESC2::dwAlphaBitDepth=alphaBitDepth;
}
inline
LPVOID SurfaceDescription::ptrSurface(void)
{
return DDSURFACEDESC2::lpSurface;
}
inline
void SurfaceDescription::ptrSurface(LPVOID pSurface)
{
DDSURFACEDESC2::lpSurface=pSurface;
}
inline
const DDCOLORKEY &SurfaceDescription::ckDestOverlay(void)const
{
return DDSURFACEDESC2::ddckCKDestOverlay;
}
inline
void SurfaceDescription::ckDestOverlay(const DDCOLORKEY &ckDestOverlay)
{
DDSURFACEDESC2::ddckCKDestOverlay=ckDestOverlay;
}
inline
const DDCOLORKEY &SurfaceDescription::ckDestBlt(void)const
{
return DDSURFACEDESC2::ddckCKDestBlt;
}
inline
void SurfaceDescription::ckDestBlt(const DDCOLORKEY &ckDestBlt)
{
DDSURFACEDESC2::ddckCKDestBlt=ckDestBlt;
}
inline
const DDCOLORKEY &SurfaceDescription::ckSrcOverlay(void)const
{
return DDSURFACEDESC2::ddckCKSrcOverlay;
}
inline
void SurfaceDescription::ckSrcOverlay(const DDCOLORKEY &ckSrcOverlay)
{
DDSURFACEDESC2::ddckCKSrcOverlay=ckSrcOverlay;
}
inline
const DDCOLORKEY &SurfaceDescription::ckSrcBlt(void)const
{
return DDSURFACEDESC2::ddckCKSrcBlt;
}
inline
void SurfaceDescription::ckSrcBlt(const DDCOLORKEY &ckSrcBlt)
{
DDSURFACEDESC2::ddckCKSrcBlt=ckSrcBlt;
}
inline
const DDPIXELFORMAT &SurfaceDescription::pixelFormat(void)const
{
return DDSURFACEDESC2::ddpfPixelFormat;
}
inline
void SurfaceDescription::pixelFormat(const DDPIXELFORMAT &pixelFormat)
{
DDSURFACEDESC2::ddpfPixelFormat=pixelFormat;
}
inline
SurfaceCapabilities SurfaceDescription::surfaceCapabilities(void)const
{
return SurfaceCapabilities(DDSURFACEDESC2::ddsCaps);
}
inline
void SurfaceDescription::surfaceCapabilities(const SurfaceCapabilities &surfaceCapabilities)
{
DDSURFACEDESC2::ddsCaps=((SurfaceCapabilities&)surfaceCapabilities).getDDSCAPS2();
}
inline
DWORD SurfaceDescription::textureStage(void)const
{
return DDSURFACEDESC2::dwTextureStage;
}
inline
void SurfaceDescription::textureStage(DWORD textureStage)
{
DDSURFACEDESC2::dwTextureStage;
}
inline
DDSURFACEDESC2 &SurfaceDescription::getDDSURFACEDESC2(void)
{
return (DDSURFACEDESC2&)*this;
}
inline
void SurfaceDescription::zeroInit(void)
{
::memset(&getDDSURFACEDESC2(),0,sizeof(DDSURFACEDESC2));
DDSURFACEDESC2::dwSize=sizeof(DDSURFACEDESC2);
}
#endif