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

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

Issue 127493002: Removed most calls to GraphicsContext3D from DrawingBuffer (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 11 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Apple Inc. All rights reserved. 2 * Copyright (C) 2010 Apple Inc. All rights reserved.
3 * Copyright (C) 2010 Google Inc. All rights reserved. 3 * Copyright (C) 2010 Google Inc. All rights reserved.
4 * Copyright (C) 2010 Mozilla Corporation. All rights reserved. 4 * Copyright (C) 2010 Mozilla Corporation. All rights reserved.
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 , m_initializedAvailableExtensions(false) 86 , m_initializedAvailableExtensions(false)
87 , m_layerComposited(false) 87 , m_layerComposited(false)
88 , m_preserveDrawingBuffer(false) 88 , m_preserveDrawingBuffer(false)
89 , m_packAlignment(4) 89 , m_packAlignment(4)
90 , m_grContext(0) 90 , m_grContext(0)
91 { 91 {
92 } 92 }
93 93
94 GraphicsContext3D::~GraphicsContext3D() 94 GraphicsContext3D::~GraphicsContext3D()
95 { 95 {
96 setContextLostCallback(nullptr);
97 setErrorMessageCallback(nullptr);
98 } 96 }
99 97
100 // Macros to assist in delegating from GraphicsContext3D to 98 // Macros to assist in delegating from GraphicsContext3D to
101 // WebGraphicsContext3D. 99 // WebGraphicsContext3D.
102 100
103 #define DELEGATE_TO_WEBCONTEXT(name) \ 101 #define DELEGATE_TO_WEBCONTEXT(name) \
104 void GraphicsContext3D::name() \ 102 void GraphicsContext3D::name() \
105 { \ 103 { \
106 m_impl->name(); \ 104 m_impl->name(); \
107 } 105 }
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 { \ 157 { \
160 m_impl->name(a1, a2, a3, a4, a5, a6, a7); \ 158 m_impl->name(a1, a2, a3, a4, a5, a6, a7); \
161 } 159 }
162 160
163 #define DELEGATE_TO_WEBCONTEXT_9(name, t1, t2, t3, t4, t5, t6, t7, t8, t9) \ 161 #define DELEGATE_TO_WEBCONTEXT_9(name, t1, t2, t3, t4, t5, t6, t7, t8, t9) \
164 void GraphicsContext3D::name(t1 a1, t2 a2, t3 a3, t4 a4, t5 a5, t6 a6, t7 a7, t8 a8, t9 a9) \ 162 void GraphicsContext3D::name(t1 a1, t2 a2, t3 a3, t4 a4, t5 a5, t6 a6, t7 a7, t8 a8, t9 a9) \
165 { \ 163 { \
166 m_impl->name(a1, a2, a3, a4, a5, a6, a7, a8, a9); \ 164 m_impl->name(a1, a2, a3, a4, a5, a6, a7, a8, a9); \
167 } 165 }
168 166
169 class GraphicsContext3DContextLostCallbackAdapter : public blink::WebGraphicsCon text3D::WebGraphicsContextLostCallback {
170 public:
171 GraphicsContext3DContextLostCallbackAdapter(PassOwnPtr<GraphicsContext3D::Co ntextLostCallback> callback)
172 : m_contextLostCallback(callback) { }
173 virtual ~GraphicsContext3DContextLostCallbackAdapter() { }
174
175 virtual void onContextLost()
176 {
177 if (m_contextLostCallback)
178 m_contextLostCallback->onContextLost();
179 }
180 private:
181 OwnPtr<GraphicsContext3D::ContextLostCallback> m_contextLostCallback;
182 };
183
184 class GraphicsContext3DErrorMessageCallbackAdapter : public blink::WebGraphicsCo ntext3D::WebGraphicsErrorMessageCallback {
185 public:
186 GraphicsContext3DErrorMessageCallbackAdapter(PassOwnPtr<GraphicsContext3D::E rrorMessageCallback> callback)
187 : m_errorMessageCallback(callback) { }
188 virtual ~GraphicsContext3DErrorMessageCallbackAdapter() { }
189
190 virtual void onErrorMessage(const blink::WebString& message, blink::WGC3Dint id)
191 {
192 if (m_errorMessageCallback)
193 m_errorMessageCallback->onErrorMessage(message, id);
194 }
195 private:
196 OwnPtr<GraphicsContext3D::ErrorMessageCallback> m_errorMessageCallback;
197 };
198
199 void GraphicsContext3D::setContextLostCallback(PassOwnPtr<GraphicsContext3D::Con textLostCallback> callback)
200 {
201 if (m_ownedWebContext) {
202 m_contextLostCallbackAdapter = adoptPtr(new GraphicsContext3DContextLost CallbackAdapter(callback));
203 m_ownedWebContext->setContextLostCallback(m_contextLostCallbackAdapter.g et());
204 }
205 }
206
207 void GraphicsContext3D::setErrorMessageCallback(PassOwnPtr<GraphicsContext3D::Er rorMessageCallback> callback)
208 {
209 if (m_ownedWebContext) {
210 m_errorMessageCallbackAdapter = adoptPtr(new GraphicsContext3DErrorMessa geCallbackAdapter(callback));
211 m_ownedWebContext->setErrorMessageCallback(m_errorMessageCallbackAdapter .get());
212 }
213 }
214
215 PassRefPtr<GraphicsContext3D> GraphicsContext3D::createContextSupport(blink::Web GraphicsContext3D* webContext) 167 PassRefPtr<GraphicsContext3D> GraphicsContext3D::createContextSupport(blink::Web GraphicsContext3D* webContext)
216 { 168 {
217 RefPtr<GraphicsContext3D> context = adoptRef(new GraphicsContext3D(webContex t)); 169 RefPtr<GraphicsContext3D> context = adoptRef(new GraphicsContext3D(webContex t));
218 return context.release(); 170 return context.release();
219 } 171 }
220 172
221 // The following three creation methods are obsolete and should not be used by n ew code. They will be removed soon. 173 // The following three creation methods are obsolete and should not be used by n ew code. They will be removed soon.
222 PassRefPtr<GraphicsContext3D> GraphicsContext3D::create(GraphicsContext3D::Attri butes attrs) 174 PassRefPtr<GraphicsContext3D> GraphicsContext3D::create(GraphicsContext3D::Attri butes attrs)
223 { 175 {
224 blink::WebGraphicsContext3D::Attributes webAttributes; 176 blink::WebGraphicsContext3D::Attributes webAttributes;
(...skipping 26 matching lines...) Expand all
251 RefPtr<GraphicsContext3D> context = adoptRef(new GraphicsContext3D(webContex t, preserveDrawingBuffer)); 203 RefPtr<GraphicsContext3D> context = adoptRef(new GraphicsContext3D(webContex t, preserveDrawingBuffer));
252 return context.release(); 204 return context.release();
253 } 205 }
254 206
255 GrContext* GraphicsContext3D::grContext() 207 GrContext* GraphicsContext3D::grContext()
256 { 208 {
257 return m_grContext; 209 return m_grContext;
258 } 210 }
259 211
260 DELEGATE_TO_WEBCONTEXT_R(makeContextCurrent, bool) 212 DELEGATE_TO_WEBCONTEXT_R(makeContextCurrent, bool)
261 DELEGATE_TO_WEBCONTEXT_R(lastFlushID, uint32_t)
262 213
263 DELEGATE_TO_WEBCONTEXT_1(activeTexture, GLenum) 214 DELEGATE_TO_WEBCONTEXT_1(activeTexture, GLenum)
264 DELEGATE_TO_WEBCONTEXT_2(attachShader, Platform3DObject, Platform3DObject) 215 DELEGATE_TO_WEBCONTEXT_2(attachShader, Platform3DObject, Platform3DObject)
265 216
266 DELEGATE_TO_WEBCONTEXT_2(bindBuffer, GLenum, Platform3DObject) 217 DELEGATE_TO_WEBCONTEXT_2(bindBuffer, GLenum, Platform3DObject)
267 DELEGATE_TO_WEBCONTEXT_2(bindFramebuffer, GLenum, Platform3DObject) 218 DELEGATE_TO_WEBCONTEXT_2(bindFramebuffer, GLenum, Platform3DObject)
268 DELEGATE_TO_WEBCONTEXT_2(bindRenderbuffer, GLenum, Platform3DObject) 219 DELEGATE_TO_WEBCONTEXT_2(bindRenderbuffer, GLenum, Platform3DObject)
269 DELEGATE_TO_WEBCONTEXT_2(bindTexture, GLenum, Platform3DObject) 220 DELEGATE_TO_WEBCONTEXT_2(bindTexture, GLenum, Platform3DObject)
270 221
271 DELEGATE_TO_WEBCONTEXT_4(bufferData, GLenum, GLsizeiptr, const void*, GLenum) 222 DELEGATE_TO_WEBCONTEXT_4(bufferData, GLenum, GLsizeiptr, const void*, GLenum)
(...skipping 541 matching lines...) Expand 10 before | Expand all | Expand 10 after
813 for (unsigned i = 0; i < count; i++) { 764 for (unsigned i = 0; i < count; i++) {
814 uint8* rowA = framebuffer + i * rowBytes; 765 uint8* rowA = framebuffer + i * rowBytes;
815 uint8* rowB = framebuffer + (height - i - 1) * rowBytes; 766 uint8* rowB = framebuffer + (height - i - 1) * rowBytes;
816 memcpy(scanline, rowB, rowBytes); 767 memcpy(scanline, rowB, rowBytes);
817 memcpy(rowB, rowA, rowBytes); 768 memcpy(rowB, rowA, rowBytes);
818 memcpy(rowA, scanline, rowBytes); 769 memcpy(rowA, scanline, rowBytes);
819 } 770 }
820 } 771 }
821 772
822 } // namespace WebCore 773 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698