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
5 #ifndef __C_SOFTWARE2_MATERIAL_RENDERER_H_INCLUDED__
\r
6 #define __C_SOFTWARE2_MATERIAL_RENDERER_H_INCLUDED__
\r
8 #include "SoftwareDriver2_compile_config.h"
\r
10 #include "IMaterialRenderer.h"
\r
11 #include "CSoftwareDriver2.h"
\r
18 //! Base class for all internal Software2 material renderers
\r
19 class CSoftware2MaterialRenderer : public IMaterialRenderer
\r
24 CSoftware2MaterialRenderer(video::CBurningVideoDriver* driver)
\r
29 virtual void OnSetMaterial(const SMaterial& material, const SMaterial& lastMaterial,
\r
30 bool resetAllRenderstates, IMaterialRendererServices* services) _IRR_OVERRIDE_
\r
33 Driver->setFallback_Material(material.MaterialType);
\r
38 video::CBurningVideoDriver* Driver;
\r
41 //! solid material renderer
\r
42 class CSoftware2MaterialRenderer_SOLID : public CSoftware2MaterialRenderer
\r
45 CSoftware2MaterialRenderer_SOLID ( video::CBurningVideoDriver* driver )
\r
46 :CSoftware2MaterialRenderer ( driver ) {}
\r
48 //! Returns if the material is transparent.
\r
49 virtual bool isTransparent() const _IRR_OVERRIDE_
\r
57 //! Transparent material renderer
\r
58 class CSoftware2MaterialRenderer_TRANSPARENT_ADD_COLOR : public CSoftware2MaterialRenderer
\r
61 CSoftware2MaterialRenderer_TRANSPARENT_ADD_COLOR ( video::CBurningVideoDriver* driver )
\r
62 : CSoftware2MaterialRenderer ( driver ) {}
\r
65 //! Returns if the material is transparent.
\r
66 virtual bool isTransparent() const _IRR_OVERRIDE_
\r
73 //! unsupported material renderer
\r
74 class CSoftware2MaterialRenderer_UNSUPPORTED : public CSoftware2MaterialRenderer
\r
77 CSoftware2MaterialRenderer_UNSUPPORTED ( video::CBurningVideoDriver* driver )
\r
78 : CSoftware2MaterialRenderer ( driver ) {}
\r
80 virtual s32 getRenderCapability() const _IRR_OVERRIDE_ { return 1; }
\r
86 } // end namespace video
\r
87 } // end namespace irr
\r