Index: content/common/gpu/client/grcontext_for_webgraphicscontext3d.cc |
diff --git a/content/common/gpu/client/grcontext_for_webgraphicscontext3d.cc b/content/common/gpu/client/grcontext_for_webgraphicscontext3d.cc |
index 73c39eabbf06744fe5acadf05c4771ee888facc2..970ec386067ce002b90bd7327adf12fa77f7bc0b 100644 |
--- a/content/common/gpu/client/grcontext_for_webgraphicscontext3d.cc |
+++ b/content/common/gpu/client/grcontext_for_webgraphicscontext3d.cc |
@@ -8,8 +8,8 @@ |
#include "base/trace_event/trace_event.h" |
#include "gpu/blink/webgraphicscontext3d_impl.h" |
#include "gpu/command_buffer/client/gles2_lib.h" |
-#include "gpu/skia_bindings/gl_bindings_skia_cmd_buffer.h" |
#include "third_party/skia/include/gpu/GrContext.h" |
+#include "third_party/skia/include/gpu/gl/GrGLInterface.h" |
using gpu_blink::WebGraphicsContext3DImpl; |
@@ -32,28 +32,32 @@ |
LAZY_INSTANCE_INITIALIZER; |
void BindWebGraphicsContext3DGLContextCallback(const GrGLInterface* interface) { |
- gles2::SetGLContext(static_cast<const GrGLInterfaceForWebGraphicsContext3D*>( |
- interface)->WebContext3D()->GetGLInterface()); |
+ gles2::SetGLContext(reinterpret_cast<WebGraphicsContext3DImpl*>( |
+ interface->fCallbackData)->GetGLInterface()); |
} |
} // namespace anonymous |
GrContextForWebGraphicsContext3D::GrContextForWebGraphicsContext3D( |
- skia::RefPtr<GrGLInterfaceForWebGraphicsContext3D> gr_interface) { |
- if (!gr_interface || !gr_interface->WebContext3D()) |
+ WebGraphicsContext3DImpl* context3d) { |
+ if (!context3d) |
return; |
// Ensure the gles2 library is initialized first in a thread safe way. |
g_gles2_initializer.Get(); |
- gles2::SetGLContext(gr_interface->WebContext3D()->GetGLInterface()); |
+ gles2::SetGLContext(context3d->GetGLInterface()); |
+ skia::RefPtr<GrGLInterface> interface = skia::AdoptRef( |
+ context3d->createGrGLInterface()); |
+ if (!interface) |
+ return; |
- skia_bindings::InitCommandBufferSkiaGLBinding(gr_interface.get()); |
- |
- gr_interface->fCallback = BindWebGraphicsContext3DGLContextCallback; |
+ interface->fCallback = BindWebGraphicsContext3DGLContextCallback; |
+ interface->fCallbackData = |
+ reinterpret_cast<GrGLInterfaceCallbackData>(context3d); |
gr_context_ = skia::AdoptRef(GrContext::Create( |
kOpenGL_GrBackend, |
- reinterpret_cast<GrBackendContext>(gr_interface.get()))); |
+ reinterpret_cast<GrBackendContext>(interface.get()))); |
if (gr_context_) { |
// The limit of the number of GPU resources we hold in the GrContext's |
// GPU cache. |
@@ -83,22 +87,4 @@ |
} |
} |
-GrGLInterfaceForWebGraphicsContext3D::GrGLInterfaceForWebGraphicsContext3D( |
- scoped_ptr<gpu_blink::WebGraphicsContext3DImpl> context3d) |
- : context3d_(context3d.Pass()) { |
-} |
- |
-void GrGLInterfaceForWebGraphicsContext3D::BindToCurrentThread() { |
- context_thread_checker_.DetachFromThread(); |
-} |
- |
-GrGLInterfaceForWebGraphicsContext3D::~GrGLInterfaceForWebGraphicsContext3D() { |
- DCHECK(context_thread_checker_.CalledOnValidThread()); |
-#if !defined(NDEBUG) |
- // Set all the function pointers to zero, in order to crash if function |
- // pointers are used after free. |
- memset(&fFunctions, 0, sizeof(GrGLInterface::Functions)); |
-#endif |
-} |
- |
} // namespace content |