summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorTor Lillqvist <tml@collabora.com>2016-01-26 11:17:57 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2016-02-08 14:14:55 +0000
commit59ebd032b834f31f2b3069395f7e7962a0adfea2 (patch)
tree5a123cad10bad8c6c9ec0d1e17a002431b78ca5a /vcl
parent572252b562075825a0ee7e8b6c2421d16e48f98c (diff)
tdf#97633 Add API to get the number of OpenGL buffer swaps, including ...
... through UNO (cherry picked from commits dff18c2be9c72aa05940982f506804eb41d3d79a, 2c55288357c9d5410afae58c1fbb97cdfabf0360, 32d98b2551644dea50e58f99ae921a82a0f69753 and 4cd058f3f6568724c65ac88769f17fcc6078da23) Change-Id: Iff29ac615ad4b6516790b1cbbde0215a3cd0efe6 Reviewed-on: https://gerrit.libreoffice.org/22209 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'vcl')
-rw-r--r--vcl/Library_vcl.mk4
-rw-r--r--vcl/inc/OpenGLWrapper.hxx20
-rw-r--r--vcl/osx/OpenGLWrapper.cxx27
-rw-r--r--vcl/source/opengl/OpenGLContext.cxx23
4 files changed, 17 insertions, 57 deletions
diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk
index b0804a05bf55..a9fe72fd73a4 100644
--- a/vcl/Library_vcl.mk
+++ b/vcl/Library_vcl.mk
@@ -106,10 +106,6 @@ $(eval $(call gb_Library_add_cxxflags,vcl,\
$(gb_OBJCXXFLAGS) \
))
-$(eval $(call gb_Library_add_exception_objects,vcl,\
- vcl/osx/OpenGLWrapper \
-))
-
endif
ifeq ($(ENABLE_JAVA),TRUE)
diff --git a/vcl/inc/OpenGLWrapper.hxx b/vcl/inc/OpenGLWrapper.hxx
deleted file mode 100644
index 9134801ea98a..000000000000
--- a/vcl/inc/OpenGLWrapper.hxx
+++ /dev/null
@@ -1,20 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * 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/.
- */
-
-#include "AppKit/NSOpenGLView.h"
-#include "AppKit/NSOpenGL.h"
-
-namespace OpenGLWrapper
-{
- void swapBuffers(NSOpenGLView* pView);
- void makeCurrent(NSOpenGLView* pView);
- void resetCurrent();
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/osx/OpenGLWrapper.cxx b/vcl/osx/OpenGLWrapper.cxx
deleted file mode 100644
index fc008f41929d..000000000000
--- a/vcl/osx/OpenGLWrapper.cxx
+++ /dev/null
@@ -1,27 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * 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/.
- */
-
-#include "OpenGLWrapper.hxx"
-
-void OpenGLWrapper::swapBuffers(NSOpenGLView* pView)
-{
- [[pView openGLContext] flushBuffer];
-}
-
-void OpenGLWrapper::makeCurrent(NSOpenGLView* pView)
-{
- [[pView openGLContext] makeCurrentContext];
-}
-
-void OpenGLWrapper::resetCurrent()
-{
- [NSOpenGLContext clearCurrentContext];
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/source/opengl/OpenGLContext.cxx b/vcl/source/opengl/OpenGLContext.cxx
index 82d987deeaae..bdd6a4e7e08e 100644
--- a/vcl/source/opengl/OpenGLContext.cxx
+++ b/vcl/source/opengl/OpenGLContext.cxx
@@ -11,6 +11,7 @@
#include <vcl/opengl/OpenGLContext.hxx>
#include <vcl/opengl/OpenGLHelper.hxx>
+#include <vcl/opengl/OpenGLWrapper.hxx>
#include <vcl/syschild.hxx>
#include <vcl/sysdata.hxx>
@@ -22,7 +23,8 @@
#if defined(MACOSX)
#include <premac.h>
-#include "OpenGLWrapper.hxx"
+#include <AppKit/NSOpenGLView.h>
+#include <AppKit/NSOpenGL.h>
#include <postmac.h>
#endif
@@ -49,6 +51,8 @@ static std::vector<GLXContext> g_vShareList;
static std::vector<HGLRC> g_vShareList;
#endif
+static sal_Int64 nBufferSwapCounter = 0;
+
GLWindow::~GLWindow()
{
#if defined( UNX ) && !defined MACOSX && !defined IOS && !defined ANDROID && !defined(LIBO_HEADLESS)
@@ -991,7 +995,7 @@ bool OpenGLContext::ImplInit()
VCL_GL_INFO("OpenGLContext::ImplInit----start");
NSOpenGLView* pView = getOpenGLView();
- OpenGLWrapper::makeCurrent(pView);
+ [[pView openGLContext] makeCurrentContext];
bool bRet = InitGLEW();
InitGLEWDebugging();
@@ -1265,7 +1269,7 @@ void OpenGLContext::reset()
m_aGLWin.hRC = 0;
}
#elif defined( MACOSX )
- OpenGLWrapper::resetCurrent();
+ [NSOpenGLContext clearCurrentContext];
#elif defined( IOS ) || defined( ANDROID ) || defined(LIBO_HEADLESS)
// nothing
#elif defined( UNX )
@@ -1421,7 +1425,7 @@ void OpenGLContext::makeCurrent()
}
#elif defined( MACOSX )
NSOpenGLView* pView = getOpenGLView();
- OpenGLWrapper::makeCurrent(pView);
+ [[pView openGLContext] makeCurrentContext];
#elif defined( IOS ) || defined( ANDROID ) || defined(LIBO_HEADLESS)
// nothing
#elif defined( UNX )
@@ -1512,7 +1516,7 @@ void OpenGLContext::resetCurrent()
wglMakeCurrent(NULL, NULL);
#elif defined( MACOSX )
(void) this; // loplugin:staticmethods
- OpenGLWrapper::resetCurrent();
+ [NSOpenGLContext clearCurrentContext];
#elif defined( IOS ) || defined( ANDROID ) || defined(LIBO_HEADLESS)
// nothing
#elif defined( UNX )
@@ -1529,13 +1533,15 @@ void OpenGLContext::swapBuffers()
SwapBuffers(m_aGLWin.hDC);
#elif defined( MACOSX )
NSOpenGLView* pView = getOpenGLView();
- OpenGLWrapper::swapBuffers(pView);
+ [[pView openGLContext] flushBuffer];
#elif defined( IOS ) || defined( ANDROID ) || defined(LIBO_HEADLESS)
// nothing
#elif defined( UNX )
glXSwapBuffers(m_aGLWin.dpy, m_aGLWin.win);
#endif
+ nBufferSwapCounter++;
+
static bool bSleep = getenv("SAL_GL_SLEEP_ON_SWAP");
if (bSleep)
{
@@ -1545,6 +1551,11 @@ void OpenGLContext::swapBuffers()
}
}
+sal_Int64 OpenGLWrapper::getBufferSwapCounter()
+{
+ return nBufferSwapCounter;
+}
+
void OpenGLContext::sync()
{
OpenGLZone aZone;