From 019c7566fb431a9bacfa6d1b778a3a7ec9f8fbf2 Mon Sep 17 00:00:00 2001
From: Graham Madarasz <graham@lindenlab.com>
Date: Thu, 7 Feb 2013 09:18:09 -0800
Subject: For MAINT-1291 Code Review: DaveP

---
 indra/llrender/llgl.cpp      |  2 +-
 indra/llrender/llimagegl.cpp | 57 +++++++++++++++++++++++++++++++-------------
 2 files changed, 42 insertions(+), 17 deletions(-)

(limited to 'indra/llrender')

diff --git a/indra/llrender/llgl.cpp b/indra/llrender/llgl.cpp
index 9e4857b6bc..09e451c62a 100644
--- a/indra/llrender/llgl.cpp
+++ b/indra/llrender/llgl.cpp
@@ -86,7 +86,7 @@ void APIENTRY gl_debug_callback(GLenum source,
 	}
 	else
 	{
-		llwarns << "----- GL WARNING -------" << llendl;
+		llwarns << "----- GL WARNING -------" << llendl;		
 	}
 	llwarns << "Type: " << std::hex << type << llendl;
 	llwarns << "ID: " << std::hex << id << llendl;
diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp
index a4d7872ec2..552dac518a 100644
--- a/indra/llrender/llimagegl.cpp
+++ b/indra/llrender/llimagegl.cpp
@@ -726,6 +726,12 @@ void LLImageGL::setImage(const U8* data_in, BOOL data_hasmips)
 						glPixelStorei(GL_UNPACK_SWAP_BYTES, 0);
 						stop_glerror();
 					}
+
+					if (LLRender::sGLCoreProfile)
+					{
+						glGenerateMipmap(mTarget);
+					}	
+					stop_glerror();
 				}
 			}
 			else
@@ -1084,27 +1090,46 @@ void LLImageGL::deleteTextures(LLTexUnit::eTextureType type, U32 format, S32 mip
 {
 	if (gGLManager.mInited)
 	{
-		if (format == 0 ||  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
+		switch (format)
 		{
-			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]);
+			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;
 
-					glTexImage2D(LLTexUnit::getInternalType(type), j, format, 0, 0, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
+			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());
+						llassert(std::find(sDeadTextureList[type][format].begin(),
+							sDeadTextureList[type][format].end(), textures[i]) == 
+							sDeadTextureList[type][format].end());
 
-				sDeadTextureList[type][format].push_back(textures[i]);
-			}	
+						sDeadTextureList[type][format].push_back(textures[i]);
+					}	
+				}				
+			}
+			break;
 		}
 	}
 	
-- 
cgit v1.2.3


From bf6182daa8b4d7cea79310547f71d7a3155e17b0 Mon Sep 17 00:00:00 2001
From: Graham Madarasz <graham@lindenlab.com>
Date: Fri, 29 Mar 2013 07:50:08 -0700
Subject: Update Mac and Windows breakpad builds to latest

---
 indra/llrender/CMakeLists.txt        | 0
 indra/llrender/llcubemap.cpp         | 0
 indra/llrender/llcubemap.h           | 0
 indra/llrender/llfontbitmapcache.cpp | 0
 indra/llrender/llfontbitmapcache.h   | 0
 indra/llrender/llfontfreetype.cpp    | 0
 indra/llrender/llfontfreetype.h      | 0
 indra/llrender/llfontgl.cpp          | 0
 indra/llrender/llfontgl.h            | 0
 indra/llrender/llfontregistry.cpp    | 0
 indra/llrender/llfontregistry.h      | 0
 indra/llrender/llgl.cpp              | 0
 indra/llrender/llgl.h                | 0
 indra/llrender/llgldbg.cpp           | 0
 indra/llrender/llgldbg.h             | 0
 indra/llrender/llglheaders.h         | 0
 indra/llrender/llglslshader.cpp      | 0
 indra/llrender/llglslshader.h        | 0
 indra/llrender/llglstates.h          | 0
 indra/llrender/llgltypes.h           | 0
 indra/llrender/llimagegl.cpp         | 0
 indra/llrender/llimagegl.h           | 0
 indra/llrender/llpostprocess.cpp     | 0
 indra/llrender/llpostprocess.h       | 0
 indra/llrender/llrender.cpp          | 0
 indra/llrender/llrender.h            | 0
 indra/llrender/llrendernavprim.cpp   | 0
 indra/llrender/llrendernavprim.h     | 0
 indra/llrender/llrendersphere.cpp    | 0
 indra/llrender/llrendersphere.h      | 0
 indra/llrender/llrendertarget.cpp    | 0
 indra/llrender/llrendertarget.h      | 0
 indra/llrender/llshadermgr.cpp       | 0
 indra/llrender/llshadermgr.h         | 0
 indra/llrender/lltexture.cpp         | 0
 indra/llrender/lltexture.h           | 0
 indra/llrender/llvertexbuffer.cpp    | 0
 indra/llrender/llvertexbuffer.h      | 0
 38 files changed, 0 insertions(+), 0 deletions(-)
 mode change 100644 => 100755 indra/llrender/CMakeLists.txt
 mode change 100644 => 100755 indra/llrender/llcubemap.cpp
 mode change 100644 => 100755 indra/llrender/llcubemap.h
 mode change 100644 => 100755 indra/llrender/llfontbitmapcache.cpp
 mode change 100644 => 100755 indra/llrender/llfontbitmapcache.h
 mode change 100644 => 100755 indra/llrender/llfontfreetype.cpp
 mode change 100644 => 100755 indra/llrender/llfontfreetype.h
 mode change 100644 => 100755 indra/llrender/llfontgl.cpp
 mode change 100644 => 100755 indra/llrender/llfontgl.h
 mode change 100644 => 100755 indra/llrender/llfontregistry.cpp
 mode change 100644 => 100755 indra/llrender/llfontregistry.h
 mode change 100644 => 100755 indra/llrender/llgl.cpp
 mode change 100644 => 100755 indra/llrender/llgl.h
 mode change 100644 => 100755 indra/llrender/llgldbg.cpp
 mode change 100644 => 100755 indra/llrender/llgldbg.h
 mode change 100644 => 100755 indra/llrender/llglheaders.h
 mode change 100644 => 100755 indra/llrender/llglslshader.cpp
 mode change 100644 => 100755 indra/llrender/llglslshader.h
 mode change 100644 => 100755 indra/llrender/llglstates.h
 mode change 100644 => 100755 indra/llrender/llgltypes.h
 mode change 100644 => 100755 indra/llrender/llimagegl.cpp
 mode change 100644 => 100755 indra/llrender/llimagegl.h
 mode change 100644 => 100755 indra/llrender/llpostprocess.cpp
 mode change 100644 => 100755 indra/llrender/llpostprocess.h
 mode change 100644 => 100755 indra/llrender/llrender.cpp
 mode change 100644 => 100755 indra/llrender/llrender.h
 mode change 100644 => 100755 indra/llrender/llrendernavprim.cpp
 mode change 100644 => 100755 indra/llrender/llrendernavprim.h
 mode change 100644 => 100755 indra/llrender/llrendersphere.cpp
 mode change 100644 => 100755 indra/llrender/llrendersphere.h
 mode change 100644 => 100755 indra/llrender/llrendertarget.cpp
 mode change 100644 => 100755 indra/llrender/llrendertarget.h
 mode change 100644 => 100755 indra/llrender/llshadermgr.cpp
 mode change 100644 => 100755 indra/llrender/llshadermgr.h
 mode change 100644 => 100755 indra/llrender/lltexture.cpp
 mode change 100644 => 100755 indra/llrender/lltexture.h
 mode change 100644 => 100755 indra/llrender/llvertexbuffer.cpp
 mode change 100644 => 100755 indra/llrender/llvertexbuffer.h

(limited to 'indra/llrender')

diff --git a/indra/llrender/CMakeLists.txt b/indra/llrender/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/indra/llrender/llcubemap.cpp b/indra/llrender/llcubemap.cpp
old mode 100644
new mode 100755
diff --git a/indra/llrender/llcubemap.h b/indra/llrender/llcubemap.h
old mode 100644
new mode 100755
diff --git a/indra/llrender/llfontbitmapcache.cpp b/indra/llrender/llfontbitmapcache.cpp
old mode 100644
new mode 100755
diff --git a/indra/llrender/llfontbitmapcache.h b/indra/llrender/llfontbitmapcache.h
old mode 100644
new mode 100755
diff --git a/indra/llrender/llfontfreetype.cpp b/indra/llrender/llfontfreetype.cpp
old mode 100644
new mode 100755
diff --git a/indra/llrender/llfontfreetype.h b/indra/llrender/llfontfreetype.h
old mode 100644
new mode 100755
diff --git a/indra/llrender/llfontgl.cpp b/indra/llrender/llfontgl.cpp
old mode 100644
new mode 100755
diff --git a/indra/llrender/llfontgl.h b/indra/llrender/llfontgl.h
old mode 100644
new mode 100755
diff --git a/indra/llrender/llfontregistry.cpp b/indra/llrender/llfontregistry.cpp
old mode 100644
new mode 100755
diff --git a/indra/llrender/llfontregistry.h b/indra/llrender/llfontregistry.h
old mode 100644
new mode 100755
diff --git a/indra/llrender/llgl.cpp b/indra/llrender/llgl.cpp
old mode 100644
new mode 100755
diff --git a/indra/llrender/llgl.h b/indra/llrender/llgl.h
old mode 100644
new mode 100755
diff --git a/indra/llrender/llgldbg.cpp b/indra/llrender/llgldbg.cpp
old mode 100644
new mode 100755
diff --git a/indra/llrender/llgldbg.h b/indra/llrender/llgldbg.h
old mode 100644
new mode 100755
diff --git a/indra/llrender/llglheaders.h b/indra/llrender/llglheaders.h
old mode 100644
new mode 100755
diff --git a/indra/llrender/llglslshader.cpp b/indra/llrender/llglslshader.cpp
old mode 100644
new mode 100755
diff --git a/indra/llrender/llglslshader.h b/indra/llrender/llglslshader.h
old mode 100644
new mode 100755
diff --git a/indra/llrender/llglstates.h b/indra/llrender/llglstates.h
old mode 100644
new mode 100755
diff --git a/indra/llrender/llgltypes.h b/indra/llrender/llgltypes.h
old mode 100644
new mode 100755
diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp
old mode 100644
new mode 100755
diff --git a/indra/llrender/llimagegl.h b/indra/llrender/llimagegl.h
old mode 100644
new mode 100755
diff --git a/indra/llrender/llpostprocess.cpp b/indra/llrender/llpostprocess.cpp
old mode 100644
new mode 100755
diff --git a/indra/llrender/llpostprocess.h b/indra/llrender/llpostprocess.h
old mode 100644
new mode 100755
diff --git a/indra/llrender/llrender.cpp b/indra/llrender/llrender.cpp
old mode 100644
new mode 100755
diff --git a/indra/llrender/llrender.h b/indra/llrender/llrender.h
old mode 100644
new mode 100755
diff --git a/indra/llrender/llrendernavprim.cpp b/indra/llrender/llrendernavprim.cpp
old mode 100644
new mode 100755
diff --git a/indra/llrender/llrendernavprim.h b/indra/llrender/llrendernavprim.h
old mode 100644
new mode 100755
diff --git a/indra/llrender/llrendersphere.cpp b/indra/llrender/llrendersphere.cpp
old mode 100644
new mode 100755
diff --git a/indra/llrender/llrendersphere.h b/indra/llrender/llrendersphere.h
old mode 100644
new mode 100755
diff --git a/indra/llrender/llrendertarget.cpp b/indra/llrender/llrendertarget.cpp
old mode 100644
new mode 100755
diff --git a/indra/llrender/llrendertarget.h b/indra/llrender/llrendertarget.h
old mode 100644
new mode 100755
diff --git a/indra/llrender/llshadermgr.cpp b/indra/llrender/llshadermgr.cpp
old mode 100644
new mode 100755
diff --git a/indra/llrender/llshadermgr.h b/indra/llrender/llshadermgr.h
old mode 100644
new mode 100755
diff --git a/indra/llrender/lltexture.cpp b/indra/llrender/lltexture.cpp
old mode 100644
new mode 100755
diff --git a/indra/llrender/lltexture.h b/indra/llrender/lltexture.h
old mode 100644
new mode 100755
diff --git a/indra/llrender/llvertexbuffer.cpp b/indra/llrender/llvertexbuffer.cpp
old mode 100644
new mode 100755
diff --git a/indra/llrender/llvertexbuffer.h b/indra/llrender/llvertexbuffer.h
old mode 100644
new mode 100755
-- 
cgit v1.2.3