Parameters for a single textured-quad draw call.
destRect is in target-pixel space; the caller must bake the current model-view transform into targetFromLocal if the rect is authored in a different coordinate system. This keeps drawTexturedQuad agnostic about where the MVP lives in the larger renderer's state stack.
| Class Members |
|
bool |
applyMaskBounds = false |
When true, output pixels outside maskBounds are discarded. Used to honour the <mask> element's x/y/width/height. |
|
uint32_t |
blendMode = 0 |
SVG mix-blend-mode selector. 0 = plain source-over; 1..=16 map to the enumeration in donner::svg::MixBlendMode (Normal..Luminosity). When non-zero, dstSnapshotTexture must hold the parent render target's frozen content for the fragment shader to read as the backdrop. |
|
const TextureView * |
clipMaskView = nullptr |
Path-clip mask view. When set, the image shader samples it in target-pixel space and gates the source content before any blend/mask compositing. Borrowed. |
|
Box2d |
destRect |
Destination rectangle (in target-pixel space after applying targetFromLocal). |
|
const Texture * |
dstSnapshotTexture = nullptr |
Frozen snapshot of the parent render target - see RendererGeode::popIsolatedLayer which copies the prior parent content into a separate texture before opening the blend blit pass. Ignored unless blendMode != 0. Borrowed. |
|
Filter |
filter = Filter::Linear |
Sampling filter mode. |
|
Box2d |
maskBounds |
Mask bounds in target-pixel space. Ignored unless applyMaskBounds is true. |
|
uint32_t |
maskMode = 0 |
Mask coverage selector: 0 disables masks, 1 uses sRGB luminance, 2 alpha, 3 linear luminance. |
|
const Texture * |
maskTexture = nullptr |
<mask> compositing input. Ignored unless maskMode is nonzero. Borrowed. |
|
double |
opacity = 1.0 |
Overall opacity multiplier in [0, 1]. Combined with the sampled alpha inside the fragment shader. |
|
double |
pixelatedScaleX = 1.0 |
Device-pixel scale per source texel for CSS pixelated sampling. |
|
double |
pixelatedScaleY = 1.0 |
- See also
- pixelatedScaleX
|
|
bool |
sourceIsPremultiplied = false |
Set when the source texture already stores premultiplied-alpha pixels. drawImage premultiplies ImageResource pixels before upload, and offscreen render targets blitted during popIsolatedLayer / pattern compositing are already premultiplied. Both paths set this flag to avoid a second premultiplication that darkens the RGB channel. Straight-alpha callers leave the default false so the shader premultiplies on output. |
|
Box2d |
srcRect = Box2d({0.0, 0.0}, {1.0, 1.0}) |
Source UV rectangle in [0,1] × [0,1]. Default = entire texture. |