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

Side by Side Diff: Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp

Issue 7839014: Merge http://trac.webkit.org/changeset/93131 : GraphicsContext3D should allow its hostWindow to b... (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/835/
Patch Set: '' Created 9 years, 3 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
« no previous file with comments | « no previous file | Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp » ('j') | 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) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv ed. 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv ed.
3 * Copyright (C) 2008, 2010 Nokia Corporation and/or its subsidiary(-ies) 3 * Copyright (C) 2008, 2010 Nokia Corporation and/or its subsidiary(-ies)
4 * Copyright (C) 2007 Alp Toker <alp@atoker.com> 4 * Copyright (C) 2007 Alp Toker <alp@atoker.com>
5 * Copyright (C) 2008 Eric Seidel <eric@webkit.org> 5 * Copyright (C) 2008 Eric Seidel <eric@webkit.org>
6 * Copyright (C) 2008 Dirk Schulze <krit@webkit.org> 6 * Copyright (C) 2008 Dirk Schulze <krit@webkit.org>
7 * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved. 7 * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved.
8 * 8 *
9 * Redistribution and use in source and binary forms, with or without 9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions 10 * modification, are permitted provided that the following conditions
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 return buffer ? buffer->isAccelerated() : false; 184 return buffer ? buffer->isAccelerated() : false;
185 #elif ENABLE(ACCELERATED_2D_CANVAS) 185 #elif ENABLE(ACCELERATED_2D_CANVAS)
186 return m_context3D; 186 return m_context3D;
187 #else 187 #else
188 return false; 188 return false;
189 #endif 189 #endif
190 } 190 }
191 191
192 bool CanvasRenderingContext2D::paintsIntoCanvasBuffer() const 192 bool CanvasRenderingContext2D::paintsIntoCanvasBuffer() const
193 { 193 {
194 #if ENABLE(ACCELERATED_2D_CANVAS) 194 #if ENABLE(ACCELERATED_2D_CANVAS) && USE(ACCELERATED_COMPOSITING)
195 if (m_context3D) 195 if (!isAccelerated())
196 return m_context3D->context()->paintsIntoCanvasBuffer(); 196 return true;
197
198 RenderBox* renderBox = canvas()->renderBox();
199 if (renderBox && renderBox->hasLayer() && renderBox->layer()->hasAccelerated Compositing())
200 return false;
197 #endif 201 #endif
198 return true; 202 return true;
199 } 203 }
200 204
201 205
202 void CanvasRenderingContext2D::reset() 206 void CanvasRenderingContext2D::reset()
203 { 207 {
204 m_stateStack.resize(1); 208 m_stateStack.resize(1);
205 m_stateStack.first() = State(); 209 m_stateStack.first() = State();
206 m_path.clear(); 210 m_path.clear();
(...skipping 1833 matching lines...) Expand 10 before | Expand all | Expand 10 after
2040 } 2044 }
2041 2045
2042 // Try to accelerate. 2046 // Try to accelerate.
2043 GraphicsContext* ctx = drawingContext(); 2047 GraphicsContext* ctx = drawingContext();
2044 if (!ctx) { 2048 if (!ctx) {
2045 clearAcceleration(); 2049 clearAcceleration();
2046 return; 2050 return;
2047 } 2051 }
2048 2052
2049 if (!m_context3D) { 2053 if (!m_context3D) {
2050 Page* page = canvas()->document()->page(); 2054 m_context3D = SharedGraphicsContext3D::create(0);
2051 m_context3D = SharedGraphicsContext3D::create(page->chrome());
2052 if (!m_context3D) { 2055 if (!m_context3D) {
2053 clearAcceleration(); 2056 clearAcceleration();
2054 return; 2057 return;
2055 } 2058 }
2056 } 2059 }
2057 2060
2058 if (m_drawingBuffer) { 2061 if (m_drawingBuffer) {
2059 if (!m_drawingBuffer->reset(canvas()->size())) { 2062 if (!m_drawingBuffer->reset(canvas()->size())) {
2060 clearAcceleration(); 2063 clearAcceleration();
2061 return; 2064 return;
2062 } 2065 }
2063 } else { 2066 } else {
2064 m_drawingBuffer = m_context3D->context()->createDrawingBuffer(canvas()-> size()); 2067 m_drawingBuffer = m_context3D->context()->createDrawingBuffer(canvas()-> size());
2065 if (!m_drawingBuffer) { 2068 if (!m_drawingBuffer) {
2066 clearAcceleration(); 2069 clearAcceleration();
2067 return; 2070 return;
2068 } 2071 }
2069 } 2072 }
2070 2073
2071 ctx->setGraphicsContext3D(m_context3D->context(), m_drawingBuffer.get(), can vas()->size()); 2074 ctx->setGraphicsContext3D(m_context3D->context(), m_drawingBuffer.get(), can vas()->size());
2072 } 2075 }
2073 #endif 2076 #endif
2074 2077
2075 } // namespace WebCore 2078 } // namespace WebCore
OLDNEW
« no previous file with comments | « no previous file | Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698