Engine
Frameworkcreatedbymeusableforthecreationofsimplegames.CurrentlysupportsOpenGL(Verysimple)andVulkan.
Shader.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "Engine/api.hpp"
4 #include <ThirdParty/EASTL-master/include/EASTL/string.h>
5 #include <ThirdParty/EASTL-master/include/EASTL/vector.h>
6 #include <ThirdParty/EASTL-master/include/EASTL/shared_ptr.h>
7 
8 namespace Engine
9 {
14  {
15  private:
16  friend class Renderer;
17 #ifdef USING_OPENGL
18  friend class OpenGLRenderer;
19  friend class OpenGLShader;
20 #endif
21 #ifdef USING_VULKAN
22  friend class VulkanRenderer;
23 #endif
24 
28  Shader() = default;
36  Shader(const eastl::string& vertexFileName, const eastl::string& fragmentFileName);
37  //Shader(const Shader& other) = delete;
41  virtual ~Shader() = default;
42 
43  public:
47  virtual void Activate();
48 
52  virtual void Deactivate();
53  private:
54  eastl::vector<char> vertexData;
55  eastl::vector<char> fragmentData;
56  protected:
57  const char* shaderFolder = "Resources/Shaders";
58  };
59 }
#define ENGINE_API
Definition: api.hpp:25
This is the main renderer parent class which contains the base methods required for a renderer...
Definition: Renderer.hpp:15
This object is used to store information regarding the shader.
Definition: Shader.hpp:13