track bounds of top-level control ops
We don't need an explicit save-restore block to determine the bounds of top-level control operations... the implicit save-restore that all picutres have should logically work the same way. The commented test failed before this and passes now. Bug: skia:7735 Change-Id: Ibd31a3a9b0b48042ab3869a6bb57bc8d8bb78c09 Reviewed-on: https://skia-review.googlesource.com/126460 Commit-Queue: Mike Klein <mtklein@chromium.org> Commit-Queue: Brian Osman <brianosman@google.com> Auto-Submit: Mike Klein <mtklein@chromium.org> Reviewed-by: Brian Osman <brianosman@google.com>
This commit is contained in:
parent
240fddd01b
commit
ad67c66a58
@ -167,6 +167,9 @@ public:
|
||||
, fCullRect(cullRect)
|
||||
, fBounds(bounds) {
|
||||
fCTM = SkMatrix::I();
|
||||
|
||||
// We push an extra save block to track the bounds of any top-level control operations.
|
||||
fSaveStack.push({ 0, Bounds::MakeEmpty(), nullptr, fCTM });
|
||||
}
|
||||
|
||||
void cleanUp() {
|
||||
|
@ -124,8 +124,7 @@ DEF_TEST(PictureNegativeSpace, r) {
|
||||
REPORTER_ASSERT(r, pic->cullRect() == (SkRect{-20,-20,-10,-10}));
|
||||
}
|
||||
|
||||
// TODO: we should also get the same results without the explicit save/restore
|
||||
if (0) {
|
||||
{
|
||||
auto canvas = recorder.beginRecording(cull, &factory);
|
||||
canvas->clipRect(cull);
|
||||
canvas->drawRect({-20,-20,-10,-10}, SkPaint{});
|
||||
|
Loading…
Reference in New Issue
Block a user