Hello community,
here is the log from the commit of package QMPlay2 for openSUSE:Factory checked in at 2016-01-01 19:48:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/QMPlay2 (Old)
and /work/SRC/openSUSE:Factory/.QMPlay2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "QMPlay2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/QMPlay2/QMPlay2.changes 2015-12-21 12:07:26.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.QMPlay2.new/QMPlay2.changes 2016-01-01 19:51:04.000000000 +0100
@@ -1,0 +2,16 @@
+Mon Dec 28 19:28:38 UTC 2015 - dap.darkness@gmail.com
+
+- Update to 15.12.25:
+ * KF5 Breeze style fixes in full screen;
+ * OpenGL 2 bugfix.
+- New requirements recommended by upstream.
+- Removed QMPlay2-Qt51.diff.
+
+-------------------------------------------------------------------
+Tue Dec 22 18:30:12 UTC 2015 - dap.darkness@gmail.com
+
+- Added QMPlay2-Qt51.diff to fix openSUSE 13.1' default Qt 5.1
+ build issue.
+- Fixed translations absence.
+
+-------------------------------------------------------------------
Old:
----
QMPlay2-src-15.12.06.tar.xz
New:
----
QMPlay2-src-15.12.25.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ QMPlay2.spec ++++++
--- /var/tmp/diff_new_pack.1MWu0j/_old 2016-01-01 19:51:05.000000000 +0100
+++ /var/tmp/diff_new_pack.1MWu0j/_new 2016-01-01 19:51:05.000000000 +0100
@@ -17,7 +17,7 @@
Name: QMPlay2
-Version: 15.12.06
+Version: 15.12.25
Release: 0
Summary: A Qt based media player, streamer and downloader
License: LGPL-3.0+
@@ -26,6 +26,9 @@
Source: http://kent.dl.sourceforge.net/project/zaps166/QMPlay2/QMPlay2-src-%{version}.tar.xz
BuildRequires: libXv-devel
+%if 0%{?suse_version} > 1310
+BuildRequires: libqt5-linguist
+%endif
BuildRequires: portaudio-devel
BuildRequires: pkgconfig(Qt5DBus)
BuildRequires: pkgconfig(Qt5Network)
@@ -39,7 +42,9 @@
BuildRequires: pkgconfig(libavutil)
BuildRequires: pkgconfig(libcddb)
BuildRequires: pkgconfig(libcdio)
+BuildRequires: pkgconfig(libgme)
BuildRequires: pkgconfig(libpulse)
+BuildRequires: pkgconfig(libsidplayfp)
BuildRequires: pkgconfig(libswresample)
BuildRequires: pkgconfig(libswscale)
BuildRequires: pkgconfig(libva)
++++++ QMPlay2-src-15.12.06.tar.xz -> QMPlay2-src-15.12.25.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-15.12.06/ChangeLog new/QMPlay2-src-15.12.25/ChangeLog
--- old/QMPlay2-src-15.12.06/ChangeLog 2015-12-06 20:42:38.000000000 +0100
+++ new/QMPlay2-src-15.12.25/ChangeLog 2015-12-25 22:11:25.000000000 +0100
@@ -1,3 +1,8 @@
+Changes in QMPlay2 build 15.12.25:
+ - KF5 Breeze style fixes in full screen,
+ - Qt5 <= 5.2 compilation fixes,
+ - OpenGL 2 bugfix,
+
Changes in QMPlay2 build 15.12.06:
- support for HEVC, VP8 and VP9 decoding in VA-API (depending on FFmpeg version),
- setting priorities of decoders and A/V outputs is now more convenient,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-15.12.06/README.md new/QMPlay2-src-15.12.25/README.md
--- old/QMPlay2-src-15.12.06/README.md 2015-12-05 22:57:36.000000000 +0100
+++ new/QMPlay2-src-15.12.25/README.md 2015-12-06 23:46:39.000000000 +0100
@@ -1,4 +1,4 @@
-#QMPlay2 - QT Media Player 2
+#QMPlay2 - Qt Media Player 2
QMPlay2 is a video and audio player. It can play all formats supported by FFmpeg, libmodplug (including J2B and SFX). It also supports Audio CD, raw files, Rayman 2 music and chiptunes. It contains YouTube and Prostopleer browser.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-15.12.06/src/gui/Main.cpp new/QMPlay2-src-15.12.25/src/gui/Main.cpp
--- old/QMPlay2-src-15.12.06/src/gui/Main.cpp 2015-12-04 02:16:58.000000000 +0100
+++ new/QMPlay2-src-15.12.25/src/gui/Main.cpp 2015-12-25 18:33:56.000000000 +0100
@@ -55,7 +55,7 @@
defaultModules << "OpenGL 2" << "DirectDraw";
#elif defined Q_OS_ANDROID
if ( type == "videoWriters" )
- defaultModules << "QPainter";
+ defaultModules << "QPainter" << "OpenGL 2";
#endif
QStringList availableModules;
const QString moduleType = type.mid( 0, typeLen );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-15.12.06/src/gui/VideoDock.cpp new/QMPlay2-src-15.12.25/src/gui/VideoDock.cpp
--- old/QMPlay2-src-15.12.06/src/gui/VideoDock.cpp 2015-12-03 01:20:08.000000000 +0100
+++ new/QMPlay2-src-15.12.25/src/gui/VideoDock.cpp 2015-12-25 22:10:31.000000000 +0100
@@ -7,6 +7,7 @@
#include
#include
+#include <QApplication>
#include <QMouseEvent>
#include <QFileInfo>
#include <QMimeData>
@@ -60,6 +61,9 @@
connect( &iDW, SIGNAL( resized( int, int ) ), this, SLOT( resizedIDW( int, int ) ) );
connect( this, SIGNAL( visibilityChanged( bool ) ), this, SLOT( visibilityChanged( bool ) ) );
connect( &QMPlay2Core, SIGNAL( dockVideo( QWidget * ) ), &iDW, SLOT( setWidget( QWidget * ) ) );
+
+ if ( ( isBreeze = qApp->style()->objectName() == "breeze" ) )
+ setStyle( &commonStyle );
}
void VideoDock::fullScreen( bool b )
@@ -72,7 +76,8 @@
setFeatures( DockWidget::NoDockWidgetFeatures );
setFloating( false );
- setStyle( &commonStyle );
+ if ( !isBreeze )
+ setStyle( &commonStyle );
}
else
{
@@ -91,7 +96,8 @@
setFeatures( DockWidget::AllDockWidgetFeatures );
setFloating( is_floating );
- setStyle( NULL );
+ if ( !isBreeze )
+ setStyle( NULL );
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-15.12.06/src/gui/VideoDock.hpp new/QMPlay2-src-15.12.25/src/gui/VideoDock.hpp
--- old/QMPlay2-src-15.12.06/src/gui/VideoDock.hpp 2015-10-17 20:25:48.000000000 +0200
+++ new/QMPlay2-src-15.12.25/src/gui/VideoDock.hpp 2015-12-25 22:10:23.000000000 +0100
@@ -47,7 +47,7 @@
QMenu *popupMenu;
QCommonStyle commonStyle;
int pixels;
- bool canPopup, is_floating;
+ bool canPopup, is_floating, isBreeze;
double touchZoom;
private slots:
void popup( const QPoint & );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-15.12.06/src/gui/VideoThr.cpp new/QMPlay2-src-15.12.25/src/gui/VideoThr.cpp
--- old/QMPlay2-src-15.12.06/src/gui/VideoThr.cpp 2015-11-29 15:58:40.000000000 +0100
+++ new/QMPlay2-src-15.12.25/src/gui/VideoThr.cpp 2015-12-23 01:05:53.000000000 +0100
@@ -476,6 +476,9 @@
}
#if defined(Q_WS_X11) || defined(X11_EXTRAS)
+ #ifdef X11_EXTRAS
+ #include <QGuiApplication>
+ #endif
#include <QX11Info>
#include
#endif
@@ -483,7 +486,7 @@
void VideoThr::write_slot( const QByteArray &frame )
{
#ifdef X11_EXTRAS
- if ( QX11Info::isPlatformX11() )
+ if ( QGuiApplication::platformName() == "xcb" )
#endif
#if defined(Q_WS_X11) || defined(X11_EXTRAS)
XResetScreenSaver( QX11Info::display() );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-15.12.06/src/modules/OpenGL2/OpenGL2Writer.cpp new/QMPlay2-src-15.12.25/src/modules/OpenGL2/OpenGL2Writer.cpp
--- old/QMPlay2-src-15.12.06/src/modules/OpenGL2/OpenGL2Writer.cpp 2015-12-02 21:30:24.000000000 +0100
+++ new/QMPlay2-src-15.12.25/src/modules/OpenGL2/OpenGL2Writer.cpp 2015-12-25 19:36:48.000000000 +0100
@@ -3,12 +3,10 @@
#include
#include
-#ifndef USE_NEW_OPENGL_API
- #include <QGLShaderProgram>
-#else
- #include <QOpenGLShaderProgram>
+#ifdef USE_NEW_OPENGL_API
#include <QOpenGLContext>
#endif
+
#include <QPainter>
#if !defined OPENGL_ES2 && !defined Q_OS_MAC
@@ -131,12 +129,13 @@
Drawable::Drawable( OpenGL2Writer &writer ) :
#endif
isOK( true ), paused( false ),
- shaderProgramYCbCr( NULL ), shaderProgramOSD( NULL ),
#ifndef OPENGL_ES2
+ supportsShaders( false ), canCreateNonPowerOfTwoTextures( false ),
glActiveTexture( NULL ),
#endif
writer( writer ),
- hasImage( false )
+ hasImage( false ),
+ texCoordYCbCrLoc( -1 ), positionYCbCrLoc( -1 ), texCoordOSDLoc( -1 ), positionOSDLoc( -1 )
{
grabGesture( Qt::PinchGesture );
setMouseTracking( true );
@@ -160,15 +159,41 @@
}
#ifndef USE_NEW_OPENGL_API
-bool Drawable::init()
+bool Drawable::testGL()
{
makeCurrent();
if ( ( isOK = isValid() ) )
- glInit();
+ {
+#ifndef OPENGL_ES2
+ initGLProc();
+ if ( !canCreateNonPowerOfTwoTextures || !supportsShaders || !glActiveTexture )
+ {
+ showOpenGLMissingFeaturesMessage();
+ isOK = false;
+ }
+ /* Reset variables */
+ supportsShaders = canCreateNonPowerOfTwoTextures = false;
+ glActiveTexture = NULL;
+#endif
+ }
doneCurrent();
return isOK;
}
#endif
+
+#ifndef OPENGL_ES2
+void Drawable::initGLProc()
+{
+ const char *glExtensions = ( const char * )glGetString( GL_EXTENSIONS );
+ if ( glExtensions )
+ {
+ supportsShaders = !!strstr( glExtensions, "GL_ARB_vertex_shader" ) && !!strstr( glExtensions, "GL_ARB_fragment_shader" ) && !!strstr( glExtensions, "GL_ARB_shader_objects" );
+ canCreateNonPowerOfTwoTextures = !!strstr( glExtensions, "GL_ARB_texture_non_power_of_two" );
+ }
+ glActiveTexture = ( GLActiveTexture )context()->getProcAddress( "glActiveTexture" );
+}
+#endif
+
void Drawable::clr()
{
hasImage = false;
@@ -199,6 +224,23 @@
}
#endif
+#ifndef OPENGL_ES2
+void Drawable::showOpenGLMissingFeaturesMessage()
+{
+ fprintf
+ (
+ stderr,
+ "GL_ARB_texture_non_power_of_two : %s\n"
+ "Vertex & fragment shader: %s\n"
+ "glActiveTexture: %s\n",
+ canCreateNonPowerOfTwoTextures ? "yes" : "no",
+ supportsShaders ? "yes" : "no",
+ glActiveTexture ? "yes" : "no"
+ );
+ QMPlay2Core.logError( "OpenGL 2 :: " + tr( "Sterownik musi obsługiwać multiteksturowanie, shadery oraz tekstury o dowolnym rozmiarze" ), true, true );
+}
+#endif
+
void Drawable::initializeGL()
{
int glMajor = 0, glMinor = 0;
@@ -223,65 +265,39 @@
glVer = "2";
#ifndef OPENGL_ES2
- bool supportsShaders = false, canCreateNonPowerOfTwoTextures = false;
- const char *glExtensions = ( const char * )glGetString( GL_EXTENSIONS );
- if ( glExtensions )
+ initGLProc();
+#ifndef USE_NEW_OPENGL_API
+ if ( !glActiveTexture ) //Be sure that "glActiveTexture" has valid pointer (don't check "supportsShaders" here)!
+#else
+ if ( !glActiveTexture || !canCreateNonPowerOfTwoTextures || !supportsShaders ) //"testGL()" doesn't work with "USE_NEW_OPENGL_API", so check features here!
+#endif
{
- supportsShaders = !!strstr( glExtensions, "GL_ARB_vertex_shader" ) && !!strstr( glExtensions, "GL_ARB_fragment_shader" ) && !!strstr( glExtensions, "GL_ARB_shader_objects" );
- canCreateNonPowerOfTwoTextures = !!strstr( glExtensions, "GL_ARB_texture_non_power_of_two" );
- }
- glActiveTexture = ( GLActiveTexture )context()->getProcAddress( "glActiveTexture" );
-
- if
- (
- !canCreateNonPowerOfTwoTextures ||
- !supportsShaders ||
- !glActiveTexture
- )
- {
- /*
- * If shader programs are already exists, new context was created without shaders support...
- * So the GPU/driver supports this feature and this is workaround for this strange behaviour.
- */
- if ( shaderProgramYCbCr && shaderProgramOSD && !supportsShaders )
- fprintf( stderr, "Shaders are already created and now they are not supported... Initialization is ignored.\n" );
- else
- {
- fprintf
- (
- stderr,
- "GL_ARB_texture_non_power_of_two : %s\n"
- "Vertex & fragment shader: %s\n"
- "glActiveTexture: %s\n",
- canCreateNonPowerOfTwoTextures ? "yes" : "no",
- supportsShaders ? "yes" : "no",
- glActiveTexture ? "yes" : "no"
- );
- QMPlay2Core.logError( "OpenGL 2 :: " + tr( "Sterownik musi obsługiwać multiteksturowanie, shadery oraz tekstury o dowolnym rozmiarze" ), true, true );
- isOK = false;
- }
+ showOpenGLMissingFeaturesMessage();
+ isOK = false;
return;
}
#endif
- delete shaderProgramYCbCr;
- delete shaderProgramOSD;
- shaderProgramYCbCr = new QGLShaderProgram( this );
- shaderProgramOSD = new QGLShaderProgram( this );
-
- /* YCbCr shader, use hue only when OpenGL/OpenGL|ES version >= 3.0, because it can be slow on old hardware and/or buggy drivers and may increase CPU usage! */
- shaderProgramYCbCr->addShaderFromSourceCode( QGLShader::Vertex, QString( vShaderYCbCrSrc ).arg( precisionStr ) );
- shaderProgramYCbCr->addShaderFromSourceCode( QGLShader::Fragment, QString( fShaderYCbCrSrc ).arg( precisionStr ).arg( (glMajor * 10 + glMinor >= 30) ? fShaderYCbCrHueSrc : "" ) );
- if ( shaderProgramYCbCr->bind() )
- {
- texCoordYCbCrLoc = shaderProgramYCbCr->attributeLocation( "aTexCoord" );
- positionYCbCrLoc = shaderProgramYCbCr->attributeLocation( "vPosition" );
-
- shaderProgramYCbCr->setUniformValue( "Ytex", 0 );
- shaderProgramYCbCr->setUniformValue( "Utex", 1 );
- shaderProgramYCbCr->setUniformValue( "Vtex", 2 );
-
- shaderProgramYCbCr->release();
+ /* YCbCr shader */
+ if ( shaderProgramYCbCr.shaders().isEmpty() )
+ {
+ shaderProgramYCbCr.addShaderFromSourceCode( QGLShader::Vertex, QString( vShaderYCbCrSrc ).arg( precisionStr ) );
+ /* Use hue only when OpenGL/OpenGL|ES version >= 3.0, because it can be slow on old hardware and/or buggy drivers and may increase CPU usage! */
+ shaderProgramYCbCr.addShaderFromSourceCode( QGLShader::Fragment, QString( fShaderYCbCrSrc ).arg( precisionStr ).arg( (glMajor * 10 + glMinor >= 30) ? fShaderYCbCrHueSrc : "" ) );
+ }
+ if ( shaderProgramYCbCr.bind() )
+ {
+ const qint32 newTexCoordLoc = shaderProgramYCbCr.attributeLocation( "aTexCoord" );
+ const qint32 newPositionLoc = shaderProgramYCbCr.attributeLocation( "vPosition" );
+ if ( newTexCoordLoc != newPositionLoc ) //If new locations are invalid, just leave them untouched...
+ {
+ texCoordYCbCrLoc = newTexCoordLoc;
+ positionYCbCrLoc = newPositionLoc;
+ }
+ shaderProgramYCbCr.setUniformValue( "Ytex", 0 );
+ shaderProgramYCbCr.setUniformValue( "Utex", 1 );
+ shaderProgramYCbCr.setUniformValue( "Vtex", 2 );
+ shaderProgramYCbCr.release();
}
else
{
@@ -291,16 +307,22 @@
}
/* OSD shader */
- shaderProgramOSD->addShaderFromSourceCode( QGLShader::Vertex, QString( vShaderOSDSrc ).arg( precisionStr ) );
- shaderProgramOSD->addShaderFromSourceCode( QGLShader::Fragment, QString( fShaderOSDSrc ).arg( precisionStr ) );
- if ( shaderProgramOSD->bind() )
+ if ( shaderProgramOSD.shaders().isEmpty() )
{
- texCoordOSDLoc = shaderProgramOSD->attributeLocation( "aTexCoord" );
- positionOSDLoc = shaderProgramOSD->attributeLocation( "vPosition" );
-
- shaderProgramOSD->setUniformValue( "tex", 3 );
-
- shaderProgramOSD->release();
+ shaderProgramOSD.addShaderFromSourceCode( QGLShader::Vertex, QString( vShaderOSDSrc ).arg( precisionStr ) );
+ shaderProgramOSD.addShaderFromSourceCode( QGLShader::Fragment, QString( fShaderOSDSrc ).arg( precisionStr ) );
+ }
+ if ( shaderProgramOSD.bind() )
+ {
+ const qint32 newTexCoordLoc = shaderProgramYCbCr.attributeLocation( "aTexCoord" );
+ const qint32 newPositionLoc = shaderProgramYCbCr.attributeLocation( "vPosition" );
+ if ( newTexCoordLoc != newPositionLoc ) //If new locations are invalid, just leave them untouched...
+ {
+ texCoordOSDLoc = newTexCoordLoc;
+ positionOSDLoc = newPositionLoc;
+ }
+ shaderProgramOSD.setUniformValue( "tex", 3 );
+ shaderProgramOSD.release();
}
else
{
@@ -414,23 +436,23 @@
hasImage = true;
}
- shaderProgramYCbCr->setAttributeArray( positionYCbCrLoc, verticesYCbCr[ writer.flip ], 2 );
- shaderProgramYCbCr->setAttributeArray( texCoordYCbCrLoc, texCoordYCbCr, 2 );
- shaderProgramYCbCr->enableAttributeArray( positionYCbCrLoc );
- shaderProgramYCbCr->enableAttributeArray( texCoordYCbCrLoc );
+ shaderProgramYCbCr.setAttributeArray( positionYCbCrLoc, verticesYCbCr[ writer.flip ], 2 );
+ shaderProgramYCbCr.setAttributeArray( texCoordYCbCrLoc, texCoordYCbCr, 2 );
+ shaderProgramYCbCr.enableAttributeArray( positionYCbCrLoc );
+ shaderProgramYCbCr.enableAttributeArray( texCoordYCbCrLoc );
- shaderProgramYCbCr->bind();
+ shaderProgramYCbCr.bind();
if ( doReset )
{
- shaderProgramYCbCr->setUniformValue( "scale", W / ( float )width(), H / ( float )height() );
- shaderProgramYCbCr->setUniformValue( "videoEq", Brightness, Contrast, Saturation, Hue );
+ shaderProgramYCbCr.setUniformValue( "scale", W / ( float )width(), H / ( float )height() );
+ shaderProgramYCbCr.setUniformValue( "videoEq", Brightness, Contrast, Saturation, Hue );
doReset = !resetDone;
}
glDrawArrays( GL_TRIANGLE_STRIP, 0, 4 );
- shaderProgramYCbCr->release();
+ shaderProgramYCbCr.release();
- shaderProgramYCbCr->disableAttributeArray( texCoordYCbCrLoc );
- shaderProgramYCbCr->disableAttributeArray( positionYCbCrLoc );
+ shaderProgramYCbCr.disableAttributeArray( texCoordYCbCrLoc );
+ shaderProgramYCbCr.disableAttributeArray( positionYCbCrLoc );
glActiveTexture( GL_TEXTURE3 );
@@ -467,19 +489,19 @@
right - 1.0f, -top + 1.0f,
};
- shaderProgramOSD->setAttributeArray( positionOSDLoc, verticesOSD, 2 );
- shaderProgramOSD->setAttributeArray( texCoordOSDLoc, texCoordOSD, 2 );
- shaderProgramOSD->enableAttributeArray( positionOSDLoc );
- shaderProgramOSD->enableAttributeArray( texCoordOSDLoc );
+ shaderProgramOSD.setAttributeArray( positionOSDLoc, verticesOSD, 2 );
+ shaderProgramOSD.setAttributeArray( texCoordOSDLoc, texCoordOSD, 2 );
+ shaderProgramOSD.enableAttributeArray( positionOSDLoc );
+ shaderProgramOSD.enableAttributeArray( texCoordOSDLoc );
glEnable( GL_BLEND );
- shaderProgramOSD->bind();
+ shaderProgramOSD.bind();
glDrawArrays( GL_TRIANGLE_STRIP, 0, 4 );
- shaderProgramOSD->release();
+ shaderProgramOSD.release();
glDisable( GL_BLEND );
- shaderProgramOSD->disableAttributeArray( texCoordOSDLoc );
- shaderProgramOSD->disableAttributeArray( positionOSDLoc );
+ shaderProgramOSD.disableAttributeArray( texCoordOSDLoc );
+ shaderProgramOSD.disableAttributeArray( positionOSDLoc );
}
osd_mutex.unlock();
@@ -633,7 +655,7 @@
fmt.setDepth( false );
fmt.setStencil( false );
drawable = new Drawable( *this, fmt );
- return drawable->init();
+ return drawable->testGL();
#else
drawable = new Drawable( *this );
return true;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-15.12.06/src/modules/OpenGL2/OpenGL2Writer.hpp new/QMPlay2-src-15.12.25/src/modules/OpenGL2/OpenGL2Writer.hpp
--- old/QMPlay2-src-15.12.06/src/modules/OpenGL2/OpenGL2Writer.hpp 2015-11-29 22:23:12.000000000 +0100
+++ new/QMPlay2-src-15.12.25/src/modules/OpenGL2/OpenGL2Writer.hpp 2015-12-25 18:01:48.000000000 +0100
@@ -3,11 +3,12 @@
#ifndef USE_NEW_OPENGL_API
#include <QGLWidget>
+ #include <QGLShaderProgram>
#else
#include <QOpenGLWidget>
+ #include <QOpenGLShaderProgram>
#endif
-class QGLShaderProgram;
class OpenGL2Writer;
class QMPlay2_OSD;
@@ -20,11 +21,15 @@
public:
#ifndef USE_NEW_OPENGL_API
Drawable( OpenGL2Writer &, const QGLFormat & );
- bool init();
+ bool testGL();
#else
Drawable( OpenGL2Writer & );
#endif
+#ifndef OPENGL_ES2
+ void initGLProc();
+#endif
+
void clr();
void resizeEvent( QResizeEvent * );
@@ -40,6 +45,10 @@
void resetClearCounter();
#endif
private:
+#ifndef OPENGL_ES2
+ void showOpenGLMissingFeaturesMessage();
+#endif
+
void initializeGL();
#ifndef USE_NEW_OPENGL_API
void resizeGL( int w, int h );
@@ -51,8 +60,9 @@
#endif
bool event( QEvent * );
- QGLShaderProgram *shaderProgramYCbCr, *shaderProgramOSD;
+ QGLShaderProgram shaderProgramYCbCr, shaderProgramOSD;
#ifndef OPENGL_ES2
+ bool supportsShaders, canCreateNonPowerOfTwoTextures;
GLActiveTexture glActiveTexture;
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-15.12.06/src/qmplay2/headers/Functions.hpp new/QMPlay2-src-15.12.25/src/qmplay2/headers/Functions.hpp
--- old/QMPlay2-src-15.12.06/src/qmplay2/headers/Functions.hpp 2015-12-03 20:21:58.000000000 +0100
+++ new/QMPlay2-src-15.12.25/src/qmplay2/headers/Functions.hpp 2015-12-20 21:18:28.000000000 +0100
@@ -70,11 +70,7 @@
#else
timespec now;
clock_gettime(
- #ifdef CLOCK_MONOTONIC_RAW
- CLOCK_MONOTONIC_RAW,
- #else
CLOCK_MONOTONIC,
- #endif
&now
);
return now.tv_sec + ( now.tv_nsec / 1000000000.0 );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-15.12.06/src/qmplay2/headers/QMPlay2Core.hpp new/QMPlay2-src-15.12.25/src/qmplay2/headers/QMPlay2Core.hpp
--- old/QMPlay2-src-15.12.06/src/qmplay2/headers/QMPlay2Core.hpp 2015-12-05 23:49:07.000000000 +0100
+++ new/QMPlay2-src-15.12.25/src/qmplay2/headers/QMPlay2Core.hpp 2015-12-25 17:07:10.000000000 +0100
@@ -1,7 +1,7 @@
#ifndef QMPLAY2CORE_HPP
#define QMPLAY2CORE_HPP
-#define QMPlay2Version "15.12.06"
+#define QMPlay2Version "15.12.25"
#if defined(__i386) || defined(__i386__) || defined(_M_IX86) || (__x86_64) || defined(__x86_64__) || defined(__amd64) || defined(_M_X64)
#define QMPLAY2_CPU_X86
@@ -104,7 +104,11 @@
}
inline bool isWorking()
{
+#if QT_VERSION < 0x050000
return working > 0;
+#else
+ return working.load() > 0; //For Qt5 <= 5.2
+#endif
}
private slots:
void restoreCursorSlot();