summaryrefslogtreecommitdiffstats
path: root/mojo/services/native_viewport/native_viewport_impl.cc
diff options
context:
space:
mode:
authorjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-20 17:42:02 +0000
committerjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-20 17:43:33 +0000
commit47b200541aab7b5a72d655d96770ecfda9e14d9b (patch)
tree11cbb5b23917a3e0c50c54580e11d8784695eb8a /mojo/services/native_viewport/native_viewport_impl.cc
parent4ec86aa1988f709a009cce3f5bf735acf42e46c0 (diff)
downloadchromium_src-47b200541aab7b5a72d655d96770ecfda9e14d9b.zip
chromium_src-47b200541aab7b5a72d655d96770ecfda9e14d9b.tar.gz
chromium_src-47b200541aab7b5a72d655d96770ecfda9e14d9b.tar.bz2
Mojo multiple command buffer support and sample
TBR=danakj@chromium.org for DEPS file shuffle that moves a "+ui/gfx" Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=290157 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=290431 Review URL: https://codereview.chromium.org/451753003 Cr-Commit-Position: refs/heads/master@{#290859} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290859 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'mojo/services/native_viewport/native_viewport_impl.cc')
-rw-r--r--mojo/services/native_viewport/native_viewport_impl.cc38
1 files changed, 4 insertions, 34 deletions
diff --git a/mojo/services/native_viewport/native_viewport_impl.cc b/mojo/services/native_viewport/native_viewport_impl.cc
index 8755dfd..0b871dc 100644
--- a/mojo/services/native_viewport/native_viewport_impl.cc
+++ b/mojo/services/native_viewport/native_viewport_impl.cc
@@ -4,6 +4,7 @@
#include "mojo/services/native_viewport/native_viewport_impl.h"
+#include "base/bind.h"
#include "base/macros.h"
#include "base/message_loop/message_loop.h"
#include "base/time/time.h"
@@ -38,7 +39,6 @@ NativeViewportImpl::~NativeViewportImpl() {
void NativeViewportImpl::Create(RectPtr bounds) {
platform_viewport_ = PlatformViewport::Create(this);
platform_viewport_->Init(bounds.To<gfx::Rect>());
- client()->OnCreated();
OnBoundsChanged(bounds.To<gfx::Rect>());
}
@@ -51,7 +51,6 @@ void NativeViewportImpl::Hide() {
}
void NativeViewportImpl::Close() {
- command_buffer_.reset();
DCHECK(platform_viewport_);
platform_viewport_->Close();
}
@@ -60,25 +59,15 @@ void NativeViewportImpl::SetBounds(RectPtr bounds) {
platform_viewport_->SetBounds(bounds.To<gfx::Rect>());
}
-void NativeViewportImpl::CreateGLES2Context(
- InterfaceRequest<CommandBuffer> command_buffer_request) {
- if (command_buffer_ || command_buffer_request_.is_pending()) {
- LOG(ERROR) << "Can't create multiple contexts on a NativeViewport";
- return;
- }
- command_buffer_request_ = command_buffer_request.Pass();
- CreateCommandBufferIfNeeded();
-}
-
void NativeViewportImpl::OnBoundsChanged(const gfx::Rect& bounds) {
- CreateCommandBufferIfNeeded();
client()->OnBoundsChanged(Rect::From(bounds));
}
void NativeViewportImpl::OnAcceleratedWidgetAvailable(
gfx::AcceleratedWidget widget) {
widget_ = widget;
- CreateCommandBufferIfNeeded();
+ uintptr_t widget_ptr = bit_cast<uintptr_t>(widget);
+ client()->OnCreated(static_cast<uint64_t>(widget_ptr));
}
bool NativeViewportImpl::OnEvent(ui::Event* ui_event) {
@@ -108,31 +97,12 @@ bool NativeViewportImpl::OnEvent(ui::Event* ui_event) {
}
void NativeViewportImpl::OnDestroyed() {
- client()->OnDestroyed(base::Bind(&NativeViewportImpl::AckDestroyed,
- base::Unretained(this)));
+ client()->OnDestroyed();
}
void NativeViewportImpl::AckEvent() {
waiting_for_event_ack_ = false;
}
-void NativeViewportImpl::CreateCommandBufferIfNeeded() {
- if (!command_buffer_request_.is_pending())
- return;
- DCHECK(!command_buffer_.get());
- if (widget_ == gfx::kNullAcceleratedWidget)
- return;
- gfx::Size size = platform_viewport_->GetSize();
- if (size.IsEmpty())
- return;
- command_buffer_.reset(
- new CommandBufferImpl(widget_, platform_viewport_->GetSize()));
- WeakBindToRequest(command_buffer_.get(), &command_buffer_request_);
-}
-
-void NativeViewportImpl::AckDestroyed() {
- command_buffer_.reset();
-}
-
} // namespace mojo