//	Darkstar Engine  (c) UnderWorld Interactive Studio (all coding by Svarog    2007-2008)
//
//      Данный файл является частью Darkstar Engine. Любое использование кода файла
//      без согласия компании, является нарушением закона об авторском праве (в слу-
//      чае если не оговорено обратное).
//
//      Имя файла: vertex_shader_d3d9.cpp
//      Краткое описание: Вершинный шейдер для платформы DirectX 9
//

#ifdef GD_D3D9

#include <Darkstar/Graphic System/Effect/vertex_shader_d3d9.hpp>
#include <Darkstar/Graphic System/Direct3D/graphicDriver.hpp>
#include <Darkstar/Kernel/logh.hpp>

using gs::VertexShader;
using gs::GraphicDriver;
using ker::Log;

VertexShader::VertexShader()
{
	vshader = NULL;
};

VertexShader::~VertexShader()
{
	if(vshader)
	{
		vshader->Release();
		vshader = NULL;
	};
};

bool VertexShader::create(const void* code, const unsigned int code_size)
{
	if(FAILED(GraphicDriver::ptr()->getDevice()->CreateVertexShader((DWORD*)code, &vshader)))
	{
		lwar << "Cannot create vertex shader";
		return false;
	};
	return true;
};

void VertexShader::set()
{
	GraphicDriver::ptr()->getDevice()->SetVertexShader(vshader);
};

#endif