|
| Graphic (QQuickItem *parent=nullptr) |
| Construct a Graphic. More...
|
|
| QQuickItem (QQuickItem *parent) |
|
QQuickWindow * | window () const |
|
QQuickItem * | parentItem () const |
|
void | setParentItem (QQuickItem *parent) |
|
void | stackBefore (const QQuickItem *sibling) |
|
void | stackAfter (const QQuickItem *sibling) |
|
QRectF | childrenRect () |
|
QList< QQuickItem * > | childItems () const |
|
bool | clip () const |
|
void | setClip (bool) |
|
QString | state () const |
|
void | setState (const QString &) |
|
qreal | baselineOffset () const |
|
void | setBaselineOffset (qreal) |
|
qreal | x () const |
|
qreal | y () const |
|
void | setX (qreal) |
|
void | setY (qreal) |
|
qreal | width () const |
|
void | setWidth (qreal) |
|
void | resetWidth () |
|
void | setImplicitWidth (qreal) |
|
qreal | implicitWidth () const |
|
qreal | height () const |
|
void | setHeight (qreal) |
|
void | resetHeight () |
|
void | setImplicitHeight (qreal) |
|
qreal | implicitHeight () const |
|
TransformOrigin | transformOrigin () const |
|
void | setTransformOrigin (TransformOrigin) |
|
qreal | z () const |
|
void | setZ (qreal) |
|
qreal | rotation () const |
|
void | setRotation (qreal) |
|
qreal | scale () const |
|
void | setScale (qreal) |
|
qreal | opacity () const |
|
void | setOpacity (qreal) |
|
bool | isVisible () const |
|
void | setVisible (bool) |
|
bool | isEnabled () const |
|
void | setEnabled (bool) |
|
bool | smooth () const |
|
void | setSmooth (bool) |
|
bool | activeFocusOnTab () const |
|
void | setActiveFocusOnTab (bool) |
|
bool | antialiasing () const |
|
void | setAntialiasing (bool) |
|
void | resetAntialiasing () |
|
Flags | flags () const |
|
void | setFlag (Flag flag, bool enabled) |
|
void | setFlags (QFlags< QQuickItem::Flag > flags) |
|
bool | hasActiveFocus () const |
|
bool | hasFocus () const |
|
void | setFocus (bool) |
|
void | setFocus (bool focus, Qt::FocusReason reason) |
|
bool | isFocusScope () const |
|
QQuickItem * | scopedFocusItem () const |
|
Qt::MouseButtons | acceptedMouseButtons () const |
|
void | setAcceptedMouseButtons (Qt::MouseButtons buttons) |
|
bool | acceptHoverEvents () const |
|
void | setAcceptHoverEvents (bool enabled) |
|
QCursor | cursor () const |
|
void | setCursor (const QCursor &cursor) |
|
void | unsetCursor () |
|
void | grabMouse () |
|
void | ungrabMouse () |
|
bool | keepMouseGrab () const |
|
void | setKeepMouseGrab (bool keep) |
|
bool | filtersChildMouseEvents () const |
|
void | setFiltersChildMouseEvents (bool filter) |
|
void | grabTouchPoints (const QVector< int > &ids) |
|
void | ungrabTouchPoints () |
|
bool | keepTouchGrab () const |
|
void | setKeepTouchGrab (bool keep) |
|
virtual bool | contains (const QPointF &point) const |
|
QPointF | mapToItem (const QQuickItem *item, const QPointF &point) const |
|
QPointF | mapToScene (const QPointF &point) const |
|
QRectF | mapRectToItem (const QQuickItem *item, const QRectF &rect) const |
|
QRectF | mapRectToScene (const QRectF &rect) const |
|
QPointF | mapFromItem (const QQuickItem *item, const QPointF &point) const |
|
QPointF | mapFromScene (const QPointF &point) const |
|
QRectF | mapRectFromItem (const QQuickItem *item, const QRectF &rect) const |
|
QRectF | mapRectFromScene (const QRectF &rect) const |
|
void | polish () |
|
void | forceActiveFocus () |
|
void | forceActiveFocus (Qt::FocusReason reason) |
|
QQuickItem * | nextItemInFocusChain (bool forward) |
|
QQuickItem * | childAt (qreal x, qreal y) const |
|
virtual QVariant | inputMethodQuery (Qt::InputMethodQuery query) const |
|
virtual bool | isTextureProvider () const |
|
virtual QSGTextureProvider * | textureProvider () const |
|
void | update () |
|
void | windowChanged (QQuickWindow *window) |
|
| QObject (QObject *parent) |
|
virtual bool | eventFilter (QObject *watched, QEvent *event) |
|
virtual const QMetaObject * | metaObject () const |
|
QString | objectName () const |
|
void | setObjectName (const QString &name) |
|
bool | isWidgetType () const |
|
bool | isWindowType () const |
|
bool | signalsBlocked () const |
|
bool | blockSignals (bool block) |
|
QThread * | thread () const |
|
void | moveToThread (QThread *targetThread) |
|
int | startTimer (int interval, Qt::TimerType timerType) |
|
void | killTimer (int id) |
|
T | findChild (const QString &name, QFlags< Qt::FindChildOption > options) const |
|
QList< T > | findChildren (const QString &name, QFlags< Qt::FindChildOption > options) const |
|
QList< T > | findChildren (const QRegExp ®Exp, QFlags< Qt::FindChildOption > options) const |
|
QList< T > | findChildren (const QRegularExpression &re, QFlags< Qt::FindChildOption > options) const |
|
const QObjectList & | children () const |
|
void | setParent (QObject *parent) |
|
void | installEventFilter (QObject *filterObj) |
|
void | removeEventFilter (QObject *obj) |
|
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const |
|
bool | disconnect (const char *signal, const QObject *receiver, const char *method) const |
|
bool | disconnect (const QObject *receiver, const char *method) const |
|
void | dumpObjectTree () |
|
void | dumpObjectInfo () |
|
bool | setProperty (const char *name, const QVariant &value) |
|
QVariant | property (const char *name) const |
|
QList< QByteArray > | dynamicPropertyNames () const |
|
void | destroyed (QObject *obj) |
|
void | objectNameChanged (const QString &objectName) |
|
QObject * | parent () const |
|
bool | inherits (const char *className) const |
|
void | deleteLater () |
|
virtual void | classBegin ()=0 |
|
virtual void | componentComplete ()=0 |
|
QString | tr (const char *sourceText, const char *disambiguation, int n) |
|
QString | trUtf8 (const char *sourceText, const char *disambiguation, int n) |
|
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type) |
|
QMetaObject::Connection | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type) |
|
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type) |
|
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, Functor functor) |
|
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type) |
|
bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method) |
|
bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method) |
|
bool | disconnect (const QMetaObject::Connection &connection) |
|
bool | disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method) |
|
typedef | Flags |
|
| parent |
|
| x |
|
| y |
|
| z |
|
| width |
|
| height |
|
| opacity |
|
| enabled |
|
| visible |
|
| state |
|
| childrenRect |
|
| baselineOffset |
|
| clip |
|
| focus |
|
| activeFocus |
|
| activeFocusOnTab |
|
| rotation |
|
| scale |
|
| transformOrigin |
|
| smooth |
|
| antialiasing |
|
| implicitWidth |
|
| implicitHeight |
|
| objectName |
|
Graphic which renders LiquidFun particles as blobs with a variety of effects.
GL frame buffers are used to render particles offscreen, then blend them into the current scene. The effect contains three components:
- Highlight around particles
- Fake specular lighting
- Inner shadow effect
Both (1) and (2) are accomplished using an inner bevel effect. This is implemented in ParticleRendererInnerBevel.fsh. The inner shadow effect is implemented in ParticleRendererInnerShadow.fsh. To render both of these effects, particles are first rendered to an FBO of size FBO_SIZE. This generates an approximate "height map", with the centers of particles being the highest points, and the edges of particles being lowest points. From that we can then compute edges and gradient vectors used for highlights and fake lighting.
For efficiency, these two effects are combined when possible into a single shader. This is implemented in ParticleRendererCombined.fsh, and currently requires the GL extension GL_EXT_shader_framebuffer_fetch.
- Note
- Currently particles are rendered to our offscreen frame buffer during the synchronization phase. This means that we lose the benefits of having a render thread for that process.