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

Unified Diff: mojo/gles2/command_buffer_client_impl.cc

Issue 868203003: De-Client CommandBuffer interface (Closed) Base URL: git@github.com:domokit/mojo.git@fix_sample_app
Patch Set: Created 5 years, 11 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/command_buffer_client_impl.h ('k') | mojo/services/gpu/public/interfaces/command_buffer.mojom » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/gles2/command_buffer_client_impl.cc
diff --git a/mojo/gles2/command_buffer_client_impl.cc b/mojo/gles2/command_buffer_client_impl.cc
index 502757f9b42658b421d858f33ef67535ee45dade..e8d3690cfd60a970785bfd482a8508e4e2ec1df4 100644
--- a/mojo/gles2/command_buffer_client_impl.cc
+++ b/mojo/gles2/command_buffer_client_impl.cc
@@ -116,13 +116,13 @@ CommandBufferClientImpl::CommandBufferClientImpl(
const MojoAsyncWaiter* async_waiter,
mojo::ScopedMessagePipeHandle command_buffer_handle)
: delegate_(delegate),
+ observer_binding_(this),
shared_state_(NULL),
last_put_offset_(-1),
next_transfer_buffer_id_(0),
async_waiter_(async_waiter) {
command_buffer_.Bind(command_buffer_handle.Pass(), async_waiter);
command_buffer_.set_error_handler(this);
- command_buffer_.set_client(this);
}
CommandBufferClientImpl::~CommandBufferClientImpl() {}
@@ -147,7 +147,11 @@ bool CommandBufferClientImpl::Initialize() {
sync_point_client_impl_.reset(
new SyncPointClientImpl(&sync_point_client, async_waiter_));
- command_buffer_->Initialize(sync_client.Pass(), sync_point_client.Pass(),
+ mojo::CommandBufferLostContextObserverPtr observer_ptr;
+ observer_binding_.Bind(GetProxy(&observer_ptr), async_waiter_);
+ command_buffer_->Initialize(sync_client.Pass(),
+ sync_point_client.Pass(),
+ observer_ptr.Pass(),
duped.Pass());
// Wait for DidInitialize to come on the sync client pipe.
@@ -290,11 +294,7 @@ uint32_t CommandBufferClientImpl::CreateStreamTexture(uint32_t texture_id) {
return 0;
}
-void CommandBufferClientImpl::DidDestroy() {
- LostContext(gpu::error::kUnknown);
-}
-
-void CommandBufferClientImpl::LostContext(int32_t lost_reason) {
+void CommandBufferClientImpl::DidLoseContext(int32_t lost_reason) {
last_state_.error = gpu::error::kLostContext;
last_state_.context_lost_reason =
static_cast<gpu::error::ContextLostReason>(lost_reason);
@@ -302,7 +302,7 @@ void CommandBufferClientImpl::LostContext(int32_t lost_reason) {
}
void CommandBufferClientImpl::OnConnectionError() {
- LostContext(gpu::error::kUnknown);
+ DidLoseContext(gpu::error::kUnknown);
}
void CommandBufferClientImpl::TryUpdateState() {
@@ -317,7 +317,7 @@ void CommandBufferClientImpl::MakeProgressAndUpdateState() {
if (!state) {
VLOG(1) << "Channel encountered error while waiting for command buffer";
// TODO(piman): is it ok for this to re-enter?
- DidDestroy();
+ DidLoseContext(gpu::error::kUnknown);
return;
}
« no previous file with comments | « mojo/gles2/command_buffer_client_impl.h ('k') | mojo/services/gpu/public/interfaces/command_buffer.mojom » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698