Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qdrawhelper_p.h File Reference
#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)))

Definition at line 1010 of file qdrawhelper_p.h.

◆ ARGB_COMBINE_ALPHA

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

Definition at line 1001 of file qdrawhelper_p.h.

◆ 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]]; \
}
GLenum GLuint buffer
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data

◆ 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

#define GRADIENT_STOPTABLE_SIZE   1024

Definition at line 266 of file qdrawhelper_p.h.

◆ GRADIENT_STOPTABLE_SIZE_SHIFT

#define GRADIENT_STOPTABLE_SIZE_SHIFT   10

Definition at line 267 of file qdrawhelper_p.h.

◆ MIX

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

Definition at line 1011 of file qdrawhelper_p.h.

◆ Q_DECL_RESTRICT

#define Q_DECL_RESTRICT

Definition at line 47 of file qdrawhelper_p.h.

◆ 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 182 of file qdrawhelper_p.h.

◆ DestFetchProc64

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

Definition at line 183 of file qdrawhelper_p.h.

◆ DestFetchProcFP

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

Definition at line 184 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 185 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 186 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 187 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 188 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 189 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 190 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 631 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 639 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 866 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 873 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 1020 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 1014 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 740 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 751 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 735 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 726 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 803 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 607 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 744 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 958 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 951 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 382 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 880 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 882 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 881 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 883 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 388 of file qdrawhelper_p.h.

References RadialGradientValues::a, RadialGradientValues::dr, RadialGradientValues::dx, RadialGradientValues::dy, RadialGradientValues::inv2a, 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 343 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 368 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 925 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 920 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 915 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 910 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 930 of file qdrawhelper_p.h.

◆ qt_memfill() [6/6]

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

Definition at line 905 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 
)

Definition at line 6286 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 
)

Definition at line 6244 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 
)

Definition at line 6305 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 
)

Definition at line 6235 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,
color,
qsizetype  count 
)
inline

Definition at line 885 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,
value,
int  x,
int  y,
int  width,
int  height,
qsizetype  stride 
)
inlinestatic

Definition at line 936 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 5957 of file qdrawhelper.cpp.

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

◆ qScaleFunctions

◆ qt_bayer_matrix

◆ qTransformFunctions

◆ RMASK

const uint RMASK = 0x00ff0000
static