lldrawpoolalpha.h

Go to the documentation of this file.
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 class LLGLSLShader;
00041 
00042 class LLDrawPoolAlpha: public LLRenderPass
00043 {
00044 public:
00045         enum
00046         {
00047                 VERTEX_DATA_MASK =      LLVertexBuffer::MAP_VERTEX |
00048                                                         LLVertexBuffer::MAP_NORMAL |
00049                                                         LLVertexBuffer::MAP_COLOR |
00050                                                         LLVertexBuffer::MAP_TEXCOORD
00051         };
00052         virtual U32 getVertexDataMask() { return VERTEX_DATA_MASK; }
00053 
00054         LLDrawPoolAlpha(U32 type = LLDrawPool::POOL_ALPHA);
00055         /*virtual*/ ~LLDrawPoolAlpha();
00056 
00057         /*virtual*/ void beginRenderPass(S32 pass = 0);
00058         /*virtual*/ void endRenderPass( S32 pass );
00059         /*virtual*/ S32  getNumPasses() { return 1; }
00060 
00061         virtual void render(S32 pass = 0);
00062         /*virtual*/ void prerender();
00063 
00064         void renderGroupAlpha(LLSpatialGroup* group, U32 type, U32 mask, BOOL texture = TRUE);
00065         void renderAlpha(U32 mask);
00066         void renderAlphaHighlight(U32 mask);
00067         
00068         static BOOL sShowDebugAlpha;
00069 
00070 private:
00071         LLGLSLShader* current_shader;
00072         LLGLSLShader* target_shader;
00073         LLGLSLShader* simple_shader;
00074         LLGLSLShader* fullbright_shader;        
00075 };
00076 
00077 class LLDrawPoolAlphaPostWater : public LLDrawPoolAlpha
00078 {
00079 public:
00080         LLDrawPoolAlphaPostWater();
00081         virtual void render(S32 pass = 0);
00082 };
00083 
00084 #endif // LL_LLDRAWPOOLALPHA_H

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