summaryrefslogtreecommitdiff
path: root/indra/newview/lldrawpoolground.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/lldrawpoolground.cpp')
-rw-r--r--indra/newview/lldrawpoolground.cpp85
1 files changed, 85 insertions, 0 deletions
diff --git a/indra/newview/lldrawpoolground.cpp b/indra/newview/lldrawpoolground.cpp
new file mode 100644
index 0000000000..91e92bab6e
--- /dev/null
+++ b/indra/newview/lldrawpoolground.cpp
@@ -0,0 +1,85 @@
+/**
+ * @file lldrawpoolground.cpp
+ * @brief LLDrawPoolGround class implementation
+ *
+ * Copyright (c) 2002-$CurrentYear$, Linden Research, Inc.
+ * $License$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "lldrawpoolground.h"
+
+#include "llviewercontrol.h"
+
+#include "llagparray.h"
+#include "lldrawable.h"
+#include "llface.h"
+#include "llsky.h"
+#include "llviewercamera.h"
+#include "llviewerwindow.h"
+#include "llworld.h"
+#include "pipeline.h"
+
+LLDrawPoolGround::LLDrawPoolGround() :
+ LLDrawPool(POOL_GROUND, DATA_SIMPLE_IL_MASK, DATA_SIMPLE_NIL_MASK)
+{
+}
+
+LLDrawPool *LLDrawPoolGround::instancePool()
+{
+ return new LLDrawPoolGround();
+}
+
+void LLDrawPoolGround::prerender()
+{
+ mVertexShaderLevel = gPipeline.getVertexShaderLevel(LLPipeline::SHADER_ENVIRONMENT);
+}
+
+void LLDrawPoolGround::render(S32 pass)
+{
+ if (mDrawFace.empty())
+ {
+ return;
+ }
+
+ glEnableClientState(GL_TEXTURE_COORD_ARRAY);
+ glEnableClientState(GL_VERTEX_ARRAY);
+ glDisableClientState(GL_NORMAL_ARRAY);
+
+ bindGLVertexPointer();
+ bindGLTexCoordPointer();
+
+ LLGLSPipelineSkyBox gls_skybox;
+ LLGLDepthTest gls_depth(GL_FALSE, GL_FALSE);
+
+ glMatrixMode( GL_PROJECTION );
+
+ glPushMatrix();
+ gViewerWindow->setup3DRender();
+
+ glMatrixMode(GL_MODELVIEW);
+
+ LLGLState tex2d(GL_TEXTURE_2D, (mVertexShaderLevel > 0) ? TRUE : FALSE);
+ LLViewerImage::bindTexture(gSky.mVOSkyp->getScatterMap(), 0);
+
+ LLFace *facep = mDrawFace[0];
+
+ if (!(mVertexShaderLevel > 0))
+ {
+ gPipeline.disableLights();
+ }
+
+ glColor4fv(facep->getFaceColor().mV);
+
+ facep->renderIndexed(getRawIndices());
+
+ glMatrixMode( GL_PROJECTION );
+ glPopMatrix();
+ glMatrixMode( GL_MODELVIEW );
+}
+
+void LLDrawPoolGround::renderForSelect()
+{
+}
+