00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __CS_ANONRNDBUF_H__
00020 #define __CS_ANONRNDBUF_H__
00021
00022 #include "csutil/ref.h"
00023 #include "csutil/garray.h"
00024 #include "csutil/refarr.h"
00025 #include "csutil/objreg.h"
00026 #include "ivideo/rndbuf.h"
00027 #include "iutil/strset.h"
00028
00030 class csAnonRenderBufferManager
00031 {
00032 class anonbuffer
00033 {
00034 public:
00035 anonbuffer() {};
00036 ~anonbuffer() {};
00037
00038 csRef<iRenderBuffer> buf;
00039 csStringID name;
00040 int size;
00041
00042 };
00043
00044 csDirtyAccessArray<anonbuffer *> anon_buffers;
00045 iObjectRegistry *object_reg;
00046
00047 public:
00048 csAnonRenderBufferManager(iObjectRegistry *object_reg);
00049 virtual ~csAnonRenderBufferManager();
00050
00051 iRenderBuffer * GetRenderBuffer(csStringID name);
00052 bool AddRenderBuffer (const char *name,
00053 csRenderBufferComponentType component_type, int component_size,
00054 int num_verts);
00055 bool SetRenderBufferComponent (const char *name, int index,
00056 int component, float value);
00057 bool SetRenderBufferComponent (const char *name, int index,
00058 int component, int value);
00059 bool SetRenderBuffer (const char *name, float *value, int num_verts);
00060 bool SetRenderBuffer (const char *name, int *value, int num_verts);
00061 };
00062
00063 #endif // __CS_ANONRNDBUF_H_