/***************************************************************************
*                                                                          *
*  Copyright (C) Golaem S.A.  All Rights Reserved.                         *
*                                                                          *
****************************************************************************/

#pragma once

#include "glmRTTI.h"

namespace glm
{
	struct ShaderAttributeV0;

	/**
	* \brief Shader Asset
	*/
	struct ShaderAssetV0
	{
		GLM_RTTI("1da9adb3-974e-41ee-8f4a-08e3433babca", ShaderAssetV0, addAttributes)
	public:

		GLM_CLASS_STAT_ID( glm::MemoryStatIds::GolaemShared);

		/// The name of the asset
		glm::GlmString _name;

		/// The category of the shader asset
		glm::GlmString _category;

		/**
		* \brief The shader attributes
		*/
		glm::Array<ShaderAttributeV0*> _shaderAttributes;

		ShaderAssetV0();

		~ShaderAssetV0();

	protected:

		/**
		* \brief Inspection needed method declaring the inspectable attributes.
		*/
		static void addAttributes();
	};
}
