Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qdrawhelper_p.h File Reference

(69bed6cd3f12a3c1b0182c5a3706efa617090cfa)

#include <QtGui/private/qtguiglobal_p.h>
#include "QtCore/qmath.h"
#include "QtGui/qcolor.h"
#include "QtGui/qpainter.h"
#include "QtGui/qimage.h"
#include "QtGui/qrgba64.h"
#include "private/qpixellayout_p.h"
#include "private/qrasterdefs_p.h"
#include <private/qsimd_p.h>
#include <memory>
+ Include dependency graph for qdrawhelper_p.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  DrawHelper
 
struct  quint24
 
struct  LinearGradientValues
 
struct  RadialGradientValues
 
struct  Operator
 
struct  QLinearGradientData
 
struct  QRadialGradientData
 
struct  QConicalGradientData
 
struct  QGradientData
 
struct  QTextureData
 
struct  QSpanData
 
class  QRadialFetchSimd< Simd >
 
struct  IntermediateBuffer
 

Macros

#define QT_FT_BEGIN_HEADER
 
#define QT_FT_END_HEADER
 
#define Q_DECL_RESTRICT
 
#define Q_DECL_VECTORCALL
 
#define GRADIENT_STOPTABLE_SIZE   1024
 
#define GRADIENT_STOPTABLE_SIZE_SHIFT   10
 
#define FETCH_RADIAL_LOOP_PROLOGUE
 
#define FETCH_RADIAL_LOOP_CLAMP_REPEAT    index_vec.v = Simd::v_and(v_repeat_mask, Simd::v_toInt(v_index));
 
#define FETCH_RADIAL_LOOP_CLAMP_REFLECT
 
#define FETCH_RADIAL_LOOP_CLAMP_PAD    index_vec.v = Simd::v_toInt(Simd::v_min(v_max, Simd::v_max(v_min, v_index)));
 
#define FETCH_RADIAL_LOOP_EPILOGUE
 
#define FETCH_RADIAL_LOOP(FETCH_RADIAL_LOOP_CLAMP)
 
#define ARGB_COMBINE_ALPHA(argb, alpha)    ((((argb >> 24) * alpha) >> 8) << 24) | (argb & 0x00ffffff)
 
#define AMIX(mask)   quint32(qMin(((quint64(s)&mask) + (quint64(d)&mask)), quint64(mask)))
 
#define MIX(mask)   (qMin(((quint32(s)&mask) + (quint32(d)&mask)), quint32(mask)))
 

Typedefs

typedef QRgbaFloat< float > QRgbaFloat32
 
typedef QT_FT_SpanFunc ProcessSpans
 
typedef void(* BitmapBlitFunc) (QRasterBuffer *rasterBuffer, int x, int y, const QRgba64 &color, const uchar *bitmap, int mapWidth, int mapHeight, int mapStride)
 
typedef void(* AlphamapBlitFunc) (QRasterBuffer *rasterBuffer, int x, int y, const QRgba64 &color, const uchar *bitmap, int mapWidth, int mapHeight, int mapStride, const QClipData *clip, bool useGammaCorrection)
 
typedef void(* AlphaRGBBlitFunc) (QRasterBuffer *rasterBuffer, int x, int y, const QRgba64 &color, const uint *rgbmask, int mapWidth, int mapHeight, int mapStride, const QClipData *clip, bool useGammaCorrection)
 
typedef void(* RectFillFunc) (QRasterBuffer *rasterBuffer, int x, int y, int width, int height, const QRgba64 &color)
 
typedef void(* SrcOverBlendFunc) (uchar *destPixels, int dbpl, const uchar *src, int spbl, int w, int h, int const_alpha)
 
typedef void(* SrcOverScaleFunc) (uchar *destPixels, int dbpl, const uchar *src, int spbl, int srch, const QRectF &targetRect, const QRectF &sourceRect, const QRect &clipRect, int const_alpha)
 
typedef void(* SrcOverTransformFunc) (uchar *destPixels, int dbpl, const uchar *src, int spbl, const QRectF &targetRect, const QRectF &sourceRect, const QRect &clipRect, const QTransform &targetRectTransform, int const_alpha)
 
typedef void(QT_FASTCALLCompositionFunction) (uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, uint const_alpha)
 
typedef void(QT_FASTCALLCompositionFunction64) (QRgba64 *Q_DECL_RESTRICT dest, const QRgba64 *Q_DECL_RESTRICT src, int length, uint const_alpha)
 
typedef void(QT_FASTCALLCompositionFunctionFP) (QRgbaFloat32 *Q_DECL_RESTRICT dest, const QRgbaFloat32 *Q_DECL_RESTRICT src, int length, uint const_alpha)
 
typedef void(QT_FASTCALLCompositionFunctionSolid) (uint *dest, int length, uint color, uint const_alpha)
 
typedef void(QT_FASTCALLCompositionFunctionSolid64) (QRgba64 *dest, int length, QRgba64 color, uint const_alpha)
 
typedef void(QT_FASTCALLCompositionFunctionSolidFP) (QRgbaFloat32 *dest, int length, QRgbaFloat32 color, uint const_alpha)
 
typedef uint *(QT_FASTCALLDestFetchProc) (uint *buffer, QRasterBuffer *rasterBuffer, int x, int y, int length)
 
typedef QRgba64 *(QT_FASTCALLDestFetchProc64) (QRgba64 *buffer, QRasterBuffer *rasterBuffer, int x, int y, int length)
 
typedef QRgbaFloat32 *(QT_FASTCALLDestFetchProcFP) (QRgbaFloat32 *buffer, QRasterBuffer *rasterBuffer, int x, int y, int length)
 
typedef void(QT_FASTCALLDestStoreProc) (QRasterBuffer *rasterBuffer, int x, int y, const uint *buffer, int length)
 
typedef void(QT_FASTCALLDestStoreProc64) (QRasterBuffer *rasterBuffer, int x, int y, const QRgba64 *buffer, int length)
 
typedef void(QT_FASTCALLDestStoreProcFP) (QRasterBuffer *rasterBuffer, int x, int y, const QRgbaFloat32 *buffer, int length)
 
typedef const uint *(QT_FASTCALLSourceFetchProc) (uint *buffer, const Operator *o, const QSpanData *data, int y, int x, int length)
 
typedef const QRgba64 *(QT_FASTCALLSourceFetchProc64) (QRgba64 *buffer, const Operator *o, const QSpanData *data, int y, int x, int length)
 
typedef const QRgbaFloat32 *(QT_FASTCALLSourceFetchProcFP) (QRgbaFloat32 *buffer, const Operator *o, const QSpanData *data, int y, int x, int length)
 

Functions

void qBlendGradient (int count, const QT_FT_Span *spans, void *userData)
 
void qBlendTexture (int count, const QT_FT_Span *spans, void *userData)
 
void qt_memfill64 (quint64 *dest, quint64 value, qsizetype count)
 
void qt_memfill32 (quint32 *dest, quint32 value, qsizetype count)
 
void qt_memfill24 (quint24 *dest, quint24 value, qsizetype count)
 
void qt_memfill16 (quint16 *dest, quint16 value, qsizetype count)
 
static uint qt_gradient_clamp (const QGradientData *data, int ipos)
 
static uint qt_gradient_pixel (const QGradientData *data, qreal pos)
 
static qreal qRadialDeterminant (qreal a, qreal b, qreal c)
 
template<class RadialFetchFunc , typename BlendType >
static const BlendType *QT_FASTCALL qt_fetch_radial_gradient_template (BlendType *buffer, const Operator *op, const QSpanData *data, int y, int x, int length)
 
static uint INTERPOLATE_PIXEL_255 (uint x, uint a, uint y, uint b)
 
static uint INTERPOLATE_PIXEL_256 (uint x, uint a, uint y, uint b)
 
static uint BYTE_MUL (uint x, uint a)
 
static void blend_pixel (quint32 &dst, const quint32 src)
 
static void blend_pixel (quint32 &dst, const quint32 src, const int const_alpha)
 
static uint interpolate_4_pixels (uint tl, uint tr, uint bl, uint br, uint distx, uint disty)
 
static uint interpolate_4_pixels (const uint t[], const uint b[], uint distx, uint disty)
 
static constexpr bool hasFastInterpolate4 ()
 
static QRgba64 multiplyAlpha256 (QRgba64 rgba64, uint alpha256)
 
static QRgba64 interpolate256 (QRgba64 x, uint alpha1, QRgba64 y, uint alpha2)
 
static QRgba64 interpolate_4_pixels_rgb64 (const QRgba64 t[], const QRgba64 b[], uint distx, uint disty)
 
static uint BYTE_MUL_RGB16 (uint x, uint a)
 
static uint BYTE_MUL_RGB16_32 (uint x, uint a)
 
static constexpr int qt_div_255 (int x)
 
static constexpr uint qt_div_257_floor (uint x)
 
static constexpr uint qt_div_257 (uint x)
 
static constexpr uint qt_div_65535 (uint x)
 
template<class T >
void qt_memfill_template (T *dest, T color, qsizetype count)
 
template<class T >
void qt_memfill (T *dest, T value, qsizetype count)
 
template<>
void qt_memfill (quint64 *dest, quint64 color, qsizetype count)
 
template<>
void qt_memfill (quint32 *dest, quint32 color, qsizetype count)
 
template<>
void qt_memfill (quint24 *dest, quint24 color, qsizetype count)
 
template<>
void qt_memfill (quint16 *dest, quint16 color, qsizetype count)
 
template<>
void qt_memfill (quint8 *dest, quint8 color, qsizetype count)
 
template<class T >
static void qt_rectfill (T *dest, T value, int x, int y, int width, int height, qsizetype stride)
 
ushort qConvertRgb32To16 (uint c)
 
QRgb qConvertRgb16To32 (uint c)
 
uint comp_func_Plus_one_pixel_const_alpha (uint d, const uint s, const uint const_alpha, const uint one_minus_const_alpha)
 
uint comp_func_Plus_one_pixel (uint d, const uint s)
 

Variables

static const uint AMASK = 0xff000000
 
static const uint RMASK = 0x00ff0000
 
static const uint GMASK = 0x0000ff00
 
static const uint BMASK = 0x000000ff
 
SrcOverBlendFunc qBlendFunctions [QImage::NImageFormats][QImage::NImageFormats]
 
SrcOverScaleFunc qScaleFunctions [QImage::NImageFormats][QImage::NImageFormats]
 
SrcOverTransformFunc qTransformFunctions [QImage::NImageFormats][QImage::NImageFormats]
 
DrawHelper qDrawHelper [QImage::NImageFormats]
 
const uint qt_bayer_matrix [16][16]
 
static constexpr int BufferSize = 2048
 

Macro Definition Documentation

◆ AMIX

#define AMIX ( mask)    quint32(qMin(((quint64(s)&mask) + (quint64(d)&mask)), quint64(mask)))

◆ ARGB_COMBINE_ALPHA

#define ARGB_COMBINE_ALPHA ( argb,
alpha )    ((((argb >> 24) * alpha) >> 8) << 24) | (argb & 0x00ffffff)

Definition at line 1000 of file qdrawhelper_p.h.

Referenced by generateGradientColorTable().

◆ FETCH_RADIAL_LOOP

#define FETCH_RADIAL_LOOP ( FETCH_RADIAL_LOOP_CLAMP)
Value:
FETCH_RADIAL_LOOP_PROLOGUE \
FETCH_RADIAL_LOOP_CLAMP \
FETCH_RADIAL_LOOP_EPILOGUE

◆ FETCH_RADIAL_LOOP_CLAMP_PAD

#define FETCH_RADIAL_LOOP_CLAMP_PAD    index_vec.v = Simd::v_toInt(Simd::v_min(v_max, Simd::v_max(v_min, v_index)));

◆ FETCH_RADIAL_LOOP_CLAMP_REFLECT

#define FETCH_RADIAL_LOOP_CLAMP_REFLECT
Value:
const typename Simd::Int32x4 v_index_i = Simd::v_and(v_reflect_mask, Simd::v_toInt(v_index)); \
const typename Simd::Int32x4 v_index_i_inv = Simd::v_sub(v_reflect_limit, v_index_i); \
index_vec.v = Simd::v_min_16(v_index_i, v_index_i_inv);

◆ FETCH_RADIAL_LOOP_CLAMP_REPEAT

#define FETCH_RADIAL_LOOP_CLAMP_REPEAT    index_vec.v = Simd::v_and(v_repeat_mask, Simd::v_toInt(v_index));

◆ FETCH_RADIAL_LOOP_EPILOGUE

#define FETCH_RADIAL_LOOP_EPILOGUE
Value:
det_vec.v = Simd::v_add(Simd::v_add(det_vec.v, delta_det4_vec.v), v_delta_delta_det6); \
delta_det4_vec.v = Simd::v_add(delta_det4_vec.v, v_delta_delta_det16); \
b_vec.v = Simd::v_add(b_vec.v, v_delta_b4); \
for (int i = 0; i < 4; ++i) \
*buffer++ = (extended_mask | v_buffer_mask.i[i]) & data->gradient.colorTable32[index_vec.i[i]]; \
}
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLenum GLuint buffer

◆ FETCH_RADIAL_LOOP_PROLOGUE

#define FETCH_RADIAL_LOOP_PROLOGUE
Value:
while (buffer < end) { \
typename Simd::Vect_buffer_i v_buffer_mask; \
v_buffer_mask.v = Simd::v_greaterOrEqual(det_vec.v, v_min); \
const typename Simd::Float32x4 v_index_local = Simd::v_sub(Simd::v_sqrt(Simd::v_max(v_min, det_vec.v)), b_vec.v); \
const typename Simd::Float32x4 v_index = Simd::v_add(Simd::v_mul(v_index_local, v_max), v_half); \
v_buffer_mask.v = Simd::v_and(v_buffer_mask.v, Simd::v_greaterOrEqual(Simd::v_add(v_r0, Simd::v_mul(v_dr, v_index_local)), v_min)); \
typename Simd::Vect_buffer_i index_vec;
GLuint GLuint end

◆ GRADIENT_STOPTABLE_SIZE

◆ GRADIENT_STOPTABLE_SIZE_SHIFT

#define GRADIENT_STOPTABLE_SIZE_SHIFT   10

Definition at line 266 of file qdrawhelper_p.h.

Referenced by QRadialFetchSimd< Simd >::fetch().

◆ MIX

#define MIX ( mask)    (qMin(((quint32(s)&mask) + (quint32(d)&mask)), quint32(mask)))

◆ Q_DECL_RESTRICT

#define Q_DECL_RESTRICT

◆ Q_DECL_VECTORCALL

#define Q_DECL_VECTORCALL

Definition at line 48 of file qdrawhelper_p.h.

◆ QT_FT_BEGIN_HEADER

#define QT_FT_BEGIN_HEADER

Definition at line 25 of file qdrawhelper_p.h.

◆ QT_FT_END_HEADER

#define QT_FT_END_HEADER

Definition at line 26 of file qdrawhelper_p.h.

Typedef Documentation

◆ AlphamapBlitFunc

typedef void(* AlphamapBlitFunc) (QRasterBuffer *rasterBuffer, int x, int y, const QRgba64 &color, const uchar *bitmap, int mapWidth, int mapHeight, int mapStride, const QClipData *clip, bool useGammaCorrection)

Definition at line 77 of file qdrawhelper_p.h.

◆ AlphaRGBBlitFunc

typedef void(* AlphaRGBBlitFunc) (QRasterBuffer *rasterBuffer, int x, int y, const QRgba64 &color, const uint *rgbmask, int mapWidth, int mapHeight, int mapStride, const QClipData *clip, bool useGammaCorrection)

Definition at line 83 of file qdrawhelper_p.h.

◆ BitmapBlitFunc

typedef void(* BitmapBlitFunc) (QRasterBuffer *rasterBuffer, int x, int y, const QRgba64 &color, const uchar *bitmap, int mapWidth, int mapHeight, int mapStride)

Definition at line 72 of file qdrawhelper_p.h.

◆ CompositionFunction

typedef void(QT_FASTCALL * CompositionFunction) (uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, uint const_alpha)

Definition at line 155 of file qdrawhelper_p.h.

◆ CompositionFunction64

typedef void(QT_FASTCALL * CompositionFunction64) (QRgba64 *Q_DECL_RESTRICT dest, const QRgba64 *Q_DECL_RESTRICT src, int length, uint const_alpha)

Definition at line 156 of file qdrawhelper_p.h.

◆ CompositionFunctionFP

typedef void(QT_FASTCALL * CompositionFunctionFP) (QRgbaFloat32 *Q_DECL_RESTRICT dest, const QRgbaFloat32 *Q_DECL_RESTRICT src, int length, uint const_alpha)

Definition at line 157 of file qdrawhelper_p.h.

◆ CompositionFunctionSolid

typedef void(QT_FASTCALL * CompositionFunctionSolid) (uint *dest, int length, uint color, uint const_alpha)

Definition at line 158 of file qdrawhelper_p.h.

◆ CompositionFunctionSolid64

typedef void(QT_FASTCALL * CompositionFunctionSolid64) (QRgba64 *dest, int length, QRgba64 color, uint const_alpha)

Definition at line 159 of file qdrawhelper_p.h.

◆ CompositionFunctionSolidFP

typedef void(QT_FASTCALL * CompositionFunctionSolidFP) (QRgbaFloat32 *dest, int length, QRgbaFloat32 color, uint const_alpha)

Definition at line 160 of file qdrawhelper_p.h.

◆ DestFetchProc

typedef uint *(QT_FASTCALL * DestFetchProc) (uint *buffer, QRasterBuffer *rasterBuffer, int x, int y, int length)

Definition at line 181 of file qdrawhelper_p.h.

◆ DestFetchProc64

typedef QRgba64 *(QT_FASTCALL * DestFetchProc64) (QRgba64 *buffer, QRasterBuffer *rasterBuffer, int x, int y, int length)

Definition at line 182 of file qdrawhelper_p.h.

◆ DestFetchProcFP

typedef QRgbaFloat32 *(QT_FASTCALL * DestFetchProcFP) (QRgbaFloat32 *buffer, QRasterBuffer *rasterBuffer, int x, int y, int length)

Definition at line 183 of file qdrawhelper_p.h.

◆ DestStoreProc

typedef void(QT_FASTCALL * DestStoreProc) (QRasterBuffer *rasterBuffer, int x, int y, const uint *buffer, int length)

Definition at line 184 of file qdrawhelper_p.h.

◆ DestStoreProc64

typedef void(QT_FASTCALL * DestStoreProc64) (QRasterBuffer *rasterBuffer, int x, int y, const QRgba64 *buffer, int length)

Definition at line 185 of file qdrawhelper_p.h.

◆ DestStoreProcFP

typedef void(QT_FASTCALL * DestStoreProcFP) (QRasterBuffer *rasterBuffer, int x, int y, const QRgbaFloat32 *buffer, int length)

Definition at line 186 of file qdrawhelper_p.h.

◆ ProcessSpans

Definition at line 71 of file qdrawhelper_p.h.

◆ QRgbaFloat32

typedef QRgbaFloat<float> QRgbaFloat32

Definition at line 69 of file qdrawhelper_p.h.

◆ RectFillFunc

typedef void(* RectFillFunc) (QRasterBuffer *rasterBuffer, int x, int y, int width, int height, const QRgba64 &color)

Definition at line 89 of file qdrawhelper_p.h.

◆ SourceFetchProc

typedef const uint *(QT_FASTCALL * SourceFetchProc) (uint *buffer, const Operator *o, const QSpanData *data, int y, int x, int length)

Definition at line 187 of file qdrawhelper_p.h.

◆ SourceFetchProc64

typedef const QRgba64 *(QT_FASTCALL * SourceFetchProc64) (QRgba64 *buffer, const Operator *o, const QSpanData *data, int y, int x, int length)

Definition at line 188 of file qdrawhelper_p.h.

◆ SourceFetchProcFP

typedef const QRgbaFloat32 *(QT_FASTCALL * SourceFetchProcFP) (QRgbaFloat32 *buffer, const Operator *o, const QSpanData *data, int y, int x, int length)

Definition at line 189 of file qdrawhelper_p.h.

◆ SrcOverBlendFunc

typedef void(* SrcOverBlendFunc) (uchar *destPixels, int dbpl, const uchar *src, int spbl, int w, int h, int const_alpha)

Definition at line 93 of file qdrawhelper_p.h.

◆ SrcOverScaleFunc

typedef void(* SrcOverScaleFunc) (uchar *destPixels, int dbpl, const uchar *src, int spbl, int srch, const QRectF &targetRect, const QRectF &sourceRect, const QRect &clipRect, int const_alpha)

Definition at line 98 of file qdrawhelper_p.h.

◆ SrcOverTransformFunc

typedef void(* SrcOverTransformFunc) (uchar *destPixels, int dbpl, const uchar *src, int spbl, const QRectF &targetRect, const QRectF &sourceRect, const QRect &clipRect, const QTransform &targetRectTransform, int const_alpha)

Definition at line 105 of file qdrawhelper_p.h.

Function Documentation

◆ blend_pixel() [1/2]

static void blend_pixel ( quint32 & dst,
const quint32 src )
inlinestatic

Definition at line 630 of file qdrawhelper_p.h.

References BYTE_MUL(), and qAlpha().

Referenced by alphamapblend_argb32(), alphargbblend_argb32(), blend_pixel(), Blend_ARGB32_on_ARGB32_SourceAlpha::write(), and Blend_ARGB32_on_ARGB32_SourceAndConstAlpha::write().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ blend_pixel() [2/2]

static void blend_pixel ( quint32 & dst,
const quint32 src,
const int const_alpha )
inlinestatic

Definition at line 638 of file qdrawhelper_p.h.

References blend_pixel(), BYTE_MUL(), and qAlpha().

+ Here is the call graph for this function:

◆ BYTE_MUL()

◆ BYTE_MUL_RGB16()

static uint BYTE_MUL_RGB16 ( uint x,
uint a )
inlinestatic

Definition at line 865 of file qdrawhelper_p.h.

Referenced by alphamapblend_quint16(), qt_blend_argb32_on_rgb16_const_alpha(), qt_blend_rgb16_on_rgb16(), Blend_RGB16_on_RGB16_ConstAlpha::write(), Blend_ARGB32_on_RGB16_SourceAlpha::write(), and Blend_ARGB32_on_RGB16_SourceAndConstAlpha::write().

+ Here is the caller graph for this function:

◆ BYTE_MUL_RGB16_32()

static uint BYTE_MUL_RGB16_32 ( uint x,
uint a )
inlinestatic

Definition at line 872 of file qdrawhelper_p.h.

◆ comp_func_Plus_one_pixel()

uint comp_func_Plus_one_pixel ( uint d,
const uint s )
inline

Definition at line 1019 of file qdrawhelper_p.h.

References AMASK, AMIX, BMASK, GMASK, MIX, and RMASK.

Referenced by Argb32OperationsC::plus().

+ Here is the caller graph for this function:

◆ comp_func_Plus_one_pixel_const_alpha()

uint comp_func_Plus_one_pixel_const_alpha ( uint d,
const uint s,
const uint const_alpha,
const uint one_minus_const_alpha )
inline

Definition at line 1013 of file qdrawhelper_p.h.

References AMASK, AMIX, BMASK, d, GMASK, INTERPOLATE_PIXEL_255(), MIX, and RMASK.

+ Here is the call graph for this function:

◆ hasFastInterpolate4()

static constexpr bool hasFastInterpolate4 ( )
inlinestaticconstexpr

Definition at line 739 of file qdrawhelper_p.h.

Referenced by fetchTransformedBilinear(), fetchTransformedBilinearARGB32PM_downscale_helper(), and fetchTransformedBilinearARGB32PM_fast_rotate_helper().

+ Here is the caller graph for this function:

◆ interpolate256()

static QRgba64 interpolate256 ( QRgba64 x,
uint alpha1,
QRgba64 y,
uint alpha2 )
inlinestatic

Definition at line 750 of file qdrawhelper_p.h.

References QRgba64::fromRgba64(), and multiplyAlpha256().

Referenced by QGradientCache::generateGradientColorTable(), and interpolate_4_pixels_rgb64().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ interpolate_4_pixels() [1/2]

static uint interpolate_4_pixels ( const uint t[],
const uint b[],
uint distx,
uint disty )
inlinestatic

Definition at line 734 of file qdrawhelper_p.h.

References interpolate_4_pixels().

+ Here is the call graph for this function:

◆ interpolate_4_pixels() [2/2]

static uint interpolate_4_pixels ( uint tl,
uint tr,
uint bl,
uint br,
uint distx,
uint disty )
inlinestatic

Definition at line 725 of file qdrawhelper_p.h.

References INTERPOLATE_PIXEL_256(), and tr.

Referenced by fetchTransformedBilinear(), fetchTransformedBilinearARGB32PM(), fetchTransformedBilinearARGB32PM_downscale_helper(), fetchTransformedBilinearARGB32PM_fast_rotate_helper(), fetchTransformedBilinearARGB32PM_rotate_helper(), fetchTransformedBilinearARGB32PM_upscale_helper(), interpolate_4_pixels(), and qt_qimageScaleAARGBA_up_xy().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ interpolate_4_pixels_rgb64()

static QRgba64 interpolate_4_pixels_rgb64 ( const QRgba64 t[],
const QRgba64 b[],
uint distx,
uint disty )
inlinestatic

Definition at line 802 of file qdrawhelper_p.h.

References interpolate256().

+ Here is the call graph for this function:

◆ INTERPOLATE_PIXEL_255()

◆ INTERPOLATE_PIXEL_256()

static uint INTERPOLATE_PIXEL_256 ( uint x,
uint a,
uint y,
uint b )
inlinestatic

Definition at line 606 of file qdrawhelper_p.h.

Referenced by fetchTransformedBilinearARGB32PM_downscale_helper(), fetchTransformedBilinearARGB32PM_upscale_helper(), generateGradientColorTable(), interpolate_4_pixels(), qt_qimageScaleAARGBA_up_xy(), and QSvgPaintEngine::saveGradientStops().

+ Here is the caller graph for this function:

◆ multiplyAlpha256()

static QRgba64 multiplyAlpha256 ( QRgba64 rgba64,
uint alpha256 )
inlinestatic

Definition at line 743 of file qdrawhelper_p.h.

References QRgba64::alpha(), QRgba64::blue(), QRgba64::fromRgba64(), QRgba64::green(), and QRgba64::red().

Referenced by QRasterPaintEngine::drawImage(), and interpolate256().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ qBlendGradient()

void qBlendGradient ( int count,
const QT_FT_Span * spans,
void * userData )

◆ qBlendTexture()

void qBlendTexture ( int count,
const QT_FT_Span * spans,
void * userData )

◆ qConvertRgb16To32()

QRgb qConvertRgb16To32 ( uint c)
inline

Definition at line 957 of file qdrawhelper_p.h.

Referenced by QImage::allGray(), destFetchRGB16(), fetchUntransformedRGB16(), and QImage::pixel().

+ Here is the caller graph for this function:

◆ qConvertRgb32To16()

ushort qConvertRgb32To16 ( uint c)
inline

Definition at line 950 of file qdrawhelper_p.h.

Referenced by destStoreRGB16(), QImage::fill(), qt_blend_argb32_on_rgb16(), qt_blend_argb32_on_rgb16_const_alpha(), qt_blend_rgb32_on_rgb16(), QImage::setPixel(), Blend_ARGB32_on_RGB16_SourceAlpha::write(), and Blend_ARGB32_on_RGB16_SourceAndConstAlpha::write().

+ Here is the caller graph for this function:

◆ qRadialDeterminant()

static qreal qRadialDeterminant ( qreal a,
qreal b,
qreal c )
inlinestatic

Definition at line 381 of file qdrawhelper_p.h.

Referenced by qt_fetch_radial_gradient_template().

+ Here is the caller graph for this function:

◆ qt_div_255()

static constexpr int qt_div_255 ( int x)
inlinestaticconstexpr

Definition at line 879 of file qdrawhelper_p.h.

Referenced by color_burn_op(), color_dodge_op(), darken_op(), difference_op(), QX11PlatformPixmap::fromImage(), hardlight_op(), lighten_op(), mix_alpha(), multiply_op(), multiplyAlpha255(), Argb32OperationsC::multiplyAlpha8bit(), overlay_op(), qt_intersect_spans(), rgbBlend(), and rgbBlend().

+ Here is the caller graph for this function:

◆ qt_div_257()

static constexpr uint qt_div_257 ( uint x)
inlinestaticconstexpr

Definition at line 881 of file qdrawhelper_p.h.

References qt_div_257_floor().

Referenced by QColor::alpha(), QColor::black(), QColor::blue(), convert_RGBA64_to_gray8(), convertGrayscale16ToRGB32(), QColor::cyan(), fetchGrayscale16ToRGB32(), QColor::getCmyk(), QColor::getHsl(), QColor::getHsv(), QColor::getRgb(), QColor::green(), QColor::hslSaturation(), QColor::hsvSaturation(), QColor::lightness(), QColor::magenta(), QColor::red(), QColor::rgb(), QColor::rgba(), QColor::value(), and QColor::yellow().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ qt_div_257_floor()

static constexpr uint qt_div_257_floor ( uint x)
inlinestaticconstexpr

Definition at line 880 of file qdrawhelper_p.h.

Referenced by qt_div_257().

+ Here is the caller graph for this function:

◆ qt_div_65535()

static constexpr uint qt_div_65535 ( uint x)
inlinestaticconstexpr

Definition at line 882 of file qdrawhelper_p.h.

Referenced by multiplyAlpha65535().

+ Here is the caller graph for this function:

◆ qt_fetch_radial_gradient_template()

template<class RadialFetchFunc , typename BlendType >
static const BlendType *QT_FASTCALL qt_fetch_radial_gradient_template ( BlendType * buffer,
const Operator * op,
const QSpanData * data,
int y,
int x,
int length )
static

Definition at line 387 of file qdrawhelper_p.h.

References RadialGradientValues::a, RadialGradientValues::dr, RadialGradientValues::dx, RadialGradientValues::dy, qFuzzyIsNull(), qMax(), qRadialDeterminant(), qSqrt(), Operator::radial, rx(), ry(), and RadialGradientValues::sqrfr.

+ Here is the call graph for this function:

◆ qt_gradient_clamp()

static uint qt_gradient_clamp ( const QGradientData * data,
int ipos )
inlinestatic

Definition at line 342 of file qdrawhelper_p.h.

References GRADIENT_STOPTABLE_SIZE, Q_ASSERT, QGradient::ReflectSpread, and QGradient::RepeatSpread.

Referenced by qt_gradient_pixel(), and qt_gradient_pixel_fixed().

+ Here is the caller graph for this function:

◆ qt_gradient_pixel()

static uint qt_gradient_pixel ( const QGradientData * data,
qreal pos )
inlinestatic

Definition at line 367 of file qdrawhelper_p.h.

References GRADIENT_STOPTABLE_SIZE, pos, and qt_gradient_clamp().

Referenced by GradientBase32::fetchSingle(), and QRadialFetchSimd< Simd >::fetchSingle().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ qt_memfill() [1/6]

template<>
void qt_memfill ( quint16 * dest,
quint16 color,
qsizetype count )
inline

Definition at line 924 of file qdrawhelper_p.h.

References qt_memfill16().

+ Here is the call graph for this function:

◆ qt_memfill() [2/6]

template<>
void qt_memfill ( quint24 * dest,
quint24 color,
qsizetype count )
inline

Definition at line 919 of file qdrawhelper_p.h.

References qt_memfill24().

+ Here is the call graph for this function:

◆ qt_memfill() [3/6]

template<>
void qt_memfill ( quint32 * dest,
quint32 color,
qsizetype count )
inline

Definition at line 914 of file qdrawhelper_p.h.

References qt_memfill32().

+ Here is the call graph for this function:

◆ qt_memfill() [4/6]

template<>
void qt_memfill ( quint64 * dest,
quint64 color,
qsizetype count )
inline

Definition at line 909 of file qdrawhelper_p.h.

References qt_memfill64().

+ Here is the call graph for this function:

◆ qt_memfill() [5/6]

template<>
void qt_memfill ( quint8 * dest,
quint8 color,
qsizetype count )
inline

Definition at line 929 of file qdrawhelper_p.h.

◆ qt_memfill() [6/6]

template<class T >
void qt_memfill ( T * dest,
T value,
qsizetype count )
inline

Definition at line 904 of file qdrawhelper_p.h.

References qt_memfill_template().

Referenced by blend_color_argb(), qt_bitmapblit_template(), qt_rectfill(), and rasterop_solid_NotSource().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ qt_memfill16()

void qt_memfill16 ( quint16 * dest,
quint16 value,
qsizetype count )
extern

Definition at line 6352 of file qdrawhelper.cpp.

References qt_memfill32().

Referenced by qt_memfill().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ qt_memfill24()

void qt_memfill24 ( quint24 * dest,
quint24 value,
qsizetype count )
extern

Definition at line 6310 of file qdrawhelper.cpp.

References Q_FALLTHROUGH, qCpuHasFeature, and qFromBigEndian().

Referenced by qt_memfill().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ qt_memfill32()

void qt_memfill32 ( quint32 * dest,
quint32 value,
qsizetype count )
extern

Definition at line 6371 of file qdrawhelper.cpp.

Referenced by GradientBase32::memfill(), Argb32OperationsC::memfill(), QRadialFetchSimd< Simd >::memfill(), qInitDrawhelperFunctions(), qt_memfill(), and qt_memfill16().

+ Here is the caller graph for this function:

◆ qt_memfill64()

void qt_memfill64 ( quint64 * dest,
quint64 value,
qsizetype count )
extern

Definition at line 6301 of file qdrawhelper.cpp.

Referenced by Rgba64OperationsBase::memfill(), qInitDrawhelperFunctions(), and qt_memfill().

+ Here is the caller graph for this function:

◆ qt_memfill_template()

template<class T >
void qt_memfill_template ( T * dest,
T color,
qsizetype count )
inline

Definition at line 884 of file qdrawhelper_p.h.

References Q_FALLTHROUGH.

Referenced by qt_memfill(), and spanfill_from_first().

+ Here is the caller graph for this function:

◆ qt_rectfill()

template<class T >
static void qt_rectfill ( T * dest,
T value,
int x,
int y,
int width,
int height,
qsizetype stride )
inlinestatic

Definition at line 935 of file qdrawhelper_p.h.

References d, j, and qt_memfill().

+ Here is the call graph for this function:

Variable Documentation

◆ AMASK

const uint AMASK = 0xff000000
static

◆ BMASK

const uint BMASK = 0x000000ff
static

◆ BufferSize

◆ GMASK

const uint GMASK = 0x0000ff00
static

◆ qBlendFunctions

◆ qDrawHelper

DrawHelper qDrawHelper[QImage::NImageFormats]
extern

Definition at line 6021 of file qdrawhelper.cpp.

Referenced by QSpanData::adjustSpanMethods(), and qInitDrawhelperFunctions().

◆ qScaleFunctions

◆ qt_bayer_matrix

◆ qTransformFunctions

◆ RMASK

const uint RMASK = 0x00ff0000
static