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

Unified Diff: mojo/gles2/gles2_support_impl.cc

Issue 428413002: Make async waiter explicit MojoGLES2CreateContext param (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/gles2/gles2_support_impl.h ('k') | mojo/public/c/gles2/gles2.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/gles2/gles2_support_impl.cc
diff --git a/mojo/gles2/gles2_support_impl.cc b/mojo/gles2/gles2_support_impl.cc
index 99e8bb44dadebc0759dd37261f361e9465ec16cd..c0aee43a7c01d60607b911aaf5756083526c7538 100644
--- a/mojo/gles2/gles2_support_impl.cc
+++ b/mojo/gles2/gles2_support_impl.cc
@@ -4,7 +4,7 @@
#include "mojo/gles2/gles2_support_impl.h"
-#include "base/lazy_instance.h"
+#include "base/threading/thread_local.h"
#include "gpu/command_buffer/client/gles2_interface.h"
#include "mojo/gles2/gles2_context.h"
#include "mojo/public/gles2/gles2_interface.h"
@@ -36,34 +36,23 @@ class GLES2ImplForCommandBuffer : public GLES2Interface {
DISALLOW_COPY_AND_ASSIGN(GLES2ImplForCommandBuffer);
};
-base::LazyInstance<GLES2ImplForCommandBuffer> g_gles2_interface =
- LAZY_INSTANCE_INITIALIZER;
+base::ThreadLocalPointer<GLES2ImplForCommandBuffer> g_gles2_interface;
jamesr 2014/07/31 01:36:00 this change isn't strictly speaking part of the sa
piman 2014/07/31 01:53:46 base::LazyInstance<base::ThreadLocalPointer> to av
} // anonymous namespace
-GLES2SupportImpl::GLES2SupportImpl() : async_waiter_(NULL) {}
+GLES2SupportImpl::GLES2SupportImpl() {}
GLES2SupportImpl::~GLES2SupportImpl() {}
// static
void GLES2SupportImpl::Init() { GLES2Support::Init(new GLES2SupportImpl()); }
-void GLES2SupportImpl::Initialize(const MojoAsyncWaiter* async_waiter) {
- DCHECK(!async_waiter_);
- DCHECK(async_waiter);
- async_waiter_ = async_waiter;
-}
-
-void GLES2SupportImpl::Terminate() {
- DCHECK(async_waiter_);
- async_waiter_ = NULL;
-}
-
MojoGLES2Context GLES2SupportImpl::CreateContext(
MessagePipeHandle handle,
MojoGLES2ContextLost lost_callback,
- void* closure) {
+ void* closure,
+ const MojoAsyncWaiter* async_waiter) {
ScopedMessagePipeHandle scoped_handle(handle);
- scoped_ptr<GLES2Context> client(new GLES2Context(async_waiter_,
+ scoped_ptr<GLES2Context> client(new GLES2Context(async_waiter,
scoped_handle.Pass(),
lost_callback,
closure));
@@ -73,6 +62,7 @@ MojoGLES2Context GLES2SupportImpl::CreateContext(
}
void GLES2SupportImpl::DestroyContext(MojoGLES2Context context) {
+ delete g_gles2_interface.Get();
jamesr 2014/07/31 01:36:00 this is maybe not quite right - I'm assuming that
piman 2014/07/31 01:53:46 mmh, I don't think we should impose that restricti
delete static_cast<GLES2Context*>(context);
}
@@ -83,11 +73,13 @@ void GLES2SupportImpl::MakeCurrent(MojoGLES2Context context) {
interface = client->interface();
DCHECK(interface);
}
- g_gles2_interface.Get().set_gpu_interface(interface);
+ if (!g_gles2_interface.Get())
+ g_gles2_interface.Set(new GLES2ImplForCommandBuffer);
+ g_gles2_interface.Get()->set_gpu_interface(interface);
}
void GLES2SupportImpl::SwapBuffers() {
- g_gles2_interface.Get().gpu_interface()->SwapBuffers();
+ g_gles2_interface.Get()->gpu_interface()->SwapBuffers();
}
void* GLES2SupportImpl::GetGLES2Interface(MojoGLES2Context context) {
@@ -99,7 +91,7 @@ void* GLES2SupportImpl::GetContextSupport(MojoGLES2Context context) {
}
GLES2Interface* GLES2SupportImpl::GetGLES2InterfaceForCurrentContext() {
- return &g_gles2_interface.Get();
+ return g_gles2_interface.Get();
}
} // namespace gles2
« no previous file with comments | « mojo/gles2/gles2_support_impl.h ('k') | mojo/public/c/gles2/gles2.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698