Initial (largely complete) gamma correct rendering implementation.
parent
e8f6734d67
commit
eda11a25a4
|
|
@ -498,9 +498,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>61ead113e6479452e6b690c84b4e9d30</string>
|
||||
<string>481a87c5a964a4fa33b7411036d4c71d</string>
|
||||
<key>url</key>
|
||||
<string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-fmod-private/rev/221852/arch/Darwin/installer/fmod-3.75-darwin-20110222.tar.bz2</string>
|
||||
<string>file:///Users/geenz/Devel/3p-fmod/fmod-3.75-darwin-20120315.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin</string>
|
||||
|
|
@ -1062,9 +1062,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>a5b2dff0d97b643227a58473e5c57906</string>
|
||||
<string>691008f5ec3cec2d7fc9d8814036d25b</string>
|
||||
<key>url</key>
|
||||
<string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-kdu-private/rev/256978/arch/Darwin/installer/kdu-7.0.0-darwin-20120515.tar.bz2</string>
|
||||
<string>file:///Users/geenz/Devel/kakadu/lib/Mac-x86-32-gcc/kdu.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin</string>
|
||||
|
|
@ -1343,6 +1343,58 @@
|
|||
<key>version</key>
|
||||
<string>0.2</string>
|
||||
</map>
|
||||
<key>llphysicsextensions_tpv</key>
|
||||
<map>
|
||||
<key>license</key>
|
||||
<string>TEMPORARY</string>
|
||||
<key>license_file</key>
|
||||
<string>LICENSES/llphysicsextensions.txt</string>
|
||||
<key>name</key>
|
||||
<string>llphysicsextensions_tpv</string>
|
||||
<key>platforms</key>
|
||||
<map>
|
||||
<key>darwin</key>
|
||||
<map>
|
||||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>51313d6a13b946b1b8dd14412057344c</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>md5</string>
|
||||
<key>url</key>
|
||||
<string>file:///Users/geenz/Devel/llphysicsextensions_tpv-0.3-darwin-20121227.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin</string>
|
||||
</map>
|
||||
<key>linux</key>
|
||||
<map>
|
||||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>3fba5443cb0b869005591b143fa48a42</string>
|
||||
<key>url</key>
|
||||
<string>file:///build/llPhysicsExtensions/llphysicsextensions_tpv-0.3-linux-20120814.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
</map>
|
||||
<key>windows</key>
|
||||
<map>
|
||||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>1444bf3b1305a5e6909123d691991d4b</string>
|
||||
<key>url</key>
|
||||
<string>file:///c:/static/llphysicsextensions_tpv-0.3-windows-20120814.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows</string>
|
||||
</map>
|
||||
</map>
|
||||
<key>version</key>
|
||||
<string>0.3</string>
|
||||
</map>
|
||||
<key>llqtwebkit</key>
|
||||
<map>
|
||||
<key>license</key>
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@
|
|||
#include "v4color.h"
|
||||
#include "llsd.h"
|
||||
#include "llmaterialid.h"
|
||||
#include "llmaterial.h"
|
||||
|
||||
// These bits are used while unpacking TEM messages to tell which aspects of
|
||||
// the texture entry changed.
|
||||
|
|
@ -197,6 +198,7 @@ protected:
|
|||
U8 mMediaFlags; // replace with web page, movie, etc.
|
||||
F32 mGlow;
|
||||
LLMaterialID mMaterialID;
|
||||
LLMaterialPtr mMaterial;
|
||||
|
||||
// Note the media data is not sent via the same message structure as the rest of the TE
|
||||
LLMediaEntry* mMediaEntry; // The media data for the face
|
||||
|
|
|
|||
|
|
@ -1121,6 +1121,9 @@ void LLShaderMgr::initAttribsAndUniforms()
|
|||
mReservedUniforms.push_back("lightMap");
|
||||
mReservedUniforms.push_back("bloomMap");
|
||||
mReservedUniforms.push_back("projectionMap");
|
||||
|
||||
mReservedUniforms.push_back("global_gamma");
|
||||
mReservedUniforms.push_back("texture_gamma");
|
||||
|
||||
llassert(mReservedUniforms.size() == END_RESERVED_UNIFORMS);
|
||||
|
||||
|
|
|
|||
|
|
@ -164,6 +164,10 @@ public:
|
|||
DEFERRED_LIGHT,
|
||||
DEFERRED_BLOOM,
|
||||
DEFERRED_PROJECTION,
|
||||
|
||||
GLOBAL_GAMMA,
|
||||
TEXTURE_GAMMA,
|
||||
|
||||
END_RESERVED_UNIFORMS
|
||||
} eGLSLReservedUniforms;
|
||||
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ void main()
|
|||
vec4 pos = vec4(vary_position, 1.0);
|
||||
|
||||
vec4 diff= diffuseLookup(vary_texcoord0.xy);
|
||||
diff.rgb = pow(diff.rgb, vec3(2.2));
|
||||
|
||||
vec4 col = vec4(vary_ambient + vary_directional.rgb, vertex_color.a);
|
||||
vec4 color = diff * col;
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ void main()
|
|||
float shadow = 1.0;
|
||||
|
||||
vec4 color = diffuseLookup(vary_texcoord0.xy)*vertex_color;
|
||||
color.rgb = pow(color.rgb, vec3(2.2));
|
||||
|
||||
color.rgb = fullbrightAtmosTransport(color.rgb);
|
||||
|
||||
|
|
|
|||
|
|
@ -108,6 +108,7 @@ void main()
|
|||
if (spec.a > 0.0)
|
||||
{
|
||||
float sa = dot(normalize(lv-normalize(pos)),norm);
|
||||
spec.rgb += pow(1 - dot(-normalize(pos), norm), 2) * da * 3;
|
||||
if (sa > 0.0)
|
||||
{
|
||||
sa = texture2D(lightFunc, vec2(sa, spec.a)).r * min(dist_atten*4.0, 1.0);
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ uniform mat4 inv_proj;
|
|||
uniform vec2 screen_res;
|
||||
uniform float max_cof;
|
||||
uniform float res_scale;
|
||||
uniform float global_gamma;
|
||||
|
||||
VARYING vec2 vary_fragcoord;
|
||||
|
||||
|
|
@ -123,6 +124,6 @@ void main()
|
|||
|
||||
diff /= w;
|
||||
}
|
||||
|
||||
diff.rgb = pow(diff.rgb, vec3(1.0/global_gamma));
|
||||
frag_color = diff;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,12 +35,13 @@ uniform sampler2DRect diffuseRect;
|
|||
uniform sampler2D bloomMap;
|
||||
|
||||
uniform vec2 screen_res;
|
||||
uniform float global_gamma;
|
||||
VARYING vec2 vary_fragcoord;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec4 diff = texture2DRect(diffuseRect, vary_fragcoord.xy);
|
||||
|
||||
diff.rgb = pow(diff.rgb, vec3(1.0/global_gamma));
|
||||
vec4 bloom = texture2D(bloomMap, vary_fragcoord.xy/screen_res);
|
||||
frag_color = diff + bloom;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -77,6 +77,11 @@ vec3 vary_AtmosAttenuation;
|
|||
uniform mat4 inv_proj;
|
||||
uniform vec2 screen_res;
|
||||
|
||||
vec3 samplesRGB(vec3 color)
|
||||
{
|
||||
return pow(color, vec3(2.2));
|
||||
}
|
||||
|
||||
vec4 getPosition_d(vec2 pos_screen, float depth)
|
||||
{
|
||||
vec2 sc = pos_screen.xy*2.0;
|
||||
|
|
@ -101,22 +106,21 @@ vec3 getPositionEye()
|
|||
}
|
||||
vec3 getSunlitColor()
|
||||
{
|
||||
return vary_SunlitColor;
|
||||
return samplesRGB(vary_SunlitColor) * 4.4;
|
||||
}
|
||||
vec3 getAmblitColor()
|
||||
{
|
||||
return vary_AmblitColor;
|
||||
return samplesRGB((vary_AmblitColor)) * 2.2;
|
||||
}
|
||||
vec3 getAdditiveColor()
|
||||
{
|
||||
return vary_AdditiveColor;
|
||||
return samplesRGB(vary_AdditiveColor) * 2.2;
|
||||
}
|
||||
vec3 getAtmosAttenuation()
|
||||
{
|
||||
return vary_AtmosAttenuation;
|
||||
}
|
||||
|
||||
|
||||
void setPositionEye(vec3 v)
|
||||
{
|
||||
vary_PositionEye = v;
|
||||
|
|
@ -310,7 +314,7 @@ void main()
|
|||
|
||||
//add environmentmap
|
||||
vec3 env_vec = env_mat * refnormpersp;
|
||||
col = mix(col.rgb, textureCube(environmentMap, env_vec).rgb,
|
||||
col = mix(col.rgb, samplesRGB(textureCube(environmentMap, env_vec).rgb) * 2.2,
|
||||
max(spec.a-diffuse.a*2.0, 0.0));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -37,6 +37,8 @@ vec3 fullbrightScaleSoftClip(vec3 light);
|
|||
VARYING vec4 vertex_color;
|
||||
VARYING vec2 vary_texcoord0;
|
||||
|
||||
uniform float texture_gamma;
|
||||
|
||||
void fullbright_lighting()
|
||||
{
|
||||
vec4 color = diffuseLookup(vary_texcoord0.xy) * vertex_color;
|
||||
|
|
@ -45,7 +47,7 @@ void fullbright_lighting()
|
|||
{
|
||||
discard;
|
||||
}
|
||||
|
||||
color.rgb = pow(color.rgb, vec3(texture_gamma));
|
||||
color.rgb = fullbrightAtmosTransport(color.rgb);
|
||||
|
||||
color.rgb = fullbrightScaleSoftClip(color.rgb);
|
||||
|
|
|
|||
|
|
@ -149,6 +149,7 @@ void main()
|
|||
}
|
||||
|
||||
vec4 diff = diffuseLookup(vary_texcoord0.xy);
|
||||
diff.rgb = pow(diff.rgb, vec3(2.2));
|
||||
|
||||
vec4 col = vec4(vary_ambient + vary_directional.rgb*shadow, vertex_color.a);
|
||||
vec4 color = diff * col;
|
||||
|
|
|
|||
|
|
@ -79,6 +79,11 @@ vec3 vary_AmblitColor;
|
|||
vec3 vary_AdditiveColor;
|
||||
vec3 vary_AtmosAttenuation;
|
||||
|
||||
vec3 samplesRGB(vec3 color)
|
||||
{
|
||||
return pow(color, vec3(2.2));
|
||||
}
|
||||
|
||||
vec4 getPosition_d(vec2 pos_screen, float depth)
|
||||
{
|
||||
vec2 sc = pos_screen.xy*2.0;
|
||||
|
|
@ -103,15 +108,15 @@ vec3 getPositionEye()
|
|||
}
|
||||
vec3 getSunlitColor()
|
||||
{
|
||||
return vary_SunlitColor;
|
||||
return samplesRGB(vary_SunlitColor) * 4.4;
|
||||
}
|
||||
vec3 getAmblitColor()
|
||||
{
|
||||
return vary_AmblitColor;
|
||||
return samplesRGB(vary_AmblitColor) * 2.2;
|
||||
}
|
||||
vec3 getAdditiveColor()
|
||||
{
|
||||
return vary_AdditiveColor;
|
||||
return samplesRGB(vary_AdditiveColor) * 2.2;
|
||||
}
|
||||
vec3 getAtmosAttenuation()
|
||||
{
|
||||
|
|
@ -318,7 +323,7 @@ void main()
|
|||
|
||||
//add environmentmap
|
||||
vec3 env_vec = env_mat * refnormpersp;
|
||||
col = mix(col.rgb, textureCube(environmentMap, env_vec).rgb,
|
||||
col = mix(col.rgb, samplesRGB(textureCube(environmentMap, env_vec).rgb) * 2.2,
|
||||
max(spec.a-diffuse.a*2.0, 0.0));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
VARYING vec3 vary_SunlitColor;
|
||||
VARYING vec3 vary_AdditiveColor;
|
||||
VARYING vec3 vary_AtmosAttenuation;
|
||||
|
||||
uniform float global_gamma;
|
||||
vec3 getSunlitColor()
|
||||
{
|
||||
return vec3(0,0,0);
|
||||
|
|
@ -38,7 +38,7 @@ vec3 getAmblitColor()
|
|||
}
|
||||
vec3 getAdditiveColor()
|
||||
{
|
||||
return vary_AdditiveColor;
|
||||
return pow(vary_AdditiveColor, vec3(global_gamma)) * global_gamma;
|
||||
}
|
||||
vec3 getAtmosAttenuation()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -33,18 +33,20 @@ vec3 sunlit_color;
|
|||
vec3 amblit_color;
|
||||
vec3 position_eye;
|
||||
|
||||
uniform float global_gamma;
|
||||
|
||||
vec3 getSunlitColor()
|
||||
{
|
||||
return sunlit_color;
|
||||
return pow(sunlit_color, vec3(global_gamma)) * global_gamma;
|
||||
}
|
||||
vec3 getAmblitColor()
|
||||
{
|
||||
return amblit_color;
|
||||
return pow(amblit_color, vec3(global_gamma)) * global_gamma;
|
||||
}
|
||||
|
||||
vec3 getAdditiveColor()
|
||||
{
|
||||
return additive_color;
|
||||
return pow(additive_color, vec3(global_gamma)) * global_gamma;
|
||||
}
|
||||
vec3 getAtmosAttenuation()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -240,6 +240,12 @@ void LLDrawPoolAlpha::render(S32 pass)
|
|||
{
|
||||
fullbright_shader->bind();
|
||||
fullbright_shader->setMinimumAlpha(0.33f);
|
||||
if (LLPipeline::sRenderingHUDs || !LLPipeline::sRenderDeferred)
|
||||
{
|
||||
fullbright_shader->uniform1f(LLShaderMgr::TEXTURE_GAMMA, 1.0f);
|
||||
} else {
|
||||
fullbright_shader->uniform1f(LLShaderMgr::TEXTURE_GAMMA, 2.2f);
|
||||
}
|
||||
}
|
||||
pushBatches(LLRenderPass::PASS_FULLBRIGHT_ALPHA_MASK, getVertexDataMask() | LLVertexBuffer::MAP_TEXTURE_INDEX, TRUE, TRUE);
|
||||
//LLGLSLShader::bindNoShader();
|
||||
|
|
@ -423,6 +429,17 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask)
|
|||
if (use_shaders)
|
||||
{
|
||||
target_shader = fullbright_shader;
|
||||
if (LLPipeline::sRenderDeferred)
|
||||
{
|
||||
if (params.mFace->getViewerObject()->isHUDAttachment())
|
||||
{
|
||||
target_shader->uniform1f(LLShaderMgr::TEXTURE_GAMMA, 1.0);
|
||||
} else {
|
||||
target_shader->uniform1f(LLShaderMgr::TEXTURE_GAMMA, 2.2);
|
||||
}
|
||||
} else {
|
||||
target_shader->uniform1f(LLShaderMgr::TEXTURE_GAMMA, 1.0);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1051,6 +1051,7 @@ void render_hud_attachments()
|
|||
|
||||
if (LLPipeline::sShowHUDAttachments && !gDisconnected && setup_hud_matrices())
|
||||
{
|
||||
LLPipeline::sRenderingHUDs = TRUE;
|
||||
LLCamera hud_cam = *LLViewerCamera::getInstance();
|
||||
LLVector3 origin = hud_cam.getOrigin();
|
||||
hud_cam.setOrigin(-1.f,0,0);
|
||||
|
|
@ -1124,6 +1125,7 @@ void render_hud_attachments()
|
|||
gPipeline.toggleRenderDebugFeature((void*) LLPipeline::RENDER_DEBUG_FEATURE_UI);
|
||||
}
|
||||
LLPipeline::sUseOcclusion = use_occlusion;
|
||||
LLPipeline::sRenderingHUDs = FALSE;
|
||||
}
|
||||
gGL.matrixMode(LLRender::MM_PROJECTION);
|
||||
gGL.popMatrix();
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
#include "llglslshader.h"
|
||||
#include "lluictrlfactory.h"
|
||||
#include "llsliderctrl.h"
|
||||
#include "pipeline.h"
|
||||
|
||||
#include <llgl.h>
|
||||
|
||||
|
|
@ -127,6 +128,13 @@ void LLWLParamSet::update(LLGLSLShader * shader) const
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (LLPipeline::sRenderDeferred && !LLPipeline::sReflectionRender)
|
||||
{
|
||||
shader->uniform1f(LLShaderMgr::GLOBAL_GAMMA, 2.2);
|
||||
} else {
|
||||
shader->uniform1f(LLShaderMgr::GLOBAL_GAMMA, 1.0);
|
||||
}
|
||||
}
|
||||
|
||||
void LLWLParamSet::set(const std::string& paramName, float x)
|
||||
|
|
|
|||
|
|
@ -377,6 +377,7 @@ BOOL LLPipeline::sRenderDeferred = FALSE;
|
|||
BOOL LLPipeline::sMemAllocationThrottled = FALSE;
|
||||
S32 LLPipeline::sVisibleLightCount = 0;
|
||||
F32 LLPipeline::sMinRenderSize = 0.f;
|
||||
BOOL LLPipeline::sRenderingHUDs;
|
||||
|
||||
|
||||
static LLCullResult* sCull = NULL;
|
||||
|
|
@ -396,7 +397,7 @@ void validate_framebuffer_object();
|
|||
|
||||
bool addDeferredAttachments(LLRenderTarget& target)
|
||||
{
|
||||
return target.addColorAttachment(GL_RGBA) && //specular
|
||||
return target.addColorAttachment(GL_SRGB_ALPHA) && //specular
|
||||
target.addColorAttachment(GL_RGB10_A2); //normal+z
|
||||
}
|
||||
|
||||
|
|
@ -898,11 +899,11 @@ bool LLPipeline::allocateScreenBuffer(U32 resX, U32 resY, U32 samples)
|
|||
BOOL ssao = RenderDeferredSSAO;
|
||||
|
||||
//allocate deferred rendering color buffers
|
||||
if (!mDeferredScreen.allocate(resX, resY, GL_RGBA, TRUE, TRUE, LLTexUnit::TT_RECT_TEXTURE, FALSE, samples)) return false;
|
||||
if (!mDeferredScreen.allocate(resX, resY, GL_SRGB8_ALPHA8, TRUE, TRUE, LLTexUnit::TT_RECT_TEXTURE, FALSE, samples)) return false;
|
||||
if (!mDeferredDepth.allocate(resX, resY, 0, TRUE, FALSE, LLTexUnit::TT_RECT_TEXTURE, FALSE, samples)) return false;
|
||||
if (!addDeferredAttachments(mDeferredScreen)) return false;
|
||||
|
||||
if (!mScreen.allocate(resX, resY, GL_RGBA, FALSE, FALSE, LLTexUnit::TT_RECT_TEXTURE, FALSE, samples)) return false;
|
||||
if (!mScreen.allocate(resX, resY, GL_RGBA12, FALSE, FALSE, LLTexUnit::TT_RECT_TEXTURE, FALSE, samples)) return false;
|
||||
if (samples > 0)
|
||||
{
|
||||
if (!mFXAABuffer.allocate(resX, resY, GL_RGBA, FALSE, FALSE, LLTexUnit::TT_TEXTURE, FALSE, samples)) return false;
|
||||
|
|
@ -3602,8 +3603,8 @@ void LLPipeline::postSort(LLCamera& camera)
|
|||
for (LLCullResult::sg_iterator i = sCull->beginVisibleGroups(); i != sCull->endVisibleGroups(); ++i)
|
||||
{
|
||||
LLSpatialGroup* group = *i;
|
||||
if (sUseOcclusion &&
|
||||
group->isOcclusionState(LLSpatialGroup::OCCLUDED) ||
|
||||
if ((sUseOcclusion &&
|
||||
group->isOcclusionState(LLSpatialGroup::OCCLUDED)) ||
|
||||
(RenderAutoHideSurfaceAreaLimit > 0.f &&
|
||||
group->mSurfaceArea > RenderAutoHideSurfaceAreaLimit*llmax(group->mObjectBoxSize, 10.f)))
|
||||
{
|
||||
|
|
@ -5034,8 +5035,8 @@ void LLPipeline::renderDebug()
|
|||
LLSpatialPartition* part = region->getSpatialPartition(i);
|
||||
if (part)
|
||||
{
|
||||
if ( hud_only && (part->mDrawableType == RENDER_TYPE_HUD || part->mDrawableType == RENDER_TYPE_HUD_PARTICLES) ||
|
||||
!hud_only && hasRenderType(part->mDrawableType) )
|
||||
if ( (hud_only && (part->mDrawableType == RENDER_TYPE_HUD || part->mDrawableType == RENDER_TYPE_HUD_PARTICLES)) ||
|
||||
(!hud_only && hasRenderType(part->mDrawableType)) )
|
||||
{
|
||||
part->renderDebug();
|
||||
}
|
||||
|
|
@ -7382,6 +7383,13 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield)
|
|||
mScreen.bindTexture(0, channel);
|
||||
gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_BILINEAR);
|
||||
}
|
||||
|
||||
if (!LLViewerCamera::getInstance()->cameraUnderWater())
|
||||
{
|
||||
shader->uniform1f(LLShaderMgr::GLOBAL_GAMMA, 2.2);
|
||||
} else {
|
||||
shader->uniform1f(LLShaderMgr::GLOBAL_GAMMA, 1.0);
|
||||
}
|
||||
|
||||
shader->uniform1f(LLShaderMgr::DOF_MAX_COF, CameraMaxCoF);
|
||||
shader->uniform1f(LLShaderMgr::DOF_RES_SCALE, CameraDoFResScale);
|
||||
|
|
@ -7423,6 +7431,13 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield)
|
|||
{
|
||||
mScreen.bindTexture(0, channel);
|
||||
}
|
||||
|
||||
if (!LLViewerCamera::getInstance()->cameraUnderWater())
|
||||
{
|
||||
shader->uniform1f(LLShaderMgr::GLOBAL_GAMMA, 2.2);
|
||||
} else {
|
||||
shader->uniform1f(LLShaderMgr::GLOBAL_GAMMA, 1.0);
|
||||
}
|
||||
|
||||
gGL.begin(LLRender::TRIANGLE_STRIP);
|
||||
gGL.texCoord2f(tc1.mV[0], tc1.mV[1]);
|
||||
|
|
|
|||
|
|
@ -554,7 +554,8 @@ public:
|
|||
static BOOL sRenderDeferred;
|
||||
static BOOL sMemAllocationThrottled;
|
||||
static S32 sVisibleLightCount;
|
||||
static F32 sMinRenderSize;
|
||||
static F32 sMinRenderSize;
|
||||
static BOOL sRenderingHUDs;
|
||||
|
||||
//screen texture
|
||||
U32 mScreenWidth;
|
||||
|
|
|
|||
Loading…
Reference in New Issue