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                                                         LLVertexBuffer::MAP_BINORMAL
00058                                                         
00059         };
00060 
00061         virtual U32 getVertexDataMask() { return VERTEX_DATA_MASK; }
00062 
00063         virtual S32 getVertexShaderLevel() const;
00064 
00065         LLDrawPoolAvatar();
00066 
00067         static LLMatrix4& getModelView();
00068 
00069         /*virtual*/ LLDrawPool *instancePool();
00070 
00071         /*virtual*/ S32  getNumPasses();
00072         /*virtual*/ void beginRenderPass(S32 pass);
00073         /*virtual*/ void endRenderPass(S32 pass);
00074         /*virtual*/ void prerender();
00075         /*virtual*/ void render(S32 pass = 0);
00076         /*virtual*/ void renderForSelect();
00077 
00078         void beginRigid();
00079         void beginFootShadow();
00080         void beginSkinned();
00081                 
00082         void endRigid();
00083         void endFootShadow();
00084         void endSkinned();
00085                 
00086         /*virtual*/ LLViewerImage *getDebugTexture();
00087         /*virtual*/ LLColor3 getDebugColor() const; // For AGP debug display
00088 
00089         virtual S32 getMaterialAttribIndex() { return 0; }
00090 
00091         void renderAvatars(LLVOAvatar *single_avatar, S32 pass = -1); // renders only one avatar if single_avatar is not null.
00092 };
00093 
00094 
00095 
00096 extern S32 AVATAR_OFFSET_POS;
00097 extern S32 AVATAR_OFFSET_NORMAL;
00098 extern S32 AVATAR_OFFSET_TEX0;
00099 extern S32 AVATAR_OFFSET_TEX1;
00100 extern S32 AVATAR_VERTEX_BYTES;
00101 const S32 AVATAR_BUFFER_ELEMENTS = 8192; // Needs to be enough to store all avatar vertices.
00102 
00103 extern BOOL gAvatarEmbossBumpMap;
00104 #endif // LL_LLDRAWPOOLAVATAR_H

Generated on Thu Jul 1 06:08:25 2010 for Second Life Viewer by  doxygen 1.4.7