aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/gpu
diff options
context:
space:
mode:
authorGravatar robertphillips <robertphillips@google.com>2014-06-29 15:08:31 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-06-29 15:08:31 -0700
commit55e61f0ef4e5c8c34ac107deaadc9b4ffef3111b (patch)
treea4338959e2934648d4ef1793017c96a786bac632 /include/gpu
parentd92f5b814d01c474a0fb52e32e10a997b2c9b5bf (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.h19
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);