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 | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 #define EXPECT_EQ_RECT(a, b) \ | 46 #define EXPECT_EQ_RECT(a, b) \ |
47 EXPECT_EQ(a.x(), b.x()); \ | 47 EXPECT_EQ(a.x(), b.x()); \ |
48 EXPECT_EQ(a.y(), b.y()); \ | 48 EXPECT_EQ(a.y(), b.y()); \ |
49 EXPECT_EQ(a.width(), b.width()); \ | 49 EXPECT_EQ(a.width(), b.width()); \ |
50 EXPECT_EQ(a.height(), b.height()); | 50 EXPECT_EQ(a.height(), b.height()); |
51 | 51 |
52 namespace { | 52 namespace { |
53 | 53 |
54 class TestContentLayerChromium : public LayerChromium { | 54 class TestContentLayerChromium : public LayerChromium { |
55 public: | 55 public: |
56 TestContentLayerChromium() : LayerChromium() { } | 56 TestContentLayerChromium() |
| 57 : LayerChromium() |
| 58 , m_overrideOpaqueContentsRect(false) |
| 59 { |
| 60 } |
57 | 61 |
58 virtual bool drawsContent() const { return true; } | 62 virtual bool drawsContent() const { return true; } |
59 virtual Region visibleContentOpaqueRegion() const { return intersection(m_op
aqueContentsRect, visibleLayerRect()); } | 63 virtual Region visibleContentOpaqueRegion() const |
60 void setOpaqueContentsRect(const IntRect& opaqueContentsRect) { m_opaqueCont
entsRect = opaqueContentsRect; } | 64 { |
| 65 if (m_overrideOpaqueContentsRect) |
| 66 return intersection(m_opaqueContentsRect, visibleLayerRect()); |
| 67 return LayerChromium::visibleContentOpaqueRegion(); |
| 68 } |
| 69 void setOpaqueContentsRect(const IntRect& opaqueContentsRect) |
| 70 { |
| 71 m_overrideOpaqueContentsRect = true; |
| 72 m_opaqueContentsRect = opaqueContentsRect; |
| 73 } |
61 | 74 |
62 private: | 75 private: |
| 76 bool m_overrideOpaqueContentsRect; |
63 IntRect m_opaqueContentsRect; | 77 IntRect m_opaqueContentsRect; |
64 }; | 78 }; |
65 | 79 |
66 class TestContentLayerImpl : public CCLayerImpl { | 80 class TestContentLayerImpl : public CCLayerImpl { |
67 public: | 81 public: |
68 TestContentLayerImpl(int id) : CCLayerImpl(id) { setDrawsContent(true); } | 82 TestContentLayerImpl(int id) |
| 83 : CCLayerImpl(id) |
| 84 , m_overrideOpaqueContentsRect(false) |
| 85 { |
| 86 setDrawsContent(true); |
| 87 } |
69 | 88 |
70 virtual Region visibleContentOpaqueRegion() const { return intersection(m_op
aqueContentsRect, visibleLayerRect()); } | 89 virtual Region visibleContentOpaqueRegion() const |
71 void setOpaqueContentsRect(const IntRect& opaqueContentsRect) { m_opaqueCont
entsRect = opaqueContentsRect; } | 90 { |
| 91 if (m_overrideOpaqueContentsRect) |
| 92 return intersection(m_opaqueContentsRect, visibleLayerRect()); |
| 93 return CCLayerImpl::visibleContentOpaqueRegion(); |
| 94 } |
| 95 void setOpaqueContentsRect(const IntRect& opaqueContentsRect) |
| 96 { |
| 97 m_overrideOpaqueContentsRect = true; |
| 98 m_opaqueContentsRect = opaqueContentsRect; |
| 99 } |
| 100 |
72 private: | 101 private: |
| 102 bool m_overrideOpaqueContentsRect; |
73 IntRect m_opaqueContentsRect; | 103 IntRect m_opaqueContentsRect; |
74 }; | 104 }; |
75 | 105 |
76 // A subclass to expose the total current occlusion. | 106 // A subclass to expose the total current occlusion. |
77 template<typename LayerType, typename RenderSurfaceType> | 107 template<typename LayerType, typename RenderSurfaceType> |
78 class TestCCOcclusionTrackerBase : public CCOcclusionTrackerBase<LayerType, Rend
erSurfaceType> { | 108 class TestCCOcclusionTrackerBase : public CCOcclusionTrackerBase<LayerType, Rend
erSurfaceType> { |
79 public: | 109 public: |
80 TestCCOcclusionTrackerBase(IntRect screenScissorRect, bool recordMetricsForF
rame = false) | 110 TestCCOcclusionTrackerBase(IntRect screenScissorRect, bool recordMetricsForF
rame = false) |
81 : CCOcclusionTrackerBase<LayerType, RenderSurfaceType>(screenScissorRect
, recordMetricsForFrame) | 111 : CCOcclusionTrackerBase<LayerType, RenderSurfaceType>(screenScissorRect
, recordMetricsForFrame) |
82 , m_overrideLayerScissorRect(false) | 112 , m_overrideLayerScissorRect(false) |
(...skipping 1831 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1914 EXPECT_EQ_RECT(IntRect(0, 0, 300, 200), occlusion.occlusionInScreenSpace
().bounds()); | 1944 EXPECT_EQ_RECT(IntRect(0, 0, 300, 200), occlusion.occlusionInScreenSpace
().bounds()); |
1915 EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); | 1945 EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); |
1916 EXPECT_EQ_RECT(IntRect(0, 0, 300, 200), occlusion.occlusionInTargetSurfa
ce().bounds()); | 1946 EXPECT_EQ_RECT(IntRect(0, 0, 300, 200), occlusion.occlusionInTargetSurfa
ce().bounds()); |
1917 EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); | 1947 EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); |
1918 } | 1948 } |
1919 }; | 1949 }; |
1920 | 1950 |
1921 MAIN_AND_IMPL_THREAD_TEST(CCOcclusionTrackerTestSurfaceOcclusionTranslatesWithCl
ipping); | 1951 MAIN_AND_IMPL_THREAD_TEST(CCOcclusionTrackerTestSurfaceOcclusionTranslatesWithCl
ipping); |
1922 | 1952 |
1923 } // namespace | 1953 } // namespace |
OLD | NEW |