view LightClone/Source/RenderContext.h @ 73:0574e2cf8bac

Additional screen types
author koryspansel
date Tue, 11 Oct 2011 17:44:10 -0700
parents 06b151afc8d0
children
line wrap: on
line source

/*
 * RenderContext
 */

#ifndef __RENDERCONTEXT_H__
#define __RENDERCONTEXT_H__

#include "Core.h"
#include "GraphicsDevice.h"
#include "Camera.h"

/*
 * RenderContext
 */
class RenderContext
{
	/*
	 * pGraphicsDevice
	 */
	GraphicsDevice* pGraphicsDevice;

	/*
	 * kProjectionStack
	 */
	//MatrixStack kProjectionStack;

	/*
	 * kWorldStack
	 */
	//MatrixStack kWorldStack;

public:

	/*
	 * RenderContext
	 */
	RenderContext();

	/*
	 * Initialize
	 */
	ErrorCode Initialize(GraphicsDevice* pDevice);

	/* 
	 * Terminate
	 */
	void Terminate();

	/*
	 * CreateTextureFromFile
	 */
	ErrorCode CreateTextureFromFile(const char* pName, IDirect3DTexture9** pTexture);

	/*
	 * CreateEffectFromFile
	 */
	ErrorCode CreateEffectFromFile(const char* pName, ID3DXEffect** pEffect);

	/*
	 * CreateVertexBuffer
	 */
	ErrorCode CreateVertexBuffer(uint32 nSize, uint32 nUsage, uint32 nPool, IDirect3DVertexBuffer9** pBuffer);

	/*
	 * CreateFontFromName
	 */
	ErrorCode CreateFontFromName(const char* pName, uint32 nSize, uint32 nWeight, ID3DXFont** pFont);

	/*
	 * Begin
	 */
	void Begin(uint32 nColor = 0);

	/*
	 * End
	 */
	void End();

	/*
	 * ApplyCameraToEffect
	 */
	void ApplyCameraToEffect(Camera& kCamera, ID3DXEffect* pEffect, const char* pProjection = "kProjection", const char* pView = "kView");

	/*
	 * DrawTriangles
	 */
	void DrawTriangles(IDirect3DVertexDeclaration9* pDeclaration, IDirect3DVertexBuffer9* pBuffer, uint32 nSize, uint32 nCount);

	/*
	 * SetViewport
	 */
	ErrorCode SetViewport(const D3DVIEWPORT9& kViewport);

	/*
	 * GetViewport
	 */
	ErrorCode GetViewport(D3DVIEWPORT9* pViewport);
};

#endif //__RENDERCONTEXT_H__