From 9b99ece5ab43b6cb28944d1e412f06c6b22dbc2c Mon Sep 17 00:00:00 2001
From: "Graham Madarasz (Graham Linden)" <graham@lindenlab.com>
Date: Thu, 12 Sep 2013 13:17:43 -0700
Subject: [PATCH] MAINT-3135 WIP partial fix, addresses graphics corruption on
 resize, but not mouse mapping issues

---
 indra/llwindow/llopenglview-objc.h  |  1 +
 indra/llwindow/llopenglview-objc.mm | 12 +++++++++---
 indra/newview/pipeline.cpp          |  4 +++-
 3 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/indra/llwindow/llopenglview-objc.h b/indra/llwindow/llopenglview-objc.h
index 41837b1eb48..1e0e47cd021 100644
--- a/indra/llwindow/llopenglview-objc.h
+++ b/indra/llwindow/llopenglview-objc.h
@@ -65,6 +65,7 @@
 - (unsigned long) getVramSize;
 
 - (void) allowMarkedTextInput:(bool)allowed;
+- (void) viewDidEndLiveResize;
 
 @end
 
diff --git a/indra/llwindow/llopenglview-objc.mm b/indra/llwindow/llopenglview-objc.mm
index 5f34d03c350..7415c9d8dcf 100644
--- a/indra/llwindow/llopenglview-objc.mm
+++ b/indra/llwindow/llopenglview-objc.mm
@@ -91,6 +91,13 @@ attributedStringInfo getSegments(NSAttributedString *str)
 
 @implementation LLOpenGLView
 
+// Force a high quality update after live resizing
+- (void) viewDidEndLiveResize
+{
+    NSSize size = [self frame].size;
+    callResize(size.width, size.height);
+}
+
 - (unsigned long)getVramSize
 {
     CGLRendererInfoObj info = 0;
@@ -119,9 +126,8 @@ attributedStringInfo getSegments(NSAttributedString *str)
 
 - (void)windowResized:(NSNotification *)notification;
 {
-	NSSize size = [self frame].size;
-	
-	callResize(size.width, size.height);
+	//NSSize size = [self frame].size;
+	//callResize(size.width, size.height);
 }
 
 - (void)dealloc
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index f49395da349..be5113680dc 100755
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -945,11 +945,13 @@ bool LLPipeline::allocateScreenBuffer(U32 resX, U32 resY, U32 samples)
 			screenFormat = GL_RGBA12;
 		}
 
+#if !LL_DARWIN
 		if (gGLManager.mGLVersion < 4.f && gGLManager.mIsNVIDIA)
 		{
 			screenFormat = GL_RGBA16F_ARB;
 		}
-		
+#endif
+        
 		if (!mScreen.allocate(resX, resY, screenFormat, FALSE, FALSE, LLTexUnit::TT_RECT_TEXTURE, FALSE, samples)) return false;
 		if (samples > 0)
 		{
-- 
GitLab