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