lldrawpoolavatar.h

Go to the documentation of this file.
00001 
00032 #ifndef LL_LLDRAWPOOLAVATAR_H
00033 #define LL_LLDRAWPOOLAVATAR_H
00034 
00035 #include "lldrawpool.h"
00036 
00037 class LLVOAvatar;
00038 
00039 class LLDrawPoolAvatar : public LLFacePool
00040 {
00041 protected:
00042         S32                                     mNumFaces;
00043 public:
00044         enum
00045         {
00046                 SHADER_LEVEL_BUMP = 2,
00047                 SHADER_LEVEL_CLOTH = 3
00048         };
00049         
00050         enum
00051         {
00052                 VERTEX_DATA_MASK =      LLVertexBuffer::MAP_VERTEX |
00053                                                         LLVertexBuffer::MAP_NORMAL |
00054                                                         LLVertexBuffer::MAP_TEXCOORD |
00055                                                         LLVertexBuffer::MAP_WEIGHT |
00056                                                         LLVertexBuffer::MAP_CLOTHWEIGHT
00057         };
00058 
00059         virtual U32 getVertexDataMask() { return VERTEX_DATA_MASK; }
00060 
00061         virtual S32 getVertexShaderLevel() const;
00062 
00063         LLDrawPoolAvatar();
00064 
00065         static LLMatrix4& getModelView();
00066 
00067         /*virtual*/ LLDrawPool *instancePool();
00068 
00069         /*virtual*/ S32  getNumPasses();
00070         /*virtual*/ void beginRenderPass(S32 pass);
00071         /*virtual*/ void endRenderPass(S32 pass);
00072         /*virtual*/ void prerender();
00073         /*virtual*/ void render(S32 pass = 0);
00074         /*virtual*/ void renderForSelect();
00075 
00076         void beginRigid();
00077         void beginFootShadow();
00078         void beginSkinned();
00079                 
00080         void endRigid();
00081         void endFootShadow();
00082         void endSkinned();
00083                 
00084         /*virtual*/ LLViewerImage *getDebugTexture();
00085         /*virtual*/ LLColor3 getDebugColor() const; // For AGP debug display
00086 
00087         void renderAvatars(LLVOAvatar *single_avatar, S32 pass = -1); // renders only one avatar if single_avatar is not null.
00088 };
00089 
00090 
00091 
00092 extern S32 AVATAR_OFFSET_POS;
00093 extern S32 AVATAR_OFFSET_NORMAL;
00094 extern S32 AVATAR_OFFSET_TEX0;
00095 extern S32 AVATAR_OFFSET_TEX1;
00096 extern S32 AVATAR_VERTEX_BYTES;
00097 const S32 AVATAR_BUFFER_ELEMENTS = 8192; // Needs to be enough to store all avatar vertices.
00098 
00099 extern BOOL gAvatarEmbossBumpMap;
00100 #endif // LL_LLDRAWPOOLAVATAR_H

Generated on Fri May 16 08:33:17 2008 for SecondLife by  doxygen 1.5.5