diff options
author | 2014-06-29 15:08:31 -0700 | |
---|---|---|
committer | 2014-06-29 15:08:31 -0700 | |
commit | 55e61f0ef4e5c8c34ac107deaadc9b4ffef3111b (patch) | |
tree | a4338959e2934648d4ef1793017c96a786bac632 /include/gpu | |
parent | d92f5b814d01c474a0fb52e32e10a997b2c9b5bf (diff) |
Begin atlasing
This CL makes it possible for pulled-forward-layers to be atlased. It currently has a couple glaring limitations (which is why it is disabled):
1) the atlased layers cannot be purged nor aged out
2) the texture backing the atlas is not pulled from (or returned to) the resource cache
#1 is on hold until we have a recycling rectanizer
A separate major limitation (the non-atlased layers aren't cached) is blocked until we can transmute entries in the resource cache from scratch to non-scratch while potentially preserving their contents.
R=bsalomon@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/354533004
Diffstat (limited to 'include/gpu')
-rw-r--r-- | include/gpu/GrRect.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/include/gpu/GrRect.h b/include/gpu/GrRect.h index ddb23b5a19..14130f831c 100644 --- a/include/gpu/GrRect.h +++ b/include/gpu/GrRect.h @@ -20,6 +20,18 @@ struct GrIRect16 { return r; } + static GrIRect16 SK_WARN_UNUSED_RESULT MakeWH(int16_t w, int16_t h) { + GrIRect16 r; + r.set(0, 0, w, h); + return r; + } + + static GrIRect16 SK_WARN_UNUSED_RESULT MakeXYWH(int16_t x, int16_t y, int16_t w, int16_t h) { + GrIRect16 r; + r.set(x, y, x + w, y + h); + return r; + } + int width() const { return fRight - fLeft; } int height() const { return fBottom - fTop; } int area() const { return this->width() * this->height(); } @@ -27,6 +39,13 @@ struct GrIRect16 { void setEmpty() { memset(this, 0, sizeof(*this)); } + void set(int16_t left, int16_t top, int16_t right, int16_t bottom) { + fLeft = left; + fTop = top; + fRight = right; + fBottom = bottom; + } + void set(const SkIRect& r) { fLeft = SkToS16(r.fLeft); fTop = SkToS16(r.fTop); |