#pragma once

#include "DLLInterface.h"
#include "ShaderProgram.h"

class DXFUNCTIONS_API VertexShader : public ShaderProgram
{
	friend ShaderManager;

	LPDIRECT3DVERTEXSHADER9 m_Shader;

protected:
	VertexShader(ShaderManager* const manager, const XString& fn);
	~VertexShader(void){ReleaseSH();}
	void ReleaseSH(void);

public:
	void Compile(bool debug = false);
	XString GetDisassembly(void) {return m_Code;}
	
	LPDIRECT3DVERTEXSHADER9 GetShader(void){return m_Shader;}
};