Change-Id: I5a30f8c45e21344060ea6e61d440d6fea822f9de
#include <QtCore/qmath.h>
#include "qv8engine_p.h"
#include <QtCore/qmath.h>
#include "qv8engine_p.h"
-#include <QtOpenGL/QGLFramebufferObjectFormat>
-#include <QtOpenGL/QGLFramebufferObject>
#include "qdeclarativeengine.h"
QT_BEGIN_NAMESPACE
/*!
#include "qdeclarativeengine.h"
QT_BEGIN_NAMESPACE
/*!
{
if (!texture || !texture->textureId())
return QImage();
{
if (!texture || !texture->textureId())
return QImage();
- QGLFramebufferObjectFormat format;
- format.setAttachment(QGLFramebufferObject::CombinedDepthStencil);
+ QOpenGLFramebufferObjectFormat format;
+ format.setAttachment(QOpenGLFramebufferObject::CombinedDepthStencil);
format.setInternalTextureFormat(GL_RGBA);
format.setMipmap(false);
format.setInternalTextureFormat(GL_RGBA);
format.setMipmap(false);
- QGLFramebufferObject* fbo = new QGLFramebufferObject(texture->textureSize(), format);
+ QOpenGLFramebufferObject* fbo = new QOpenGLFramebufferObject(texture->textureSize(), format);
+#if 0
+ // ### refactor
fbo->drawTexture(QPointF(0,0), texture->textureId(), GL_TEXTURE_2D);
fbo->drawTexture(QPointF(0,0), texture->textureId(), GL_TEXTURE_2D);
QV8Context2DResource *r = v8_resource_cast<QV8Context2DResource>(info.This());
CHECK_CONTEXT(r)
QV8Context2DResource *r = v8_resource_cast<QV8Context2DResource>(info.This());
CHECK_CONTEXT(r)
return v8::Number::New(r->context->state.globalAlpha);
return v8::Number::New(r->context->state.globalAlpha);
-=======
- QV8Engine *engine = V8ENGINE_ACCESSOR();
- Q_UNUSED(engine)
-
- return v8::Boolean::New(r->context->valid());
->>>>>>> refactor
}
static void ctx2d_globalAlpha_set(v8::Local<v8::String>, v8::Local<v8::Value> value, const v8::AccessorInfo &info)
}
static void ctx2d_globalAlpha_set(v8::Local<v8::String>, v8::Local<v8::Value> value, const v8::AccessorInfo &info)
return v8::Undefined();
}
return v8::Undefined();
}
if (args.Length() == 1) {
horizontal = args[0]->BooleanValue();
} else if (args.Length() == 2) {
horizontal = args[0]->BooleanValue();
vertical = args[1]->BooleanValue();
if (args.Length() == 1) {
horizontal = args[0]->BooleanValue();
} else if (args.Length() == 2) {
horizontal = args[0]->BooleanValue();
vertical = args[1]->BooleanValue();
#if 0
// ### refactor
// blur the alpha channel
#if 0
// ### refactor
// blur the alpha channel
qt_blurImage(&blurPainter, shadowImg, state.shadowBlur, false, true);
blurPainter.end();
shadowImg = blurred;
qt_blurImage(&blurPainter, shadowImg, state.shadowBlur, false, true);
blurPainter.end();
shadowImg = blurred;
blurred.fill(Qt::transparent);
QPainter blurPainter(&blurred);
blurred.fill(Qt::transparent);
QPainter blurPainter(&blurred);
qt_blurImage(&blurPainter, r->image, blur, true, false);
qt_blurImage(&blurPainter, r->image, blur, true, false);
blurPainter.end();
r->image = blurred;
}
blurPainter.end();
r->image = blurred;
}
{
int offset = 0;
if (value == QSGContext2D::Start)
{
int offset = 0;
if (value == QSGContext2D::Start)
- value = QApplication::layoutDirection() == Qt::LeftToRight ? QSGContext2D::Left : QSGContext2D::Right;
+ value = QGuiApplication::layoutDirection() == Qt::LeftToRight ? QSGContext2D::Left : QSGContext2D::Right;
else if (value == QSGContext2D::End)
else if (value == QSGContext2D::End)
- value = QApplication::layoutDirection() == Qt::LeftToRight ? QSGContext2D::Right: QSGContext2D::Left;
+ value = QGuiApplication::layoutDirection() == Qt::LeftToRight ? QSGContext2D::Right: QSGContext2D::Left;
switch (value) {
case QSGContext2D::QSGContext2D::Center:
offset = metrics.width(text)/2;
switch (value) {
case QSGContext2D::QSGContext2D::Center:
offset = metrics.width(text)/2;
#include "qsgcontext2dcommandbuffer_p.h"
#include "qsgcanvasitem_p.h"
#include "qdeclarative.h"
#include "qsgcontext2dcommandbuffer_p.h"
#include "qsgcanvasitem_p.h"
#include "qdeclarative.h"
-#include <QtGui/QApplication>
#include <QtCore/QMutex>
#define HAS_SHADOW(offsetX, offsetY, blur, color) (color.isValid() && color.alpha() && (blur || offsetX || offsetY))
#include <QtCore/QMutex>
#define HAS_SHADOW(offsetX, offsetY, blur, color) (color.isValid() && color.alpha() && (blur || offsetX || offsetY))
QImage blurred(shadowImg.size(), QImage::Format_ARGB32);
blurred.fill(0);
QPainter blurPainter(&blurred);
QImage blurred(shadowImg.size(), QImage::Format_ARGB32);
blurred.fill(0);
QPainter blurPainter(&blurred);
qt_blurImage(&blurPainter, shadowImg, blur, true, false);
qt_blurImage(&blurPainter, shadowImg, blur, true, false);
blurPainter.end();
shadowImg = blurred;
}
blurPainter.end();
shadowImg = blurred;
}
#include "qsgitem_p.h"
#include "private/qsgtexture_p.h"
#include "qsgcontext2dcommandbuffer_p.h"
#include "qsgitem_p.h"
#include "private/qsgtexture_p.h"
#include "qsgcontext2dcommandbuffer_p.h"
+#include <QOpenGLPaintDevice>
-#include <QtOpenGL/QGLFramebufferObject>
-#include <QtOpenGL/QGLFramebufferObjectFormat>
+#include <QOpenGLFramebufferObject>
+#include <QOpenGLFramebufferObjectFormat>
#include <QtCore/QThread>
#define QT_MINIMUM_FBO_SIZE 64
#include <QtCore/QThread>
#define QT_MINIMUM_FBO_SIZE 64
QSGContext2DFBOTexture::QSGContext2DFBOTexture()
: QSGContext2DTexture()
, m_fbo(0)
QSGContext2DFBOTexture::QSGContext2DFBOTexture()
: QSGContext2DTexture()
, m_fbo(0)
{
m_threadRendering = false;
}
{
m_threadRendering = false;
}
source.moveTo(source.topLeft() - t->rect().topLeft());
target.moveTo(target.topLeft() - m_canvasWindow.topLeft());
source.moveTo(source.topLeft() - t->rect().topLeft());
target.moveTo(target.topLeft() - m_canvasWindow.topLeft());
- QGLFramebufferObject::blitFramebuffer(m_fbo, target, t->fbo(), source);
+ QOpenGLFramebufferObject::blitFramebuffer(m_fbo, target, t->fbo(), source);
}
}
QSGCanvasItem::RenderTarget QSGContext2DFBOTexture::renderTarget() const
}
}
QSGCanvasItem::RenderTarget QSGContext2DFBOTexture::renderTarget() const
delete m_fbo;
m_fbo = 0;
} else if (!m_fbo || m_fbo->size() != m_fboSize) {
delete m_fbo;
m_fbo = 0;
} else if (!m_fbo || m_fbo->size() != m_fboSize) {
- QGLFramebufferObjectFormat format;
- format.setAttachment(QGLFramebufferObject::CombinedDepthStencil);
+ QOpenGLFramebufferObjectFormat format;
+ format.setAttachment(QOpenGLFramebufferObject::CombinedDepthStencil);
format.setInternalTextureFormat(GL_RGBA);
format.setMipmap(false);
format.setTextureTarget(GL_TEXTURE_2D);
format.setInternalTextureFormat(GL_RGBA);
format.setMipmap(false);
format.setTextureTarget(GL_TEXTURE_2D);
glDisable(GL_DEPTH_TEST);
glDepthMask(false);
glDisable(GL_DEPTH_TEST);
glDepthMask(false);
- m_fbo = new QGLFramebufferObject(m_fboSize, format);
+ m_fbo = new QOpenGLFramebufferObject(m_fboSize, format);
glBindTexture(GL_TEXTURE_2D, m_fbo->texture());
updateBindOptions(false);
}
glBindTexture(GL_TEXTURE_2D, m_fbo->texture());
updateBindOptions(false);
}
+
+ m_fbo->bind();
+
+ if (!m_paint_device)
+ m_paint_device = new QOpenGLPaintDevice(m_fbo->size());
+
+ return m_paint_device;
}
void qt_quit_context2d_render_thread()
}
void qt_quit_context2d_render_thread()
#include "qsgcanvasitem_p.h"
#include "qsgcontext2d_p.h"
#include "qsgcanvasitem_p.h"
#include "qsgcontext2d_p.h"
-#include <QtOpenGL/QGLContext>
-#include <QtOpenGL/QGLFramebufferObject>
+#include <QOpenGLContext>
+#include <QOpenGLFramebufferObject>
#include <QtCore/QMutex>
#include <QtCore/QWaitCondition>
#include <QtCore/QMutex>
#include <QtCore/QWaitCondition>
private:
QImage m_grabedImage;
private:
QImage m_grabedImage;
- QGLFramebufferObject *m_fbo;
+ QOpenGLFramebufferObject *m_fbo;
QMutex m_mutex;
QWaitCondition m_condition;
QSize m_fboSize;
QMutex m_mutex;
QWaitCondition m_condition;
QSize m_fboSize;
+ QPaintDevice *m_paint_device;
};
class QSGPlainTexture;
};
class QSGPlainTexture;
#include "qsgcontext2dtile_p.h"
#include "qsgcontext2dtile_p.h"
-#include <QtOpenGL/QGLFramebufferObject>
-#include <QtOpenGL/QGLFramebufferObjectFormat>
+#include <QOpenGLFramebufferObject>
+#include <QOpenGLFramebufferObjectFormat>
+#include <QOpenGLPaintDevice>
QSGContext2DTile::QSGContext2DTile()
: m_dirty(true)
QSGContext2DTile::QSGContext2DTile()
: m_dirty(true)
m_painter.end();
if (m_device) {
m_painter.end();
if (m_device) {
m_painter.begin(m_device);
m_painter.resetTransform();
m_painter.setCompositionMode(QPainter::CompositionMode_Source);
m_painter.begin(m_device);
m_painter.resetTransform();
m_painter.setCompositionMode(QPainter::CompositionMode_Source);
QSGContext2DFBOTile::~QSGContext2DFBOTile()
{
delete m_fbo;
}
QSGContext2DFBOTile::~QSGContext2DFBOTile()
{
delete m_fbo;
}
+void QSGContext2DFBOTile::aboutToDraw()
+{
+ m_fbo->bind();
+ if (!m_device) {
+ m_device = new QOpenGLPaintDevice(rect().size());
+ }
+}
+
+
void QSGContext2DFBOTile::setRect(const QRect& r)
{
if (m_rect == r)
void QSGContext2DFBOTile::setRect(const QRect& r)
{
if (m_rect == r)
m_rect = r;
m_dirty = true;
if (!m_fbo || m_fbo->size() != r.size()) {
m_rect = r;
m_dirty = true;
if (!m_fbo || m_fbo->size() != r.size()) {
- QGLFramebufferObjectFormat format;
- format.setAttachment(QGLFramebufferObject::CombinedDepthStencil);
+ QOpenGLFramebufferObjectFormat format;
+ format.setAttachment(QOpenGLFramebufferObject::CombinedDepthStencil);
format.setInternalTextureFormat(GL_RGBA);
format.setMipmap(false);
format.setInternalTextureFormat(GL_RGBA);
format.setMipmap(false);
m_painter.end();
delete m_fbo;
m_painter.end();
delete m_fbo;
- m_fbo = new QGLFramebufferObject(r.size(), format);
+ m_fbo = new QOpenGLFramebufferObject(r.size(), format);
#define QSGCONTEXT2DTILE_P_H
#include "qsgcontext2d_p.h"
#define QSGCONTEXT2DTILE_P_H
#include "qsgcontext2d_p.h"
-#include <QtOpenGL/QGLFramebufferObject>
+#include <QOpenGLFramebufferObject>
virtual void setRect(const QRect& r) = 0;
virtual QPainter* createPainter(bool smooth = false);
virtual void setRect(const QRect& r) = 0;
virtual QPainter* createPainter(bool smooth = false);
+ virtual void aboutToDraw() {}
+
uint m_dirty : 1;
QRect m_rect;
QPaintDevice* m_device;
uint m_dirty : 1;
QRect m_rect;
QPaintDevice* m_device;
QSGContext2DFBOTile();
~QSGContext2DFBOTile();
virtual void setRect(const QRect& r);
QSGContext2DFBOTile();
~QSGContext2DFBOTile();
virtual void setRect(const QRect& r);
- QGLFramebufferObject* fbo() const {return m_fbo;}
+ QOpenGLFramebufferObject* fbo() const {return m_fbo;}
+
+protected:
+ void aboutToDraw();
+
- QGLFramebufferObject *m_fbo;
+
+
+ QOpenGLFramebufferObject *m_fbo;
};
class QSGContext2DImageTile : public QSGContext2DTile
};
class QSGContext2DImageTile : public QSGContext2DTile
}
s.vertexCode = qt_particles_template_vertex_code + s.vertexCode;
}
s.vertexCode = qt_particles_template_vertex_code + s.vertexCode;
-<<<<<<< HEAD
- m_material.setProgramSource(s);
- foreach (const QString &str, m_groups){
-=======
m_material->setProgramSource(s);
m_material->setProgramSource(s);
-
- foreach (const QString &str, m_particles){
->>>>>>> refactor
+ foreach (const QString &str, m_groups){
int gIdx = m_system->m_groupIds[str];
int count = m_system->m_groupData[gIdx]->size();
//Create Particle Geometry
int gIdx = m_system->m_groupIds[str];
int count = m_system->m_groupData[gIdx]->size();
//Create Particle Geometry