OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012, Google Inc. All rights reserved. | 2 * Copyright (c) 2012, Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 26 matching lines...) Expand all Loading... |
37 #include "SkColorFilter.h" | 37 #include "SkColorFilter.h" |
38 #include "SkShader.h" | 38 #include "SkShader.h" |
39 | 39 |
40 namespace WebCore { | 40 namespace WebCore { |
41 | 41 |
42 OpaqueRegionSkia::OpaqueRegionSkia() | 42 OpaqueRegionSkia::OpaqueRegionSkia() |
43 : m_opaqueRect(SkRect::MakeEmpty()) | 43 : m_opaqueRect(SkRect::MakeEmpty()) |
44 { | 44 { |
45 } | 45 } |
46 | 46 |
| 47 void OpaqueRegionSkia::reset() |
| 48 { |
| 49 ASSERT(m_canvasLayerStack.isEmpty()); |
| 50 m_opaqueRect = SkRect::MakeEmpty(); |
| 51 } |
| 52 |
47 IntRect OpaqueRegionSkia::asRect() const | 53 IntRect OpaqueRegionSkia::asRect() const |
48 { | 54 { |
49 // Returns the largest enclosed rect. | 55 // Returns the largest enclosed rect. |
50 // TODO: actually, this logic looks like its returning the smallest. | 56 // TODO: actually, this logic looks like its returning the smallest. |
51 // to return largest, shouldn't we take floor of left/top | 57 // to return largest, shouldn't we take floor of left/top |
52 // and the ceil of right/bottom? | 58 // and the ceil of right/bottom? |
53 int left = SkScalarCeilToInt(m_opaqueRect.fLeft); | 59 int left = SkScalarCeilToInt(m_opaqueRect.fLeft); |
54 int top = SkScalarCeilToInt(m_opaqueRect.fTop); | 60 int top = SkScalarCeilToInt(m_opaqueRect.fTop); |
55 int right = SkScalarFloorToInt(m_opaqueRect.fRight); | 61 int right = SkScalarFloorToInt(m_opaqueRect.fRight); |
56 int bottom = SkScalarFloorToInt(m_opaqueRect.fBottom); | 62 int bottom = SkScalarFloorToInt(m_opaqueRect.fBottom); |
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
433 opaqueRect.setEmpty(); | 439 opaqueRect.setEmpty(); |
434 } | 440 } |
435 | 441 |
436 SkRect& OpaqueRegionSkia::currentTrackingOpaqueRect() | 442 SkRect& OpaqueRegionSkia::currentTrackingOpaqueRect() |
437 { | 443 { |
438 // If we are drawing into a canvas layer, then track the opaque rect in that
layer. | 444 // If we are drawing into a canvas layer, then track the opaque rect in that
layer. |
439 return m_canvasLayerStack.isEmpty() ? m_opaqueRect : m_canvasLayerStack.last
().opaqueRect; | 445 return m_canvasLayerStack.isEmpty() ? m_opaqueRect : m_canvasLayerStack.last
().opaqueRect; |
440 } | 446 } |
441 | 447 |
442 } // namespace WebCore | 448 } // namespace WebCore |
OLD | NEW |