| Index: ui/gl/gl_context.cc
|
| diff --git a/ui/gl/gl_context.cc b/ui/gl/gl_context.cc
|
| index baa20fa3d71a3aa0386eab59249eff5253f81fa4..533b7d3146e89de6242720d611f9d967bde6dd94 100644
|
| --- a/ui/gl/gl_context.cc
|
| +++ b/ui/gl/gl_context.cc
|
| @@ -38,6 +38,20 @@ void GLContext::ScopedReleaseCurrent::Cancel() {
|
| canceled_ = true;
|
| }
|
|
|
| +GLContext::FlushEvent::FlushEvent() {
|
| +}
|
| +
|
| +GLContext::FlushEvent::~FlushEvent() {
|
| +}
|
| +
|
| +void GLContext::FlushEvent::Signal() {
|
| + flag_.Set();
|
| +}
|
| +
|
| +bool GLContext::FlushEvent::IsSignaled() {
|
| + return flag_.IsSet();
|
| +}
|
| +
|
| GLContext::GLContext(GLShareGroup* share_group) : share_group_(share_group) {
|
| if (!share_group_.get())
|
| share_group_ = new GLShareGroup;
|
| @@ -52,6 +66,13 @@ GLContext::~GLContext() {
|
| }
|
| }
|
|
|
| +scoped_refptr<GLContext::FlushEvent> GLContext::SignalFlush() {
|
| + DCHECK(IsCurrent(NULL));
|
| + scoped_refptr<FlushEvent> flush_event = new FlushEvent();
|
| + flush_events_.push_back(flush_event);
|
| + return flush_event;
|
| +}
|
| +
|
| bool GLContext::GetTotalGpuMemory(size_t* bytes) {
|
| DCHECK(bytes);
|
| *bytes = 0;
|
| @@ -190,6 +211,12 @@ void GLContext::SetRealGLApi() {
|
| SetGLToRealGLApi();
|
| }
|
|
|
| +void GLContext::OnFlush() {
|
| + for (size_t n = 0; n < flush_events_.size(); n++)
|
| + flush_events_[n]->Signal();
|
| + flush_events_.clear();
|
| +}
|
| +
|
| GLContextReal::GLContextReal(GLShareGroup* share_group)
|
| : GLContext(share_group) {}
|
|
|
|
|