00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __CS_RENDERMESHLIST_H__
00020 #define __CS_RENDERMESHLIST_H__
00021
00022 #include "csutil/array.h"
00023 #include "csutil/parray.h"
00024 #include "csutil/ref.h"
00025
00026 struct iEngine;
00027 struct iObjectRegistry;
00028 class csRenderMesh;
00029
00034 class csRenderMeshList
00035 {
00036 public:
00042 csRenderMeshList (iObjectRegistry *objreg);
00043
00047 ~csRenderMeshList ();
00048
00052 void AddRenderMeshes (csRenderMesh** meshes, int num, long renderPriority);
00053
00058 void GetSortedMeshList (csArray<csRenderMesh*>& meshes);
00059
00060 private:
00062 struct renderMeshListInfo
00063 {
00065 long renderPriority;
00066
00068 int sortingOption;
00069
00071 csArray <csRenderMesh*> meshList;
00072
00073 };
00074
00076 static int CompareMeshListInfo (void const* item1,
00077 void const* item2);
00078
00079 csPDelArray < renderMeshListInfo > renderList;
00080 csRef<iEngine> engine;
00081 };
00082
00083 #endif //__CS_RENDERMESHLIST_H__