view LightClone/Source/GuiCursor.cpp @ 75:57c0ce406a68 tip

Add main menu
author koryspansel <koryspansel@bendbroadband.com>
date Tue, 18 Oct 2011 17:08:17 -0700
parents 3507bd831c7f
children
line wrap: on
line source

/*
 * GuiCursor
 */

#include "GuiCursor.h"
#include "VertexTypes.h"

/*
 * GuiCursor
 */
GuiCursor::GuiCursor() : GuiElement(), pTexture(NULL)
{
}

/*
 * Render
 */
void GuiCursor::Render(GuiRenderContext& kContext)
{
	if(pTexture)
	{
		/*
		uint32 nPasses = 0;

		const float fOffsetX = -0.5f * ScreenSizeX;
		const float fOffsetY = +0.5f * ScreenSizeY;

		const D3DXVECTOR4 kColorVector(1.0f, 1.0f, 1.0f, 1.0f);

		kContext.GetRenderContext()->ApplyCameraToEffect(*kContext.GetCamera(), pEffect);

		pEffect->SetTechnique(pEffect->GetTechnique(0));
		pEffect->Begin(&nPasses, 0);
		pEffect->BeginPass(0);

		D3DXMATRIX kScale;
		D3DXMatrixScaling(&kScale, kDimensions.x, kDimensions.y, 1.0f);

		D3DXMATRIX kTranslate;
		D3DXMatrixTranslation(&kTranslate, fOffsetX + kPosition.x + 0.5f, fOffsetY - kPosition.y + 0.5f, 0.0f);

		D3DXMATRIX kWorldMatrix;
		D3DXMatrixMultiply(&kWorldMatrix, &kScale, &kTranslate);

		pEffect->SetMatrix(pEffect->GetParameterByName(NULL, "kWorld"), &kWorldMatrix);
		pEffect->SetVector(pEffect->GetParameterByName(NULL, "kColor"), &kColorVector);
		pEffect->SetTexture(pEffect->GetParameterByName(NULL, "kTexture"), pTexture);
		pEffect->CommitChanges();

		kContext.GetRenderContext()->DrawTriangles(Vertex::Quad::Declaration, pVertexBuffer, sizeof(Vertex::Quad), TrianglesPerFace);

		pEffect->EndPass();
		pEffect->End();
		*/
		kContext.Add(pTexture, GetPosition(), GetDepth(), GetDimensions(), kColor);
	}

	GuiElement::Render(kContext);
}

/*
 * SetTexture
 */
ErrorCode GuiCursor::SetTexture(const char* pName, bool bResize)
{
	pTexture = NULL;

	ResourceManager* pResourceManager = NULL;

	ErrorCode eCode = pServiceProvider->GetService("ResourceManager", &pResourceManager);
	if(eCode == Error_Success)
	{
		eCode = pResourceManager->CreateTextureFromFile(pName, &pTexture);
		if(eCode == Error_Success)
		{
			if(bResize)
			{
				D3DSURFACE_DESC kDescriptor;
				pTexture->GetLevelDesc(0, &kDescriptor);

				kDimensions.x = (float)kDescriptor.Width;
				kDimensions.y = (float)kDescriptor.Height;
			}
		}
	}

	return eCode;
}