[Libreoffice-commits] core.git: Branch 'feature/mac-opengl-fixes' - 24 commits - canvas/opengl canvas/source chart2/opengl chart2/source cui/source dbaccess/source desktop/source include/vcl slideshow/Library_OGLTrans.mk slideshow/source vcl/source xmlsecurity/source

Markus Mohrhard markus.mohrhard at googlemail.com
Fri Aug 15 20:43:19 PDT 2014


Rebased ref, commits from common ancestor:
commit 17baabe04cd96467af193373da42eca34d56895d
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sat Aug 16 05:41:29 2014 +0200

    make the shaders compliant to GLSL 1.2
    
    Change-Id: Ic15760ca40d719ae333003c9bc241c813cb284fa

diff --git a/canvas/opengl/linearMultiColorGradientFragmentShader.glsl b/canvas/opengl/linearMultiColorGradientFragmentShader.glsl
index a3f3358..7ad8813 100644
--- a/canvas/opengl/linearMultiColorGradientFragmentShader.glsl
+++ b/canvas/opengl/linearMultiColorGradientFragmentShader.glsl
@@ -15,6 +15,13 @@ uniform sampler1D t_stopArray1d;
 uniform mat3x2    m_transform;
 varying vec2      v_textureCoords2d;
 
+int max(int x, int y)
+{
+    if(x > y)
+        return x;
+    return y;
+}
+
 int findBucket(float t)
 {
     int nMinBucket=0;
@@ -26,13 +33,13 @@ int findBucket(float t)
 
 void main(void)
 {
-    const float fAlpha =
+    float fAlpha =
         clamp( (m_transform * vec3(v_textureCoords2d,1)).s,
                 0.0, 1.0 );
 
-    const int nMinBucket=findBucket( fAlpha );
+    int nMinBucket = findBucket( fAlpha );
 
-    const float fLerp =
+    float fLerp =
         (fAlpha-texture1D(t_stopArray1d, nMinBucket).s) /
         (texture1D(t_stopArray1d, nMinBucket+1).s -
          texture1D(t_stopArray1d, nMinBucket).s);
diff --git a/canvas/opengl/radialMultiColorGradientFragmentShader.glsl b/canvas/opengl/radialMultiColorGradientFragmentShader.glsl
index 6f61a76..ebc6d6f 100644
--- a/canvas/opengl/radialMultiColorGradientFragmentShader.glsl
+++ b/canvas/opengl/radialMultiColorGradientFragmentShader.glsl
@@ -16,6 +16,13 @@ uniform mat3x2    m_transform;
 varying vec2      v_textureCoords2d;
 const vec2        v_center2d = vec2(0,0);
 
+int max(int x, int y)
+{
+    if(x > y)
+        return x;
+    return y;
+}
+
 int findBucket(float t)
 {
     int nMinBucket=0;
@@ -27,15 +34,15 @@ int findBucket(float t)
 
 void main(void)
 {
-    const float fAlpha =
+    float fAlpha =
         clamp( 1.0 - distance(
                     vec2( m_transform * vec3(v_textureCoords2d,1)),
                     v_center2d),
                 0.0, 1.0 );
 
-    const int nMinBucket=findBucket( fAlpha );
+    int nMinBucket=findBucket( fAlpha );
 
-    const float fLerp =
+    float fLerp =
         (fAlpha-texture1D(t_stopArray1d, nMinBucket).s) /
         (texture1D(t_stopArray1d, nMinBucket+1).s -
          texture1D(t_stopArray1d, nMinBucket).s);
diff --git a/canvas/opengl/rectangularMultiColorGradientFragmentShader.glsl b/canvas/opengl/rectangularMultiColorGradientFragmentShader.glsl
index 05a8ae5..ea17565 100644
--- a/canvas/opengl/rectangularMultiColorGradientFragmentShader.glsl
+++ b/canvas/opengl/rectangularMultiColorGradientFragmentShader.glsl
@@ -15,6 +15,13 @@ uniform sampler1D t_stopArray1d;
 uniform mat3x2    m_transform;
 varying vec2      v_textureCoords2d;
 
+int max(int x, int y)
+{
+    if(x > y)
+        return x;
+    return y;
+}
+
 int findBucket(float t)
 {
     int nMinBucket=0;
@@ -26,12 +33,12 @@ int findBucket(float t)
 
 void main(void)
 {
-    const vec2  v = abs( vec2(m_transform * vec3(v_textureCoords2d,1)) );
-    const float fAlpha = 1 - max(v.x, v.y);
+    vec2  v = abs( vec2(m_transform * vec3(v_textureCoords2d,1)) );
+    float fAlpha = 1 - max(v.x, v.y);
 
-    const int nMinBucket=findBucket( fAlpha );
+    int nMinBucket=findBucket( fAlpha );
 
-    const float fLerp =
+    float fLerp =
         (fAlpha-texture1D(t_stopArray1d, nMinBucket).s) /
         (texture1D(t_stopArray1d, nMinBucket+1).s -
          texture1D(t_stopArray1d, nMinBucket).s);
diff --git a/canvas/opengl/rectangularTwoColorGradientFragmentShader.glsl b/canvas/opengl/rectangularTwoColorGradientFragmentShader.glsl
index a92a533..038cdff 100644
--- a/canvas/opengl/rectangularTwoColorGradientFragmentShader.glsl
+++ b/canvas/opengl/rectangularTwoColorGradientFragmentShader.glsl
@@ -15,8 +15,8 @@ uniform mat3x2 m_transform;
 varying vec2   v_textureCoords2d;
 void main(void)
 {
-    const vec2 v = abs( vec2(m_transform * vec3(v_textureCoords2d,1)) );
-    const float t = max(v.x, v.y);
+    vec2 v = abs( vec2(m_transform * vec3(v_textureCoords2d,1)) );
+    float t = max(v.x, v.y);
     gl_FragColor = mix(v_startColor4d,
             v_endColor4d,
             1.0-t);
commit 3001d74b9ebf4414e2db1625bbf964e5d2cdbc12
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sat Aug 16 05:40:58 2014 +0200

    use generic implementation for OSX
    
    Change-Id: I9b82ca8bb6c1c6453bbedac2c60bec4d6a98c009

diff --git a/slideshow/Library_OGLTrans.mk b/slideshow/Library_OGLTrans.mk
index 80879ef..20596b5 100644
--- a/slideshow/Library_OGLTrans.mk
+++ b/slideshow/Library_OGLTrans.mk
@@ -44,16 +44,10 @@ $(eval $(call gb_Library_use_externals,OGLTrans,\
 $(eval $(call gb_Library_set_componentfile,OGLTrans,slideshow/source/engine/OGLTrans/ogltrans))
 
 ifeq ($(strip $(OS)),MACOSX)
-$(eval $(call gb_Library_add_objcobjects,OGLTrans,\
-    slideshow/source/engine/OGLTrans/mac/aquaOpenGLView \
-    slideshow/source/engine/OGLTrans/mac/OGLTrans_Shaders \
-    ,\
-))
 
-$(eval $(call gb_Library_add_objcxxobjects,OGLTrans,\
-    slideshow/source/engine/OGLTrans/mac/OGLTrans_TransitionerImpl \
-    slideshow/source/engine/OGLTrans/mac/OGLTrans_TransitionImpl \
-    , $(gb_LinkTarget_EXCEPTIONFLAGS) \
+$(eval $(call gb_Library_add_exception_objects,OGLTrans,\
+    slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionerImpl \
+    slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl \
 ))
 
 $(eval $(call gb_Library_use_system_darwin_frameworks,OGLTrans,\
commit 2a6c212a7944d3be8c22d50bf460fd1cbabfd9ad
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sat Aug 16 05:39:31 2014 +0200

    fix shader names, the .glsl is attached in OpenGLHelper::LoadShader
    
    Change-Id: I267c1fefa5330359f3aea0d57d38a153232b655f

diff --git a/canvas/source/opengl/ogl_spritedevicehelper.cxx b/canvas/source/opengl/ogl_spritedevicehelper.cxx
index c7a7eb6..58a59ea 100644
--- a/canvas/source/opengl/ogl_spritedevicehelper.cxx
+++ b/canvas/source/opengl/ogl_spritedevicehelper.cxx
@@ -110,22 +110,22 @@ namespace oglcanvas
         initContext();
 
         mnLinearMultiColorGradientProgram =
-            OpenGLHelper::LoadShaders("dummyVertexShader.glsl", "linearMultiColorGradientFragmentShader.glsl");
+            OpenGLHelper::LoadShaders("dummyVertexShader", "linearMultiColorGradientFragmentShader");
 
         mnLinearTwoColorGradientProgram =
-            OpenGLHelper::LoadShaders("dummyVertexShader.glsl", "linearTwoColorGradientFragmentShader.glsl");
+            OpenGLHelper::LoadShaders("dummyVertexShader", "linearTwoColorGradientFragmentShader");
 
         mnRadialMultiColorGradientProgram =
-            OpenGLHelper::LoadShaders("dummyVertexShader.glsl", "radialMultiColorGradientFragmentShader.glsl");
+            OpenGLHelper::LoadShaders("dummyVertexShader", "radialMultiColorGradientFragmentShader");
 
         mnRadialTwoColorGradientProgram =
-            OpenGLHelper::LoadShaders("dummyVertexShader.glsl", "radialTwoColorGradientFragmentShader.glsl");
+            OpenGLHelper::LoadShaders("dummyVertexShader", "radialTwoColorGradientFragmentShader");
 
         mnRectangularMultiColorGradientProgram =
-            OpenGLHelper::LoadShaders("dummyVertexShader.glsl", "rectangularMultiColorGradientFragmentShader.glsl");
+            OpenGLHelper::LoadShaders("dummyVertexShader", "rectangularMultiColorGradientFragmentShader");
 
         mnRectangularTwoColorGradientProgram =
-            OpenGLHelper::LoadShaders("dummyVertexShader.glsl", "rectangularTwoColorGradientFragmentShader.glsl");
+            OpenGLHelper::LoadShaders("dummyVertexShader", "rectangularTwoColorGradientFragmentShader");
 
         maContext.makeCurrent();
 
commit 0808c9333585667a994802be3350763f1af12da9
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sat Aug 16 05:39:09 2014 +0200

    request a legacy context for OGLTrans
    
    Change-Id: If001121da14ca9d15f6c36af30428f1851710524

diff --git a/canvas/source/opengl/ogl_spritedevicehelper.cxx b/canvas/source/opengl/ogl_spritedevicehelper.cxx
index 72df0e9..c7a7eb6 100644
--- a/canvas/source/opengl/ogl_spritedevicehelper.cxx
+++ b/canvas/source/opengl/ogl_spritedevicehelper.cxx
@@ -104,6 +104,7 @@ namespace oglcanvas
                 VCLUnoHelper::GetInterface(&rWindow),
                 uno::UNO_QUERY_THROW) );
 
+        maContext.requestLegacyContext();
         maContext.init(&rWindow);
         // init window context
         initContext();
commit 559a448e23f212b18b4608c3d9c7a92017e16d13
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sat Aug 16 05:38:04 2014 +0200

    don't try to use X11 functions on OSX
    
    Change-Id: Ife987833a52c7ed0b55f1003df1ee0dad2011cc0

diff --git a/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionerImpl.cxx b/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionerImpl.cxx
index 949dc36..5879330 100644
--- a/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionerImpl.cxx
+++ b/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionerImpl.cxx
@@ -68,7 +68,7 @@
 
 #include "OGLTrans_TransitionImpl.hxx"
 
-#if defined( UNX )
+#if defined( UNX ) && !defined( MACOSX )
     #include <X11/keysym.h>
     #include <X11/X.h>
 #endif
@@ -153,7 +153,7 @@ int calcComponentOrderIndex(const uno::Sequence<sal_Int8>& rTags)
     return -1;
 }
 
-#ifdef UNX
+#if defined( UNX ) && !defined( MACOSX )
 
 // not thread safe
 static bool errorTriggered;
@@ -258,7 +258,7 @@ private:
     bool mbUseEnteringPixmap;
     bool mbFreeLeavingPixmap;
     bool mbFreeEnteringPixmap;
-#ifdef UNX
+#if defined( UNX ) && !defined( MACOSX )
     Pixmap maLeavingPixmap;
     Pixmap maEnteringPixmap;
 #endif
@@ -373,6 +373,7 @@ bool OGLTransitionerImpl::initWindowFromSlideShowView( const Reference< presenta
     aDeviceParams[1] >>= aVal;
 
     mpContext = boost::make_shared<OpenGLContext>();
+    mpContext->requestLegacyContext();
 
     if( !mpContext->init( reinterpret_cast< Window* >( aVal ) ) )
         return false;
@@ -383,7 +384,7 @@ bool OGLTransitionerImpl::initWindowFromSlideShowView( const Reference< presenta
 
     GLWindow& rGLWindow(mpContext->getOpenGLWindow());
 
-#ifdef UNX
+#if defined( UNX ) && !defined( MACOSX )
     mbTextureFromPixmap = rGLWindow.HasGLXExtension( "GLX_EXT_texture_from_pixmap" );
 #endif
     mbGenerateMipmap = rGLWindow.HasGLExtension( "GL_SGIS_generate_mipmap" );
@@ -527,7 +528,7 @@ void OGLTransitionerImpl::impl_prepareSlides()
 
     mpContext->sync();
 
-#ifdef UNX
+#if defined( UNX ) && !defined( MACOSX )
     // synchronized X still gives us much smoother play
     // I suspect some issues in above code in slideshow
     // synchronize whole transition for now
@@ -1314,7 +1315,7 @@ void OGLTransitionerImpl::disposing()
     }
 #endif
 
-#ifdef UNX
+#if defined( UNX ) && !defined( MACOSX )
     if( mbRestoreSync && bool(mpContext) ) {
         // try to reestablish synchronize state
         char* sal_synchronize = getenv("SAL_SYNCHRONIZE");
@@ -1348,7 +1349,7 @@ OGLTransitionerImpl::OGLTransitionerImpl()
     , mbUseEnteringPixmap(false)
     , mbFreeLeavingPixmap(false)
     , mbFreeEnteringPixmap(false)
-#ifdef UNX
+#if defined( UNX ) && !defined( MACOSX )
     , maLeavingPixmap(0)
     , maEnteringPixmap(0)
 #endif
commit 5bc3312a197181ddcf1769c1a0ce2369c90ca263
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sat Aug 16 05:37:21 2014 +0200

    use glew instead of directly including OpenGL headers
    
    Change-Id: I7337d2d2f116f465bf6988dd9c7997b0267ca1cc

diff --git a/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.hxx b/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.hxx
index 80c4b41..f66eebb 100644
--- a/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.hxx
+++ b/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.hxx
@@ -33,7 +33,7 @@
 #include <boost/noncopyable.hpp>
 #include <boost/shared_ptr.hpp>
 
-#include <GL/gl.h>
+#include <GL/glew.h>
 
 #include <basegfx/vector/b2dvector.hxx>
 #include <basegfx/vector/b3dvector.hxx>
commit 2e053ef7d453edc51107ebb01de896cf45aa19e1
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sat Aug 16 05:36:30 2014 +0200

    add possibility to request a compatibility context
    
    Change-Id: I0135e81f925fda19c06144d21d2f2b0efc9e57be

diff --git a/include/vcl/opengl/OpenGLContext.hxx b/include/vcl/opengl/OpenGLContext.hxx
index 8faaf7b..c8ace97 100644
--- a/include/vcl/opengl/OpenGLContext.hxx
+++ b/include/vcl/opengl/OpenGLContext.hxx
@@ -149,6 +149,8 @@ public:
     OpenGLContext();
     ~OpenGLContext();
 
+    void requestLegacyContext();
+
     bool init(Window* pParent = 0);
     bool init(SystemChildWindow* pChildWindow);
 
@@ -184,6 +186,7 @@ private:
     SystemChildWindow* m_pChildWindow;
     boost::scoped_ptr<SystemChildWindow> m_pChildWindowGC;
     bool mbInitialized;
+    bool mbRequestLegacyContext;
 };
 
 #endif
diff --git a/vcl/source/opengl/OpenGLContext.cxx b/vcl/source/opengl/OpenGLContext.cxx
index 707b0d8..3d89c70 100644
--- a/vcl/source/opengl/OpenGLContext.cxx
+++ b/vcl/source/opengl/OpenGLContext.cxx
@@ -29,7 +29,8 @@ GLWindow::~GLWindow()
 OpenGLContext::OpenGLContext():
     mpWindow(NULL),
     m_pChildWindow(NULL),
-    mbInitialized(false)
+    mbInitialized(false),
+    mbRequestLegacyContext(false)
 {
 }
 
@@ -60,6 +61,11 @@ OpenGLContext::~OpenGLContext()
 #endif
 }
 
+void OpenGLContext::requestLegacyContext()
+{
+    mbRequestLegacyContext = true;
+}
+
 #if defined( _WIN32 )
 static LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 {
@@ -486,6 +492,9 @@ bool OpenGLContext::ImplInit()
         (CGLPixelFormatAttribute) 0
         };
 
+    if (mbRequestLegacyContext)
+        pixelFormatAttributes[1] = (CGLPixelFormatAttribute) kCGLOGLPVersion_Legacy;
+
     CGLPixelFormatObj pixelFormat;
     GLint numberOfPixels;
     CGLChoosePixelFormat(pixelFormatAttributes, &pixelFormat, &numberOfPixels);
commit d61d2f6171368dc707255c34af8f5205bc7f84bd
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sat Aug 16 00:09:02 2014 +0200

    WIP debug statements

diff --git a/chart2/source/view/main/GL3DRenderer.cxx b/chart2/source/view/main/GL3DRenderer.cxx
index 9f76bdd..4c11cd8 100644
--- a/chart2/source/view/main/GL3DRenderer.cxx
+++ b/chart2/source/view/main/GL3DRenderer.cxx
@@ -229,7 +229,7 @@ void OpenGL3DRenderer::CheckGLSLVersion()
 
 void OpenGL3DRenderer::ShaderResources::LoadShaders()
 {
-
+    CHECK_GL_ERROR();
     if (m_b330Support)
     {
         m_3DProID = OpenGLHelper::LoadShaders("shape3DVertexShader", "shape3DFragmentShader");
@@ -238,7 +238,10 @@ void OpenGL3DRenderer::ShaderResources::LoadShaders()
         m_3DModelID = glGetUniformLocation(m_3DProID, "M");
         m_3DNormalMatrixID = glGetUniformLocation(m_3DProID, "normalMatrix");
         m_3DVertexID = glGetAttribLocation(m_3DProID, "vertexPositionModelspace");
+        SAL_DEBUG("first " << m_3DVertexID);
         m_3DNormalID = glGetAttribLocation(m_3DProID, "vertexNormalModelspace");
+        SAL_DEBUG("second " << m_3DNormalID);
+        CHECK_GL_ERROR();
         if (m_bScrollFlag)
         {
             m_3DBatchProID = OpenGLHelper::LoadShaders("shape3DVertexShaderBatchScroll", "shape3DFragmentShaderBatchScroll");
@@ -249,6 +252,8 @@ void OpenGL3DRenderer::ShaderResources::LoadShaders()
         }
         else
             m_3DBatchProID = OpenGLHelper::LoadShaders("shape3DVertexShaderBatch", "shape3DFragmentShaderBatch");
+
+        CHECK_GL_ERROR();
         m_3DBatchProjectionID = glGetUniformLocation(m_3DBatchProID, "P");
         m_3DBatchViewID = glGetUniformLocation(m_3DBatchProID, "V");
         m_3DBatchModelID = glGetAttribLocation(m_3DBatchProID, "M");
@@ -260,6 +265,7 @@ void OpenGL3DRenderer::ShaderResources::LoadShaders()
         //check whether the texture array is support
         mbTexBatchSupport = GLEW_EXT_texture_array == 1;
 #endif
+        CHECK_GL_ERROR();
         if (mbTexBatchSupport)
         {
             m_BatchTextProID = OpenGLHelper::LoadShaders("textVertexShaderBatch", "textFragmentShaderBatch");
@@ -269,9 +275,11 @@ void OpenGL3DRenderer::ShaderResources::LoadShaders()
             m_BatchTextTexCoordID = glGetAttribLocation(m_BatchTextProID, "texCoord");
         }
         mbTexBatchSupport = m_BatchTextProID ? true : false;
+        CHECK_GL_ERROR();
     }
     else
     {
+        CHECK_GL_ERROR();
         //use 300
         m_3DProID = OpenGLHelper::LoadShaders("shape3DVertexShaderV300", "shape3DFragmentShaderV300");
         m_3DProjectionID = glGetUniformLocation(m_3DProID, "P");
@@ -295,25 +303,36 @@ void OpenGL3DRenderer::ShaderResources::LoadShaders()
         m_3DVertexID = glGetAttribLocation(m_3DProID, "vertexPositionModelspace");
         m_3DNormalID = glGetAttribLocation(m_3DProID, "vertexNormalModelspace");
     }
+    CHECK_GL_ERROR();
     if (!mbTexBatchSupport)
     {
         m_TextProID = OpenGLHelper::LoadShaders("textVertexShader", "textFragmentShader");
         m_TextMatrixID = glGetUniformLocation(m_TextProID, "MVP");
         m_TextVertexID = glGetAttribLocation(m_TextProID, "vPosition");
+        SAL_DEBUG(m_TextVertexID);
         m_TextTexCoordID = glGetAttribLocation(m_TextProID, "texCoord");
+        SAL_DEBUG(m_TextTexCoordID);
         m_TextTexID = glGetUniformLocation(m_TextProID, "TextTex");
     }
+    CHECK_GL_ERROR();
 
     m_ScreenTextProID = OpenGLHelper::LoadShaders("screenTextVertexShader", "screenTextFragmentShader");
     m_ScreenTextVertexID = glGetAttribLocation(m_ScreenTextProID, "vPosition");
+    SAL_DEBUG(m_ScreenTextVertexID);
     m_ScreenTextTexCoordID = glGetAttribLocation(m_ScreenTextProID, "texCoord");
+    SAL_DEBUG(m_ScreenTextTexCoordID);
     m_ScreenTextTexID = glGetUniformLocation(m_ScreenTextProID, "TextTex");
     m_ScreenTextColorID = glGetUniformLocation(m_ScreenTextProID, "textColor");
+    CHECK_GL_ERROR();
 
     m_CommonProID = OpenGLHelper::LoadShaders("commonVertexShader", "commonFragmentShader");
+    SAL_DEBUG(m_CommonProID);
     m_MatrixID = glGetUniformLocation(m_CommonProID, "MVP");
-    m_2DVertexID = glGetAttribLocation(m_CommonProID, "vPosition");
+    SAL_DEBUG(m_MatrixID);
     m_2DColorID = glGetUniformLocation(m_CommonProID, "vColor");
+    SAL_DEBUG(m_2DColorID);
+    m_2DVertexID = glGetAttribLocation(m_CommonProID, "vPosition");
+    SAL_DEBUG(m_2DVertexID);
 
     CHECK_GL_ERROR();
 }
@@ -354,21 +373,33 @@ void OpenGL3DRenderer::SetCameraInfo(const glm::vec3& pos, const glm::vec3& dire
 
 void OpenGL3DRenderer::init()
 {
+    CHECK_GL_ERROR();
     glEnable(GL_CULL_FACE);
+    CHECK_GL_ERROR();
     glCullFace(GL_BACK);
+    CHECK_GL_ERROR();
     glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
     // Enable depth test
+    CHECK_GL_ERROR();
     glEnable(GL_DEPTH_TEST);
     // Accept fragment if it closer to the camera than the former one
+    CHECK_GL_ERROR();
     glDepthFunc(GL_LESS);
+    CHECK_GL_ERROR();
     glEnable(GL_LINE_SMOOTH);
+    CHECK_GL_ERROR();
     glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
+    CHECK_GL_ERROR();
     glEnable(GL_BLEND);
+    CHECK_GL_ERROR();
     glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+    CHECK_GL_ERROR();
 
     glEnable(GL_MULTISAMPLE);
 
+    CHECK_GL_ERROR();
     ClearBuffer();
+    CHECK_GL_ERROR();
 
     glGenBuffers(1, &m_CubeVertexBuf);
     glGenBuffers(1, &m_CubeNormalBuf);
@@ -383,16 +414,19 @@ void OpenGL3DRenderer::init()
     glBindBuffer(GL_ARRAY_BUFFER, m_BoundBox);
     glBufferData(GL_ARRAY_BUFFER, sizeof(boundBox), boundBox, GL_STATIC_DRAW);
     glBindBuffer(GL_ARRAY_BUFFER, 0);
+    CHECK_GL_ERROR();
 
     glGenBuffers(1, &m_BoundBoxNormal);
     glBindBuffer(GL_ARRAY_BUFFER, m_BoundBoxNormal);
     glBufferData(GL_ARRAY_BUFFER, sizeof(boundBoxNormal), boundBoxNormal, GL_STATIC_DRAW);
     glBindBuffer(GL_ARRAY_BUFFER, 0);
+    CHECK_GL_ERROR();
 
     m_fViewAngle = 30.0f;
     m_3DProjection = glm::perspective(m_fViewAngle, (float)m_iWidth / (float)m_iHeight, 0.01f, 6000.0f);
 
     CheckGLSLVersion();
+    CHECK_GL_ERROR();
     maResources.LoadShaders();
     maPickingResources.LoadShaders();
 
@@ -410,6 +444,7 @@ void OpenGL3DRenderer::init()
     glBindBuffer(GL_ARRAY_BUFFER, m_RenderVertexBuf);
     glBufferData(GL_ARRAY_BUFFER, sizeof(squareVertices), squareVertices, GL_STATIC_DRAW);
     glBindBuffer(GL_ARRAY_BUFFER, 0);
+    CHECK_GL_ERROR();
 
     OpenGLHelper::createFramebuffer(m_iWidth, m_iHeight, mnPickingFbo, mnPickingRboDepth, mnPickingRboColor);
 
@@ -836,6 +871,7 @@ int OpenGL3DRenderer::GenerateRoundCornerBar(std::vector<glm::vec3> &vertices, s
 
 void OpenGL3DRenderer::RenderLine3D(const Polygon3DInfo& polygon)
 {
+    CHECK_GL_ERROR();
     glUseProgram(maResources.m_CommonProID);
     PosVecf3 trans = {0.0f, 0, 0.0};
     PosVecf3 angle = {0.0f, 0.0f, 0.0f};
@@ -858,10 +894,14 @@ void OpenGL3DRenderer::RenderLine3D(const Polygon3DInfo& polygon)
         else
             glUniform4fv(maResources.m_2DColorID, 1, &polygon.polygonColor[0]);
         glUniformMatrix4fv(maResources.m_MatrixID, 1, GL_FALSE, &m_3DMVP[0][0]);
+        CHECK_GL_ERROR();
 
         // 1rst attribute buffer : vertices
         glEnableVertexAttribArray(maResources.m_2DVertexID);
+        SAL_DEBUG(maResources.m_2DVertexID);
+        CHECK_GL_ERROR();
         glBindBuffer(GL_ARRAY_BUFFER, m_VertexBuffer);
+        CHECK_GL_ERROR();
         glVertexAttribPointer(maResources.m_2DVertexID, // attribute
                                 3,                  // size
                                 GL_FLOAT,           // type
@@ -870,16 +910,23 @@ void OpenGL3DRenderer::RenderLine3D(const Polygon3DInfo& polygon)
                                 (void*)0            // array buffer offset
                                 );
 
+        CHECK_GL_ERROR();
         glLineWidth(polygon.lineWidth);
+        CHECK_GL_ERROR();
         glDrawArrays(GL_LINE_STRIP, 0, pointList->size());
+        CHECK_GL_ERROR();
         glDisableVertexAttribArray(maResources.m_2DVertexID);
+        CHECK_GL_ERROR();
         glBindBuffer(GL_ARRAY_BUFFER, 0);
+        CHECK_GL_ERROR();
     }
     glUseProgram(0);
+    CHECK_GL_ERROR();
 }
 
 void OpenGL3DRenderer::RenderPolygon3D(const Polygon3DInfo& polygon)
 {
+    CHECK_GL_ERROR();
     size_t verticesNum = polygon.verticesList.size();
     size_t normalsNum = polygon.normalsList.size();
     //check whether the number of vertices and normals are equal
@@ -887,11 +934,13 @@ void OpenGL3DRenderer::RenderPolygon3D(const Polygon3DInfo& polygon)
         glPolygonOffset(1.0, 1.0);
     else
         glPolygonOffset(-1.0, -1.0);
+    CHECK_GL_ERROR();
     if (verticesNum != normalsNum)
     {
         return ;
     }
     glBindBuffer(GL_UNIFORM_BUFFER, 0);
+    CHECK_GL_ERROR();
     if(mbPickingMode)
     {
         glUseProgram(maPickingResources.m_CommonProID);
@@ -905,6 +954,7 @@ void OpenGL3DRenderer::RenderPolygon3D(const Polygon3DInfo& polygon)
         glUseProgram(maResources.m_3DProID);
         glUniformMatrix4fv(maResources.m_3DViewID, 1, GL_FALSE, &m_3DView[0][0]);
         glUniformMatrix4fv(maResources.m_3DProjectionID, 1, GL_FALSE, &m_3DProjection[0][0]);
+        CHECK_GL_ERROR();
         if (maResources.m_b330Support)
         {
             //update ubo
@@ -920,12 +970,14 @@ void OpenGL3DRenderer::RenderPolygon3D(const Polygon3DInfo& polygon)
             glUniform1fv(maResources.m_3DMinCoordXID, 1, &minCoordX);
             glUniform1fv(maResources.m_3DMaxCoordXID, 1, &maxCoordX);
             glUniform1i(maResources.m_3DUndrawID, m_bUndrawFlag);
+            CHECK_GL_ERROR();
             //update light information
             glUniform4fv(maResources.m_3DLightColorID, m_iLightNum, (GLfloat*)m_LightColor);
             glUniform4fv(maResources.m_3DLightPosID, m_iLightNum, (GLfloat*)m_PositionWorldspace);
             glUniform1fv(maResources.m_3DLightPowerID, m_iLightNum, m_fLightPower);
             glUniform1i(maResources.m_3DLightNumID, m_iLightNum);
             glUniform4fv(maResources.m_3DLightAmbientID, 1, &m_Ambient[0]);
+            CHECK_GL_ERROR();
             //update meterial information
             glUniform4fv(maResources.m_3DMaterialAmbientID, 1, &polygon.material.ambient[0]);
             glUniform4fv(maResources.m_3DMaterialDiffuseID, 1, &polygon.material.diffuse[0]);
@@ -959,9 +1011,13 @@ void OpenGL3DRenderer::RenderPolygon3D(const Polygon3DInfo& polygon)
         {
             //fill normal buffer
             glBindBuffer(GL_ARRAY_BUFFER, m_NormalBuffer);
+            CHECK_GL_ERROR();
             glBufferData(GL_ARRAY_BUFFER, normalList->size() * sizeof(glm::vec3), &normalList[0][0], GL_STATIC_DRAW);
+            CHECK_GL_ERROR();
             glUniformMatrix4fv(maResources.m_3DModelID, 1, GL_FALSE, &m_Model[0][0]);
+            CHECK_GL_ERROR();
             glUniformMatrix3fv(maResources.m_3DNormalMatrixID, 1, GL_FALSE, &normalInverseTranspos[0][0]);
+            CHECK_GL_ERROR();
         }
         else
         {
@@ -969,10 +1025,13 @@ void OpenGL3DRenderer::RenderPolygon3D(const Polygon3DInfo& polygon)
             glUniformMatrix4fv(maPickingResources.m_MatrixID, 1, GL_FALSE, &aMVP[0][0]);
             glUniform4fv(maPickingResources.m_2DColorID, 1, &polygon.id[0]);
         }
+        CHECK_GL_ERROR();
         GLint maVertexID = mbPickingMode ? maPickingResources.m_2DVertexID : maResources.m_3DVertexID;
         // 1rst attribute buffer : vertices
         glEnableVertexAttribArray(maVertexID);
+        CHECK_GL_ERROR();
         glBindBuffer(GL_ARRAY_BUFFER, m_VertexBuffer);
+        CHECK_GL_ERROR();
         glVertexAttribPointer(maVertexID, // attribute
                                 3,                  // size
                                 GL_FLOAT,           // type
@@ -980,11 +1039,14 @@ void OpenGL3DRenderer::RenderPolygon3D(const Polygon3DInfo& polygon)
                                 0,                  // stride
                                 (void*)0            // array buffer offset
                                 );
+        CHECK_GL_ERROR();
         if(!mbPickingMode)
         {
             // 2nd attribute buffer : normals
             glEnableVertexAttribArray(maResources.m_3DNormalID);
+            CHECK_GL_ERROR();
             glBindBuffer(GL_ARRAY_BUFFER, m_NormalBuffer);
+            CHECK_GL_ERROR();
             glVertexAttribPointer(maResources.m_3DNormalID, // attribute
                     3,                  // size
                     GL_FLOAT,           // type
@@ -993,14 +1055,20 @@ void OpenGL3DRenderer::RenderPolygon3D(const Polygon3DInfo& polygon)
                     (void*)0            // array buffer offset
                     );
         }
+        CHECK_GL_ERROR();
         glDrawArrays(GL_POLYGON, 0, pointList->size());
+        CHECK_GL_ERROR();
         glDisableVertexAttribArray(maVertexID);
+        CHECK_GL_ERROR();
         if(!mbPickingMode)
             glDisableVertexAttribArray(maResources.m_3DNormalID);
 
+        CHECK_GL_ERROR();
         glBindBuffer(GL_ARRAY_BUFFER, 0);
+        CHECK_GL_ERROR();
     }
     glUseProgram(0);
+    CHECK_GL_ERROR();
 }
 
 namespace {
@@ -1034,6 +1102,7 @@ void OpenGL3DRenderer::ReleasePolygonShapes()
 void OpenGL3DRenderer::RenderPolygon3DObject()
 {
     glDepthMask(GL_FALSE);
+    CHECK_GL_ERROR();
     for (size_t i = 0; i < m_Polygon3DInfoList.size(); i++)
     {
         Polygon3DInfo &polygon = m_Polygon3DInfoList[i];
@@ -1041,6 +1110,7 @@ void OpenGL3DRenderer::RenderPolygon3DObject()
         {
             //just use the common shader is ok for lines
             RenderLine3D(polygon);
+            CHECK_GL_ERROR();
         }
         else
         {
@@ -1310,7 +1380,9 @@ void OpenGL3DRenderer::UpdateBatch3DUniformBlock()
     if(mbPickingMode)
         return;
 
+    CHECK_GL_ERROR();
     glBindBuffer(GL_UNIFORM_BUFFER, m_Batch3DUBOBuffer);
+    CHECK_GL_ERROR();
     glBufferSubData(GL_UNIFORM_BUFFER, 0, sizeof(GLint), &m_LightsInfo.lightNum);
     CHECK_GL_ERROR();
     //current std140 alignment: 16
@@ -1327,7 +1399,9 @@ void OpenGL3DRenderer::Update3DUniformBlock()
     if(mbPickingMode)
         return;
 
+    CHECK_GL_ERROR();
     glBindBuffer(GL_UNIFORM_BUFFER, m_3DUBOBuffer);
+    CHECK_GL_ERROR();
     glBufferSubData(GL_UNIFORM_BUFFER, 0, sizeof(GLint), &m_LightsInfo.lightNum);
     CHECK_GL_ERROR();
     //current std140 alignment: 16
@@ -1555,9 +1629,11 @@ void OpenGL3DRenderer::ReleaseExtrude3DShapes()
 
 void OpenGL3DRenderer::RenderExtrude3DObject()
 {
+    CHECK_GL_ERROR();
     glEnable(GL_DEPTH_TEST);
     glEnable(GL_CULL_FACE);
     glCullFace(GL_BACK);
+    CHECK_GL_ERROR();
     if(mbPickingMode)
     {
         glUseProgram(maPickingResources.m_CommonProID);
@@ -1569,6 +1645,7 @@ void OpenGL3DRenderer::RenderExtrude3DObject()
         glUseProgram(maResources.m_3DProID);
         glUniformMatrix4fv(maResources.m_3DViewID, 1, GL_FALSE, &m_3DView[0][0]);
         glUniformMatrix4fv(maResources.m_3DProjectionID, 1, GL_FALSE, &m_3DProjection[0][0]);
+        CHECK_GL_ERROR();
         if (maResources.m_b330Support)
         {
             //update ubo
@@ -1980,6 +2057,7 @@ void OpenGL3DRenderer::RenderTextShapeBatch()
     CHECK_GL_ERROR();
     glEnableVertexAttribArray(maResources.m_BatchTextTexCoordID);
     glBindBuffer(GL_ARRAY_BUFFER, m_TextTexCoordBufBatch);
+    CHECK_GL_ERROR();
     glVertexAttribPointer(
         maResources.m_BatchTextTexCoordID,
         3,                  // size
@@ -1993,8 +2071,10 @@ void OpenGL3DRenderer::RenderTextShapeBatch()
     {
         int vertexNum = m_TextInfoBatch.texture[i].subTextureNum;
         glBindBuffer(GL_ARRAY_BUFFER, m_VertexBuffer);
+        CHECK_GL_ERROR();
         glBufferData(GL_ARRAY_BUFFER, 4 * vertexNum * sizeof(glm::vec3), &m_TextInfoBatch.vertexList[4 * i * m_TextInfoBatch.batchNum], GL_STATIC_DRAW);
         glBindBuffer(GL_ARRAY_BUFFER, m_TextTexCoordBufBatch);
+        CHECK_GL_ERROR();
         glBufferData(GL_ARRAY_BUFFER, 4 * vertexNum * sizeof(glm::vec3), &m_TextInfoBatch.textureCoordList[4 * i * m_TextInfoBatch.batchNum], GL_STATIC_DRAW);
         glBindTexture(GL_TEXTURE_2D_ARRAY, m_TextInfoBatch.texture[i].textureID);
         CHECK_GL_ERROR();
@@ -2008,6 +2088,7 @@ void OpenGL3DRenderer::RenderTextShapeBatch()
     glDisableVertexAttribArray(maResources.m_BatchTextTexCoordID);
     CHECK_GL_ERROR();
     glBindTexture(GL_TEXTURE_2D_ARRAY, 0);
+    CHECK_GL_ERROR();
     glUseProgram(0);
 }
 void OpenGL3DRenderer::RenderTextShape()
@@ -2083,10 +2164,14 @@ void OpenGL3DRenderer::CreateSceneBoxView()
 
 void OpenGL3DRenderer::ClearBuffer()
 {
+    CHECK_GL_ERROR();
     glDisable(GL_DEPTH_TEST);
+    CHECK_GL_ERROR();
 
     glClearDepth(1.0f);
+    CHECK_GL_ERROR();
     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+    CHECK_GL_ERROR();
 
     /*
      * TODO: moggi: use a shader!!!
@@ -2102,15 +2187,20 @@ void OpenGL3DRenderer::ClearBuffer()
     */
 
     glEnable(GL_DEPTH_TEST);
+    CHECK_GL_ERROR();
 }
 
 void OpenGL3DRenderer::ProcessUnrenderedShape(bool bNewScene)
 {
     glViewport(0, 0, m_iWidth, m_iHeight);
+    CHECK_GL_ERROR();
     ClearBuffer();
+    CHECK_GL_ERROR();
     CreateSceneBoxView();
+    CHECK_GL_ERROR();
     CalcScrollMoveMatrix(bNewScene);
     //Polygon
+    CHECK_GL_ERROR();
     RenderPolygon3DObject();
     //Shape3DExtrudeObject
     if(mbPickingMode)
commit c59ca7e13ad80ab1f0e275a517d5c59fdfb44762
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Fri Aug 15 10:48:24 2014 +0200

    add a note about deprecated functionality
    
    Change-Id: Ic980e633f7c9cdcbb3a1b512d66bfd8279d16339

diff --git a/chart2/opengl/README.deprecated b/chart2/opengl/README.deprecated
new file mode 100644
index 0000000..a13de9a
--- /dev/null
+++ b/chart2/opengl/README.deprecated
@@ -0,0 +1,15 @@
+deprecated features
+
+GL_LIGHTING
+GL_TEXTURE_2D
+GL_POINT_SMOOTH
+GL_TEXTURE_WRAP_S
+GL_TEXTURE_WRAP_T
+
+
+GLSL
+
+texture*D
+varying
+attribute
+missing version string
commit 2dbe0a886efa23bde4ba7dd57828833afe7528ee
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Fri Aug 15 10:47:18 2014 +0200

    don't even try to create a shape for non existing values
    
    Change-Id: I0af9285c2fa0371607e9ec750bb07968244c44d8

diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx
index 0299b92..6359dc6 100644
--- a/chart2/source/view/charttypes/GL3DBarChart.cxx
+++ b/chart2/source/view/charttypes/GL3DBarChart.cxx
@@ -538,6 +538,9 @@ void GL3DBarChart::create3DShapes(const boost::ptr_vector<VDataSeries>& rDataSer
             }
 
             float nVal = rDataSeries.getYValue(nIndex);
+            if (rtl::math::isNan(nVal))
+                continue;
+
             float nXPos = nIndex * (BAR_SIZE_X + BAR_DISTANCE_X) + BAR_DISTANCE_X;
 
             glm::mat4 aScaleMatrix = glm::scale(glm::vec3(BAR_SIZE_X, BAR_SIZE_Y, float(nVal/nMaxVal)));
commit c5eccb4d1d16ea5f069408ac533d2362b92ae34f
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Fri Aug 15 09:28:27 2014 +0200

    fixed pipeline functions are not available in core context
    
    Change-Id: I50f5e876da902181f8ab5c9571df61f035630218

diff --git a/chart2/source/view/main/GL3DRenderer.cxx b/chart2/source/view/main/GL3DRenderer.cxx
index b9e8063..9f76bdd 100644
--- a/chart2/source/view/main/GL3DRenderer.cxx
+++ b/chart2/source/view/main/GL3DRenderer.cxx
@@ -2088,6 +2088,8 @@ void OpenGL3DRenderer::ClearBuffer()
     glClearDepth(1.0f);
     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
+    /*
+     * TODO: moggi: use a shader!!!
     glBegin (GL_QUADS);
     glColor3f (0.3f, 0.3f, 0.3f);
     glVertex3f (-1.0f, -1.0f, -1.0f);
@@ -2097,6 +2099,7 @@ void OpenGL3DRenderer::ClearBuffer()
     glVertex3f (1.0f, 1.0f, -1.0f);
     glVertex3f (-1.0f, 1.0f, -1.0f);
     glEnd ();
+    */
 
     glEnable(GL_DEPTH_TEST);
 }
commit 14271ef8a4e3da11fbe804c8f846750a94e81d0f
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Fri Aug 15 09:27:48 2014 +0200

    GL_LIGHTING is deprecated
    
    Change-Id: I6280af7182f4afefe39ef676024caa9c21f089ff

diff --git a/chart2/source/view/main/GL3DRenderer.cxx b/chart2/source/view/main/GL3DRenderer.cxx
index 3f1dda8..b9e8063 100644
--- a/chart2/source/view/main/GL3DRenderer.cxx
+++ b/chart2/source/view/main/GL3DRenderer.cxx
@@ -2084,7 +2084,6 @@ void OpenGL3DRenderer::CreateSceneBoxView()
 void OpenGL3DRenderer::ClearBuffer()
 {
     glDisable(GL_DEPTH_TEST);
-    glDisable(GL_LIGHTING);
 
     glClearDepth(1.0f);
     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
@@ -2099,7 +2098,6 @@ void OpenGL3DRenderer::ClearBuffer()
     glVertex3f (-1.0f, 1.0f, -1.0f);
     glEnd ();
 
-    glEnable(GL_LIGHTING);
     glEnable(GL_DEPTH_TEST);
 }
 
commit e07577658478c61491992be006b71a9fa6d44542
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Fri Aug 15 09:26:36 2014 +0200

    GL_TEXTURE_WRAP_* is deprecated
    
    Change-Id: I2604a6d647c912a91da156072b9821b2abe52b48

diff --git a/chart2/source/view/main/GL3DRenderer.cxx b/chart2/source/view/main/GL3DRenderer.cxx
index bdeaee9..3f1dda8 100644
--- a/chart2/source/view/main/GL3DRenderer.cxx
+++ b/chart2/source/view/main/GL3DRenderer.cxx
@@ -1745,10 +1745,6 @@ void OpenGL3DRenderer::CreateTextTextureSingle(const boost::shared_array<sal_uIn
     CHECK_GL_ERROR();
     glBindTexture(GL_TEXTURE_2D, aTextInfo.texture);
     CHECK_GL_ERROR();
-    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
-    CHECK_GL_ERROR();
-    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
-    CHECK_GL_ERROR();
     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
     CHECK_GL_ERROR();
     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
commit c52bc929bd4f7acb30bd0a23d2610c76a0744342
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Fri Aug 15 09:25:22 2014 +0200

    GL_POINT_SMOOTH is deprecated
    
    Change-Id: Id81a238ed71c8c2f9297e14f6f37d148f29cfbca

diff --git a/chart2/source/view/main/GL3DRenderer.cxx b/chart2/source/view/main/GL3DRenderer.cxx
index 823427c..bdeaee9 100644
--- a/chart2/source/view/main/GL3DRenderer.cxx
+++ b/chart2/source/view/main/GL3DRenderer.cxx
@@ -361,9 +361,7 @@ void OpenGL3DRenderer::init()
     glEnable(GL_DEPTH_TEST);
     // Accept fragment if it closer to the camera than the former one
     glDepthFunc(GL_LESS);
-    glEnable(GL_POINT_SMOOTH);
     glEnable(GL_LINE_SMOOTH);
-    glHint(GL_POINT_SMOOTH_HINT, GL_NICEST);
     glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
     glEnable(GL_BLEND);
     glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
commit 67c7c64c807d969cd627323e904ddd0287d4f2d4
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Fri Aug 15 09:24:03 2014 +0200

    glEnable(GL_TEXTURE_2D) is deprecated
    
    Change-Id: Ic4ee5414fbbea3d73655b52e66cb397220e61566

diff --git a/chart2/source/view/main/GL3DRenderer.cxx b/chart2/source/view/main/GL3DRenderer.cxx
index 7e82334..823427c 100644
--- a/chart2/source/view/main/GL3DRenderer.cxx
+++ b/chart2/source/view/main/GL3DRenderer.cxx
@@ -354,7 +354,6 @@ void OpenGL3DRenderer::SetCameraInfo(const glm::vec3& pos, const glm::vec3& dire
 
 void OpenGL3DRenderer::init()
 {
-    glEnable(GL_TEXTURE_2D);
     glEnable(GL_CULL_FACE);
     glCullFace(GL_BACK);
     glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
commit 2420b6750cd1b19970eabc060930baf99493717a
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Fri Aug 15 06:39:38 2014 +0200

    fix my last core shader error
    
    Now all shaders compile cleanly against a core context without
    deprecated functions.
    
    Change-Id: I53c1fe04e07247f94ad5e3a17819cebea0a9f535

diff --git a/chart2/opengl/pickingFragmentShader.glsl b/chart2/opengl/pickingFragmentShader.glsl
index d9e06a6..6262216 100644
--- a/chart2/opengl/pickingFragmentShader.glsl
+++ b/chart2/opengl/pickingFragmentShader.glsl
@@ -12,12 +12,13 @@
 uniform float minCoordX;
 in vec3 positionWorldspace;
 in vec4 fragmentColor;
+out vec4 actualColor;
 
 void main()
 {
     if (positionWorldspace.x <= minCoordX)
         discard;
-    gl_FragColor = fragmentColor;
+    actualColor = fragmentColor;
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 77a9339fc04ab70f0005ca5cbda6fb209035041c
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Fri Aug 15 06:37:37 2014 +0200

    texture*D in GLSL is deprecated and not available in core contexts
    
    Change-Id: Ia5da0899d73aea22fe7bae735e57e30dcd37b254

diff --git a/chart2/opengl/commonFragmentShader.glsl b/chart2/opengl/commonFragmentShader.glsl
index d602b21..bb2482b 100644
--- a/chart2/opengl/commonFragmentShader.glsl
+++ b/chart2/opengl/commonFragmentShader.glsl
@@ -10,10 +10,11 @@
 #version 150 core
 
 in vec4 fragmentColor;
+out vec4 actualColor;
 
 void main()
 {
-    gl_FragColor = fragmentColor;
+    actualColor = fragmentColor;
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/chart2/opengl/screenTextFragmentShader.glsl b/chart2/opengl/screenTextFragmentShader.glsl
index 7c90ec0..f76abee 100644
--- a/chart2/opengl/screenTextFragmentShader.glsl
+++ b/chart2/opengl/screenTextFragmentShader.glsl
@@ -12,10 +12,12 @@
 in vec2 vTexCoord;
 uniform sampler2D TextTex;
 uniform vec4 textColor;
+out vec4 actualColor;
+
 void main()
 {
-    vec3 color = texture2D(TextTex, vTexCoord).rgb;
-    gl_FragColor = vec4(textColor.rgb, 1.0 - color.r);
+    vec3 color = texture(TextTex, vTexCoord).rgb;
+    actualColor = vec4(textColor.rgb, 1.0 - color.r);
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/chart2/opengl/textFragmentShader.glsl b/chart2/opengl/textFragmentShader.glsl
index 1c3af26..16be8c6 100644
--- a/chart2/opengl/textFragmentShader.glsl
+++ b/chart2/opengl/textFragmentShader.glsl
@@ -11,10 +11,13 @@
 
 uniform sampler2D TextTex;
 in vec2 vTexCoord;
+out vec4 actualColor;
+
+
 void main()
 {
-    vec3 color = texture2D(TextTex, vTexCoord).rgb;
-    gl_FragColor = vec4(color, 1.0 - color.r);
+    vec3 color = texture(TextTex, vTexCoord).rgb;
+    actualColor = vec4(color, 1.0 - color.r);
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/chart2/opengl/textFragmentShaderBatch.glsl b/chart2/opengl/textFragmentShaderBatch.glsl
index 431fa4c..c97812b 100644
--- a/chart2/opengl/textFragmentShaderBatch.glsl
+++ b/chart2/opengl/textFragmentShaderBatch.glsl
@@ -17,7 +17,7 @@ in vec3 vTexCoord;
 out vec4 actualColor;
 void main()
 {
-    vec3 color = texture2DArray(texArray, vTexCoord.xyz).rgb;
+    vec3 color = texture(texArray, vTexCoord.xyz).rgb;
     actualColor = vec4(color, 1.0 - color.r);
 }
 
commit 5361f66b06cc9732ee4018be37db9c813e110c2b
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Fri Aug 15 06:26:02 2014 +0200

    replace all attribute and varying in chart shaders
    
    Next step to a pure OpenGL 3.2 core context.
    
    Change-Id: Ifcfccd9ffc8adcc3b7338e10cb25aeb8496909a3

diff --git a/chart2/opengl/backgroundFragmentShader.glsl b/chart2/opengl/backgroundFragmentShader.glsl
index 646dd4f..eb3adaa 100644
--- a/chart2/opengl/backgroundFragmentShader.glsl
+++ b/chart2/opengl/backgroundFragmentShader.glsl
@@ -9,7 +9,7 @@
 
 #version 150 core core
 
-varying vec4 fragmentColor;
+in vec4 fragmentColor;
 
 void main()
 {
diff --git a/chart2/opengl/backgroundVertexShader.glsl b/chart2/opengl/backgroundVertexShader.glsl
index 3f2ae8e..bf7937c 100644
--- a/chart2/opengl/backgroundVertexShader.glsl
+++ b/chart2/opengl/backgroundVertexShader.glsl
@@ -9,10 +9,10 @@
 
 #version 150 core
 
-attribute vec3 vPosition;
+in vec3 vPosition;
 uniform mat4 MVP;
-attribute vec4 vColor;
-varying vec4 fragmentColor;
+in vec4 vColor;
+out vec4 fragmentColor;
 
 void main()
 {
diff --git a/chart2/opengl/commonFragmentShader.glsl b/chart2/opengl/commonFragmentShader.glsl
index 2f573ad..d602b21 100644
--- a/chart2/opengl/commonFragmentShader.glsl
+++ b/chart2/opengl/commonFragmentShader.glsl
@@ -9,7 +9,7 @@
 
 #version 150 core
 
-varying vec4 fragmentColor;
+in vec4 fragmentColor;
 
 void main()
 {
diff --git a/chart2/opengl/commonVertexShader.glsl b/chart2/opengl/commonVertexShader.glsl
index f48b4d0..145d4db 100644
--- a/chart2/opengl/commonVertexShader.glsl
+++ b/chart2/opengl/commonVertexShader.glsl
@@ -9,10 +9,10 @@
 
 #version 150 core
 
-attribute vec3 vPosition;
+in vec3 vPosition;
 uniform mat4 MVP;
 uniform vec4 vColor;
-varying vec4 fragmentColor;
+out vec4 fragmentColor;
 
 void main()
 {
diff --git a/chart2/opengl/debugFragmentShader.glsl b/chart2/opengl/debugFragmentShader.glsl
index d9255eb..92b005e 100644
--- a/chart2/opengl/debugFragmentShader.glsl
+++ b/chart2/opengl/debugFragmentShader.glsl
@@ -9,7 +9,7 @@
 
 #version 150 core
 
-varying vec4 fragmentColor;
+in vec4 fragmentColor;
 
 void main()
 {
diff --git a/chart2/opengl/debugVertexShader.glsl b/chart2/opengl/debugVertexShader.glsl
index 1768cc8..a542da8 100644
--- a/chart2/opengl/debugVertexShader.glsl
+++ b/chart2/opengl/debugVertexShader.glsl
@@ -9,9 +9,9 @@
 
 #version 150 core
 
-attribute vec3 vPosition;
+in vec3 vPosition;
 uniform vec4 vColor;
-varying vec4 fragmentColor;
+out vec4 fragmentColor;
 
 void main()
 {
diff --git a/chart2/opengl/pickingFragmentShader.glsl b/chart2/opengl/pickingFragmentShader.glsl
index 749fefc..d9e06a6 100644
--- a/chart2/opengl/pickingFragmentShader.glsl
+++ b/chart2/opengl/pickingFragmentShader.glsl
@@ -10,8 +10,8 @@
 #version 150 core
 
 uniform float minCoordX;
-varying vec3 positionWorldspace;
-varying vec4 fragmentColor;
+in vec3 positionWorldspace;
+in vec4 fragmentColor;
 
 void main()
 {
diff --git a/chart2/opengl/pickingVertexShader.glsl b/chart2/opengl/pickingVertexShader.glsl
index c009691..9dc5a14 100644
--- a/chart2/opengl/pickingVertexShader.glsl
+++ b/chart2/opengl/pickingVertexShader.glsl
@@ -9,14 +9,14 @@
 
 #version 150 core
 
-attribute vec3 vPosition;
+in vec3 vPosition;
 uniform mat4 MVP;
 uniform mat4 M;
 uniform vec4 vColor;
 uniform float minCoordX;
 uniform float maxCoordX;
-varying vec4 fragmentColor;
-varying vec3 positionWorldspace;
+out vec4 fragmentColor;
+out vec3 positionWorldspace;
 void main()
 {
     positionWorldspace = (M * vec4(vPosition,1)).xyz;
diff --git a/chart2/opengl/renderTextureFragmentShader.glsl b/chart2/opengl/renderTextureFragmentShader.glsl
index c037456..52dfde8 100644
--- a/chart2/opengl/renderTextureFragmentShader.glsl
+++ b/chart2/opengl/renderTextureFragmentShader.glsl
@@ -10,11 +10,12 @@
 #version 150 core
 
 uniform sampler2D RenderTex;
-varying vec2 vTexCoord;
+in vec2 vTexCoord;
+out vec4 actualColor;
 
 void main()
 {
-    gl_FragColor = vec4(texture2D(RenderTex, vTexCoord).rgb, 1.0);
+    actualColor = vec4(texture(RenderTex, vTexCoord).rgb, 1.0);
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/chart2/opengl/renderTextureVertexShader.glsl b/chart2/opengl/renderTextureVertexShader.glsl
index 80560cf..b9307fb 100644
--- a/chart2/opengl/renderTextureVertexShader.glsl
+++ b/chart2/opengl/renderTextureVertexShader.glsl
@@ -9,9 +9,9 @@
 
 #version 150 core
 
-attribute vec4 vPosition;
-attribute vec2 texCoord;
-varying vec2 vTexCoord;
+in vec4 vPosition;
+in vec2 texCoord;
+out vec2 vTexCoord;
 void main()
 {
     gl_Position =  vPosition;
diff --git a/chart2/opengl/screenTextFragmentShader.glsl b/chart2/opengl/screenTextFragmentShader.glsl
index b5b69c9..7c90ec0 100644
--- a/chart2/opengl/screenTextFragmentShader.glsl
+++ b/chart2/opengl/screenTextFragmentShader.glsl
@@ -9,7 +9,7 @@
 
 #version 150 core
 
-varying vec2 vTexCoord;
+in vec2 vTexCoord;
 uniform sampler2D TextTex;
 uniform vec4 textColor;
 void main()
diff --git a/chart2/opengl/screenTextVertexShader.glsl b/chart2/opengl/screenTextVertexShader.glsl
index ab3fb92..b0ab221 100644
--- a/chart2/opengl/screenTextVertexShader.glsl
+++ b/chart2/opengl/screenTextVertexShader.glsl
@@ -9,9 +9,9 @@
 
 #version 150 core
 
-attribute vec3 vPosition;
-attribute vec2 texCoord;
-varying vec2 vTexCoord;
+in vec3 vPosition;
+in vec2 texCoord;
+out vec2 vTexCoord;
 void main()
 {
     gl_Position =  vec4(vPosition, 1);
diff --git a/chart2/opengl/shape3DFragmentShaderV300.glsl b/chart2/opengl/shape3DFragmentShaderV300.glsl
index c9d4522..9a8ddea 100644
--- a/chart2/opengl/shape3DFragmentShaderV300.glsl
+++ b/chart2/opengl/shape3DFragmentShaderV300.glsl
@@ -11,8 +11,8 @@
 
 #define MAX_LIGHT_NUM 8
 
-varying vec3 positionWorldspace;
-varying vec3 normalCameraspace;
+in vec3 positionWorldspace;
+in vec3 normalCameraspace;
 
 uniform mat4 V;
 uniform vec4 materialAmbient;
diff --git a/chart2/opengl/shape3DVertexShaderV300.glsl b/chart2/opengl/shape3DVertexShaderV300.glsl
index 947ee5f..c5072fd 100644
--- a/chart2/opengl/shape3DVertexShaderV300.glsl
+++ b/chart2/opengl/shape3DVertexShaderV300.glsl
@@ -9,11 +9,11 @@
 
 #version 150 core
 
-attribute vec3 vertexPositionModelspace;
-attribute vec3 vertexNormalModelspace;
+in vec3 vertexPositionModelspace;
+in vec3 vertexNormalModelspace;
 
-varying vec3 positionWorldspace;
-varying vec3 normalCameraspace;
+out vec3 positionWorldspace;
+out vec3 normalCameraspace;
 
 uniform mat4 P;
 uniform mat4 M;
diff --git a/chart2/opengl/symbolFragmentShader.glsl b/chart2/opengl/symbolFragmentShader.glsl
index 4b0b464..35cc910 100644
--- a/chart2/opengl/symbolFragmentShader.glsl
+++ b/chart2/opengl/symbolFragmentShader.glsl
@@ -9,7 +9,7 @@
 
 #version 150 core
 
-varying vec4 fragmentColor;
+in vec4 fragmentColor;
 uniform int shape;
 
 void main()
diff --git a/chart2/opengl/symbolVertexShader.glsl b/chart2/opengl/symbolVertexShader.glsl
index 7e3a748..c5603b5 100644
--- a/chart2/opengl/symbolVertexShader.glsl
+++ b/chart2/opengl/symbolVertexShader.glsl
@@ -9,10 +9,10 @@
 
 #version 150 core
 
-attribute vec3 vPosition;
+in vec3 vPosition;
 uniform mat4 MVP;
 uniform vec4 vColor;
-varying vec4 fragmentColor;
+out vec4 fragmentColor;
 
 void main()
 {
diff --git a/chart2/opengl/textFragmentShader.glsl b/chart2/opengl/textFragmentShader.glsl
index 4f582a4..1c3af26 100644
--- a/chart2/opengl/textFragmentShader.glsl
+++ b/chart2/opengl/textFragmentShader.glsl
@@ -10,7 +10,7 @@
 #version 150 core
 
 uniform sampler2D TextTex;
-varying vec2 vTexCoord;
+in vec2 vTexCoord;
 void main()
 {
     vec3 color = texture2D(TextTex, vTexCoord).rgb;
diff --git a/chart2/opengl/textVertexShader.glsl b/chart2/opengl/textVertexShader.glsl
index 3f14ab9..351da30 100644
--- a/chart2/opengl/textVertexShader.glsl
+++ b/chart2/opengl/textVertexShader.glsl
@@ -9,10 +9,10 @@
 
 #version 150 core
 
-attribute vec3 vPosition;
+in vec3 vPosition;
 uniform mat4 MVP;
-attribute vec2 texCoord;
-varying vec2 vTexCoord;
+in vec2 texCoord;
+out vec2 vTexCoord;
 void main()
 {
     gl_Position =  MVP * vec4(vPosition, 1);
commit b1132b02ea6f384f99ba1236352ba235b81fd94c
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Fri Aug 15 06:14:51 2014 +0200

    we need to switch to OpenGL 3.2 core for OSX
    
    A 3.2 core context only supports GLSL 150 core and above. This at least
    removes all vompile errors related to missing or wrong version
    requirements. In a next step we need to make use of modern GLSL features
    now.
    
    Change-Id: I59f1bc84ab4f64cc6520309b7da25adc3e116997

diff --git a/chart2/opengl/backgroundFragmentShader.glsl b/chart2/opengl/backgroundFragmentShader.glsl
index 424ae31..646dd4f 100644
--- a/chart2/opengl/backgroundFragmentShader.glsl
+++ b/chart2/opengl/backgroundFragmentShader.glsl
@@ -7,7 +7,7 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
-#version 130
+#version 150 core core
 
 varying vec4 fragmentColor;
 
diff --git a/chart2/opengl/backgroundVertexShader.glsl b/chart2/opengl/backgroundVertexShader.glsl
index 239675c..3f2ae8e 100644
--- a/chart2/opengl/backgroundVertexShader.glsl
+++ b/chart2/opengl/backgroundVertexShader.glsl
@@ -7,7 +7,7 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
-#version 130
+#version 150 core
 
 attribute vec3 vPosition;
 uniform mat4 MVP;
diff --git a/chart2/opengl/commonFragmentShader.glsl b/chart2/opengl/commonFragmentShader.glsl
index 424ae31..2f573ad 100644
--- a/chart2/opengl/commonFragmentShader.glsl
+++ b/chart2/opengl/commonFragmentShader.glsl
@@ -7,7 +7,7 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
-#version 130
+#version 150 core
 
 varying vec4 fragmentColor;
 
diff --git a/chart2/opengl/commonVertexShader.glsl b/chart2/opengl/commonVertexShader.glsl
index efbb8f1..f48b4d0 100644
--- a/chart2/opengl/commonVertexShader.glsl
+++ b/chart2/opengl/commonVertexShader.glsl
@@ -7,7 +7,7 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
-#version 130
+#version 150 core
 
 attribute vec3 vPosition;
 uniform mat4 MVP;
diff --git a/chart2/opengl/debugFragmentShader.glsl b/chart2/opengl/debugFragmentShader.glsl
index 3366b15..d9255eb 100644
--- a/chart2/opengl/debugFragmentShader.glsl
+++ b/chart2/opengl/debugFragmentShader.glsl
@@ -7,7 +7,7 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
-#version 130
+#version 150 core
 
 varying vec4 fragmentColor;
 
diff --git a/chart2/opengl/debugVertexShader.glsl b/chart2/opengl/debugVertexShader.glsl
index 622727f..1768cc8 100644
--- a/chart2/opengl/debugVertexShader.glsl
+++ b/chart2/opengl/debugVertexShader.glsl
@@ -7,7 +7,7 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
-#version 130
+#version 150 core
 
 attribute vec3 vPosition;
 uniform vec4 vColor;
diff --git a/chart2/opengl/pickingFragmentShader.glsl b/chart2/opengl/pickingFragmentShader.glsl
index 9d3b7bb..749fefc 100644
--- a/chart2/opengl/pickingFragmentShader.glsl
+++ b/chart2/opengl/pickingFragmentShader.glsl
@@ -7,7 +7,7 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
-#version 130
+#version 150 core
 
 uniform float minCoordX;
 varying vec3 positionWorldspace;
diff --git a/chart2/opengl/pickingVertexShader.glsl b/chart2/opengl/pickingVertexShader.glsl
index d751a75..c009691 100644
--- a/chart2/opengl/pickingVertexShader.glsl
+++ b/chart2/opengl/pickingVertexShader.glsl
@@ -7,7 +7,7 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
-#version 130
+#version 150 core
 
 attribute vec3 vPosition;
 uniform mat4 MVP;
diff --git a/chart2/opengl/renderTextureFragmentShader.glsl b/chart2/opengl/renderTextureFragmentShader.glsl
index 8029d08..c037456 100644
--- a/chart2/opengl/renderTextureFragmentShader.glsl
+++ b/chart2/opengl/renderTextureFragmentShader.glsl
@@ -7,7 +7,7 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
-#version 130
+#version 150 core
 
 uniform sampler2D RenderTex;
 varying vec2 vTexCoord;
diff --git a/chart2/opengl/renderTextureVertexShader.glsl b/chart2/opengl/renderTextureVertexShader.glsl
index 43ab1b0..80560cf 100644
--- a/chart2/opengl/renderTextureVertexShader.glsl
+++ b/chart2/opengl/renderTextureVertexShader.glsl
@@ -7,7 +7,7 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
-#version 130
+#version 150 core
 
 attribute vec4 vPosition;
 attribute vec2 texCoord;
diff --git a/chart2/opengl/screenTextFragmentShader.glsl b/chart2/opengl/screenTextFragmentShader.glsl
index e1fb078..b5b69c9 100644
--- a/chart2/opengl/screenTextFragmentShader.glsl
+++ b/chart2/opengl/screenTextFragmentShader.glsl
@@ -7,7 +7,7 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
-#version 130
+#version 150 core
 
 varying vec2 vTexCoord;
 uniform sampler2D TextTex;
diff --git a/chart2/opengl/screenTextVertexShader.glsl b/chart2/opengl/screenTextVertexShader.glsl
index 5428875..ab3fb92 100644
--- a/chart2/opengl/screenTextVertexShader.glsl
+++ b/chart2/opengl/screenTextVertexShader.glsl
@@ -7,7 +7,7 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
-#version 130
+#version 150 core
 
 attribute vec3 vPosition;
 attribute vec2 texCoord;
diff --git a/chart2/opengl/shape3DFragmentShaderV300.glsl b/chart2/opengl/shape3DFragmentShaderV300.glsl
index c6888db..c9d4522 100644
--- a/chart2/opengl/shape3DFragmentShaderV300.glsl
+++ b/chart2/opengl/shape3DFragmentShaderV300.glsl
@@ -7,7 +7,7 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
-#version 130
+#version 150 core
 
 #define MAX_LIGHT_NUM 8
 
diff --git a/chart2/opengl/shape3DVertexShaderV300.glsl b/chart2/opengl/shape3DVertexShaderV300.glsl
index b28d9cc..947ee5f 100644
--- a/chart2/opengl/shape3DVertexShaderV300.glsl
+++ b/chart2/opengl/shape3DVertexShaderV300.glsl
@@ -7,7 +7,7 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
-#version 130
+#version 150 core
 
 attribute vec3 vertexPositionModelspace;
 attribute vec3 vertexNormalModelspace;
diff --git a/chart2/opengl/symbolFragmentShader.glsl b/chart2/opengl/symbolFragmentShader.glsl
index bb3e4da..4b0b464 100644
--- a/chart2/opengl/symbolFragmentShader.glsl
+++ b/chart2/opengl/symbolFragmentShader.glsl
@@ -7,7 +7,7 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
-#version 130
+#version 150 core
 
 varying vec4 fragmentColor;
 uniform int shape;
diff --git a/chart2/opengl/symbolVertexShader.glsl b/chart2/opengl/symbolVertexShader.glsl
index 0c6617e..7e3a748 100644
--- a/chart2/opengl/symbolVertexShader.glsl
+++ b/chart2/opengl/symbolVertexShader.glsl
@@ -7,7 +7,7 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
-#version 130
+#version 150 core
 
 attribute vec3 vPosition;
 uniform mat4 MVP;
diff --git a/chart2/opengl/textFragmentShader.glsl b/chart2/opengl/textFragmentShader.glsl
index 80ae00a..4f582a4 100644
--- a/chart2/opengl/textFragmentShader.glsl
+++ b/chart2/opengl/textFragmentShader.glsl
@@ -7,7 +7,7 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
-#version 130
+#version 150 core
 
 uniform sampler2D TextTex;
 varying vec2 vTexCoord;
diff --git a/chart2/opengl/textVertexShader.glsl b/chart2/opengl/textVertexShader.glsl
index c76223b..3f14ab9 100644
--- a/chart2/opengl/textVertexShader.glsl
+++ b/chart2/opengl/textVertexShader.glsl
@@ -7,7 +7,7 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
-#version 130
+#version 150 core
 
 attribute vec3 vPosition;
 uniform mat4 MVP;
commit f621c3f25348aeb327d50bde76ca3e3fbfaeccf9
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Fri Aug 15 05:59:28 2014 +0200

    make sure that all shaders contain a version string
    
    This is necessary for OSX where we are using a core context that does
    not implement any legacy features anymore.
    
    Change-Id: I59536e99761691d910fef62cf82ceb03e57725ae

diff --git a/chart2/opengl/backgroundFragmentShader.glsl b/chart2/opengl/backgroundFragmentShader.glsl
index 805789e..424ae31 100644
--- a/chart2/opengl/backgroundFragmentShader.glsl
+++ b/chart2/opengl/backgroundFragmentShader.glsl
@@ -7,6 +7,8 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
+#version 130
+
 varying vec4 fragmentColor;
 
 void main()
diff --git a/chart2/opengl/backgroundVertexShader.glsl b/chart2/opengl/backgroundVertexShader.glsl
index 6d9d6c2..239675c 100644
--- a/chart2/opengl/backgroundVertexShader.glsl
+++ b/chart2/opengl/backgroundVertexShader.glsl
@@ -7,6 +7,8 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
+#version 130
+
 attribute vec3 vPosition;
 uniform mat4 MVP;
 attribute vec4 vColor;
diff --git a/chart2/opengl/commonFragmentShader.glsl b/chart2/opengl/commonFragmentShader.glsl
index 805789e..424ae31 100644
--- a/chart2/opengl/commonFragmentShader.glsl
+++ b/chart2/opengl/commonFragmentShader.glsl
@@ -7,6 +7,8 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
+#version 130
+
 varying vec4 fragmentColor;
 
 void main()
diff --git a/chart2/opengl/commonVertexShader.glsl b/chart2/opengl/commonVertexShader.glsl
index f32e3fd..efbb8f1 100644
--- a/chart2/opengl/commonVertexShader.glsl
+++ b/chart2/opengl/commonVertexShader.glsl
@@ -7,6 +7,8 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
+#version 130
+
 attribute vec3 vPosition;
 uniform mat4 MVP;
 uniform vec4 vColor;
diff --git a/chart2/opengl/debugFragmentShader.glsl b/chart2/opengl/debugFragmentShader.glsl
index d36c4f4..3366b15 100644
--- a/chart2/opengl/debugFragmentShader.glsl
+++ b/chart2/opengl/debugFragmentShader.glsl
@@ -7,6 +7,8 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
+#version 130
+
 varying vec4 fragmentColor;
 
 void main()
diff --git a/chart2/opengl/debugVertexShader.glsl b/chart2/opengl/debugVertexShader.glsl
index 762de31..622727f 100644
--- a/chart2/opengl/debugVertexShader.glsl
+++ b/chart2/opengl/debugVertexShader.glsl
@@ -7,6 +7,8 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
+#version 130
+
 attribute vec3 vPosition;
 uniform vec4 vColor;
 varying vec4 fragmentColor;
diff --git a/chart2/opengl/pickingFragmentShader.glsl b/chart2/opengl/pickingFragmentShader.glsl
index e2fba03..9d3b7bb 100644
--- a/chart2/opengl/pickingFragmentShader.glsl
+++ b/chart2/opengl/pickingFragmentShader.glsl
@@ -6,6 +6,9 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
+
+#version 130
+
 uniform float minCoordX;
 varying vec3 positionWorldspace;
 varying vec4 fragmentColor;
diff --git a/chart2/opengl/pickingVertexShader.glsl b/chart2/opengl/pickingVertexShader.glsl
index df71ae1..d751a75 100644
--- a/chart2/opengl/pickingVertexShader.glsl
+++ b/chart2/opengl/pickingVertexShader.glsl
@@ -7,6 +7,8 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
+#version 130
+
 attribute vec3 vPosition;
 uniform mat4 MVP;
 uniform mat4 M;
diff --git a/chart2/opengl/renderTextureFragmentShader.glsl b/chart2/opengl/renderTextureFragmentShader.glsl
index a6c71f4..8029d08 100644
--- a/chart2/opengl/renderTextureFragmentShader.glsl
+++ b/chart2/opengl/renderTextureFragmentShader.glsl
@@ -7,6 +7,8 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
+#version 130
+
 uniform sampler2D RenderTex;
 varying vec2 vTexCoord;
 
diff --git a/chart2/opengl/renderTextureVertexShader.glsl b/chart2/opengl/renderTextureVertexShader.glsl
index dd11b15..43ab1b0 100644
--- a/chart2/opengl/renderTextureVertexShader.glsl
+++ b/chart2/opengl/renderTextureVertexShader.glsl
@@ -7,6 +7,8 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
+#version 130
+
 attribute vec4 vPosition;
 attribute vec2 texCoord;
 varying vec2 vTexCoord;
diff --git a/chart2/opengl/screenTextFragmentShader.glsl b/chart2/opengl/screenTextFragmentShader.glsl
index 1354bf1..e1fb078 100644
--- a/chart2/opengl/screenTextFragmentShader.glsl
+++ b/chart2/opengl/screenTextFragmentShader.glsl
@@ -7,6 +7,8 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
+#version 130
+
 varying vec2 vTexCoord;
 uniform sampler2D TextTex;
 uniform vec4 textColor;
diff --git a/chart2/opengl/screenTextVertexShader.glsl b/chart2/opengl/screenTextVertexShader.glsl
index 8d046f5..5428875 100644
--- a/chart2/opengl/screenTextVertexShader.glsl
+++ b/chart2/opengl/screenTextVertexShader.glsl
@@ -7,6 +7,8 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
+#version 130
+
 attribute vec3 vPosition;
 attribute vec2 texCoord;
 varying vec2 vTexCoord;
diff --git a/chart2/opengl/shape3DFragmentShader.glsl b/chart2/opengl/shape3DFragmentShader.glsl
index 5cb521a..5c1614c 100644
--- a/chart2/opengl/shape3DFragmentShader.glsl
+++ b/chart2/opengl/shape3DFragmentShader.glsl
@@ -6,6 +6,7 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
+
 #version 330 core
 #define MAX_LIGHT_NUM 8
 
diff --git a/chart2/opengl/shape3DFragmentShaderBatch.glsl b/chart2/opengl/shape3DFragmentShaderBatch.glsl
index be24dbf..e2a0961 100644
--- a/chart2/opengl/shape3DFragmentShaderBatch.glsl
+++ b/chart2/opengl/shape3DFragmentShaderBatch.glsl
@@ -6,6 +6,7 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
+
 #version 330 core
 #define MAX_LIGHT_NUM 8
 
diff --git a/chart2/opengl/shape3DFragmentShaderBatchScroll.glsl b/chart2/opengl/shape3DFragmentShaderBatchScroll.glsl
index 33e970f..a4686a3 100644
--- a/chart2/opengl/shape3DFragmentShaderBatchScroll.glsl
+++ b/chart2/opengl/shape3DFragmentShaderBatchScroll.glsl
@@ -6,6 +6,7 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
+
 #version 330 core
 #define MAX_LIGHT_NUM 8
 
diff --git a/chart2/opengl/shape3DFragmentShaderV300.glsl b/chart2/opengl/shape3DFragmentShaderV300.glsl
index 05e2770..c6888db 100644
--- a/chart2/opengl/shape3DFragmentShaderV300.glsl
+++ b/chart2/opengl/shape3DFragmentShaderV300.glsl
@@ -6,6 +6,9 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
+
+#version 130
+
 #define MAX_LIGHT_NUM 8
 
 varying vec3 positionWorldspace;
diff --git a/chart2/opengl/shape3DVertexShader.glsl b/chart2/opengl/shape3DVertexShader.glsl
index 7f8a6f0..9b763c9 100644
--- a/chart2/opengl/shape3DVertexShader.glsl
+++ b/chart2/opengl/shape3DVertexShader.glsl
@@ -6,7 +6,9 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
+
 #version 330 core
+
 in vec3 vertexPositionModelspace;
 in vec3 vertexNormalModelspace;
 
diff --git a/chart2/opengl/shape3DVertexShaderBatch.glsl b/chart2/opengl/shape3DVertexShaderBatch.glsl
index e0a1d30..46a91a2 100644
--- a/chart2/opengl/shape3DVertexShaderBatch.glsl
+++ b/chart2/opengl/shape3DVertexShaderBatch.glsl
@@ -6,7 +6,9 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
+
 #version 330 core
+
 in vec3 vertexPositionModelspace;
 in vec3 vertexNormalModelspace;
 in mat4 M;
diff --git a/chart2/opengl/shape3DVertexShaderBatchScroll.glsl b/chart2/opengl/shape3DVertexShaderBatchScroll.glsl
index 87946f7..2caff6e 100644
--- a/chart2/opengl/shape3DVertexShaderBatchScroll.glsl
+++ b/chart2/opengl/shape3DVertexShaderBatchScroll.glsl
@@ -6,7 +6,9 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
+
 #version 330 core
+
 in vec3 vertexPositionModelspace;
 in vec3 vertexNormalModelspace;
 in mat4 M;
diff --git a/chart2/opengl/shape3DVertexShaderV300.glsl b/chart2/opengl/shape3DVertexShaderV300.glsl
index a8da294..b28d9cc 100644
--- a/chart2/opengl/shape3DVertexShaderV300.glsl
+++ b/chart2/opengl/shape3DVertexShaderV300.glsl
@@ -6,6 +6,9 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
+
+#version 130
+
 attribute vec3 vertexPositionModelspace;
 attribute vec3 vertexNormalModelspace;
 
diff --git a/chart2/opengl/symbolFragmentShader.glsl b/chart2/opengl/symbolFragmentShader.glsl
index 3ac6b03..bb3e4da 100644
--- a/chart2/opengl/symbolFragmentShader.glsl
+++ b/chart2/opengl/symbolFragmentShader.glsl
@@ -7,7 +7,7 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
-#version 120
+#version 130
 
 varying vec4 fragmentColor;
 uniform int shape;
diff --git a/chart2/opengl/symbolVertexShader.glsl b/chart2/opengl/symbolVertexShader.glsl
index 3cf9f41..0c6617e 100644
--- a/chart2/opengl/symbolVertexShader.glsl
+++ b/chart2/opengl/symbolVertexShader.glsl
@@ -7,7 +7,7 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
-#version 120
+#version 130
 
 attribute vec3 vPosition;
 uniform mat4 MVP;
diff --git a/chart2/opengl/textFragmentShader.glsl b/chart2/opengl/textFragmentShader.glsl
index c1d44bc..80ae00a 100644
--- a/chart2/opengl/textFragmentShader.glsl
+++ b/chart2/opengl/textFragmentShader.glsl
@@ -7,6 +7,8 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
+#version 130
+
 uniform sampler2D TextTex;
 varying vec2 vTexCoord;
 void main()
diff --git a/chart2/opengl/textFragmentShaderBatch.glsl b/chart2/opengl/textFragmentShaderBatch.glsl
index 7008883..431fa4c 100644
--- a/chart2/opengl/textFragmentShaderBatch.glsl
+++ b/chart2/opengl/textFragmentShaderBatch.glsl
@@ -8,6 +8,7 @@
  */
 
 #version 330 core
+
 #extension GL_EXT_texture_array : enable
 
 uniform sampler2DArray texArray;
diff --git a/chart2/opengl/textVertexShader.glsl b/chart2/opengl/textVertexShader.glsl
index a805229..c76223b 100644
--- a/chart2/opengl/textVertexShader.glsl
+++ b/chart2/opengl/textVertexShader.glsl
@@ -7,6 +7,8 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
+#version 130
+
 attribute vec3 vPosition;
 uniform mat4 MVP;
 attribute vec2 texCoord;
diff --git a/chart2/opengl/textVertexShaderBatch.glsl b/chart2/opengl/textVertexShaderBatch.glsl
index e61beb6..d5ae496 100644
--- a/chart2/opengl/textVertexShaderBatch.glsl
+++ b/chart2/opengl/textVertexShaderBatch.glsl
@@ -8,6 +8,7 @@
  */
 
 #version 330 core
+
 in vec3 vPosition;
 in vec3 texCoord;
 
commit 0771823d80abadf8e7f2ccc078f3f9e2c277f8a5
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date:   Sat Aug 16 00:52:41 2014 +0200

    fix build
    
    Change-Id: If2f35d4ce68f604db1789e1535c341908628838d

diff --git a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx b/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx
index 1b516ca..53ea3c9 100644
--- a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx
+++ b/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx
@@ -54,6 +54,7 @@
 #include "helpids.hrc"
 #include "resourcemanager.hxx"
 
+#include <vcl/msgbox.hxx>
 #include <vcl/layout.hxx>
 #include <unotools/configitem.hxx>
 
commit d6cae8aa53c93da74650bfdf52fe47946ee870e4
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sat Aug 16 00:52:56 2014 +0200

    fix build again
    
    Change-Id: If3cfc7d1974036fe6110726da574b07975ab9aef

diff --git a/dbaccess/source/ui/querydesign/QueryDesignView.cxx b/dbaccess/source/ui/querydesign/QueryDesignView.cxx
index e33f646..1049b5d 100644
--- a/dbaccess/source/ui/querydesign/QueryDesignView.cxx
+++ b/dbaccess/source/ui/querydesign/QueryDesignView.cxx
@@ -30,6 +30,7 @@
 #include <vcl/svapp.hxx>
 #include <vcl/combobox.hxx>
 #include <vcl/msgbox.hxx>
+#include <vcl/layout.hxx>
 #include "browserids.hxx"
 #include "SelectionBrowseBox.hxx"
 #include "dbu_qry.hrc"
commit 549fd2d229c0f7b6538a73c902f2fa5cf06d180b
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sat Aug 16 00:39:23 2014 +0200

    fix build
    
    Change-Id: I770b941c065ca41541f27d01f78727d9d0e32a7e

diff --git a/cui/source/options/optjava.cxx b/cui/source/options/optjava.cxx
index 92bc52a..77f9e69 100644
--- a/cui/source/options/optjava.cxx
+++ b/cui/source/options/optjava.cxx
@@ -32,6 +32,7 @@
 #include <vcl/help.hxx>
 #include <tools/urlobj.hxx>
 #include <vcl/layout.hxx>
+#include <vcl/msgbox.hxx>
 #include <vcl/waitobj.hxx>
 #include <unotools/pathoptions.hxx>
 #include <svtools/imagemgr.hxx>
commit b8cf71937ff604e50b709246383942b6d90b35e6
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sat Aug 16 00:30:57 2014 +0200

    Revert "ErrorBox EBX_ERR_PRINTDISABLED to String"
    
    This reverts commit 90aecb31139a6743fd00c87585a82406e7d9f075.

diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
index cd5d860..8eed982 100644
--- a/desktop/source/app/app.cxx
+++ b/desktop/source/app/app.cxx
@@ -92,7 +92,7 @@
 #include <svtools/menuoptions.hxx>
 #include <rtl/bootstrap.hxx>
 #include <vcl/help.hxx>
-#include <vcl/layout.hxx>
+#include <vcl/msgbox.hxx>
 #include <vcl/settings.hxx>
 #include <sfx2/sfx.hrc>
 #include <sfx2/app.hxx>
@@ -2434,7 +2434,7 @@ void Desktop::OpenClients()
             ResMgr* pDtResMgr = GetDesktopResManager();
             if( pDtResMgr )
             {
-                MessageDialog aBox( NULL, ResId( STR_ERR_PRINTDISABLED, *pDtResMgr ) );
+                ErrorBox aBox( NULL, ResId( EBX_ERR_PRINTDISABLED, *pDtResMgr ) );
                 aBox.Execute();
             }
         }
diff --git a/desktop/source/app/desktop.hrc b/desktop/source/app/desktop.hrc
index 8a7affc..e9caf4a 100644
--- a/desktop/source/app/desktop.hrc
+++ b/desktop/source/app/desktop.hrc
@@ -28,6 +28,8 @@
 
 #define QBX_USERDATALOCKED                  (RID_DESKTOP_DIALOG_START+100)
 
+#define EBX_ERR_PRINTDISABLED               (RID_DESKTOP_DIALOG_START+190)
+
 #define STR_RECOVER_QUERY                   (RID_DESKTOP_STRING_START+0)
 #define STR_RECOVER_TITLE                   (RID_DESKTOP_STRING_START+1)
 #define STR_RECOVER_PREPARED                (RID_DESKTOP_STRING_START+2)
@@ -50,8 +52,6 @@
 
 #define STR_ASK_START_SETUP_MANUALLY        (RID_DESKTOP_STRING_START+152)
 
-#define STR_ERR_PRINTDISABLED               (RID_DESKTOP_STRING_START+153)
-
 #define STR_INTERNAL_ERRMSG                 (RID_DESKTOP_STRING_START+161)
 #define STR_LO_MUST_BE_RESTARTED            (RID_DESKTOP_STRING_START+162)
 
diff --git a/desktop/source/app/desktop.src b/desktop/source/app/desktop.src
index b109a0e..1036b21 100644
--- a/desktop/source/app/desktop.src
+++ b/desktop/source/app/desktop.src
@@ -151,9 +151,11 @@ String STR_TITLE_USERDATALOCKED
     Text [ en-US ] = "%PRODUCTNAME %PRODUCTVERSION";
 };
 
-String STR_ERR_PRINTDISABLED
+ErrorBox EBX_ERR_PRINTDISABLED
 {
-    Text [ en-US ] = "Printing is disabled. No documents can be printed.";
+    Buttons = WB_OK ;
+    DefButton = WB_DEF_OK ;
+    Message [ en-US ] = "Printing is disabled. No documents can be printed.";
 };
 
 String STR_TITLE_EXPIRED


More information about the Libreoffice-commits mailing list