Ocular Engine
D3D11VertexShader.hpp
1 
17 #pragma once
18 #ifndef __H__OCULAR_D3D11_GRAPHICS_VERTEX_SHADER__H__
19 #define __H__OCULAR_D3D11_GRAPHICS_VERTEX_SHADER__H__
20 
21 #include "Graphics/Shader/VertexShader.hpp"
22 #include "D3D11GraphicsDriver.hpp"
23 
24 #include <d3d11.h>
25 
26 //------------------------------------------------------------------------------------------
27 
32 namespace Ocular
33 {
38  namespace Graphics
39  {
44  {
45  friend class D3D11GraphicsDriver;
46 
47  public:
48 
49  D3D11VertexShader(ID3D11Device* device, ID3D11DeviceContext* context);
51 
52  virtual void unload() override;
53  virtual void bind() override;
54  virtual void unbind() override;
55 
64  void setD3DShader(ID3D11VertexShader* shader);
65 
69  ID3D11VertexShader* getD3DShader();
70 
79  void setD3DBlob(ID3DBlob* blob);
80 
84  ID3DBlob* getD3DBlob();
85 
86  protected:
87 
88  bool createInputLayout();
89 
90  //------------------------------------------------------------
91 
92  ID3D11Device* m_D3DDevice;
93  ID3D11DeviceContext* m_D3DDeviceContext;
94  ID3D11VertexShader* m_D3DShader;
95  ID3DBlob* m_D3DBlob;
96 
97  static ID3D11InputLayout* m_D3DInputLayout;
98 
99  private:
100  };
101  }
105 }
110 //------------------------------------------------------------------------------------------
111 
112 #endif
virtual void unload() override
Definition: D3D11VertexShader.cpp:51
Definition: VertexShader.hpp:40
Definition: D3D11GraphicsDriver.hpp:83
virtual void unbind() override
Definition: D3D11VertexShader.cpp:89
Note: Once this library is made dynamic, this will no longer be needed.
Definition: Common.hpp:70
void setD3DBlob(ID3DBlob *blob)
Definition: D3D11VertexShader.cpp:114
ID3D11VertexShader * getD3DShader()
Definition: D3D11VertexShader.cpp:109
Definition: D3D11VertexShader.hpp:43
void setD3DShader(ID3D11VertexShader *shader)
Definition: D3D11VertexShader.cpp:99
ID3DBlob * getD3DBlob()
Definition: D3D11VertexShader.cpp:124
virtual void bind() override
Definition: D3D11VertexShader.cpp:74