Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(178)

Side by Side Diff: Source/platform/graphics/GraphicsContext.cpp

Issue 293963009: Fixing GraphicsContext state checks to support oilpan (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: removed change to test expectations Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/platform/graphics/GraphicsContext.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2003, 2004, 2005, 2006, 2009 Apple Inc. All rights reserved. 2 * Copyright (C) 2003, 2004, 2005, 2006, 2009 Apple Inc. All rights reserved.
3 * Copyright (C) 2013 Google Inc. All rights reserved. 3 * Copyright (C) 2013 Google Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 115
116 GraphicsContext::GraphicsContext(SkCanvas* canvas, DisabledMode disableContextOr Painting) 116 GraphicsContext::GraphicsContext(SkCanvas* canvas, DisabledMode disableContextOr Painting)
117 : m_canvas(canvas) 117 : m_canvas(canvas)
118 , m_paintStateStack() 118 , m_paintStateStack()
119 , m_paintStateIndex(0) 119 , m_paintStateIndex(0)
120 , m_pendingCanvasSave(false) 120 , m_pendingCanvasSave(false)
121 , m_annotationMode(0) 121 , m_annotationMode(0)
122 #if !ASSERT_DISABLED 122 #if !ASSERT_DISABLED
123 , m_annotationCount(0) 123 , m_annotationCount(0)
124 , m_layerCount(0) 124 , m_layerCount(0)
125 , m_disableDestructionChecks(false)
125 #endif 126 #endif
126 , m_disabledState(disableContextOrPainting) 127 , m_disabledState(disableContextOrPainting)
127 , m_trackOpaqueRegion(false) 128 , m_trackOpaqueRegion(false)
128 , m_trackTextRegion(false) 129 , m_trackTextRegion(false)
129 , m_useHighResMarker(false) 130 , m_useHighResMarker(false)
130 , m_updatingControlTints(false) 131 , m_updatingControlTints(false)
131 , m_accelerated(false) 132 , m_accelerated(false)
132 , m_isCertainlyOpaque(true) 133 , m_isCertainlyOpaque(true)
133 , m_printing(false) 134 , m_printing(false)
134 , m_antialiasHairlineImages(false) 135 , m_antialiasHairlineImages(false)
135 { 136 {
136 if (!canvas) 137 if (!canvas)
137 m_disabledState |= PaintingDisabled; 138 m_disabledState |= PaintingDisabled;
138 139
139 // FIXME: Do some tests to determine how many states are typically used, and allocate 140 // FIXME: Do some tests to determine how many states are typically used, and allocate
140 // several here. 141 // several here.
141 m_paintStateStack.append(GraphicsContextState::create()); 142 m_paintStateStack.append(GraphicsContextState::create());
142 m_paintState = m_paintStateStack.last().get(); 143 m_paintState = m_paintStateStack.last().get();
143 } 144 }
144 145
145 GraphicsContext::~GraphicsContext() 146 GraphicsContext::~GraphicsContext()
146 { 147 {
147 #if !ENABLE(OILPAN) 148 #if !ASSERT_DISABLED
148 // FIXME: Oilpan: These asserts are not true for 149 if (!m_disableDestructionChecks) {
149 // CanvasRenderingContext2D. Therefore, there is debug mode code 150 ASSERT(!m_paintStateIndex);
150 // in the CanvasRenderingContext2D that forces this to be true so 151 ASSERT(!m_paintState->saveCount());
151 // that the assertions can be here for all the other cases. With 152 ASSERT(!m_annotationCount);
152 // Oilpan we cannot run that code in the CanvasRenderingContext2D 153 ASSERT(!m_layerCount);
153 // destructor because it touches other objects that are already 154 ASSERT(m_recordingStateStack.isEmpty());
154 // dead. We need to find another way of doing these asserts when 155 ASSERT(m_canvasStateStack.isEmpty());
155 // Oilpan is enabled. 156 }
156 ASSERT(!m_paintStateIndex);
157 ASSERT(!m_paintState->saveCount());
158 ASSERT(!m_annotationCount);
159 ASSERT(!m_layerCount);
160 ASSERT(m_recordingStateStack.isEmpty());
161 #endif 157 #endif
162 } 158 }
163 159
164 void GraphicsContext::save() 160 void GraphicsContext::save()
165 { 161 {
166 if (contextDisabled()) 162 if (contextDisabled())
167 return; 163 return;
168 164
169 m_paintState->incrementSaveCount(); 165 m_paintState->incrementSaveCount();
170 166
(...skipping 1675 matching lines...) Expand 10 before | Expand all | Expand 10 after
1846 1842
1847 void GraphicsContext::didDrawTextInRect(const SkRect& textRect) 1843 void GraphicsContext::didDrawTextInRect(const SkRect& textRect)
1848 { 1844 {
1849 if (m_trackTextRegion) { 1845 if (m_trackTextRegion) {
1850 TRACE_EVENT0("skia", "PlatformContextSkia::trackTextRegion"); 1846 TRACE_EVENT0("skia", "PlatformContextSkia::trackTextRegion");
1851 m_textRegion.join(textRect); 1847 m_textRegion.join(textRect);
1852 } 1848 }
1853 } 1849 }
1854 1850
1855 } 1851 }
OLDNEW
« no previous file with comments | « Source/platform/graphics/GraphicsContext.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698