53 lines
1.8 KiB
C++
53 lines
1.8 KiB
C++
#ifndef _DDRAW_DIRECTDRAW_HPP_
|
|
#define _DDRAW_DIRECTDRAW_HPP_
|
|
#ifndef _COMMON_SMARTPOINTER_HPP_
|
|
#include <common/pointer.hpp>
|
|
#endif
|
|
#ifndef _DDRAW_DDRAW_HPP_
|
|
#include <ddraw/ddraw.hpp>
|
|
#endif
|
|
#ifndef _DDRAW_DIRECTDRAWERROR_HPP_
|
|
#include <ddraw/error.hpp>
|
|
#endif
|
|
|
|
class SurfaceDescription;
|
|
class DisplayEnumerator;
|
|
class GUIWindow;
|
|
class Direct3D;
|
|
class DirectDevice3D;
|
|
class DirectPalette;
|
|
class Surface;
|
|
|
|
class DirectDraw
|
|
{
|
|
public:
|
|
enum CoopFlags{FullScreen=DDSCL_FULLSCREEN,AllowReboot=DDSCL_ALLOWREBOOT,
|
|
NoWindowChanges=DDSCL_NOWINDOWCHANGES,Normal=DDSCL_NORMAL,Exclusive=DDSCL_EXCLUSIVE,
|
|
SetFocusWindow=DDSCL_SETFOCUSWINDOW,SetDeviceWindow=DDSCL_SETDEVICEWINDOW,
|
|
CreateDeviceWindow=DDSCL_CREATEDEVICEWINDOW,Multithreaded=DDSCL_MULTITHREADED,
|
|
FPUSetup=DDSCL_FPUSETUP};
|
|
DirectDraw(void);
|
|
virtual ~DirectDraw();
|
|
BOOL enumerateModes(DisplayEnumerator &displayEnumerator);
|
|
BOOL setDisplayMode(int width,int height,int bpp,int refreshRate=0);
|
|
BOOL getDisplayMode(SurfaceDescription &surfaceDescription);
|
|
BOOL restoreDisplayMode(void);
|
|
BOOL restoreAllSurfaces(void);
|
|
DirectDrawError createSurface(const SurfaceDescription &surfaceDescription,Surface &surface);
|
|
DirectDrawError createDirect3D(Surface &renderSurface,Direct3D &direct3D,DirectDevice3D &device3D);
|
|
DirectDrawError setCooperativeLevel(GUIWindow &parentWindow,CoopFlags coopFlags);
|
|
DirectDrawError setCooperativeLevel(CoopFlags coopFlags);
|
|
DirectDrawError testCooperativeLevel(void);
|
|
DirectDrawError flipToGDISurface(void);
|
|
DirectDrawError createPalette(DirectPalette &directPalette);
|
|
BOOL isOkay(void)const;
|
|
void destroy(void);
|
|
private:
|
|
DirectDraw(const DirectDraw &directDraw);
|
|
DirectDraw &operator=(const DirectDraw &directDraw);
|
|
BOOL createDirectDraw(void);
|
|
|
|
SmartPointer<IDirectDraw> mDirectDraw;
|
|
SmartPointer<IDirectDraw4> mDirectDraw4;
|
|
};
|
|
#endif |