119 lines
3.8 KiB
C++
119 lines
3.8 KiB
C++
#ifndef _DDRAW_SURFACECAPABILITIES_HPP_
|
|
#define _DDRAW_SURFACECAPABILITIES_HPP_
|
|
#ifndef _DDRAW_DDRAW_HPP_
|
|
#include <ddraw/ddraw.hpp>
|
|
#endif
|
|
|
|
class SurfaceCapabilities : private DDSCAPS2
|
|
{
|
|
public:
|
|
enum Capabilities{Alpha=DDSCAPS_ALPHA,BackBuffer=DDSCAPS_BACKBUFFER,Complex=DDSCAPS_COMPLEX,Flip=DDSCAPS_FLIP,
|
|
FrontBuffer=DDSCAPS_FRONTBUFFER,OffScreenPlain=DDSCAPS_OFFSCREENPLAIN,Overlay=DDSCAPS_OVERLAY,
|
|
Palette=DDSCAPS_PALETTE,PrimarySurface=DDSCAPS_PRIMARYSURFACE,
|
|
PrimarySurfaceLeft=DDSCAPS_PRIMARYSURFACELEFT,SystemMemory=DDSCAPS_SYSTEMMEMORY,
|
|
Texture=DDSCAPS_TEXTURE,Device3D=DDSCAPS_3DDEVICE,VideoMemory=DDSCAPS_VIDEOMEMORY,
|
|
Visible=DDSCAPS_VISIBLE,WriteOnly=DDSCAPS_WRITEONLY,ZBuffer=DDSCAPS_ZBUFFER,
|
|
OwnDC=DDSCAPS_OWNDC,LiveVideo=DDSCAPS_LIVEVIDEO,HardwareCodec=DDSCAPS_HWCODEC,Modex=DDSCAPS_MODEX,
|
|
AllocOnLoad=DDSCAPS_ALLOCONLOAD,VideoPort=DDSCAPS_VIDEOPORT,LocalVidMem=DDSCAPS_LOCALVIDMEM,
|
|
StandardVGAMode=DDSCAPS_STANDARDVGAMODE,Optimized=DDSCAPS_OPTIMIZED};
|
|
enum AdditionalCapabilities{None=0,HardwareDeInterlace=DDSCAPS2_HARDWAREDEINTERLACE,
|
|
HintAntialiasing=DDSCAPS2_HINTANTIALIASING,HintDynamic=DDSCAPS2_HINTDYNAMIC,
|
|
HintStatic=DDSCAPS2_HINTSTATIC,Opaque=DDSCAPS2_OPAQUE,TextureManager=DDSCAPS2_TEXTUREMANAGE};
|
|
SurfaceCapabilities(void);
|
|
SurfaceCapabilities(const SurfaceCapabilities &someSurfaceCapabilities);
|
|
SurfaceCapabilities(const DDSCAPS2 &someDDSCAPS2);
|
|
SurfaceCapabilities(Capabilities surfaceCapabilities,AdditionalCapabilities additionalCapabilities=None);
|
|
virtual ~SurfaceCapabilities();
|
|
SurfaceCapabilities &operator=(const SurfaceCapabilities &someSurfaceCapabilities);
|
|
SurfaceCapabilities &operator=(const DDSCAPS2 &someDDSCAPS2);
|
|
Capabilities surfaceCapabilities(void)const;
|
|
void surfaceCapabilities(Capabilities surfaceCapabilities);
|
|
AdditionalCapabilities additionalCapabilities(void)const;
|
|
void additionalCapabilities(AdditionalCapabilities additionalCapabilities);
|
|
DDSCAPS2 &getDDSCAPS2(void);
|
|
private:
|
|
};
|
|
|
|
inline
|
|
SurfaceCapabilities::SurfaceCapabilities(void)
|
|
{
|
|
DDSCAPS2::dwCaps=0;
|
|
DDSCAPS2::dwCaps2=0;
|
|
DDSCAPS2::dwCaps3=0;
|
|
DDSCAPS2::dwCaps4=0;
|
|
}
|
|
|
|
inline
|
|
SurfaceCapabilities::SurfaceCapabilities(const SurfaceCapabilities &someSurfaceCapabilities)
|
|
{
|
|
*this=someSurfaceCapabilities;
|
|
}
|
|
|
|
inline
|
|
SurfaceCapabilities::SurfaceCapabilities(Capabilities surfaceCapabilities,AdditionalCapabilities additionalCapabilities)
|
|
{
|
|
DDSCAPS2::dwCaps=(DWORD)surfaceCapabilities;
|
|
DDSCAPS2::dwCaps2=(DWORD)additionalCapabilities;
|
|
DDSCAPS2::dwCaps3=0;
|
|
DDSCAPS2::dwCaps4=0;
|
|
}
|
|
|
|
inline
|
|
SurfaceCapabilities::SurfaceCapabilities(const DDSCAPS2 &someDDSCAPS2)
|
|
{
|
|
*this=someDDSCAPS2;
|
|
}
|
|
|
|
inline
|
|
SurfaceCapabilities::~SurfaceCapabilities()
|
|
{
|
|
}
|
|
|
|
inline
|
|
SurfaceCapabilities &SurfaceCapabilities::operator=(const SurfaceCapabilities &someSurfaceCapabilities)
|
|
{
|
|
surfaceCapabilities(someSurfaceCapabilities.surfaceCapabilities());
|
|
additionalCapabilities(someSurfaceCapabilities.additionalCapabilities());
|
|
return *this;
|
|
}
|
|
|
|
inline
|
|
SurfaceCapabilities &SurfaceCapabilities::operator=(const DDSCAPS2 &someDDSCAPS2)
|
|
{
|
|
DDSCAPS2::dwCaps=someDDSCAPS2.dwCaps;
|
|
DDSCAPS2::dwCaps2=someDDSCAPS2.dwCaps2;
|
|
DDSCAPS2::dwCaps3=someDDSCAPS2.dwCaps3;
|
|
DDSCAPS2::dwCaps4=someDDSCAPS2.dwCaps4;
|
|
return *this;
|
|
}
|
|
|
|
inline
|
|
SurfaceCapabilities::Capabilities SurfaceCapabilities::surfaceCapabilities(void)const
|
|
{
|
|
return Capabilities(DDSCAPS2::dwCaps);
|
|
}
|
|
|
|
inline
|
|
void SurfaceCapabilities::surfaceCapabilities(Capabilities surfaceCapabilities)
|
|
{
|
|
DDSCAPS2::dwCaps=(DWORD)surfaceCapabilities;
|
|
}
|
|
|
|
inline
|
|
SurfaceCapabilities::AdditionalCapabilities SurfaceCapabilities::additionalCapabilities(void)const
|
|
{
|
|
return AdditionalCapabilities(DDSCAPS2::dwCaps2);
|
|
}
|
|
|
|
inline
|
|
void SurfaceCapabilities::additionalCapabilities(AdditionalCapabilities additionalCapabilities)
|
|
{
|
|
DDSCAPS2::dwCaps2=(DWORD)additionalCapabilities;
|
|
}
|
|
|
|
inline
|
|
DDSCAPS2 &SurfaceCapabilities::getDDSCAPS2(void)
|
|
{
|
|
return (DDSCAPS2&)*this;
|
|
}
|
|
#endif |