All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
IIconRenderer.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "Icons.h"
7 #include "Fonts.h"
8 #include "IRenderableFilter.h"
9 #include "VectorMath.h"
10 #include "Graphics.h"
11 #include "LayerIds.h"
12 
13 #include <vector>
14 
15 namespace Eegeo
16 {
17  namespace Icons
18  {
20  {
21  public:
22  virtual ~IIconRenderer() {;}
23 
24  virtual void SetIconSet(const IconSet* pIconSet) = 0;
25 
26  virtual void SetDefaultState() = 0;
27 
28  virtual void SetIconColor(const v4& iconColor) = 0;
29 
30  virtual void SetIconScale(float iconScale) = 0;
31 
32  virtual void SetTransform(const v2& translate, const v2& rotate, const v2& scale) = 0;
33 
34  virtual void SetDepthTest(bool depthTest) = 0;
35 
36  virtual void SetStencilTest(bool stencilTest) = 0;
37 
38  virtual void SetStencilFunc(GLenum stencilFunc, int stencilRef, u32 stencilMask) = 0;
39 
40  virtual void SetStencilMaskedStyle(bool enable, GLenum stencilFunc, const v4& maskedColor) = 0;
41 
42  virtual void SetRenderLayer(Rendering::LayerIds::Values layer, int subLayer) = 0;
43 
44  virtual void SetAlpha(float alpha) = 0;
45 
46  virtual void DrawIcon(const IconDefinition& shapedIcon) = 0;
47 
48  virtual void DrawIcons(const std::vector<const IconDefinition*>& shapedIcons) = 0;
49 
50  virtual void Finalize() = 0;
51 
52  virtual void Upload() = 0;
53  };
54  }
55 }