00001 #ifndef __RAS_IRASTERIZER
00002 #define __RAS_IRASTERIZER
00003
00004 #pragma warning (disable:4786)
00005
00006 #include "KX_Matrix4x4.h"
00007
00008 class RAS_ICanvas;
00009 class RAS_IPolyMaterial;
00010 #include "RAS_MaterialBucket.h"
00011
00015
00016 class RAS_IRasterizer
00017 {
00018
00019 public:
00020
00021 RAS_IRasterizer(RAS_ICanvas* canv){};
00022 virtual ~RAS_IRasterizer(){};
00023 enum {
00024 KX_BOUNDINGBOX = 1,
00025 KX_WIREFRAME,
00026 KX_SOLID,
00027 KX_SHADED,
00028 KX_TEXTURED
00029 };
00030
00031 enum {
00032 KX_DEPTHMASK_ENABLED =1,
00033 KX_DEPTHMASK_DISABLED,
00034 };
00035 virtual void SetDepthMask(int depthmask)=0;
00036 virtual void SetMaterial(const RAS_IPolyMaterial& mat)=0;
00037 virtual bool Init()=0;
00038 virtual void Exit()=0;
00039 virtual bool BeginFrame()=0;
00040 virtual void EndFrame()=0;
00041 virtual void SwapBuffers()=0;
00042 virtual void IndexPrimitives( const vecVertexArray& vertexarrays,
00043 const vecIndexArrays & indexarrays,
00044 int mode,
00045 class RAS_IPolyMaterial* polymat,
00046 class RAS_IRenderTools* rendertools)=0;
00047 virtual void SetProjectionMatrix(CMatrix4x4 & mat)=0;
00048 virtual void SetViewMatrix(CMatrix4x4 & mat,const MT_Vector3& campos)=0;
00049 virtual const MT_Point3& GetCameraPosition()=0;
00050 virtual void LoadViewMatrix()=0;
00051
00052 virtual void SetFog(float start,float dist,float r,float g,float b)=0;
00053 virtual void DisplayFog()=0;
00054 virtual void SetBackColor(float red,float green,float blue,float alpha)=0;
00055
00056 virtual void SetDrawingMode(int drawingmode)=0;
00057 virtual int GetDrawingMode()=0;
00058
00059 virtual void EnableTextures(bool enable)=0;
00060 virtual void SetCullFace(bool enable)=0;
00061
00062 };
00063
00064 #endif //__RAS_IRASTERIZER