summaryrefslogtreecommitdiff
path: root/indra/newview/lldrawpoolalpha.h
diff options
context:
space:
mode:
authorAlexander Gavriliuk <alexandrgproductengine@lindenlab.com>2023-11-30 17:47:58 +0100
committerAlexander Gavriliuk <alexandrgproductengine@lindenlab.com>2023-12-05 03:37:06 +0100
commitc9cd5631e4b149f83c5a49c8fbf869cf2fb5b6a7 (patch)
treed09566a4132530ea65574a886540e0f258103017 /indra/newview/lldrawpoolalpha.h
parent54db4206e9302e7510bc4f103ff59714c1be942d (diff)
parent683bf84bb38adc88d4a4b7fedaed89b41fcac45e (diff)
Merge branch 'main' into DRTVWR-489
Diffstat (limited to 'indra/newview/lldrawpoolalpha.h')
-rw-r--r--indra/newview/lldrawpoolalpha.h30
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