Lines Matching refs:paint

240 /*  Packing the paint
250 static uint32_t pack_v68(const SkPaint& paint, unsigned flatFlags) {
252 const auto bm = paint.asBlendMode();
256 packed |= shift_bits(((unsigned)paint.isDither() << 1) |
257 (unsigned)paint.isAntiAlias(), 0, 8);
259 packed |= shift_bits(paint.getStrokeCap(), 16, 2);
260 packed |= shift_bits(paint.getStrokeJoin(), 18, 2);
261 packed |= shift_bits(paint.getStyle(), 20, 2);
267 static uint32_t unpack_v68(SkPaint* paint, uint32_t packed, SkSafeRange& safe) {
268 paint->setAntiAlias((packed & 1) != 0);
269 paint->setDither((packed & 2) != 0);
274 paint->setBlendMode(safe.checkLE(mode, SkBlendMode::kLastMode));
279 paint->setStrokeCap(safe.checkLE(packed & 0x3, SkPaint::kLast_Cap));
281 paint->setStrokeJoin(safe.checkLE(packed & 0x3, SkPaint::kLast_Join));
283 paint->setStyle(safe.checkLE(packed & 0x3, SkPaint::kStrokeAndFill_Style));
291 /* To save space/time, we analyze the paint, and write a truncated version of
294 void SkPaintPriv::Flatten(const SkPaint& paint, SkWriteBuffer& buffer) {
297 if (paint.getPathEffect() ||
298 paint.getShader() ||
299 paint.getMaskFilter() ||
300 paint.getColorFilter() ||
301 paint.getImageFilter() ||
302 !paint.asBlendMode()) {
306 buffer.writeScalar(paint.getStrokeWidth());
307 buffer.writeScalar(paint.getStrokeMiter());
308 buffer.writeColor4f(paint.getColor4f());
310 buffer.write32(pack_v68(paint, flatFlags));
313 buffer.writeFlattenable(paint.getPathEffect());
314 buffer.writeFlattenable(paint.getShader());
315 buffer.writeFlattenable(paint.getMaskFilter());
316 buffer.writeFlattenable(paint.getColorFilter());
317 buffer.writeFlattenable(paint.getImageFilter());
318 buffer.writeFlattenable(paint.getBlender());
323 SkPaint paint;
325 paint.setStrokeWidth(buffer.readScalar());
326 paint.setStrokeMiter(buffer.readScalar());
330 paint.setColor(color, sk_srgb_singleton());
334 unsigned flatFlags = unpack_v68(&paint, buffer.readUInt(), safe);
338 paint.setPathEffect(nullptr);
339 paint.setShader(nullptr);
340 paint.setMaskFilter(nullptr);
341 paint.setColorFilter(nullptr);
342 paint.setImageFilter(nullptr);
344 // This paint predates the introduction of user blend functions (via SkBlender).
345 paint.setPathEffect(buffer.readPathEffect());
346 paint.setShader(buffer.readShader());
347 paint.setMaskFilter(buffer.readMaskFilter());
348 paint.setColorFilter(buffer.readColorFilter());
350 paint.setImageFilter(buffer.readImageFilter());
352 paint.setPathEffect(buffer.readPathEffect());
353 paint.setShader(buffer.readShader());
354 paint.setMaskFilter(buffer.readMaskFilter());
355 paint.setColorFilter(buffer.readColorFilter());
356 paint.setImageFilter(buffer.readImageFilter());
357 paint.setBlender(buffer.readBlender());
361 paint.reset();
363 return paint;