1
0
mirror of https://github.com/Halofreak1990/XFXFramework synced 2024-12-26 13:49:34 +01:00
XFXFramework/include/GraphicsDeviceManager.h
Tom Lint 7e74ae8683 Added System::Type
Added TypeInfo for all relevant types
Added comments
Updated DependencyProperty to work with System::Type
Fixed casing on PropertyMetadata
2013-07-12 21:30:13 +02:00

85 lines
2.5 KiB
C++

/*****************************************************************************
* GraphicsDeviceManager.h *
* *
* XFX GraphicsDeviceManager class definition file *
* Copyright (c) XFX Team. All Rights Reserved *
*****************************************************************************/
#ifndef _XFX_GRAPHICSDEVICEMANAGER_
#define _XFX_GRAPHICSDEVICEMANAGER_
#include "Graphics/GraphicsDevice.h"
#include "Graphics/Enums.h"
#include "Graphics/IGraphicsDeviceService.h"
#include "GraphicsDeviceInformation.h"
#include "Interfaces.h"
#include <System/Interfaces.h>
using namespace System;
using namespace XFX::Graphics;
namespace XFX
{
class Game;
/**
* Handles the configuration and management of the graphics device.
*/
class GraphicsDeviceManager : public IGraphicsDeviceService, public IDisposable, public IGraphicsDeviceManager
{
private:
bool isFullScreen;
Game* _game;
SurfaceFormat_t backBufferFormat;
int backBufferHeight;
int backBufferWidth;
GraphicsDevice* graphicsDevice;
DepthFormat_t preferredDepthStencilFormat;
void CreateDevice();
protected:
virtual bool CanResetDevice(const GraphicsDeviceInformation newDeviceInfo);
virtual void Dispose(bool disposing);
virtual void OnDeviceCreated(Object* sender, EventArgs* args);
virtual void OnDeviceDisposing(Object* sender, EventArgs* args);
virtual void OnDeviceReset(Object* sender, EventArgs* args);
virtual void OnDeviceResetting(Object* sender, EventArgs* args);
public:
GraphicsDevice* getGraphicsDevice() const;
bool IsFullScreen();
float MinimumPixelShaderProfile;
float MinimumVertexShaderProfile;
bool PreferMultiSampling;
SurfaceFormat_t PreferredBackBufferFormat;
int PreferredBackBufferWidth;
int PreferredBackBufferHeight;
DepthFormat_t PreferredDepthStencilFormat;
bool SynchronizeWithVerticalRetrace;
static const int DefaultBackBufferWidth;
static const int DefaultBackBufferHeight;
static SurfaceFormat_t ValidAdapterFormats[];
static SurfaceFormat_t ValidBackBufferFormats[];
GraphicsDeviceManager(Game * const game);
GraphicsDeviceManager(const GraphicsDeviceManager &obj);
~GraphicsDeviceManager();
EventHandler DeviceCreated;
EventHandler DeviceDisposing;
EventHandler DeviceReset;
EventHandler DeviceResetting;
EventHandler Disposed;
void ApplyChanges();
bool BeginDraw();
void Dispose();
void EndDraw();
static const Type& GetType();
void ToggleFullscreen();
};
}
#endif //_XFX_GRAPHICSDEVICEMANAGER_