#pragma once
#include "OSG/OsgST_PreReqs.h"
#include "OSG/OsgST_Types.h"
#include "OSG/OsgST_ShaderType.h"

namespace makOsgSpeedTree
{
   class OsgSTExport GLSLShader
   {
   public:
      GLSLShader(const byte* shaderSource, size_t sizeInBytes, ShaderType type);
      virtual ~GLSLShader();
      bool IsValid(void) const;
      uint32 GetID(void) const;
      ShaderType GetShaderType(void) const;
   public:
      uint32 m_ShaderID;
      ShaderType m_ShaderType;
   };

   class OsgSTExport GLSLShaderUtils
   {
   public:
      static GLSLShader* LoadShader(const std::string& strFileName, ShaderType shaderType);
      static GLSLShader* LoadShaderFromSource(const std::string& strSource, ShaderType shaderType);
   };
}
