diff options
author | John Reck <jreck@google.com> | 2018-09-20 13:00:04 -0700 |
---|---|---|
committer | John Reck <jreck@google.com> | 2018-09-20 13:41:56 -0700 |
commit | f3c724fd7c18e78b8d981b0ff35477ecbf383298 (patch) | |
tree | 5c06fb350f53d79461e1c50da96c1977e81ff058 /libs/hwui/RecordingCanvas.h | |
parent | bd5fed399f93183eaf1ad6d69f73019713682d2d (diff) |
Make auto-dark a bit better
Handles transform of basic bitmaps
Tweak to always treat text as foreground
Test: builds, poked around with force_dark
Change-Id: I733d39e05067438335da5a7eac06111f66f1228d
Diffstat (limited to 'libs/hwui/RecordingCanvas.h')
-rw-r--r-- | libs/hwui/RecordingCanvas.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/libs/hwui/RecordingCanvas.h b/libs/hwui/RecordingCanvas.h index 32ce1d333448..eecf51ce0996 100644 --- a/libs/hwui/RecordingCanvas.h +++ b/libs/hwui/RecordingCanvas.h @@ -17,6 +17,7 @@ #pragma once #include "CanvasTransform.h" +#include "hwui/Bitmap.h" #include "hwui/Canvas.h" #include "utils/Macros.h" #include "utils/TypeLogic.h" @@ -53,6 +54,7 @@ class RecordingCanvas; class DisplayListData final { public: + DisplayListData() : mHasText(false) {} ~DisplayListData(); void draw(SkCanvas* canvas) const; @@ -62,6 +64,8 @@ public: void applyColorTransform(ColorTransform transform); + bool hasText() const { return mHasText; } + private: friend class RecordingCanvas; @@ -101,10 +105,10 @@ private: void drawTextRSXform(const void*, size_t, const SkRSXform[], const SkRect*, const SkPaint&); void drawTextBlob(const SkTextBlob*, SkScalar, SkScalar, const SkPaint&); - void drawImage(sk_sp<const SkImage>, SkScalar, SkScalar, const SkPaint*); + void drawImage(sk_sp<const SkImage>, SkScalar, SkScalar, const SkPaint*, BitmapPalette palette); void drawImageNine(sk_sp<const SkImage>, const SkIRect&, const SkRect&, const SkPaint*); void drawImageRect(sk_sp<const SkImage>, const SkRect*, const SkRect&, const SkPaint*, - SkCanvas::SrcRectConstraint); + SkCanvas::SrcRectConstraint, BitmapPalette palette); void drawImageLattice(sk_sp<const SkImage>, const SkCanvas::Lattice&, const SkRect&, const SkPaint*); @@ -126,6 +130,8 @@ private: SkAutoTMalloc<uint8_t> fBytes; size_t fUsed = 0; size_t fReserved = 0; + + bool mHasText : 1; }; class RecordingCanvas final : public SkCanvasVirtualEnforcer<SkNoDrawCanvas> { @@ -178,6 +184,12 @@ public: void onDrawBitmapRect(const SkBitmap&, const SkRect*, const SkRect&, const SkPaint*, SrcRectConstraint) override; + void drawImage(const sk_sp<SkImage>& image, SkScalar left, SkScalar top, + const SkPaint* paint, BitmapPalette pallete); + + void drawImageRect(const sk_sp<SkImage>& image, const SkRect& src, const SkRect& dst, + const SkPaint* paint, SrcRectConstraint constraint, BitmapPalette palette); + void onDrawImage(const SkImage*, SkScalar, SkScalar, const SkPaint*) override; void onDrawImageLattice(const SkImage*, const Lattice&, const SkRect&, const SkPaint*) override; void onDrawImageNine(const SkImage*, const SkIRect&, const SkRect&, const SkPaint*) override; |