Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __CS_VERTEXCOMPRESS_H__
00020 #define __CS_VERTEXCOMPRESS_H__
00021
00026 #include "csextern.h"
00027
00028 #include "csgeom/vector3.h"
00029 #include "csgeom/vector2.h"
00030 #include "csutil/array.h"
00031 #include "csutil/cscolor.h"
00032 #include "csutil/ref.h"
00033
00034 struct iRenderBuffer;
00035
00037 struct csCompressVertexInfo
00038 {
00039 size_t orig_idx;
00040 int x, y, z;
00041 int u, v;
00042 int nx, ny, nz;
00043 int r, g, b, a;
00044 size_t new_idx;
00045 bool used;
00046 };
00047
00051 class CS_CRYSTALSPACE_EXPORT csVertexCompressor
00052 {
00053 public:
00065 static csCompressVertexInfo* Compress (csVector3* vertices,
00066 csVector2* texels, csVector3* normals, csColor4* colors,
00067 size_t num_vertices, csVector3*& new_vertices,
00068 csVector2*& new_texels, csVector3*& new_normals,
00069 csColor4*& new_colors, size_t& new_count);
00070
00079 static csCompressVertexInfo* Compress (csArray<csVector3>& vertices,
00080 csArray<csVector2>& texels, csArray<csVector3>& normals,
00081 csArray<csColor4>& colors);
00082
00096 static size_t* Compress (csRef<iRenderBuffer>* buffers, size_t numBuffers,
00097 size_t& newCount);
00098 };
00099
00102 #endif // __CS_VERTEXCOMPRESS_H__
00103