view LightClone/Source/GuiImage.cpp @ 67:8e7ebab350e7

Clean up memory leaks
author koryspansel
date Fri, 07 Oct 2011 01:15:28 -0700
parents 3507bd831c7f
children
line wrap: on
line source

/*
 * GuiImage
 */

#include "GuiImage.h"
#include "VertexTypes.h"

/*
 * GuiImage
 */
GuiImage::GuiImage() : pTexture(NULL)
{
}

/*
 * Initialize
 */
ErrorCode GuiImage::Initialize(ServiceProvider* pServiceProvider)
{
	return GuiElement::Initialize(pServiceProvider);
}

/*
 * Render
 */
void GuiImage::Render(GuiRenderContext& kContext)
{
	if(nFlags & GuiElementFlag_Visible)
	{
		if(pTexture)
		{
			kContext.Add(pTexture, GetPosition(), GetDepth(), GetDimensions(), D3DCOLOR_XRGB(255, 255, 255));
		}

		GuiElement::Render(kContext);
	}
}

/*
 * SetTexture
 */
ErrorCode GuiImage::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;
}