[-]
[+]
|
Changed |
_service:tar_git:qtscenegraph-adaptation.changes
|
|
[-]
[+]
|
Changed |
_service:tar_git:qtscenegraph-adaptation-droid.spec
^
|
|
[-]
[+]
|
Changed |
_service
^
|
@@ -6,7 +6,7 @@
<service name="tar_git">
<param name="url">https://git.merproject.org/mer-core/qtscenegraph-adaptation.git</param>
<param name="branch">master</param>
- <param name="revision"></param>
+ <param name="revision">de6a1d9339d698e47e2e229394031e813d025d12</param>
<param name="token"/>
<param name="debian">N</param>
<param name="dumb">N</param>
|
[-]
[+]
|
Changed |
_service:tar_git:qtscenegraph-adaptation-0.7.tar.bz2/customcontext/context.cpp
^
|
@@ -95,14 +95,6 @@
#endif
#if QT_VERSION >= 0x050200
-#define CONTEXT_CLASS RenderContext
-#define CONTEXT_CLASS_BASE QSGRenderContext
-#else
-#define CONTEXT_CLASS Context
-#define CONTEXT_CLASS_BASE QSGContext
-#endif
-
-#if QT_VERSION >= 0x050200
#ifndef QSG_NO_RENDERER_TIMING
static bool qsg_render_timing = !qgetenv("QSG_RENDER_TIMING").isEmpty();
#endif
@@ -113,7 +105,7 @@
#if QT_VERSION >= 0x050200
RenderContext::RenderContext(QSGContext *ctx)
- : QSGRenderContext(ctx)
+ : RENDER_CONTEXT_CLASS_BASE(ctx)
{
#ifdef CUSTOMCONTEXT_DITHER
m_dither = qgetenv("CUSTOMCONTEXT_NO_DITHER").isEmpty();
@@ -147,7 +139,7 @@
shader = material->createShader();
compile(shader, material);
- QSGRenderContext::initialize(shader);
+ RENDER_CONTEXT_CLASS_BASE::initialize(shader);
m_materials[type] = shader;
#ifndef QSG_NO_RENDER_TIMING
@@ -161,7 +153,7 @@
#endif //QT_VERSION >= 0x050200
Context::Context(QObject *parent)
- : QSGContext(parent)
+ : CONTEXT_CLASS_BASE(parent)
, m_sampleCount(0)
, m_useMultisampling(false)
#ifdef CUSTOMCONTEXT_HYBRISTEXTURE
@@ -302,15 +294,22 @@
#endif // CUSTOMCONTEXT_HYBRISTEXTURE
- QSGContext::renderContextInitialized(ctx);
+ CONTEXT_CLASS_BASE::renderContextInitialized(ctx);
}
-void CONTEXT_CLASS::initialize(QOpenGLContext *context)
+#if QT_VERSION >= 0x050800
+void RENDER_CONTEXT_CLASS::initialize(void *inCtx)
{
+ QOpenGLContext *context = static_cast<QOpenGLContext*>(inCtx);
+#else
+void RENDER_CONTEXT_CLASS::initialize(QOpenGLContext *inCtx)
+{
+ QOpenGLContext *context = inCtx;
+#endif
#ifdef CUSTOMCONTEXT_DITHER
if (m_dither)
@@ -401,12 +400,12 @@
#endif
#endif
- CONTEXT_CLASS_BASE::initialize(context);
+ RENDER_CONTEXT_CLASS_BASE::initialize(inCtx);
}
-void CONTEXT_CLASS::invalidate()
+void RENDER_CONTEXT_CLASS::invalidate()
{
- CONTEXT_CLASS_BASE::invalidate();
+ RENDER_CONTEXT_CLASS_BASE::invalidate();
#ifdef CUSTOMCONTEXT_DITHER
delete m_ditherProgram;
@@ -439,7 +438,7 @@
#endif
#if QT_VERSION >= 0x050600
-QSGTexture *CONTEXT_CLASS::createTexture(const QImage &image, uint flags) const
+QSGTexture *RENDER_CONTEXT_CLASS::createTexture(const QImage &image, uint flags) const
{
if (flags & QQuickWindow::TextureCanUseAtlas) {
#ifdef CUSTOMCONTEXT_ATLASTEXTURE
@@ -484,12 +483,12 @@
#endif
- return CONTEXT_CLASS_BASE::createTexture(image, flags);
+ return RENDER_CONTEXT_CLASS_BASE::createTexture(image, flags);
}
#else
-QSGTexture *CONTEXT_CLASS::createTexture(const QImage &image) const
+QSGTexture *RENDER_CONTEXT_CLASS::createTexture(const QImage &image) const
{
#ifdef CUSTOMCONTEXT_ATLASTEXTURE
if (m_atlasTexture) {
@@ -504,7 +503,7 @@
return new MacTexture(image);
#endif
- return CONTEXT_CLASS_BASE::createTexture(image);
+ return RENDER_CONTEXT_CLASS_BASE::createTexture(image);
}
#if QT_VERSION >= 0x050200
@@ -537,7 +536,7 @@
}
#endif
- return CONTEXT_CLASS_BASE::createTextureNoAtlas(image);
+ return RENDER_CONTEXT_CLASS_BASE::createTextureNoAtlas(image);
}
// Qt 5.2 branch
@@ -547,7 +546,7 @@
#endif
-QSGRenderer *CONTEXT_CLASS::createRenderer()
+QSGRenderer *RENDER_CONTEXT_CLASS::createRenderer()
{
#ifdef CUSTOMCONTEXT_OVERLAPRENDERER
if (m_overlapRenderer) {
@@ -560,7 +559,7 @@
#ifdef CUSTOMCONTEXT_SIMPLERENDERER
return new QSGSimpleRenderer::Renderer(this);
#endif
- return CONTEXT_CLASS_BASE::createRenderer();
+ return RENDER_CONTEXT_CLASS_BASE::createRenderer();
}
@@ -576,7 +575,7 @@
return new SwapListeningAnimationDriver();
#endif
- return QSGContext::createAnimationDriver(parent);
+ return CONTEXT_CLASS_BASE::createAnimationDriver(parent);
}
@@ -616,9 +615,13 @@
-void CONTEXT_CLASS::renderNextFrame(QSGRenderer *renderer, GLuint fbo)
+if QT_VERSION >= 0x050800
+void RENDER_CONTEXT_CLASS::renderNextFrame(QSGRenderer *renderer, uint fbo)
+#else
+void RENDER_CONTEXT_CLASS::renderNextFrame(QSGRenderer *renderer, GLuint fbo)
+#endif
{
- CONTEXT_CLASS_BASE::renderNextFrame(renderer, fbo);
+ RENDER_CONTEXT_CLASS_BASE::renderNextFrame(renderer, fbo);
#ifdef CUSTOMCONTEXT_DITHER
if (m_dither) {
@@ -653,12 +656,12 @@
QSGImageNode *Context::createImageNode()
{
- return m_defaultImageNodes ? QSGContext::createImageNode() : new MSAAImageNode();
+ return m_defaultImageNodes ? CONTEXT_CLASS_BASE::createImageNode() : new MSAAImageNode();
}
QSGRectangleNode *Context::createRectangleNode()
{
- return m_defaultRectangleNodes ? QSGContext::createRectangleNode() : new MSAARectangleNode();
+ return m_defaultRectangleNodes ? CONTEXT_CLASS_BASE::createRectangleNode() : new MSAARectangleNode();
}
#endif
|
[-]
[+]
|
Changed |
_service:tar_git:qtscenegraph-adaptation-0.7.tar.bz2/customcontext/context.h
^
|
@@ -59,22 +59,51 @@
#include "threaduploadtexture.h"
#endif
+#if QT_VERSION >= 0x050800
+#include <private/qsgdefaultcontext_p.h>
+#include <private/qsgdefaultrendercontext_p.h>
+#endif
#if QT_VERSION >= 0x050200
struct QSGMaterialType;
#endif
+#if QT_VERSION >= 0x050800
+#define CONTEXT_CLASS Context
+#define CONTEXT_CLASS_BASE QSGDefaultContext
+#define RENDER_CONTEXT_CLASS RenderContext
+#define RENDER_CONTEXT_CLASS_BASE QSGDefaultRenderContext
+#define COMPILESHADER_METHOD compileShader
+#elif QT_VERSION >= 0x050200
+#define CONTEXT_CLASS Context
+#define CONTEXT_CLASS_BASE QSGContext
+#define RENDER_CONTEXT_CLASS RenderContext
+#define RENDER_CONTEXT_CLASS_BASE QSGRenderContext
+#define COMPILESHADER_METHOD compile
+#else
+#define CONTEXT_CLASS Context
+#define CONTEXT_CLASS_BASE QSGContext
+#define RENDER_CONTEXT_CLASS Context
+#define RENDER_CONTEXT_CLASS_BASE QSGContext
+#define COMPILESHADER_METHOD compile
+#endif
+
namespace CustomContext
{
#if QT_VERSION >= 0x050200
-class RenderContext : public QSGRenderContext
+class RenderContext : public RENDER_CONTEXT_CLASS_BASE
{
public:
RenderContext(QSGContext *ctx);
+ #if QT_VERSION < 0x050800
void initialize(QOpenGLContext *context);
- void invalidate();
void renderNextFrame(QSGRenderer *renderer, GLuint fbo);
+ #else
+ void initialize(void *context);
+ void renderNextFrame(QSGRenderer *renderer, uint fbo);
+ #endif
+ void invalidate();
#if QT_VERSION < 0x050600
QSGTexture *createTexture(const QImage &image) const;
@@ -86,7 +115,7 @@
QSGRenderer *createRenderer();
#ifdef PROGRAM_BINARY
- void compile(QSGMaterialShader *shader, QSGMaterial *material, const char *vertex = 0, const char *fragment = 0);
+ void COMPILESHADER_METHOD(QSGMaterialShader *shader, QSGMaterial *material, const char *vertex = 0, const char *fragment = 0);
#endif
#ifdef CUSTOMCONTEXT_DITHER
@@ -110,7 +139,7 @@
};
#endif
-class Context : public QSGContext
+class Context : public CONTEXT_CLASS_BASE
{
Q_OBJECT
public:
@@ -123,6 +152,7 @@
void initialize(QOpenGLContext *context);
void invalidate();
void renderNextFrame(QSGRenderer *renderer, GLuint fbo);
+
QSGTexture *createTexture(const QImage &image) const;
QSGRenderer *createRenderer();
#endif
|
[-]
[+]
|
Changed |
_service:tar_git:qtscenegraph-adaptation-0.7.tar.bz2/customcontext/pluginmain.h
^
|
@@ -60,6 +60,7 @@
QStringList keys() const;
QSGContext *create(const QString &key) const;
+ QSGContextFactoryInterface::Flags flags(const QString &key) const;
QQuickTextureFactory *createTextureFactoryFromImage(const QImage &image);
static CustomContext::Context *instance;
|
[-]
[+]
|
Changed |
_service:tar_git:qtscenegraph-adaptation-0.7.tar.bz2/customcontext/programbinary.cpp
^
|
@@ -151,7 +151,7 @@
void sanityCheck();
- void compileAndInsert(QSGRenderContext *rc, const QByteArray &key, QSGMaterialShader *s, QSGMaterial *m, const char *v, const char *f);
+ void compileAndInsert(RENDER_CONTEXT_CLASS_BASE *rc, const QByteArray &key, QSGMaterialShader *s, QSGMaterial *m, const char *v, const char *f);
private:
QCryptographicHash m_hash;
@@ -227,10 +227,10 @@
file.remove();
}
-void ProgramBinaryStore::compileAndInsert(QSGRenderContext *rc, const QByteArray &key, QSGMaterialShader *s, QSGMaterial *m, const char *v, const char *f)
+void ProgramBinaryStore::compileAndInsert(RENDER_CONTEXT_CLASS_BASE *rc, const QByteArray &key, QSGMaterialShader *s, QSGMaterial *m, const char *v, const char *f)
{
// Use the baseclass impl to do the actual compilation
- rc->QSGRenderContext::compile(s, m, v, f);
+ rc->RENDER_CONTEXT_CLASS_BASE::COMPILESHADER_METHOD(s, m, v, f);
QOpenGLShaderProgram *p = s->program();
if (p->isLinked()) {
ProgramBinary *b = new ProgramBinary;
@@ -252,13 +252,13 @@
}
}
-void RenderContext::compile(QSGMaterialShader *shader, QSGMaterial *material, const char *vertex, const char *fragment)
+void RenderContext::COMPILESHADER_METHOD(QSGMaterialShader *shader, QSGMaterial *material, const char *vertex, const char *fragment)
{
Q_ASSERT(QOpenGLContext::currentContext()->extensions().contains("GL_OES_get_program_binary"));
// We cannot cache shaders which have custom compilation
if (material->flags() & QSGMaterial::CustomCompileStep) {
- QSGRenderContext::compile(shader, material, vertex, fragment);
+ RENDER_CONTEXT_CLASS_BASE::COMPILESHADER_METHOD(shader, material, vertex, fragment);
return;
}
|
[-]
[+]
|
Changed |
_service:tar_git:qtscenegraph-adaptation-0.7.tar.bz2/customcontext/texture/hybristexture.cpp
^
|
@@ -67,6 +67,7 @@
#define EGL_NATIVE_BUFFER_HYBRIS 0x3140
+static bool customcontext_no_bgra = !qgetenv("QT_OPENGL_NO_BGRA").isEmpty();
namespace CustomContext {
@@ -101,16 +102,30 @@
eglHybrisReleaseNativeBuffer = (_eglHybrisReleaseNativeBuffer) eglGetProcAddress("eglHybrisReleaseNativeBuffer");
}
-NativeBuffer::NativeBuffer(const QImage &image)
+NativeBuffer::NativeBuffer(const QImage &image_in)
{
- hasAlpha = image.hasAlphaChannel();
- const QImage::Format iformat = image.format();
- format = iformat == QImage::Format_RGBA8888_Premultiplied
+ const QImage::Format iformat = image_in.format();
+ QImage image_swapped;
+ bool image_is_rgba = iformat == QImage::Format_RGBA8888_Premultiplied
|| iformat == QImage::Format_RGBX8888
- || iformat == QImage::Format_RGBA8888
- ? HYBRIS_PIXEL_FORMAT_RGBA_8888
- : HYBRIS_PIXEL_FORMAT_BGRA_8888;
+ || iformat == QImage::Format_RGBA8888;
+ const QImage &image = (customcontext_no_bgra && !image_is_rgba) ? image_swapped : image_in;
int usage = HYBRIS_USAGE_SW_READ_RARELY | HYBRIS_USAGE_SW_WRITE_RARELY | HYBRIS_USAGE_HW_TEXTURE;
+
+ hasAlpha = image.hasAlphaChannel();
+
+ if (customcontext_no_bgra && !image_is_rgba) {
+ image_swapped = image_in.rgbSwapped();
+ }
+
+ if (!customcontext_no_bgra) {
+ format = image_is_rgba
+ ? HYBRIS_PIXEL_FORMAT_RGBA_8888
+ : HYBRIS_PIXEL_FORMAT_BGRA_8888;
+ } else {
+ format = HYBRIS_PIXEL_FORMAT_RGBA_8888;
+ }
+
width = image.width();
height = image.height();
stride = 0;
|