Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qquickcontext2d.cpp File Reference

(eee4e767ab77e6643b0b5992a6879b2f8230f700)

#include "qquickcontext2d_p.h"
#include "qquickcontext2dcommandbuffer_p.h"
#include "qquickcanvasitem_p.h"
#include <private/qtquickglobal_p.h>
#include <private/qquickcontext2dtexture_p.h>
#include <private/qquickitem_p.h>
#include <qsgrendererinterface.h>
#include <QtQuick/private/qsgcontext_p.h>
#include <private/qquicksvgparser_p.h>
#include <private/qquickimage_p_p.h>
#include <qqmlinfo.h>
#include <qqmlengine.h>
#include <private/qv4domerrors_p.h>
#include <private/qv4engine_p.h>
#include <private/qv4object_p.h>
#include <private/qv4qobjectwrapper_p.h>
#include <private/qquickwindow_p.h>
#include <private/qv4value_p.h>
#include <private/qv4functionobject_p.h>
#include <private/qv4objectproto_p.h>
#include <private/qv4scopedvalue_p.h>
#include <private/qlocale_tools_p.h>
#include <QtCore/qmath.h>
#include <QtCore/qvector.h>
#include <QtCore/private/qnumeric_p.h>
#include <QtCore/QRunnable>
#include <QtGui/qguiapplication.h>
#include <private/qguiapplication_p.h>
#include <qpa/qplatformintegration.h>
#include <private/qsgdefaultrendercontext_p.h>
#include <QtCore/qpointer.h>
#include <cmath>
#include "moc_qquickcontext2d_p.cpp"
Include dependency graph for qquickcontext2d.cpp:

Go to the source code of this file.

Classes

class  QQuickContext2DEngineData
struct  QV4::Heap::QQuickJSContext2D
struct  QV4::Heap::QQuickJSContext2DPrototype
struct  QV4::Heap::QQuickContext2DStyle
struct  QV4::Heap::QQuickJSContext2DPixelData
struct  QV4::Heap::QQuickJSContext2DImageData
struct  QQuickJSContext2D
struct  QQuickJSContext2DPrototype
struct  QQuickContext2DStyle
struct  QQuickJSContext2DPixelData
struct  QQuickJSContext2DImageData

Namespaces

namespace  QV4
namespace  QV4::Heap

Macros

#define CHECK_CONTEXT(r)
 \qmltype Context2D \nativetype QQuickContext2D \inqmlmodule QtQuick
#define CHECK_CONTEXT_SETTER(r)
#define qClamp(val, min, max)
#define CHECK_RGBA(c)
#define Q_TRY_SET_TOKEN(token, value, setStatement)

Enumerations

enum  FontToken {
  NoTokens = 0x00 , FontStyle = 0x01 , FontVariant = 0x02 , FontWeight = 0x04 ,
  NoTokens = 0x00 , FontStyle = 0x01 , FontVariant = 0x02 , FontWeight = 0x04
}
enum  FontToken {
  NoTokens = 0x00 , FontStyle = 0x01 , FontVariant = 0x02 , FontWeight = 0x04 ,
  NoTokens = 0x00 , FontStyle = 0x01 , FontVariant = 0x02 , FontWeight = 0x04
}

Functions

Q_QUICK_EXPORT QColor qt_color_from_string (const QV4::Value &name)
static int qParseFontSizeFromToken (QStringView fontSizeToken, bool &ok)
static bool qSetFontSizeFromToken (QFont &font, QStringView fontSizeToken)
static QStringList qExtractFontFamiliesFromString (QStringView fontFamiliesString)
static bool qSetFontFamilyFromTokens (QFont &font, const QStringList &fontFamilyTokens)
static QFont qt_font_from_string (const QString &fontString, const QFont &currentFont)
 DEFINE_OBJECT_VTABLE (QQuickJSContext2D)
 DEFINE_OBJECT_VTABLE (QQuickJSContext2DPrototype)
 DEFINE_OBJECT_VTABLE (QQuickContext2DStyle)
QImage qt_image_convolute_filter (const QImage &src, const QVector< qreal > &weights, int radius=0)
void qt_image_boxblur (QImage &image, int radius, bool quality)
static QPainter::CompositionMode qt_composite_mode_from_string (const QString &compositeOperator)
static QString qt_composite_mode_to_string (QPainter::CompositionMode op)
 DEFINE_OBJECT_VTABLE (QQuickJSContext2DPixelData)
 DEFINE_OBJECT_VTABLE (QQuickJSContext2DImageData)
static QV4::ReturnedValue qt_create_image_data (qreal w, qreal h, QV4::ExecutionEngine *v4, QImage &&image)
int baseLineOffset (QQuickContext2D::TextBaseLineType value, const QFontMetrics &metrics)
static int textAlignOffset (QQuickContext2D::TextAlignType value, const QFontMetrics &metrics, const QString &text)
static bool areCollinear (const QPointF &a, const QPointF &b, const QPointF &c)
static bool withinRange (qreal p, qreal a, qreal b)

Macro Definition Documentation

◆ CHECK_CONTEXT

#define CHECK_CONTEXT ( r)
Value:
if (!r || !r->d()->context() || !r->d()->context()->bufferValid()) \
THROW_GENERIC_ERROR("Not a Context2D object");
GLboolean r

\qmltype Context2D \nativetype QQuickContext2D \inqmlmodule QtQuick

Since
5.0

Provides 2D context for shapes on a Canvas item.

The Context2D object can be created by Canvas item's getContext() method:

Canvas {
id:canvas
onPaint:{
var ctx = canvas.getContext('2d');
//...
}
}
GLenum GLuint id
EGLContext ctx

The Context2D API implements the same \l {http://www.w3.org/TR/2dcontext}{W3C Canvas 2D Context API standard} with some enhanced features.

The Context2D API provides the rendering {context} which defines the methods and attributes needed to draw on the Canvas item. The following assigns the canvas rendering context to a {context} variable:

var context = mycanvas.getContext("2d")
static const QString context()
Definition java.cpp:398

The Context2D API renders the canvas as a coordinate system whose origin (0,0) is at the top left corner, as shown in the figure below. Coordinates increase along the {x} axis from left to right and along the {y} axis from top to bottom of the canvas.

Definition at line 95 of file qquickcontext2d.cpp.

◆ CHECK_CONTEXT_SETTER

#define CHECK_CONTEXT_SETTER ( r)
Value:
if (!r || !r->d()->context() || !r->d()->context()->bufferValid()) \
THROW_GENERIC_ERROR("Not a Context2D object");

Definition at line 98 of file qquickcontext2d.cpp.

◆ CHECK_RGBA

#define CHECK_RGBA ( c)
Value:
(c == '-' || c == '.' || (c >=0 && c <= 9))
const GLubyte * c

Definition at line 101 of file qquickcontext2d.cpp.

◆ Q_TRY_SET_TOKEN

#define Q_TRY_SET_TOKEN ( token,
value,
setStatement )
Value:
if (!(usedTokens & token)) { \
usedTokens |= token; \
setStatement; \
} else { \
qWarning().nospace() << "Context2D: Duplicate token " << QLatin1String(value) << " found in font string."; \
return currentFont; \
}
Token token
Definition keywords.cpp:452
EGLOutputLayerEXT EGLint EGLAttrib value
[3]
QLatin1StringView QLatin1String
Definition qstringfwd.h:34

Definition at line 319 of file qquickcontext2d.cpp.

◆ qClamp

#define qClamp ( val,
min,
max )
Value:
qMin(qMax(val, min), max)
static int qMax(int i1, int i2, int i3)
QT_BEGIN_NAMESPACE constexpr const T & qMin(const T &a, const T &b)
Definition qminmax.h:19
GLuint GLfloat * val

Definition at line 100 of file qquickcontext2d.cpp.

Enumeration Type Documentation

◆ FontToken [1/2]

enum FontToken
Enumerator
NoTokens 
FontStyle 
FontVariant 
FontWeight 
NoTokens 
FontStyle 
FontVariant 
FontWeight 

Definition at line 311 of file qquickcontext2d.cpp.

◆ FontToken [2/2]

enum FontToken
Enumerator
NoTokens 
FontStyle 
FontVariant 
FontWeight 
NoTokens 
FontStyle 
FontVariant 
FontWeight 

Definition at line 311 of file qquickcontext2d.cpp.

Function Documentation

◆ areCollinear()

bool areCollinear ( const QPointF & a,
const QPointF & b,
const QPointF & c )
inlinestatic

Definition at line 4182 of file qquickcontext2d.cpp.

◆ baseLineOffset()

int baseLineOffset ( QQuickContext2D::TextBaseLineType value,
const QFontMetrics & metrics )

Definition at line 4117 of file qquickcontext2d.cpp.

◆ DEFINE_OBJECT_VTABLE() [1/5]

DEFINE_OBJECT_VTABLE ( QQuickContext2DStyle )

◆ DEFINE_OBJECT_VTABLE() [2/5]

DEFINE_OBJECT_VTABLE ( QQuickJSContext2D )

◆ DEFINE_OBJECT_VTABLE() [3/5]

DEFINE_OBJECT_VTABLE ( QQuickJSContext2DImageData )

◆ DEFINE_OBJECT_VTABLE() [4/5]

DEFINE_OBJECT_VTABLE ( QQuickJSContext2DPixelData )

◆ DEFINE_OBJECT_VTABLE() [5/5]

DEFINE_OBJECT_VTABLE ( QQuickJSContext2DPrototype )

◆ qExtractFontFamiliesFromString()

QStringList qExtractFontFamiliesFromString ( QStringView fontFamiliesString)
static

Definition at line 220 of file qquickcontext2d.cpp.

◆ qParseFontSizeFromToken()

int qParseFontSizeFromToken ( QStringView fontSizeToken,
bool & ok )
static

Definition at line 174 of file qquickcontext2d.cpp.

◆ qSetFontFamilyFromTokens()

bool qSetFontFamilyFromTokens ( QFont & font,
const QStringList & fontFamilyTokens )
static

Definition at line 278 of file qquickcontext2d.cpp.

◆ qSetFontSizeFromToken()

bool qSetFontSizeFromToken ( QFont & font,
QStringView fontSizeToken )
static

Definition at line 190 of file qquickcontext2d.cpp.

◆ qt_color_from_string()

Q_QUICK_EXPORT QColor qt_color_from_string ( const QV4::Value & name)

Definition at line 102 of file qquickcontext2d.cpp.

◆ qt_composite_mode_from_string()

QPainter::CompositionMode qt_composite_mode_from_string ( const QString & compositeOperator)
static

Definition at line 784 of file qquickcontext2d.cpp.

◆ qt_composite_mode_to_string()

QString qt_composite_mode_to_string ( QPainter::CompositionMode op)
static

Definition at line 838 of file qquickcontext2d.cpp.

◆ qt_create_image_data()

QV4::ReturnedValue qt_create_image_data ( qreal w,
qreal h,
QV4::ExecutionEngine * v4,
QImage && image )
static

Definition at line 942 of file qquickcontext2d.cpp.

◆ qt_font_from_string()

QFont qt_font_from_string ( const QString & fontString,
const QFont & currentFont )
static

Definition at line 333 of file qquickcontext2d.cpp.

References NoTokens.

◆ qt_image_boxblur()

QT_BEGIN_NAMESPACE void qt_image_boxblur ( QImage & image,
int radius,
bool quality )

Definition at line 776 of file qquickcontext2d.cpp.

◆ qt_image_convolute_filter()

QImage qt_image_convolute_filter ( const QImage & src,
const QVector< qreal > & weights,
int radius = 0 )

Definition at line 700 of file qquickcontext2d.cpp.

◆ textAlignOffset()

int textAlignOffset ( QQuickContext2D::TextAlignType value,
const QFontMetrics & metrics,
const QString & text )
static

◆ withinRange()

bool withinRange ( qreal p,
qreal a,
qreal b )
inlinestatic

Definition at line 4188 of file qquickcontext2d.cpp.