]> git.lizzy.rs Git - irrlicht.git/blob - source/Irrlicht/CSoftware2MaterialRenderer.h
Fix Windows, Android build
[irrlicht.git] / source / Irrlicht / CSoftware2MaterialRenderer.h
1 // Copyright (C) 2002-2012 Nikolaus Gebhardt\r
2 // This file is part of the "Irrlicht Engine".\r
3 // For conditions of distribution and use, see copyright notice in irrlicht.h\r
4 \r
5 #ifndef __C_SOFTWARE2_MATERIAL_RENDERER_H_INCLUDED__\r
6 #define __C_SOFTWARE2_MATERIAL_RENDERER_H_INCLUDED__\r
7 \r
8 #include "SoftwareDriver2_compile_config.h"\r
9 \r
10 #include "IMaterialRenderer.h"\r
11 #include "CSoftwareDriver2.h"\r
12 \r
13 namespace irr\r
14 {\r
15 namespace video\r
16 {\r
17 \r
18 //! Base class for all internal Software2 material renderers\r
19 class CSoftware2MaterialRenderer : public IMaterialRenderer\r
20 {\r
21 public:\r
22 \r
23         //! Constructor\r
24         CSoftware2MaterialRenderer(video::CBurningVideoDriver* driver)\r
25                 : Driver(driver)\r
26         {\r
27         }\r
28 \r
29         virtual void OnSetMaterial(const SMaterial& material, const SMaterial& lastMaterial,\r
30                 bool resetAllRenderstates, IMaterialRendererServices* services) _IRR_OVERRIDE_\r
31         {\r
32                 if (Driver)\r
33                         Driver->setFallback_Material(material.MaterialType);\r
34         }\r
35 \r
36 protected:\r
37 \r
38         video::CBurningVideoDriver* Driver;\r
39 };\r
40 \r
41 //! solid material renderer\r
42 class CSoftware2MaterialRenderer_SOLID : public CSoftware2MaterialRenderer\r
43 {\r
44 public:\r
45         CSoftware2MaterialRenderer_SOLID ( video::CBurningVideoDriver* driver )\r
46                 :CSoftware2MaterialRenderer ( driver ) {}\r
47 \r
48         //! Returns if the material is transparent.\r
49         virtual bool isTransparent() const _IRR_OVERRIDE_\r
50         {\r
51                 return false;\r
52         }\r
53 \r
54 };\r
55 \r
56 \r
57 //! Transparent material renderer\r
58 class CSoftware2MaterialRenderer_TRANSPARENT_ADD_COLOR : public CSoftware2MaterialRenderer\r
59 {\r
60 public:\r
61         CSoftware2MaterialRenderer_TRANSPARENT_ADD_COLOR ( video::CBurningVideoDriver* driver )\r
62                 : CSoftware2MaterialRenderer ( driver ) {}\r
63 \r
64 \r
65         //! Returns if the material is transparent.\r
66         virtual bool isTransparent() const _IRR_OVERRIDE_\r
67         {\r
68                 return true;\r
69         }\r
70 \r
71 };\r
72 \r
73 //! unsupported material renderer\r
74 class CSoftware2MaterialRenderer_UNSUPPORTED : public CSoftware2MaterialRenderer\r
75 {\r
76 public:\r
77         CSoftware2MaterialRenderer_UNSUPPORTED ( video::CBurningVideoDriver* driver )\r
78                 : CSoftware2MaterialRenderer ( driver ) {}\r
79 \r
80         virtual s32 getRenderCapability() const _IRR_OVERRIDE_ { return 1; }\r
81 \r
82 };\r
83 \r
84 \r
85 \r
86 } // end namespace video\r
87 } // end namespace irr\r
88 \r
89 #endif\r
90 \r