123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- #ifndef __CC_VERTEX_INDEX_DATA_H__
- #define __CC_VERTEX_INDEX_DATA_H__
- #include "base/CCRef.h"
- #include <map>
- NS_CC_BEGIN
- class VertexBuffer;
- struct CC_DLL VertexStreamAttribute
- {
-
- VertexStreamAttribute()
- : _normalize(false),_offset(0),_semantic(0),_type(0),_size(0)
- {
- }
-
- VertexStreamAttribute(int offset, int semantic, int type, int size)
- : _normalize(false),_offset(offset),_semantic(semantic),_type(type),_size(size)
- {
- }
-
- VertexStreamAttribute(int offset, int semantic, int type, int size, bool normalize)
- : _normalize(normalize),_offset(offset),_semantic(semantic),_type(type),_size(size)
- {
- }
-
- bool _normalize;
-
- int _offset;
-
- int _semantic;
-
- int _type;
-
- int _size;
- };
- class CC_DLL VertexData : public Ref
- {
- public:
-
- static VertexData* create();
-
-
- size_t getVertexStreamCount() const;
-
- bool setStream(VertexBuffer* buffer, const VertexStreamAttribute& stream);
-
- void removeStream(int semantic);
-
- const VertexStreamAttribute* getStreamAttribute(int semantic) const;
-
- VertexStreamAttribute* getStreamAttribute(int semantic);
-
- VertexBuffer* getStreamBuffer(int semantic) const;
-
-
- void use();
- protected:
-
- VertexData();
-
- virtual ~VertexData();
- protected:
-
- struct BufferAttribute
- {
- VertexBuffer* _buffer;
- VertexStreamAttribute _stream;
- };
-
-
- std::map<int, BufferAttribute> _vertexStreams;
- };
- NS_CC_END
- #endif
|