00001 00032 #ifndef LL_LLDRAWPOOLALPHA_H 00033 #define LL_LLDRAWPOOLALPHA_H 00034 00035 #include "lldrawpool.h" 00036 #include "llframetimer.h" 00037 00038 class LLFace; 00039 class LLColor4; 00040 00041 class LLDrawPoolAlpha: public LLRenderPass 00042 { 00043 public: 00044 enum 00045 { 00046 VERTEX_DATA_MASK = LLVertexBuffer::MAP_VERTEX | 00047 LLVertexBuffer::MAP_NORMAL | 00048 LLVertexBuffer::MAP_COLOR | 00049 LLVertexBuffer::MAP_TEXCOORD 00050 }; 00051 virtual U32 getVertexDataMask() { return VERTEX_DATA_MASK; } 00052 00053 LLDrawPoolAlpha(U32 type = LLDrawPool::POOL_ALPHA); 00054 /*virtual*/ ~LLDrawPoolAlpha(); 00055 00056 /*virtual*/ void beginRenderPass(S32 pass = 0); 00057 virtual void render(S32 pass = 0); 00058 void render(std::vector<LLSpatialGroup*>& groups); 00059 /*virtual*/ void prerender(); 00060 00061 void renderGroupAlpha(LLSpatialGroup* group, U32 type, U32 mask, BOOL texture = TRUE); 00062 void renderAlpha(U32 mask, std::vector<LLSpatialGroup*>& groups); 00063 void renderAlphaHighlight(U32 mask, std::vector<LLSpatialGroup*>& groups); 00064 00065 static BOOL sShowDebugAlpha; 00066 }; 00067 00068 class LLDrawPoolAlphaPostWater : public LLDrawPoolAlpha 00069 { 00070 public: 00071 LLDrawPoolAlphaPostWater(); 00072 virtual void render(S32 pass = 0); 00073 }; 00074 00075 #endif // LL_LLDRAWPOOLALPHA_H