/// @file LayerInfo.h
#ifndef LAYERINFO_H
#define LAYERINFO_H

#include <Windows.h>
#include <d3d9.h>
#include <d3dx9.h>
#include <dinput.h>

#pragma comment(lib, "winmm.lib")
//for D3D
#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")
//for DInPut
#pragma comment(lib,"dxguid.lib")
#pragma comment(lib, "dinput8.lib")

#include <assert.h>

/**
	@brief 계층간 정보교환을 위한 클래스

	클래스들은 각각의 독립을 보장하는것이 원칙이지만,\n
	한 클래스에서 생성된 정보를 다른 클래스에서 필요로하는 경우도 있습니다.\n
	특히 BaseClass 계층에서 생성된 장치정보등은 여러 클래스에서 필요로 합니다.\n
	이렇게 계층간의 정보교환을 위해 만든 클래스가 LayerInfo 클래스입니다.
*/
class LayerInfo {
	public:
		HWND hWnd;

		LPDIRECT3DDEVICE9 pD3DDevice;

		LPDIRECTINPUTDEVICE8  pDIDeviceKB;
		LPDIRECTINPUTDEVICE8  pDIDeviceMouse;

		//for device setting
		int   width;
		int   height;
		float monitorRatio;
		bool  bWindowed;

		//for state Layer
		bool  bStateChanged;
};


#endif