diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2024-01-04 14:43:45 -0500 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2024-01-04 14:43:45 -0500 |
commit | 197a1ddef8a0b7bc7872339ec82b2a5bc5cbb3b4 (patch) | |
tree | 31b2bf3eeb026334ed20cd6e4f8fb15f91a07b0f /indra/newview/lldrawpoolalpha.h | |
parent | 5a6174c0853f5a140343725312f2b63b42f2bbad (diff) | |
parent | a592292242e29d0379ee72572a434359e1e892d1 (diff) |
DRTVWR-589: Merge branch 'main' into DRTVWR-589
Diffstat (limited to 'indra/newview/lldrawpoolalpha.h')
-rw-r--r-- | indra/newview/lldrawpoolalpha.h | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/indra/newview/lldrawpoolalpha.h b/indra/newview/lldrawpoolalpha.h index fa8ef0f227..820c4f4e68 100644 --- a/indra/newview/lldrawpoolalpha.h +++ b/indra/newview/lldrawpoolalpha.h @@ -35,9 +35,13 @@ class LLFace; class LLColor4; class LLGLSLShader; -class LLDrawPoolAlpha: public LLRenderPass +class LLDrawPoolAlpha final: public LLRenderPass { public: + + // set by llsettingsvo so lldrawpoolalpha has quick access to the water plane in eye space + static LLVector4 sWaterPlane; + enum { VERTEX_DATA_MASK = LLVertexBuffer::MAP_VERTEX | @@ -47,14 +51,13 @@ public: }; virtual U32 getVertexDataMask() { return VERTEX_DATA_MASK; } - LLDrawPoolAlpha(U32 type = LLDrawPool::POOL_ALPHA); + LLDrawPoolAlpha(U32 type); /*virtual*/ ~LLDrawPoolAlpha(); /*virtual*/ S32 getNumPostDeferredPasses(); /*virtual*/ void renderPostDeferred(S32 pass); /*virtual*/ S32 getNumPasses() { return 1; } - virtual void render(S32 pass = 0); void forwardRender(bool write_depth = false); /*virtual*/ void prerender(); @@ -62,7 +65,7 @@ public: void renderGroupAlpha(LLSpatialGroup* group, U32 type, U32 mask, BOOL texture = TRUE); void renderAlpha(U32 mask, bool depth_only = false, bool rigged = false); - void renderAlphaHighlight(U32 mask); + void renderAlphaHighlight(); bool uploadMatrixPalette(const LLDrawInfo& params); static BOOL sShowDebugAlpha; @@ -74,10 +77,14 @@ private: LLGLSLShader* simple_shader = nullptr; LLGLSLShader* fullbright_shader = nullptr; LLGLSLShader* emissive_shader = nullptr; - - void drawEmissive(U32 mask, LLDrawInfo* draw); - void renderEmissives(U32 mask, std::vector<LLDrawInfo*>& emissives); - void renderRiggedEmissives(U32 mask, std::vector<LLDrawInfo*>& emissives); + LLGLSLShader* pbr_emissive_shader = nullptr; + LLGLSLShader* pbr_shader = nullptr; + + void drawEmissive(LLDrawInfo* draw); + void renderEmissives(std::vector<LLDrawInfo*>& emissives); + void renderRiggedEmissives(std::vector<LLDrawInfo*>& emissives); + void renderPbrEmissives(std::vector<LLDrawInfo*>& emissives); + void renderRiggedPbrEmissives(std::vector<LLDrawInfo*>& emissives); bool TexSetup(LLDrawInfo* draw, bool use_material); void RestoreTexSetup(bool tex_setup); @@ -91,11 +98,4 @@ private: bool mRigged = false; }; -class LLDrawPoolAlphaPostWater : public LLDrawPoolAlpha -{ -public: - LLDrawPoolAlphaPostWater(); - virtual void render(S32 pass = 0); -}; - #endif // LL_LLDRAWPOOLALPHA_H |