IShaderProgram.h
Go to the documentation of this file.
1 
2 #pragma once
3 
4 #include <ionCore.h>
5 
6 
7 namespace ion
8 {
9  namespace Graphics
10  {
11 
14  {
15 
16  public:
17 
18  virtual ~IVertexStage() {}
19 
20  };
21 
24  {
25 
26  public:
27 
28  virtual ~IGeometryStage() {}
29 
30  };
31 
34  {
35 
36  public:
37 
38  virtual ~IPixelStage() {}
39 
40  };
41 
43  class IShader
44  {
45 
46  public:
47 
48  virtual void SetVertexStage(SharedPointer<IVertexStage> VertexShader) = 0;
49  virtual void SetGeometryStage(SharedPointer<IGeometryStage> GeometryShader) = 0;
50  virtual void SetPixelStage(SharedPointer<IPixelStage> PixelShader) = 0;
51 
52  };
53 
54  }
55 }
Definition: IShaderProgram.h:43
virtual ~IGeometryStage()
Definition: IShaderProgram.h:28
virtual ~IPixelStage()
Definition: IShaderProgram.h:38
Definition: CCatmullRomAdvancedSplineInterpolator.h:7
Definition: IShaderProgram.h:33
virtual ~IVertexStage()
Definition: IShaderProgram.h:18
Definition: IShaderProgram.h:23
Definition: IShaderProgram.h:13
std::shared_ptr< T > SharedPointer
Definition: ionSmartPointer.h:25