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

Unified Diff: gpu/command_buffer/service/gl_context_virtual.cc

Issue 11275120: Virtual GL (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 1 month 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
Index: gpu/command_buffer/service/gl_context_virtual.cc
diff --git a/gpu/command_buffer/service/gl_context_virtual.cc b/gpu/command_buffer/service/gl_context_virtual.cc
new file mode 100644
index 0000000000000000000000000000000000000000..293dfa5004379830eb92a782b226150bbe8611ca
--- /dev/null
+++ b/gpu/command_buffer/service/gl_context_virtual.cc
@@ -0,0 +1,79 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "gpu/command_buffer/service/gl_context_virtual.h"
+
+#include "gpu/command_buffer/service/gl_state_restorer_impl.h"
+#include "ui/gl/gl_surface.h"
+
+namespace gpu {
+
+GLContextVirtual::GLContextVirtual(
+ gfx::GLShareGroup* share_group,
+ gfx::GLContext* shared_context,
+ gles2::GLES2Decoder* decoder)
+ : GLContext(share_group),
+ shared_context_(shared_context),
+ display_(NULL),
+ state_restorer_(new GLStateRestorerImpl(decoder)) {
+ shared_context_->SetupForVirtualization();
+}
+
+gfx::Display* GLContextVirtual::display() {
+ return display_;
+}
+
+bool GLContextVirtual::Initialize(
+ gfx::GLSurface* compatible_surface, gfx::GpuPreference gpu_preference) {
+ display_ = static_cast<gfx::Display*>(compatible_surface->GetDisplay());
+
+ return true;
+}
+
+void GLContextVirtual::Destroy() {
+}
+
+bool GLContextVirtual::MakeCurrent(gfx::GLSurface* surface) {
+ shared_context_->MakeVirtuallyCurrent(this, surface);
+ return true;
+}
+
+void GLContextVirtual::ReleaseCurrent(gfx::GLSurface* surface) {
+ shared_context_ = NULL;
+ display_ = NULL;
+}
+
+bool GLContextVirtual::IsCurrent(gfx::GLSurface* surface) {
+ return true;
+}
+
+void* GLContextVirtual::GetHandle() {
+ return NULL;
+}
+
+gfx::GLStateRestorer* GLContextVirtual::GetGLStateRestorer() {
+ return state_restorer_.get();
+}
+
+void GLContextVirtual::SetSwapInterval(int interval) {
+ shared_context_->SetSwapInterval(interval);
+}
+
+std::string GLContextVirtual::GetExtensions() {
+ return shared_context_->GetExtensions();
+}
+
+bool GLContextVirtual::GetTotalGpuMemory(size_t* bytes) {
+ return shared_context_->GetTotalGpuMemory(bytes);
+}
+
+bool GLContextVirtual::WasAllocatedUsingRobustnessExtension() {
+ return shared_context_->WasAllocatedUsingRobustnessExtension();
+}
+
+GLContextVirtual::~GLContextVirtual() {
+ Destroy();
+}
+
+} // namespace gpu

Powered by Google App Engine
This is Rietveld 408576698