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

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