view LightClone/Source/Interface.h @ 15:ee1c2510096d

Work on GUI system
author koryspansel <koryspansel@bendbroadband.com>
date Wed, 14 Sep 2011 11:04:18 -0700
parents 292e534f00c2
children 88f7c22e7b45
line wrap: on
line source

/*
 * Interface
 */

#ifndef __INTERFACE_H__
#define __INTERFACE_H__

#include "Core.h"
#include "RenderContext.h"
#include "ResourceManager.h"
#include "GuiContainer.h"
#include "EventSystem.h"

/*
 * Interface
 */
class Interface : public EventSink
{
private:

	/*
	 * pEventSystem
	 */
	EventSystem* pEventSystem;

	/*
	 * pEffect
	 */
	ID3DXEffect* pEffect;

	/*
	 * pFont
	 */
	ID3DXFont* pFont;

	/*
	 * pVertexBuffer
	 */
	IDirect3DVertexBuffer9* pVertexBuffer;

	/*
	 * pBackgroundTexture
	 */
	IDirect3DTexture9* pBackgroundTexture;

	/*
	 * pActionTexture
	 */
	IDirect3DTexture9* pActionTexture[Action_Count];

	/*
	 * pControlTexture
	 */
	IDirect3DTexture9* pControlTexture[3];

	/*
	 * pArrowTexture
	 */
	IDirect3DTexture9* pArrowTexture[2];

	/*
	 * pDialog1Texture
	 */
	IDirect3DTexture9* pDialog1Texture;

	/*
	 * pDialog2Texture
	 */
	IDirect3DTexture9* pDialog2Texture;

	/*
	 * pCursorTexture
	 */
	IDirect3DTexture9* pCursorTexture;

public:

	/*
	 * Interface
	 */
	Interface();

	/*
	 * Initialize
	 */
	//ErrorCode Initialize(EventSystem* pSystem, ResourceManager* pManager);
	ErrorCode Initialize(InputManager* pInput, ResourceManager* pManager);

	/* 
	 * Terminate
	 */
	void Terminate();

	/*
	 * Render
	 */
	void Render(RenderContext& kContext, Camera& kCamera);

	/*
	 * ProcessEvent
	 */
	virtual int32 ProcessEvent(const Event& kEvent);

private:

	/*
	 * SetupVertexBuffer
	 */
	ErrorCode SetupVertexBuffer();

	/*
	 * RenderBackground
	 */
	void RenderBackground(RenderContext& kContext);

	/*
	 * RenderToolbar
	 */
	void RenderToolbar(RenderContext& kContext);

	/*
	 * RenderMain
	 */
	void RenderMain(RenderContext& kContext);

	/*
	 * RenderFunctions
	 */
	void RenderFunctions(RenderContext& kContext);

	/*
	 * RenderControls
	 */
	void RenderControls(RenderContext& kContext);

	/*
	 * RenderDialog
	 */
	void RenderDialog(RenderContext& kContext, const char* pMessage, const char* pChoiceA, const char* pChoiceB = NULL);

	/*
	 * RenderCursor
	 */
	void RenderCursor(RenderContext& kContext);
};

#endif //__INTERFACE_H__