arsa  2.7
IMaterialRenderer.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2012 Nikolaus Gebhardt
2 // This file is part of the "Irrlicht Engine".
3 // For conditions of distribution and use, see copyright notice in irrlicht.h
4 
5 #ifndef __I_MATERIAL_RENDERER_H_INCLUDED__
6 #define __I_MATERIAL_RENDERER_H_INCLUDED__
7 
8 #include "IReferenceCounted.h"
9 #include "SMaterial.h"
10 #include "S3DVertex.h"
11 
12 namespace irr
13 {
14 namespace video
15 {
16 
17 class IVideoDriver;
18 class IMaterialRendererServices;
19 class IShaderConstantSetCallBack;
20 
22 
25 class IMaterialRenderer : public virtual IReferenceCounted
26 {
27 public:
28 
30 
51  virtual void OnSetMaterial(const SMaterial& material, const SMaterial& lastMaterial,
52  bool resetAllRenderstates, IMaterialRendererServices* services) {}
53 
55 
72  virtual bool OnRender(IMaterialRendererServices* service, E_VERTEX_TYPE vtxtype) { return true; }
73 
75 
77  virtual void OnUnsetMaterial() {}
78 
80 
82  virtual bool isTransparent() const { return false; }
83 
85 
94  virtual s32 getRenderCapability() const { return 0; }
95 
97 
100 };
101 
102 
103 } // end namespace video
104 } // end namespace irr
105 
106 #endif
107 
virtual IShaderConstantSetCallBack * getShaderConstantSetCallBack() const
Access the callback provided by the users when creating shader materials.
Interface providing some methods for changing advanced, internal states of a IVideoDriver.
virtual bool OnRender(IMaterialRendererServices *service, E_VERTEX_TYPE vtxtype)
Called every time before a new bunch of geometry is being drawn using this material with for example ...
virtual bool isTransparent() const
Returns if the material is transparent.
Everything in the Irrlicht Engine can be found in this namespace.
Definition: CARSADPad.h:6
virtual void OnUnsetMaterial()
Called by the IVideoDriver to unset this material.
signed int s32
32 bit signed variable.
Definition: irrTypes.h:70
Interface making it possible to set constants for gpu programs every frame.
Interface for material rendering.
virtual s32 getRenderCapability() const
Returns the render capability of the material.
virtual void OnSetMaterial(const SMaterial &material, const SMaterial &lastMaterial, bool resetAllRenderstates, IMaterialRendererServices *services)
Called by the IVideoDriver implementation the let the renderer set its needed render states.
Base class of most objects of the Irrlicht Engine.
E_VERTEX_TYPE
Enumeration for all vertex types there are.
Definition: S3DVertex.h:18
Struct for holding parameters for a material renderer.
Definition: SMaterial.h:304