Merge 3.5.8-release
commit
30f835809b
1
.hgtags
1
.hgtags
|
|
@ -466,3 +466,4 @@ fe4f7c5e9fd27e09d03deb1cc9ab3e5093f6309e 3.6.3-release
|
|||
91ed595b716f14f07409595b734fda891a59379e 3.6.4-release
|
||||
bf6d453046011a11de2643fac610cc5258650f82 3.6.5-release
|
||||
ae457ece77001767ae9613148c495e7b98cc0f4a 3.6.7-release
|
||||
d40c66e410741de7e90b1ed6dac28dd8a2d7e1f6 3.6.8-release
|
||||
|
|
|
|||
|
|
@ -1265,10 +1265,10 @@
|
|||
<map>
|
||||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>fd34e3e818ad7dd26add1f05e6069c11</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-libxml/rev/282218/arch/Linux/installer/libxml2-2.7.8-linux-20131009.tar.bz2</string>
|
||||
<key>hash</key>
|
||||
<string>fd34e3e818ad7dd26add1f05e6069c11</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-libxml/rev/282218/arch/Linux/installer/libxml2-2.7.8-linux-20131009.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ if (STANDALONE)
|
|||
pkg_check_modules(GSTREAMER010_PLUGINS_BASE REQUIRED gstreamer-plugins-base-0.10)
|
||||
elseif (LINUX)
|
||||
use_prebuilt_binary(gstreamer)
|
||||
# possible libxml should have its own .cmake file instead
|
||||
# possible libxml2 should have its own .cmake file instead
|
||||
use_prebuilt_binary(libxml2)
|
||||
set(GSTREAMER010_FOUND ON FORCE BOOL)
|
||||
set(GSTREAMER010_PLUGINS_BASE_FOUND ON FORCE BOOL)
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ set(LLPRIMITIVE_INCLUDE_DIRS
|
|||
${LIBS_OPEN_DIR}/llprimitive
|
||||
)
|
||||
if (WINDOWS)
|
||||
set(LLPRIMITIVE_LIBRARIES
|
||||
set(LLPRIMITIVE_LIBRARIES
|
||||
debug llprimitive
|
||||
optimized llprimitive
|
||||
debug libcollada14dom22-d
|
||||
|
|
@ -29,7 +29,7 @@ elseif (LINUX)
|
|||
pcre
|
||||
)
|
||||
else (WINDOWS)
|
||||
set(LLPRIMITIVE_LIBRARIES
|
||||
set(LLPRIMITIVE_LIBRARIES
|
||||
llprimitive
|
||||
collada14dom
|
||||
minizip
|
||||
|
|
|
|||
|
|
@ -1123,7 +1123,10 @@ BOOL LLTexLayer::render(S32 x, S32 y, S32 width, S32 height)
|
|||
// *TODO: Is this correct?
|
||||
//gPipeline.disableLights();
|
||||
stop_glerror();
|
||||
glDisable(GL_LIGHTING);
|
||||
if (!LLGLSLShader::sNoFixedFunction)
|
||||
{
|
||||
glDisable(GL_LIGHTING);
|
||||
}
|
||||
stop_glerror();
|
||||
|
||||
bool use_shaders = LLGLSLShader::sNoFixedFunction;
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ void LLCubeMap::initGL()
|
|||
{
|
||||
U32 texname = 0;
|
||||
|
||||
LLImageGL::generateTextures(LLTexUnit::TT_CUBE_MAP, GL_RGB8, 1, &texname);
|
||||
LLImageGL::generateTextures(1, &texname);
|
||||
|
||||
for (int i = 0; i < 6; i++)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -54,8 +54,6 @@ S32 LLImageGL::sGlobalTextureMemoryInBytes = 0;
|
|||
S32 LLImageGL::sBoundTextureMemoryInBytes = 0;
|
||||
S32 LLImageGL::sCurBoundTextureMemory = 0;
|
||||
S32 LLImageGL::sCount = 0;
|
||||
LLImageGL::dead_texturelist_t LLImageGL::sDeadTextureList[LLTexUnit::TT_NONE];
|
||||
U32 LLImageGL::sCurTexName = 1;
|
||||
|
||||
BOOL LLImageGL::sGlobalUseAnisotropic = FALSE;
|
||||
F32 LLImageGL::sLastFrameTime = 0.f;
|
||||
|
|
@ -716,7 +714,12 @@ void LLImageGL::setImage(const U8* data_in, BOOL data_hasmips)
|
|||
mMipLevels = wpo2(llmax(w, h));
|
||||
|
||||
//use legacy mipmap generation mode (note: making this condional can cause rendering issues)
|
||||
glTexParameteri(mTarget, GL_GENERATE_MIPMAP, GL_TRUE);
|
||||
// -- but making it not conditional triggers deprecation warnings when core profile is enabled
|
||||
// (some rendering issues while core profile is enabled are acceptable at this point in time)
|
||||
if (!LLRender::sGLCoreProfile)
|
||||
{
|
||||
glTexParameteri(mTarget, GL_GENERATE_MIPMAP, GL_TRUE);
|
||||
}
|
||||
|
||||
LLImageGL::setManualImage(mTarget, 0, mFormatInternal,
|
||||
w, h,
|
||||
|
|
@ -1084,95 +1087,19 @@ BOOL LLImageGL::setSubImageFromFrameBuffer(S32 fb_x, S32 fb_y, S32 x_pos, S32 y_
|
|||
|
||||
// static
|
||||
static LLFastTimer::DeclareTimer FTM_GENERATE_TEXTURES("generate textures");
|
||||
void LLImageGL::generateTextures(LLTexUnit::eTextureType type, U32 format, S32 numTextures, U32 *textures)
|
||||
void LLImageGL::generateTextures(S32 numTextures, U32 *textures)
|
||||
{
|
||||
LLFastTimer t(FTM_GENERATE_TEXTURES);
|
||||
bool empty = true;
|
||||
|
||||
if (LLRender::sGLCoreProfile)
|
||||
{
|
||||
switch (format)
|
||||
{
|
||||
case GL_LUMINANCE8: format = GL_RGB8; break;
|
||||
case GL_LUMINANCE8_ALPHA8:
|
||||
case GL_ALPHA8: format = GL_RGBA8; break;
|
||||
}
|
||||
}
|
||||
|
||||
dead_texturelist_t::iterator iter = sDeadTextureList[type].find(format);
|
||||
|
||||
if (iter != sDeadTextureList[type].end())
|
||||
{
|
||||
empty = iter->second.empty();
|
||||
}
|
||||
|
||||
for (S32 i = 0; i < numTextures; ++i)
|
||||
{
|
||||
if (!empty)
|
||||
{
|
||||
textures[i] = iter->second.front();
|
||||
iter->second.pop_front();
|
||||
empty = iter->second.empty();
|
||||
}
|
||||
else
|
||||
{
|
||||
textures[i] = sCurTexName++;
|
||||
}
|
||||
}
|
||||
glGenTextures(numTextures, textures);
|
||||
}
|
||||
|
||||
// static
|
||||
void LLImageGL::deleteTextures(LLTexUnit::eTextureType type, U32 format, S32 mip_levels, S32 numTextures, U32 *textures, bool immediate)
|
||||
void LLImageGL::deleteTextures(S32 numTextures, U32 *textures)
|
||||
{
|
||||
if (gGLManager.mInited)
|
||||
{
|
||||
switch (format)
|
||||
{
|
||||
case 0:
|
||||
|
||||
// We get ARB errors in debug when attempting to use glTexImage2D with these deprecated pix formats
|
||||
//
|
||||
case GL_LUMINANCE8:
|
||||
case GL_INTENSITY8:
|
||||
case GL_ALPHA8:
|
||||
glDeleteTextures(numTextures, textures);
|
||||
break;
|
||||
|
||||
default:
|
||||
{
|
||||
if (type == LLTexUnit::TT_CUBE_MAP || mip_levels == -1)
|
||||
{ //unknown internal format or unknown number of mip levels, not safe to reuse
|
||||
glDeleteTextures(numTextures, textures);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (S32 i = 0; i < numTextures; ++i)
|
||||
{ //remove texture from VRAM by setting its size to zero
|
||||
|
||||
for (S32 j = 0; j <= mip_levels; j++)
|
||||
{
|
||||
gGL.getTexUnit(0)->bindManual(type, textures[i]);
|
||||
U32 internal_type = LLTexUnit::getInternalType(type);
|
||||
glTexImage2D(internal_type, j, format, 0, 0, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
|
||||
stop_glerror();
|
||||
}
|
||||
|
||||
llassert(std::find(sDeadTextureList[type][format].begin(),
|
||||
sDeadTextureList[type][format].end(), textures[i]) ==
|
||||
sDeadTextureList[type][format].end());
|
||||
|
||||
sDeadTextureList[type][format].push_back(textures[i]);
|
||||
}
|
||||
}
|
||||
glDeleteTextures(numTextures, textures);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*if (immediate)
|
||||
{
|
||||
LLImageGL::deleteDeadTextures();
|
||||
}*/
|
||||
}
|
||||
|
||||
// static
|
||||
|
|
@ -1300,11 +1227,11 @@ BOOL LLImageGL::createGLTexture()
|
|||
|
||||
if(mTexName)
|
||||
{
|
||||
LLImageGL::deleteTextures(mBindTarget, mFormatInternal, mMipLevels, 1, (reinterpret_cast<GLuint*>(&mTexName))) ;
|
||||
LLImageGL::deleteTextures(1, (reinterpret_cast<GLuint*>(&mTexName))) ;
|
||||
}
|
||||
|
||||
|
||||
LLImageGL::generateTextures(mBindTarget, mFormatInternal, 1, &mTexName);
|
||||
LLImageGL::generateTextures(1, &mTexName);
|
||||
stop_glerror();
|
||||
if (!mTexName)
|
||||
{
|
||||
|
|
@ -1419,7 +1346,7 @@ BOOL LLImageGL::createGLTexture(S32 discard_level, const U8* data_in, BOOL data_
|
|||
}
|
||||
else
|
||||
{
|
||||
LLImageGL::generateTextures(mBindTarget, mFormatInternal, 1, &mTexName);
|
||||
LLImageGL::generateTextures(1, &mTexName);
|
||||
stop_glerror();
|
||||
{
|
||||
llverify(gGL.getTexUnit(0)->bind(this));
|
||||
|
|
@ -1464,7 +1391,7 @@ BOOL LLImageGL::createGLTexture(S32 discard_level, const U8* data_in, BOOL data_
|
|||
{
|
||||
sGlobalTextureMemoryInBytes -= mTextureMemory;
|
||||
|
||||
LLImageGL::deleteTextures(mBindTarget, mFormatInternal, mMipLevels, 1, &old_name);
|
||||
LLImageGL::deleteTextures(1, &old_name);
|
||||
|
||||
stop_glerror();
|
||||
}
|
||||
|
|
@ -1593,30 +1520,6 @@ void LLImageGL::deleteDeadTextures()
|
|||
{
|
||||
bool reset = false;
|
||||
|
||||
/*while (!sDeadTextureList.empty())
|
||||
{
|
||||
GLuint tex = sDeadTextureList.front();
|
||||
sDeadTextureList.pop_front();
|
||||
for (int i = 0; i < gGLManager.mNumTextureImageUnits; i++)
|
||||
{
|
||||
LLTexUnit* tex_unit = gGL.getTexUnit(i);
|
||||
|
||||
if (tex_unit && tex_unit->getCurrTexture() == tex)
|
||||
{
|
||||
tex_unit->unbind(tex_unit->getCurrType());
|
||||
stop_glerror();
|
||||
|
||||
if (i > 0)
|
||||
{
|
||||
reset = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
glDeleteTextures(1, &tex);
|
||||
stop_glerror();
|
||||
}*/
|
||||
|
||||
if (reset)
|
||||
{
|
||||
gGL.getTexUnit(0)->activate();
|
||||
|
|
@ -1633,7 +1536,7 @@ void LLImageGL::destroyGLTexture()
|
|||
mTextureMemory = 0;
|
||||
}
|
||||
|
||||
LLImageGL::deleteTextures(mBindTarget, mFormatInternal, mMipLevels, 1, &mTexName);
|
||||
LLImageGL::deleteTextures(1, &mTexName);
|
||||
mCurrentDiscardLevel = -1 ; //invalidate mCurrentDiscardLevel.
|
||||
mTexName = 0;
|
||||
mGLTextureCreated = FALSE ;
|
||||
|
|
|
|||
|
|
@ -45,16 +45,9 @@ class LLImageGL : public LLRefCount
|
|||
{
|
||||
friend class LLTexUnit;
|
||||
public:
|
||||
static U32 sCurTexName;
|
||||
|
||||
//previously used but now available texture names
|
||||
// sDeadTextureList[<usage>][<internal format>]
|
||||
typedef std::map<U32, std::list<U32> > dead_texturelist_t;
|
||||
static dead_texturelist_t sDeadTextureList[LLTexUnit::TT_NONE];
|
||||
|
||||
// These 2 functions replace glGenTextures() and glDeleteTextures()
|
||||
static void generateTextures(LLTexUnit::eTextureType type, U32 format, S32 numTextures, U32 *textures);
|
||||
static void deleteTextures(LLTexUnit::eTextureType type, U32 format, S32 mip_levels, S32 numTextures, U32 *textures, bool immediate = false);
|
||||
static void generateTextures(S32 numTextures, U32 *textures);
|
||||
static void deleteTextures(S32 numTextures, U32 *textures);
|
||||
static void deleteDeadTextures();
|
||||
|
||||
// Size calculation
|
||||
|
|
|
|||
|
|
@ -194,7 +194,7 @@ bool LLRenderTarget::addColorAttachment(U32 color_fmt)
|
|||
}
|
||||
|
||||
U32 tex;
|
||||
LLImageGL::generateTextures(mUsage, color_fmt, 1, &tex);
|
||||
LLImageGL::generateTextures(1, &tex);
|
||||
gGL.getTexUnit(0)->bindManual(mUsage, tex);
|
||||
|
||||
stop_glerror();
|
||||
|
|
@ -280,7 +280,7 @@ bool LLRenderTarget::allocateDepth()
|
|||
}
|
||||
else
|
||||
{
|
||||
LLImageGL::generateTextures(mUsage, GL_DEPTH_COMPONENT24, 1, &mDepth);
|
||||
LLImageGL::generateTextures(1, &mDepth);
|
||||
gGL.getTexUnit(0)->bindManual(mUsage, mDepth);
|
||||
|
||||
U32 internal_type = LLTexUnit::getInternalType(mUsage);
|
||||
|
|
@ -357,7 +357,7 @@ void LLRenderTarget::release()
|
|||
}
|
||||
else
|
||||
{
|
||||
LLImageGL::deleteTextures(mUsage, 0, 0, 1, &mDepth, true);
|
||||
LLImageGL::deleteTextures(1, &mDepth);
|
||||
stop_glerror();
|
||||
}
|
||||
mDepth = 0;
|
||||
|
|
@ -389,7 +389,7 @@ void LLRenderTarget::release()
|
|||
if (mTex.size() > 0)
|
||||
{
|
||||
sBytesAllocated -= mResX*mResY*4*mTex.size();
|
||||
LLImageGL::deleteTextures(mUsage, mInternalFormat[0], 0, mTex.size(), &mTex[0], true);
|
||||
LLImageGL::deleteTextures(mTex.size(), &mTex[0]);
|
||||
mTex.clear();
|
||||
mInternalFormat.clear();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -91,7 +91,6 @@ LLVBOPool LLVertexBuffer::sDynamicIBOPool(GL_DYNAMIC_DRAW_ARB, GL_ELEMENT_ARRAY_
|
|||
|
||||
U32 LLVBOPool::sBytesPooled = 0;
|
||||
U32 LLVBOPool::sIndexBytesPooled = 0;
|
||||
U32 LLVBOPool::sCurGLName = 1;
|
||||
|
||||
std::list<U32> LLVertexBuffer::sAvailableVAOName;
|
||||
U32 LLVertexBuffer::sCurVAOName = 1;
|
||||
|
|
@ -125,16 +124,8 @@ U32 LLVBOPool::genBuffer()
|
|||
{
|
||||
U32 ret = 0;
|
||||
|
||||
if (mGLNamePool.empty())
|
||||
{
|
||||
ret = sCurGLName++;
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = mGLNamePool.front();
|
||||
mGLNamePool.pop_front();
|
||||
}
|
||||
|
||||
glGenBuffersARB(1, &ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
@ -146,12 +137,9 @@ void LLVBOPool::deleteBuffer(U32 name)
|
|||
|
||||
glBindBufferARB(mType, name);
|
||||
glBufferDataARB(mType, 0, NULL, mUsage);
|
||||
|
||||
llassert(std::find(mGLNamePool.begin(), mGLNamePool.end(), name) == mGLNamePool.end());
|
||||
|
||||
mGLNamePool.push_back(name);
|
||||
|
||||
glBindBufferARB(mType, 0);
|
||||
|
||||
glDeleteBuffersARB(1, &name);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1333,7 +1321,7 @@ void LLVertexBuffer::allocateBuffer(S32 nverts, S32 nindices, bool create)
|
|||
//actually allocate space for the vertex buffer if using VBO mapping
|
||||
flush();
|
||||
|
||||
if (gGLManager.mHasVertexArrayObject && useVBOs() && (LLRender::sGLCoreProfile || sUseVAO))
|
||||
if (gGLManager.mHasVertexArrayObject && useVBOs() && sUseVAO)
|
||||
{
|
||||
#if GL_ARB_vertex_array_object
|
||||
mGLArray = getVAOName();
|
||||
|
|
|
|||
|
|
@ -57,8 +57,6 @@ public:
|
|||
static U32 sBytesPooled;
|
||||
static U32 sIndexBytesPooled;
|
||||
|
||||
static U32 sCurGLName;
|
||||
|
||||
LLVBOPool(U32 vboUsage, U32 vboType);
|
||||
|
||||
const U32 mUsage;
|
||||
|
|
@ -86,8 +84,6 @@ public:
|
|||
volatile U8* mClientData;
|
||||
};
|
||||
|
||||
std::list<U32> mGLNamePool;
|
||||
|
||||
typedef std::list<Record> record_list_t;
|
||||
std::vector<record_list_t> mFreeList;
|
||||
std::vector<U32> mMissCount;
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
3.6.8
|
||||
3.6.9
|
||||
|
|
|
|||
|
|
@ -697,7 +697,7 @@ void LLDrawPoolAvatar::beginDeferredImpostor()
|
|||
specular_channel = sVertexProgram->enableTexture(LLViewerShaderMgr::SPECULAR_MAP);
|
||||
normal_channel = sVertexProgram->enableTexture(LLViewerShaderMgr::DEFERRED_NORMAL);
|
||||
sDiffuseChannel = sVertexProgram->enableTexture(LLViewerShaderMgr::DIFFUSE_MAP);
|
||||
gPipeline.bindDeferredShader(*sVertexProgram);
|
||||
sVertexProgram->bind();
|
||||
sVertexProgram->setMinimumAlpha(0.01f);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -89,28 +89,17 @@ class LLOcclusionQueryPool : public LLGLNamePool
|
|||
public:
|
||||
LLOcclusionQueryPool()
|
||||
{
|
||||
mCurQuery = 1;
|
||||
|
||||
}
|
||||
|
||||
protected:
|
||||
|
||||
std::list<GLuint> mAvailableName;
|
||||
GLuint mCurQuery;
|
||||
|
||||
virtual GLuint allocateName()
|
||||
{
|
||||
GLuint ret = 0;
|
||||
|
||||
if (!mAvailableName.empty())
|
||||
{
|
||||
ret = mAvailableName.front();
|
||||
mAvailableName.pop_front();
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = mCurQuery++;
|
||||
}
|
||||
|
||||
glGenQueriesARB(1, &ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
@ -119,8 +108,7 @@ protected:
|
|||
#if LL_TRACK_PENDING_OCCLUSION_QUERIES
|
||||
LLSpatialGroup::sPendingQueries.erase(name);
|
||||
#endif
|
||||
llassert(std::find(mAvailableName.begin(), mAvailableName.end(), name) == mAvailableName.end());
|
||||
mAvailableName.push_back(name);
|
||||
glDeleteQueriesARB(1, &name);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -934,7 +934,7 @@ void LLVOAvatar::deleteLayerSetCaches(bool clearAll)
|
|||
}
|
||||
if (mBakedTextureDatas[i].mMaskTexName)
|
||||
{
|
||||
LLImageGL::deleteTextures(LLTexUnit::TT_TEXTURE, 0, -1, 1, (GLuint*)&(mBakedTextureDatas[i].mMaskTexName));
|
||||
LLImageGL::deleteTextures(1, (GLuint*)&(mBakedTextureDatas[i].mMaskTexName));
|
||||
mBakedTextureDatas[i].mMaskTexName = 0 ;
|
||||
}
|
||||
}
|
||||
|
|
@ -7272,7 +7272,7 @@ void LLVOAvatar::onBakedTextureMasksLoaded( BOOL success, LLViewerFetchedTexture
|
|||
}
|
||||
|
||||
U32 gl_name;
|
||||
LLImageGL::generateTextures(LLTexUnit::TT_TEXTURE, GL_ALPHA8, 1, &gl_name );
|
||||
LLImageGL::generateTextures(1, &gl_name );
|
||||
stop_glerror();
|
||||
|
||||
gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, gl_name);
|
||||
|
|
@ -7309,7 +7309,7 @@ void LLVOAvatar::onBakedTextureMasksLoaded( BOOL success, LLViewerFetchedTexture
|
|||
maskData->mLastDiscardLevel = discard_level;
|
||||
if (self->mBakedTextureDatas[baked_index].mMaskTexName)
|
||||
{
|
||||
LLImageGL::deleteTextures(LLTexUnit::TT_TEXTURE, 0, -1, 1, &(self->mBakedTextureDatas[baked_index].mMaskTexName));
|
||||
LLImageGL::deleteTextures(1, &(self->mBakedTextureDatas[baked_index].mMaskTexName));
|
||||
}
|
||||
self->mBakedTextureDatas[baked_index].mMaskTexName = gl_name;
|
||||
found_texture_id = true;
|
||||
|
|
|
|||
|
|
@ -3066,7 +3066,7 @@ void LLVOAvatarSelf::deleteScratchTextures()
|
|||
namep;
|
||||
namep = sScratchTexNames.getNextData() )
|
||||
{
|
||||
LLImageGL::deleteTextures(LLTexUnit::TT_TEXTURE, 0, -1, 1, (U32 *)namep );
|
||||
LLImageGL::deleteTextures(1, (U32 *)namep );
|
||||
stop_glerror();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1198,13 +1198,13 @@ void LLPipeline::releaseGLBuffers()
|
|||
|
||||
if (mNoiseMap)
|
||||
{
|
||||
LLImageGL::deleteTextures(LLTexUnit::TT_TEXTURE, GL_RGB16F_ARB, 0, 1, &mNoiseMap);
|
||||
LLImageGL::deleteTextures(1, &mNoiseMap);
|
||||
mNoiseMap = 0;
|
||||
}
|
||||
|
||||
if (mTrueNoiseMap)
|
||||
{
|
||||
LLImageGL::deleteTextures(LLTexUnit::TT_TEXTURE, GL_RGB16F_ARB, 0, 1, &mTrueNoiseMap);
|
||||
LLImageGL::deleteTextures(1, &mTrueNoiseMap);
|
||||
mTrueNoiseMap = 0;
|
||||
}
|
||||
|
||||
|
|
@ -1229,7 +1229,7 @@ void LLPipeline::releaseLUTBuffers()
|
|||
{
|
||||
if (mLightFunc)
|
||||
{
|
||||
LLImageGL::deleteTextures(LLTexUnit::TT_TEXTURE, GL_R16F, 0, 1, &mLightFunc);
|
||||
LLImageGL::deleteTextures(1, &mLightFunc);
|
||||
mLightFunc = 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -1323,7 +1323,7 @@ void LLPipeline::createGLBuffers()
|
|||
noise[i].mV[2] = ll_frand()*scaler+1.f-scaler/2.f;
|
||||
}
|
||||
|
||||
LLImageGL::generateTextures(LLTexUnit::TT_TEXTURE, GL_RGB16F_ARB, 1, &mNoiseMap);
|
||||
LLImageGL::generateTextures(1, &mNoiseMap);
|
||||
|
||||
gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mNoiseMap);
|
||||
LLImageGL::setManualImage(LLTexUnit::getInternalType(LLTexUnit::TT_TEXTURE), 0, GL_RGB16F_ARB, noiseRes, noiseRes, GL_RGB, GL_FLOAT, noise, false);
|
||||
|
|
@ -1339,7 +1339,7 @@ void LLPipeline::createGLBuffers()
|
|||
noise[i] = ll_frand()*2.0-1.0;
|
||||
}
|
||||
|
||||
LLImageGL::generateTextures(LLTexUnit::TT_TEXTURE, GL_RGB16F_ARB, 1, &mTrueNoiseMap);
|
||||
LLImageGL::generateTextures(1, &mTrueNoiseMap);
|
||||
gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mTrueNoiseMap);
|
||||
LLImageGL::setManualImage(LLTexUnit::getInternalType(LLTexUnit::TT_TEXTURE), 0, GL_RGB16F_ARB, noiseRes, noiseRes, GL_RGB,GL_FLOAT, noise, false);
|
||||
gGL.getTexUnit(0)->setTextureFilteringOption(LLTexUnit::TFO_POINT);
|
||||
|
|
@ -1452,7 +1452,7 @@ void LLPipeline::createLUTBuffers()
|
|||
//
|
||||
pix_format = GL_R32F;
|
||||
#endif
|
||||
LLImageGL::generateTextures(LLTexUnit::TT_TEXTURE, pix_format, 1, &mLightFunc);
|
||||
LLImageGL::generateTextures(1, &mLightFunc);
|
||||
gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mLightFunc);
|
||||
LLImageGL::setManualImage(LLTexUnit::getInternalType(LLTexUnit::TT_TEXTURE), 0, pix_format, lightResX, lightResY, GL_RED, GL_FLOAT, ls, false);
|
||||
//LLImageGL::setManualImage(LLTexUnit::getInternalType(LLTexUnit::TT_TEXTURE), 0, GL_UNSIGNED_BYTE, lightResX, lightResY, GL_RED, GL_UNSIGNED_BYTE, ls, false);
|
||||
|
|
|
|||
|
|
@ -915,7 +915,7 @@
|
|||
<color
|
||||
name="ResizebarBody"
|
||||
value="0.208 0.208 0.208 1"/>
|
||||
|
||||
<color
|
||||
name="SyntaxLslConstantKey"
|
||||
value=".1 .3 .5 1.0" />
|
||||
<color
|
||||
|
|
|
|||
Loading…
Reference in New Issue