build fix, cleanup

This commit is contained in:
Siana Gearz
2011-03-25 22:09:42 +01:00
parent 82667f5618
commit 86f7987e13
4 changed files with 286 additions and 292 deletions

View File

@@ -1,285 +1,281 @@
/**
* @file llglstates.h
* @brief LLGL states definitions
*
* $LicenseInfo:firstyear=2001&license=viewergpl$
*
* Copyright (c) 2001-2009, Linden Research, Inc.
*
* Second Life Viewer Source Code
* The source code in this file ("Source Code") is provided by Linden Lab
* to you under the terms of the GNU General Public License, version 2.0
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
* online at
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
* and agree to abide by those obligations.
*
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
* COMPLETENESS OR PERFORMANCE.
* $/LicenseInfo$
*/
//THIS HEADER SHOULD ONLY BE INCLUDED FROM llgl.h
#ifndef LL_LLGLSTATES_H
#define LL_LLGLSTATES_H
#include "llimagegl.h"
//----------------------------------------------------------------------------
class LLGLDepthTest
{
// Enabled by default
public:
LLGLDepthTest(GLboolean depth_enabled, GLboolean write_enabled = GL_TRUE, GLenum depth_func = GL_LEQUAL);
~LLGLDepthTest();
GLboolean mPrevDepthEnabled;
GLenum mPrevDepthFunc;
GLboolean mPrevWriteEnabled;
private:
static GLboolean sDepthEnabled; // defaults to GL_FALSE
static GLenum sDepthFunc; // defaults to GL_LESS
static GLboolean sWriteEnabled; // defaults to GL_TRUE
};
//----------------------------------------------------------------------------
class LLGLSDefault
{
protected:
LLGLEnable mColorMaterial;
LLGLDisable mAlphaTest, mBlend, mCullFace, mDither, mFog,
mLineSmooth, mLineStipple, mNormalize, mPolygonSmooth,
mTextureGenQ, mTextureGenR, mTextureGenS, mTextureGenT,
mGLMultisample;
public:
LLGLSDefault()
:
// Enable
mColorMaterial(GL_COLOR_MATERIAL),
// Disable
mAlphaTest(GL_ALPHA_TEST),
mBlend(GL_BLEND),
mCullFace(GL_CULL_FACE),
mDither(GL_DITHER),
mFog(GL_FOG),
mLineSmooth(GL_LINE_SMOOTH),
mLineStipple(GL_LINE_STIPPLE),
mNormalize(GL_NORMALIZE),
mPolygonSmooth(GL_POLYGON_SMOOTH),
mTextureGenQ(GL_TEXTURE_GEN_Q),
mTextureGenR(GL_TEXTURE_GEN_R),
mTextureGenS(GL_TEXTURE_GEN_S),
mTextureGenT(GL_TEXTURE_GEN_T),
mGLMultisample(GL_MULTISAMPLE_ARB)
{ }
};
class LLGLSObjectSelect
{
protected:
LLGLDisable mBlend, mFog, mAlphaTest;
LLGLEnable mCullFace;
public:
LLGLSObjectSelect()
: mBlend(GL_BLEND), mFog(GL_FOG),
mAlphaTest(GL_ALPHA_TEST),
mCullFace(GL_CULL_FACE)
{ }
};
class LLGLSObjectSelectAlpha
{
protected:
LLGLEnable mAlphaTest;
public:
LLGLSObjectSelectAlpha()
: mAlphaTest(GL_ALPHA_TEST)
{}
};
//----------------------------------------------------------------------------
class LLGLSUIDefault
{
protected:
LLGLEnable mBlend, mAlphaTest;
LLGLDisable mCullFace;
LLGLDepthTest mDepthTest;
public:
LLGLSUIDefault()
: mBlend(GL_BLEND), mAlphaTest(GL_ALPHA_TEST),
mCullFace(GL_CULL_FACE),
mDepthTest(GL_FALSE, GL_TRUE, GL_LEQUAL)
{}
};
class LLGLSNoAlphaTest // : public LLGLSUIDefault
{
protected:
LLGLDisable mAlphaTest;
public:
LLGLSNoAlphaTest()
: mAlphaTest(GL_ALPHA_TEST)
{}
};
//----------------------------------------------------------------------------
class LLGLSFog
{
protected:
LLGLEnable mFog;
public:
LLGLSFog()
: mFog(GL_FOG)
{}
};
class LLGLSNoFog
{
protected:
LLGLDisable mFog;
public:
LLGLSNoFog()
: mFog(GL_FOG)
{}
};
//----------------------------------------------------------------------------
class LLGLSPipeline
{
protected:
LLGLEnable mCullFace;
LLGLDepthTest mDepthTest;
public:
LLGLSPipeline()
: mCullFace(GL_CULL_FACE),
mDepthTest(GL_TRUE, GL_TRUE, GL_LEQUAL)
{ }
};
class LLGLSPipelineAlpha // : public LLGLSPipeline
{
protected:
LLGLEnable mBlend, mAlphaTest;
public:
LLGLSPipelineAlpha()
: mBlend(GL_BLEND),
mAlphaTest(GL_ALPHA_TEST)
{ }
};
class LLGLSPipelineEmbossBump
{
protected:
LLGLDisable mFog;
public:
LLGLSPipelineEmbossBump()
: mFog(GL_FOG)
{ }
};
class LLGLSPipelineSelection
{
protected:
LLGLDisable mCullFace;
public:
LLGLSPipelineSelection()
: mCullFace(GL_CULL_FACE)
{}
};
class LLGLSPipelineAvatar
{
protected:
LLGLEnable mNormalize;
public:
LLGLSPipelineAvatar()
: mNormalize(GL_NORMALIZE)
{}
};
class LLGLSPipelineSkyBox
{
protected:
LLGLDisable mAlphaTest, mCullFace, mFog;
public:
LLGLSPipelineSkyBox()
: mAlphaTest(GL_ALPHA_TEST), mCullFace(GL_CULL_FACE), mFog(GL_FOG)
{ }
};
class LLGLSTracker
{
protected:
LLGLEnable mCullFace, mBlend, mAlphaTest;
public:
LLGLSTracker() :
mCullFace(GL_CULL_FACE),
mBlend(GL_BLEND),
mAlphaTest(GL_ALPHA_TEST)
{ }
};
//----------------------------------------------------------------------------
class LLGLSSpecular
{
public:
LLGLSSpecular(const LLColor4& color, F32 shininess)
{
if (shininess > 0.0f)
{
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, color.mV);
S32 shiny = (S32)(shininess*128.f);
shiny = llclamp(shiny,0,128);
glMateriali(GL_FRONT_AND_BACK, GL_SHININESS, shiny);
}
}
~LLGLSSpecular()
{
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, LLColor4(0.f,0.f,0.f,0.f).mV);
glMateriali(GL_FRONT_AND_BACK, GL_SHININESS, 0);
}
};
//----------------------------------------------------------------------------
class LLGLSBlendFunc : public LLGLSPipeline {
protected:
GLint mSavedSrc, mSavedDst;
LLGLEnable mBlend;
public:
LLGLSBlendFunc(GLenum srcFunc, GLenum dstFunc) :
mBlend(GL_BLEND)
{
glGetIntegerv(GL_BLEND_SRC, &mSavedSrc);
glGetIntegerv(GL_BLEND_DST, &mSavedDst);
glBlendFunc(srcFunc, dstFunc);
}
~LLGLSBlendFunc(void) {
glBlendFunc(mSavedSrc, mSavedDst);
}
};
#endif
/**
* @file llglstates.h
* @brief LLGL states definitions
*
* $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
//THIS HEADER SHOULD ONLY BE INCLUDED FROM llgl.h
#ifndef LL_LLGLSTATES_H
#define LL_LLGLSTATES_H
#include "llimagegl.h"
//----------------------------------------------------------------------------
class LLGLDepthTest
{
// Enabled by default
public:
LLGLDepthTest(GLboolean depth_enabled, GLboolean write_enabled = GL_TRUE, GLenum depth_func = GL_LEQUAL);
~LLGLDepthTest();
void checkState();
GLboolean mPrevDepthEnabled;
GLenum mPrevDepthFunc;
GLboolean mPrevWriteEnabled;
private:
static GLboolean sDepthEnabled; // defaults to GL_FALSE
static GLenum sDepthFunc; // defaults to GL_LESS
static GLboolean sWriteEnabled; // defaults to GL_TRUE
};
//----------------------------------------------------------------------------
class LLGLSDefault
{
protected:
LLGLEnable mColorMaterial;
LLGLDisable mAlphaTest, mBlend, mCullFace, mDither, mFog,
mLineSmooth, mLineStipple, mNormalize, mPolygonSmooth,
mTextureGenQ, mTextureGenR, mTextureGenS, mTextureGenT,
mGLMultisample;
public:
LLGLSDefault()
:
// Enable
mColorMaterial(GL_COLOR_MATERIAL),
// Disable
mAlphaTest(GL_ALPHA_TEST),
mBlend(GL_BLEND),
mCullFace(GL_CULL_FACE),
mDither(GL_DITHER),
mFog(GL_FOG),
mLineSmooth(GL_LINE_SMOOTH),
mLineStipple(GL_LINE_STIPPLE),
mNormalize(GL_NORMALIZE),
mPolygonSmooth(GL_POLYGON_SMOOTH),
mTextureGenQ(GL_TEXTURE_GEN_Q),
mTextureGenR(GL_TEXTURE_GEN_R),
mTextureGenS(GL_TEXTURE_GEN_S),
mTextureGenT(GL_TEXTURE_GEN_T),
mGLMultisample(GL_MULTISAMPLE_ARB)
{ }
};
class LLGLSObjectSelect
{
protected:
LLGLDisable mBlend, mFog, mAlphaTest;
LLGLEnable mCullFace;
public:
LLGLSObjectSelect()
: mBlend(GL_BLEND), mFog(GL_FOG),
mAlphaTest(GL_ALPHA_TEST),
mCullFace(GL_CULL_FACE)
{ }
};
class LLGLSObjectSelectAlpha
{
protected:
LLGLEnable mAlphaTest;
public:
LLGLSObjectSelectAlpha()
: mAlphaTest(GL_ALPHA_TEST)
{}
};
//----------------------------------------------------------------------------
class LLGLSUIDefault
{
protected:
LLGLEnable mBlend, mAlphaTest;
LLGLDisable mCullFace;
LLGLDepthTest mDepthTest;
public:
LLGLSUIDefault()
: mBlend(GL_BLEND), mAlphaTest(GL_ALPHA_TEST),
mCullFace(GL_CULL_FACE),
mDepthTest(GL_FALSE, GL_TRUE, GL_LEQUAL)
{}
};
class LLGLSNoAlphaTest // : public LLGLSUIDefault
{
protected:
LLGLDisable mAlphaTest;
public:
LLGLSNoAlphaTest()
: mAlphaTest(GL_ALPHA_TEST)
{}
};
//----------------------------------------------------------------------------
class LLGLSFog
{
protected:
LLGLEnable mFog;
public:
LLGLSFog()
: mFog(GL_FOG)
{}
};
class LLGLSNoFog
{
protected:
LLGLDisable mFog;
public:
LLGLSNoFog()
: mFog(GL_FOG)
{}
};
//----------------------------------------------------------------------------
class LLGLSPipeline
{
protected:
LLGLEnable mCullFace;
LLGLDepthTest mDepthTest;
public:
LLGLSPipeline()
: mCullFace(GL_CULL_FACE),
mDepthTest(GL_TRUE, GL_TRUE, GL_LEQUAL)
{ }
};
class LLGLSPipelineAlpha // : public LLGLSPipeline
{
protected:
LLGLEnable mBlend, mAlphaTest;
public:
LLGLSPipelineAlpha()
: mBlend(GL_BLEND),
mAlphaTest(GL_ALPHA_TEST)
{ }
};
class LLGLSPipelineEmbossBump
{
protected:
LLGLDisable mFog;
public:
LLGLSPipelineEmbossBump()
: mFog(GL_FOG)
{ }
};
class LLGLSPipelineSelection
{
protected:
LLGLDisable mCullFace;
public:
LLGLSPipelineSelection()
: mCullFace(GL_CULL_FACE)
{}
};
class LLGLSPipelineAvatar
{
protected:
LLGLEnable mNormalize;
public:
LLGLSPipelineAvatar()
: mNormalize(GL_NORMALIZE)
{}
};
class LLGLSPipelineSkyBox
{
protected:
LLGLDisable mAlphaTest, mCullFace, mFog;
public:
LLGLSPipelineSkyBox()
: mAlphaTest(GL_ALPHA_TEST), mCullFace(GL_CULL_FACE), mFog(GL_FOG)
{ }
};
class LLGLSTracker
{
protected:
LLGLEnable mCullFace, mBlend, mAlphaTest;
public:
LLGLSTracker() :
mCullFace(GL_CULL_FACE),
mBlend(GL_BLEND),
mAlphaTest(GL_ALPHA_TEST)
{ }
};
//----------------------------------------------------------------------------
class LLGLSSpecular
{
public:
LLGLSSpecular(const LLColor4& color, F32 shininess)
{
if (shininess > 0.0f)
{
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, color.mV);
S32 shiny = (S32)(shininess*128.f);
shiny = llclamp(shiny,0,128);
glMateriali(GL_FRONT_AND_BACK, GL_SHININESS, shiny);
}
}
~LLGLSSpecular()
{
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, LLColor4(0.f,0.f,0.f,0.f).mV);
glMateriali(GL_FRONT_AND_BACK, GL_SHININESS, 0);
}
};
//----------------------------------------------------------------------------
class LLGLSBlendFunc : public LLGLSPipeline {
protected:
GLint mSavedSrc, mSavedDst;
LLGLEnable mBlend;
public:
LLGLSBlendFunc(GLenum srcFunc, GLenum dstFunc) :
mBlend(GL_BLEND)
{
glGetIntegerv(GL_BLEND_SRC, &mSavedSrc);
glGetIntegerv(GL_BLEND_DST, &mSavedDst);
glBlendFunc(srcFunc, dstFunc);
}
~LLGLSBlendFunc(void) {
glBlendFunc(mSavedSrc, mSavedDst);
}
};
#endif

View File

@@ -2154,9 +2154,7 @@ bool LLAppViewer::initConfiguration()
void LLAppViewer::checkForCrash(void)
{
// <edit> screw sending crash reports
#if LL_SEND_CRASH_REPORTS && 0
// </edit>
#if LL_SEND_CRASH_REPORTS
//*NOTE:Mani The current state of the crash handler has the MacOSX
// sending all crash reports as freezes, in order to let
// the MacOSX CrashRepoter generate stacks before spawning the

View File

@@ -106,9 +106,9 @@ public:
void setZCompare(const BOOL zcompare);
void setDoFade(const BOOL do_fade);
void setVisibleOffScreen(BOOL visible) { mVisibleOffScreen = visible; }
// <edit>
std::string getStringUTF8();
// </edit>
// <edit>
std::string getStringUTF8();
// </edit>
// mMaxLines of -1 means unlimited lines.
void setMaxLines(S32 max_lines) { mMaxLines = max_lines; }

View File

@@ -473,7 +473,7 @@ void LLVOVolume::updateTextureVirtualSize()
if(!isVisible())
{
return ;
return;
}
if (!gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_SIMPLE))