diff options
| -rw-r--r-- | indra/newview/app_settings/shaders/class1/objects/previewF.glsl | 41 | ||||
| -rw-r--r-- | indra/newview/app_settings/shaders/class1/objects/previewV.glsl | 6 | ||||
| -rw-r--r-- | indra/newview/llfloaterimagepreview.cpp | 4 | ||||
| -rwxr-xr-x | indra/newview/llfloatermodelpreview.cpp | 12 | ||||
| -rw-r--r-- | indra/newview/llviewershadermgr.cpp | 6 | 
5 files changed, 57 insertions, 12 deletions
| diff --git a/indra/newview/app_settings/shaders/class1/objects/previewF.glsl b/indra/newview/app_settings/shaders/class1/objects/previewF.glsl new file mode 100644 index 0000000000..284da3d0ac --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/objects/previewF.glsl @@ -0,0 +1,41 @@ +/**  + * @file previewF.glsl + * + * $LicenseInfo:firstyear=2011&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2011, 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$ + */ + +#ifdef DEFINE_GL_FRAGCOLOR +out vec4 frag_color; +#else +#define frag_color gl_FragColor +#endif + +uniform sampler2D diffuseMap; + +VARYING vec4 vertex_color; +VARYING vec2 vary_texcoord0; + +void main() +{ +	vec4 color = texture2D(diffuseMap,vary_texcoord0.xy) * vertex_color; +	frag_color = color; +} diff --git a/indra/newview/app_settings/shaders/class1/objects/previewV.glsl b/indra/newview/app_settings/shaders/class1/objects/previewV.glsl index 5dcfa87066..a4cc6a9c99 100644 --- a/indra/newview/app_settings/shaders/class1/objects/previewV.glsl +++ b/indra/newview/app_settings/shaders/class1/objects/previewV.glsl @@ -32,6 +32,8 @@ ATTRIBUTE vec3 position;  ATTRIBUTE vec3 normal;  ATTRIBUTE vec2 texcoord0; +uniform vec4 color; +  VARYING vec4 vertex_color;  VARYING vec2 vary_texcoord0; @@ -50,8 +52,8 @@ void main()  	calcAtmospherics(pos.xyz); -	vec4 color = calcLighting(pos.xyz, norm, vec4(1,1,1,1), vec4(0.)); -	vertex_color = color; +	vec4 col = calcLighting(pos.xyz, norm, color, vec4(0.)); +	vertex_color = col;  } diff --git a/indra/newview/llfloaterimagepreview.cpp b/indra/newview/llfloaterimagepreview.cpp index 6b2492d927..2575f6f817 100644 --- a/indra/newview/llfloaterimagepreview.cpp +++ b/indra/newview/llfloaterimagepreview.cpp @@ -901,11 +901,13 @@ BOOL LLImagePreviewSculpted::render()  	{  		gObjectPreviewProgram.bind();  	} +	gPipeline.enableLightsPreview(); +  	gGL.pushMatrix();  	const F32 SCALE = 1.25f;  	gGL.scalef(SCALE, SCALE, SCALE);  	const F32 BRIGHTNESS = 0.9f; -	gGL.color3f(BRIGHTNESS, BRIGHTNESS, BRIGHTNESS); +	gGL.diffuseColor3f(BRIGHTNESS, BRIGHTNESS, BRIGHTNESS);  	mVertexBuffer->setBuffer(LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_NORMAL | LLVertexBuffer::MAP_TEXCOORD0);  	mVertexBuffer->draw(LLRender::TRIANGLES, num_indices, 0); diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp index 449173f9b4..e501fcaa90 100755 --- a/indra/newview/llfloatermodelpreview.cpp +++ b/indra/newview/llfloatermodelpreview.cpp @@ -5087,6 +5087,11 @@ BOOL LLModelPreview::render()  		refresh();  	} +	if (use_shaders) +	{ +		gObjectPreviewProgram.bind(); +	} +  	gGL.loadIdentity();  	gPipeline.enableLightsPreview(); @@ -5112,11 +5117,6 @@ BOOL LLModelPreview::render()  	const U32 type_mask = LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_NORMAL | LLVertexBuffer::MAP_TEXCOORD0; -	if (use_shaders) -	{ -		gObjectPreviewProgram.bind(); -	} -  	LLGLEnable normalize(GL_NORMALIZE);  	if (!mBaseModel.empty() && mVertexBuffer[5].empty()) @@ -5305,7 +5305,7 @@ BOOL LLModelPreview::render()  											hull_colors.push_back(LLColor4U(rand()%128+127, rand()%128+127, rand()%128+127, 128));  										} -										glColor4ubv(hull_colors[i].mV); +										gGL.diffuseColor4ubv(hull_colors[i].mV);  										LLVertexBuffer::drawArrays(LLRender::TRIANGLES, physics.mMesh[i].mPositions, physics.mMesh[i].mNormals);  										if (explode > 0.f) diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp index 4b0e0598f6..142cb2090d 100644 --- a/indra/newview/llviewershadermgr.cpp +++ b/indra/newview/llviewershadermgr.cpp @@ -2026,15 +2026,15 @@ BOOL LLViewerShaderMgr::loadShadersObject()  	{  		gObjectPreviewProgram.mName = "Simple Shader";  		gObjectPreviewProgram.mFeatures.calculatesLighting = true; -		gObjectPreviewProgram.mFeatures.calculatesAtmospherics = true; +		gObjectPreviewProgram.mFeatures.calculatesAtmospherics = false;  		gObjectPreviewProgram.mFeatures.hasGamma = true; -		gObjectPreviewProgram.mFeatures.hasAtmospherics = true; +		gObjectPreviewProgram.mFeatures.hasAtmospherics = false;  		gObjectPreviewProgram.mFeatures.hasLighting = true;  		gObjectPreviewProgram.mFeatures.mIndexedTextureChannels = 0;  		gObjectPreviewProgram.mFeatures.disableTextureIndex = true;  		gObjectPreviewProgram.mShaderFiles.clear();  		gObjectPreviewProgram.mShaderFiles.push_back(make_pair("objects/previewV.glsl", GL_VERTEX_SHADER_ARB)); -		gObjectPreviewProgram.mShaderFiles.push_back(make_pair("objects/simpleF.glsl", GL_FRAGMENT_SHADER_ARB)); +		gObjectPreviewProgram.mShaderFiles.push_back(make_pair("objects/previewF.glsl", GL_FRAGMENT_SHADER_ARB));  		gObjectPreviewProgram.mShaderLevel = mVertexShaderLevel[SHADER_OBJECT];  		success = gObjectPreviewProgram.createShader(NULL, NULL);  	} | 
