diff options
author | Erwin Coumans <blender@erwincoumans.com> | 2006-04-03 01:04:20 +0400 |
---|---|---|
committer | Erwin Coumans <blender@erwincoumans.com> | 2006-04-03 01:04:20 +0400 |
commit | 6839ec66405f366d95641b1d5685369a1b19757c (patch) | |
tree | ecd65680f673221994758ab86dd563cf9462d8df /source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h | |
parent | 756bad72c4ca4538834aed7bbdc46a2cce41393f (diff) |
applied Charlies patch for game engine graphics. display list support, and bumpmapping shader improvements.
Diffstat (limited to 'source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h')
-rw-r--r-- | source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h new file mode 100644 index 00000000000..82840cd1399 --- /dev/null +++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h @@ -0,0 +1,72 @@ +#ifndef __RAS_LISTRASTERIZER_H__ +#define __RAS_LISTRASTERIZER_H__ + +#include "RAS_MaterialBucket.h" +#include "RAS_OpenGLRasterizer.h" +#include <vector> + +class RAS_ListSlot : public KX_ListSlot +{ + unsigned int m_list; + unsigned int m_flag; +public: + RAS_ListSlot(); + virtual ~RAS_ListSlot(); + virtual void SetModified(bool mod); + + void RemoveList(); + void DrawList(); + void EndList(); + bool End(); + +}; + +enum RAS_ListSlotFlags { + LIST_CREATE =1, + LIST_MODIFY =2, + LIST_STREAM =4, + LIST_NOCREATE =8, + LIST_BEGIN =16, + LIST_END =32, + LIST_REGEN =64 +}; + +typedef std::map<const vecVertexArray, RAS_ListSlot*> RAS_Lists; + +class RAS_ListRasterizer : public RAS_OpenGLRasterizer +{ + RAS_Lists mLists; + + RAS_ListSlot* FindOrAdd(const vecVertexArray& vertexarrays, KX_ListSlot** slot); + void ReleaseAlloc(); + +public: + RAS_ListRasterizer(RAS_ICanvas* canvas); + virtual ~RAS_ListRasterizer(); + + virtual void IndexPrimitives( + const vecVertexArray& vertexarrays, + const vecIndexArrays & indexarrays, + int mode, + class RAS_IPolyMaterial* polymat, + class RAS_IRenderTools* rendertools, + bool useObjectColor, + const MT_Vector4& rgbacolor, + class KX_ListSlot** slot + ); + + virtual void IndexPrimitivesMulti( + const vecVertexArray& vertexarrays, + const vecIndexArrays & indexarrays, + int mode, + class RAS_IPolyMaterial* polymat, + class RAS_IRenderTools* rendertools, + bool useObjectColor, + const MT_Vector4& rgbacolor, + class KX_ListSlot** slot + ); + + virtual bool QueryLists(){return true;} +}; + +#endif |