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

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

Issue 9910004: Implement Discard and EnsureBackbufferCHROMIUM using command buffer instead of IPC. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 9 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
Index: gpu/command_buffer/service/gles2_cmd_decoder.cc
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
index 26c80f20f131a7315bd8ab6d504ab44329779c1f..a51f4b157316c73175abc645df5c5e44b44ac93a 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -589,6 +589,10 @@ class GLES2DecoderImpl : public base::SupportsWeakPtr<GLES2DecoderImpl>,
const base::Callback<void(gfx::Size)>& callback);
virtual void SetMsgCallback(const MsgCallback& callback);
+ virtual void SetDiscardBackbufferCallback(
+ const DiscardBackbufferCallback& callback);
+ virtual void SetEnsureBackbufferCallback(
+ const EnsureBackbufferCallback& callback);
virtual void SetStreamTextureManager(StreamTextureManager* manager);
virtual bool GetServiceTextureId(uint32 client_texture_id,
@@ -1525,6 +1529,8 @@ class GLES2DecoderImpl : public base::SupportsWeakPtr<GLES2DecoderImpl>,
base::Callback<void(gfx::Size)> resize_callback_;
MsgCallback msg_callback_;
+ DiscardBackbufferCallback discard_backbuffer_callback_;
+ EnsureBackbufferCallback ensure_backbuffer_callback_;
StreamTextureManager* stream_texture_manager_;
@@ -2754,6 +2760,16 @@ void GLES2DecoderImpl::SetMsgCallback(const MsgCallback& callback) {
msg_callback_ = callback;
}
+void GLES2DecoderImpl::SetDiscardBackbufferCallback(
+ const DiscardBackbufferCallback& callback) {
+ discard_backbuffer_callback_ = callback;
+}
+
+void GLES2DecoderImpl::SetEnsureBackbufferCallback(
+ const EnsureBackbufferCallback& callback) {
+ ensure_backbuffer_callback_ = callback;
+}
+
void GLES2DecoderImpl::SetStreamTextureManager(StreamTextureManager* manager) {
stream_texture_manager_ = manager;
}
@@ -8410,6 +8426,22 @@ void GLES2DecoderImpl::DoTexStorage2DEXT(
}
}
+error::Error GLES2DecoderImpl::HandleDiscardBackbufferCHROMIUM(
+ uint32 immediate_data_size, const gles2::DiscardBackbufferCHROMIUM& c) {
+ TRACE_EVENT0("gpu", "glDiscardBackbuffer");
+ if (!discard_backbuffer_callback_.is_null())
+ discard_backbuffer_callback_.Run();
+ return error::kNoError;
+}
+
+error::Error GLES2DecoderImpl::HandleEnsureBackbufferCHROMIUM(
+ uint32 immediate_data_size, const gles2::EnsureBackbufferCHROMIUM& c) {
+ TRACE_EVENT0("gpu", "glEnsureBackbuffer");
+ if (!ensure_backbuffer_callback_.is_null())
+ ensure_backbuffer_callback_.Run();
+ return error::kNoError;
+}
+
// Include the auto-generated part of this file. We split this because it means
// we can easily edit the non-auto generated parts right here in this file
// instead of having to edit some template or the code generator.
« no previous file with comments | « gpu/command_buffer/service/gles2_cmd_decoder.h ('k') | gpu/command_buffer/service/gles2_cmd_decoder_unittest_3_autogen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698