]> git.lizzy.rs Git - irrlicht.git/blob - source/Irrlicht/CSoftware2MaterialRenderer.h
7a88bc2a36632f543d1dca09dd5c1dff642c18cf
[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 protected:\r
30 \r
31         video::CBurningVideoDriver* Driver;\r
32 };\r
33 \r
34 //! solid material renderer\r
35 class CSoftware2MaterialRenderer_SOLID : public CSoftware2MaterialRenderer\r
36 {\r
37 public:\r
38         CSoftware2MaterialRenderer_SOLID ( video::CBurningVideoDriver* driver )\r
39                 :CSoftware2MaterialRenderer ( driver ) {}\r
40 \r
41         //! Returns if the material is transparent.\r
42         virtual bool isTransparent() const _IRR_OVERRIDE_\r
43         {\r
44                 return false;\r
45         }\r
46 \r
47 };\r
48 \r
49 \r
50 \r
51 //! Transparent material renderer\r
52 class CSoftware2MaterialRenderer_TRANSPARENT_ADD_COLOR : public CSoftware2MaterialRenderer\r
53 {\r
54 public:\r
55         CSoftware2MaterialRenderer_TRANSPARENT_ADD_COLOR ( video::CBurningVideoDriver* driver )\r
56                 : CSoftware2MaterialRenderer ( driver ) {}\r
57 \r
58 \r
59         //! Returns if the material is transparent.\r
60         virtual bool isTransparent() const _IRR_OVERRIDE_\r
61         {\r
62                 return true;\r
63         }\r
64 \r
65 };\r
66 \r
67 //! unsupported material renderer\r
68 class CSoftware2MaterialRenderer_UNSUPPORTED : public CSoftware2MaterialRenderer\r
69 {\r
70 public:\r
71         CSoftware2MaterialRenderer_UNSUPPORTED ( video::CBurningVideoDriver* driver )\r
72                 : CSoftware2MaterialRenderer ( driver ) {}\r
73 \r
74         virtual s32 getRenderCapability() const _IRR_OVERRIDE_ { return 1; }\r
75 \r
76 };\r
77 \r
78 //! unsupported material renderer\r
79 class CBurningShader_REFERENCE : public CSoftware2MaterialRenderer\r
80 {\r
81 public:\r
82         CBurningShader_REFERENCE ( video::CBurningVideoDriver* driver )\r
83                 : CSoftware2MaterialRenderer ( driver ) {}\r
84 \r
85         virtual void OnSetMaterial(const SMaterial& material, const SMaterial& lastMaterial,\r
86                 bool resetAllRenderstates, IMaterialRendererServices* services) _IRR_OVERRIDE_\r
87         {\r
88         }\r
89 \r
90         virtual void OnUnsetMaterial() _IRR_OVERRIDE_\r
91         {\r
92         }\r
93 \r
94         virtual bool isTransparent() const _IRR_OVERRIDE_\r
95         {\r
96                 return false;\r
97         }\r
98 \r
99         virtual bool OnRender(IMaterialRendererServices* service, E_VERTEX_TYPE vtxtype) _IRR_OVERRIDE_\r
100         {\r
101                 return true;\r
102         };\r
103 \r
104 \r
105         virtual s32 getRenderCapability() const _IRR_OVERRIDE_\r
106         {\r
107                 return 1;\r
108         }\r
109 \r
110 };\r
111 \r
112 \r
113 \r
114 } // end namespace video\r
115 } // end namespace irr\r
116 \r
117 #endif\r
118 \r