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
qpaintengine_raster.cpp File Reference

(4d11d9fe9cf4da574d69d0a7d7252495c4777b6e)

#include <QtCore/qglobal.h>
#include <QtCore/qmutex.h>
#include <private/qrasterdefs_p.h>
#include <private/qgrayraster_p.h>
#include <qpainterpath.h>
#include <qdebug.h>
#include <qbitmap.h>
#include "qmath_p.h"
#include <qrandom.h>
#include <private/qtextengine_p.h>
#include <private/qfontengine_p.h>
#include <private/qpixmap_raster_p.h>
#include <private/qimage_p.h>
#include <private/qstatictext_p.h>
#include <private/qcosmeticstroker_p.h>
#include <private/qdrawhelper_p.h>
#include <private/qmemrotate_p.h>
#include <private/qpixellayout_p.h>
#include <private/qrgba64_p.h>
#include "qpaintengine_raster_p.h"
#include "qoutlinemapper_p.h"
#include <limits.h>
#include <algorithm>
Include dependency graph for qpaintengine_raster.cpp:

Go to the source code of this file.

Classes

class  QRectVectorPath
struct  ClipData
struct  QRasterFloatPoint
struct  VisibleGlyphRange
class  QGradientCache
struct  QGradientCache::CacheInfo

Macros

#define QT_FT_BEGIN_HEADER
#define QT_FT_END_HEADER
#define qt_swap_int(x, y)
#define qt_swap_qreal(x, y)
#define QT_FAST_SPANS
#define int_dim(pos, dim)

Enumerations

enum  LineDrawMode {
  LineDrawClipped , LineDrawNormal , LineDrawIncludeLastPixel , LineDrawClipped ,
  LineDrawNormal , LineDrawIncludeLastPixel
}
enum  LineDrawMode {
  LineDrawClipped , LineDrawNormal , LineDrawIncludeLastPixel , LineDrawClipped ,
  LineDrawNormal , LineDrawIncludeLastPixel
}

Functions

Q_GUI_EXPORT bool qt_scaleForTransform (const QTransform &transform, qreal *scale)
static void qt_span_fill_clipRect (int count, const QT_FT_Span *spans, void *userData)
static void qt_span_fill_clipped (int count, const QT_FT_Span *spans, void *userData)
static void qt_span_clip (int count, const QT_FT_Span *spans, void *userData)
static void drawEllipse_midpoint_i (const QRect &rect, const QRect &clip, ProcessSpans pen_func, ProcessSpans brush_func, QSpanData *pen_data, QSpanData *brush_data)
static void qt_ft_outline_move_to (qfixed x, qfixed y, void *data)
static void qt_ft_outline_line_to (qfixed x, qfixed y, void *data)
static void qt_ft_outline_cubic_to (qfixed c1x, qfixed c1y, qfixed c2x, qfixed c2y, qfixed ex, qfixed ey, void *data)
static void qrasterpaintengine_state_setNoClip (QRasterPaintEngineState *s)
static void qrasterpaintengine_dirty_clip (QRasterPaintEnginePrivate *d, QRasterPaintEngineState *s)
static void fillRect_normalized (const QRect &r, QSpanData *data, QRasterPaintEnginePrivate *pe)
static QColor qPremultiplyWithExtraAlpha (const QColor &c, int alpha)
static bool isAbove (const QPointF *a, const QPointF *b)
static bool splitPolygon (const QPointF *points, int pointCount, QList< QPointF > *upper, QList< QPointF > *lower)
static int fast_ceil_positive (const qreal &v)
static const QRect toAlignedRect_positive (const QRectF &rect)
QRectF qt_mapRect_non_normalizing (const QRectF &r, const QTransform &t)
static bool monoVal (const uchar *s, int x)
static VisibleGlyphRange visibleGlyphRange (const QRectF &clip, QFontEngine *fontEngine, glyph_t *glyphs, QFixedPoint *positions, int numGlyphs)
int QT_MANGLE_NAMESPACE q_gray_rendered_spans (QT_FT_Raster raster)
static ucharalignAddress (uchar *address, quintptr alignmentMask)
static const QT_FT_Spanqt_intersect_spans (const QClipData *clip, int *currentClip, const QT_FT_Span *spans, const QT_FT_Span *end, QT_FT_Span **outSpans, int available)
static int qt_intersect_spans (QT_FT_Span *&spans, int numSpans, const QRect &clip)
Q_GUI_EXPORT QImage qt_imageForBrush (int brushStyle, bool invert)
static void drawEllipsePoints (int x, int y, int length, const QRect &rect, const QRect &clip, ProcessSpans pen_func, ProcessSpans brush_func, QSpanData *pen_data, QSpanData *brush_data)

Macro Definition Documentation

◆ int_dim

#define int_dim ( pos,
dim )
Value:
(int(pos+dim) - int(pos))

Definition at line 115 of file qpaintengine_raster.cpp.

◆ QT_FAST_SPANS

#define QT_FAST_SPANS

Definition at line 109 of file qpaintengine_raster.cpp.

◆ QT_FT_BEGIN_HEADER

#define QT_FT_BEGIN_HEADER

Definition at line 7 of file qpaintengine_raster.cpp.

◆ QT_FT_END_HEADER

#define QT_FT_END_HEADER

Definition at line 8 of file qpaintengine_raster.cpp.

◆ qt_swap_int

#define qt_swap_int ( x,
y )
Value:
{ int tmp = (x); (x) = (y); (y) = tmp; }
GLint GLint GLint GLint GLint x
GLint y

Definition at line 101 of file qpaintengine_raster.cpp.

◆ qt_swap_qreal

#define qt_swap_qreal ( x,
y )
Value:
{ qreal tmp = (x); (x) = (y); (y) = tmp; }
double qreal
Definition qtypes.h:205

Definition at line 102 of file qpaintengine_raster.cpp.

Enumeration Type Documentation

◆ LineDrawMode [1/2]

Enumerator
LineDrawClipped 
LineDrawNormal 
LineDrawIncludeLastPixel 
LineDrawClipped 
LineDrawNormal 
LineDrawIncludeLastPixel 

Definition at line 157 of file qpaintengine_raster.cpp.

◆ LineDrawMode [2/2]

Enumerator
LineDrawClipped 
LineDrawNormal 
LineDrawIncludeLastPixel 
LineDrawClipped 
LineDrawNormal 
LineDrawIncludeLastPixel 

Definition at line 157 of file qpaintengine_raster.cpp.

Function Documentation

◆ alignAddress()

uchar * alignAddress ( uchar * address,
quintptr alignmentMask )
inlinestatic

Definition at line 3557 of file qpaintengine_raster.cpp.

◆ drawEllipse_midpoint_i()

void drawEllipse_midpoint_i ( const QRect & rect,
const QRect & clip,
ProcessSpans pen_func,
ProcessSpans brush_func,
QSpanData * pen_data,
QSpanData * brush_data )
static

Draws an ellipse using the integer point midpoint algorithm.

Definition at line 4793 of file qpaintengine_raster.cpp.

◆ drawEllipsePoints()

void drawEllipsePoints ( int x,
int y,
int length,
const QRect & rect,
const QRect & clip,
ProcessSpans pen_func,
ProcessSpans brush_func,
QSpanData * pen_data,
QSpanData * brush_data )
inlinestatic

x and y is relative to the midpoint of rect.

Definition at line 4719 of file qpaintengine_raster.cpp.

◆ fast_ceil_positive()

int fast_ceil_positive ( const qreal & v)
inlinestatic

Definition at line 2072 of file qpaintengine_raster.cpp.

◆ fillRect_normalized()

void fillRect_normalized ( const QRect & r,
QSpanData * data,
QRasterPaintEnginePrivate * pe )
static

Definition at line 1362 of file qpaintengine_raster.cpp.

◆ isAbove()

bool isAbove ( const QPointF * a,
const QPointF * b )
inlinestatic

Definition at line 1786 of file qpaintengine_raster.cpp.

◆ monoVal()

bool monoVal ( const uchar * s,
int x )
inlinestatic

Definition at line 2513 of file qpaintengine_raster.cpp.

◆ q_gray_rendered_spans()

int QT_MANGLE_NAMESPACE q_gray_rendered_spans ( QT_FT_Raster raster)

◆ qPremultiplyWithExtraAlpha()

QColor qPremultiplyWithExtraAlpha ( const QColor & c,
int alpha )
static

Definition at line 1751 of file qpaintengine_raster.cpp.

◆ qrasterpaintengine_dirty_clip()

void qrasterpaintengine_dirty_clip ( QRasterPaintEnginePrivate * d,
QRasterPaintEngineState * s )
static

Definition at line 1101 of file qpaintengine_raster.cpp.

References QRasterPaintEnginePrivate::clip().

Here is the call graph for this function:

◆ qrasterpaintengine_state_setNoClip()

void qrasterpaintengine_state_setNoClip ( QRasterPaintEngineState * s)
static

Definition at line 1093 of file qpaintengine_raster.cpp.

References QRasterPaintEngineState::clip, QRasterPaintEngineState::flags, and QRasterPaintEngineState::Flags::has_clip_ownership.

Referenced by QRasterPaintEnginePrivate::updateClipping().

Here is the caller graph for this function:

◆ qt_ft_outline_cubic_to()

void qt_ft_outline_cubic_to ( qfixed c1x,
qfixed c1y,
qfixed c2x,
qfixed c2y,
qfixed ex,
qfixed ey,
void * data )
static

Definition at line 204 of file qpaintengine_raster.cpp.

◆ qt_ft_outline_line_to()

void qt_ft_outline_line_to ( qfixed x,
qfixed y,
void * data )
static

Definition at line 199 of file qpaintengine_raster.cpp.

◆ qt_ft_outline_move_to()

void qt_ft_outline_move_to ( qfixed x,
qfixed y,
void * data )
static

Definition at line 194 of file qpaintengine_raster.cpp.

◆ qt_imageForBrush()

Q_GUI_EXPORT QImage qt_imageForBrush ( int brushStyle,
bool invert )
extern

Definition at line 146 of file qbrush.cpp.

◆ qt_intersect_spans() [1/2]

const QT_FT_Span * qt_intersect_spans ( const QClipData * clip,
int * currentClip,
const QT_FT_Span * spans,
const QT_FT_Span * end,
QT_FT_Span ** outSpans,
int available )
static

spans must be sorted on y

Definition at line 4009 of file qpaintengine_raster.cpp.

References QClipData::count, and QClipData::initialize().

Here is the call graph for this function:

◆ qt_intersect_spans() [2/2]

int qt_intersect_spans ( QT_FT_Span *& spans,
int numSpans,
const QRect & clip )
static

Definition at line 4099 of file qpaintengine_raster.cpp.

◆ qt_mapRect_non_normalizing()

QRectF qt_mapRect_non_normalizing ( const QRectF & r,
const QTransform & t )

Definition at line 2148 of file qpaintengine_raster.cpp.

◆ qt_scaleForTransform()

Q_GUI_EXPORT bool qt_scaleForTransform ( const QTransform & transform,
qreal * scale )
extern

Definition at line 2132 of file qtransform.cpp.

◆ qt_span_clip()

void qt_span_clip ( int count,
const QT_FT_Span * spans,
void * userData )
static

Definition at line 4153 of file qpaintengine_raster.cpp.

References QClipData::allocated, QClipData::count, QClipData::initialize(), and ClipData::newClip.

Here is the call graph for this function:

◆ qt_span_fill_clipped()

void qt_span_fill_clipped ( int count,
const QT_FT_Span * spans,
void * userData )
static

Definition at line 4072 of file qpaintengine_raster.cpp.

◆ qt_span_fill_clipRect()

void qt_span_fill_clipRect ( int count,
const QT_FT_Span * spans,
void * userData )
static

Definition at line 4136 of file qpaintengine_raster.cpp.

◆ splitPolygon()

bool splitPolygon ( const QPointF * points,
int pointCount,
QList< QPointF > * upper,
QList< QPointF > * lower )
static

Definition at line 1791 of file qpaintengine_raster.cpp.

◆ toAlignedRect_positive()

const QRect toAlignedRect_positive ( const QRectF & rect)
inlinestatic

Definition at line 2081 of file qpaintengine_raster.cpp.

◆ visibleGlyphRange()

VisibleGlyphRange visibleGlyphRange ( const QRectF & clip,
QFontEngine * fontEngine,
glyph_t * glyphs,
QFixedPoint * positions,
int numGlyphs )
static

Definition at line 2995 of file qpaintengine_raster.cpp.