Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit e55e560

Browse files
fmalitaSkia Commit-Bot
authored andcommitted
Hoist pixel geometry adjustments out of SkBaseDevice::CreateInfo()
We only call CreateInfo() from internalSaveLayer(), and always pass kNever_TileUsage. Move the related pixel geo override to internalSaveLayer, and remove CreateInfo::AdjustPixelGeometry(). (also swap the args order to "prove" we're covering all callers) NOTREECHECKS=true Change-Id: Ie11c3f501d262f070cf97797cb549d3afa87d679 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286876 Reviewed-by: Mike Reed <[email protected]> Commit-Queue: Florin Malita <[email protected]>
1 parent ef41d50 commit e55e560

File tree

3 files changed

+11
-23
lines changed

3 files changed

+11
-23
lines changed

src/core/SkCanvas.cpp

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1167,12 +1167,17 @@ void SkCanvas::internalSaveLayer(const SaveLayerRec& rec, SaveLayerStrategy stra
11671167
sk_sp<SkBaseDevice> newDevice;
11681168
{
11691169
SkASSERT(info.alphaType() != kOpaque_SkAlphaType);
1170-
const SkBaseDevice::TileUsage usage = SkBaseDevice::kNever_TileUsage;
1170+
1171+
// TODO: reinstate kPreserveLCDText_SaveLayerFlag
1172+
geo = kUnknown_SkPixelGeometry;
1173+
11711174
const bool trackCoverage =
11721175
SkToBool(saveLayerFlags & kMaskAgainstCoverage_EXPERIMENTAL_DONT_USE_SaveLayerFlag);
1173-
const SkBaseDevice::CreateInfo createInfo = SkBaseDevice::CreateInfo(info, usage, geo,
1174-
trackCoverage,
1175-
fAllocator.get());
1176+
const auto createInfo = SkBaseDevice::CreateInfo(info,
1177+
geo,
1178+
SkBaseDevice::kNever_TileUsage,
1179+
trackCoverage,
1180+
fAllocator.get());
11761181
newDevice.reset(priorDevice->onCreateDevice(createInfo, paint));
11771182
if (!newDevice) {
11781183
return;

src/core/SkDevice.cpp

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -106,20 +106,6 @@ bool SkBaseDevice::getLocalToMarker(uint32_t id, SkM44* localToMarker) const {
106106
return false;
107107
}
108108

109-
SkPixelGeometry SkBaseDevice::CreateInfo::AdjustGeometry(TileUsage tileUsage, SkPixelGeometry geo) {
110-
switch (tileUsage) {
111-
case kPossible_TileUsage:
112-
// (we think) for compatibility with old clients, we assume this layer can support LCD
113-
// even though they may not have marked it as opaque... seems like we should update
114-
// our callers (reed/robertphilips).
115-
break;
116-
case kNever_TileUsage:
117-
geo = kUnknown_SkPixelGeometry;
118-
break;
119-
}
120-
return geo;
121-
}
122-
123109
static inline bool is_int(float x) {
124110
return x == (float) sk_float_round2int(x);
125111
}

src/core/SkDevice.h

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -339,17 +339,14 @@ class SkBaseDevice : public SkRefCnt, public SkMatrixProvider {
339339
virtual bool onAccessPixels(SkPixmap*) { return false; }
340340

341341
struct CreateInfo {
342-
static SkPixelGeometry AdjustGeometry(TileUsage, SkPixelGeometry);
343-
344-
// The constructor may change the pixel geometry based on other parameters.
345342
CreateInfo(const SkImageInfo& info,
346-
TileUsage tileUsage,
347343
SkPixelGeometry geo,
344+
TileUsage tileUsage,
348345
bool trackCoverage,
349346
SkRasterHandleAllocator* allocator)
350347
: fInfo(info)
351348
, fTileUsage(tileUsage)
352-
, fPixelGeometry(AdjustGeometry(tileUsage, geo))
349+
, fPixelGeometry(geo)
353350
, fTrackCoverage(trackCoverage)
354351
, fAllocator(allocator)
355352
{}

0 commit comments

Comments
 (0)