Irrlicht 3D Engine
IMaterialRenderer.h
Go to the documentation of this file.
00001 // Copyright (C) 2002-2012 Nikolaus Gebhardt
00002 // This file is part of the "Irrlicht Engine".
00003 // For conditions of distribution and use, see copyright notice in irrlicht.h
00004 
00005 #ifndef __I_MATERIAL_RENDERER_H_INCLUDED__
00006 #define __I_MATERIAL_RENDERER_H_INCLUDED__
00007 
00008 #include "IReferenceCounted.h"
00009 #include "SMaterial.h"
00010 #include "S3DVertex.h"
00011 
00012 namespace irr
00013 {
00014 namespace video
00015 {
00016 
00017 class IVideoDriver;
00018 class IMaterialRendererServices;
00019 
00021 
00024 class IMaterialRenderer : public virtual IReferenceCounted
00025 {
00026 public:
00027 
00029 
00050     virtual void OnSetMaterial(const SMaterial& material, const SMaterial& lastMaterial,
00051         bool resetAllRenderstates, IMaterialRendererServices* services) {}
00052 
00054 
00071     virtual bool OnRender(IMaterialRendererServices* service, E_VERTEX_TYPE vtxtype) { return true; }
00072 
00074 
00076     virtual void OnUnsetMaterial() {}
00077 
00079 
00081     virtual bool isTransparent() const { return false; }
00082 
00084 
00093     virtual s32 getRenderCapability() const { return 0; }
00094 };
00095 
00096 
00097 } // end namespace video
00098 } // end namespace irr
00099 
00100 #endif
00101