summaryrefslogtreecommitdiffstats
path: root/gpu/command_buffer/service/cmd_buffer_engine.h
diff options
context:
space:
mode:
authorgman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-28 21:50:24 +0000
committergman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-28 21:50:24 +0000
commit67e5077346cde830210611c2f00fb550d563fcd3 (patch)
tree2b44cd8f1774858d627ae7d43c36cc4a176afcd4 /gpu/command_buffer/service/cmd_buffer_engine.h
parenta359ecc79d700a0d40701a29d9f1ca226136cc21 (diff)
downloadchromium_src-67e5077346cde830210611c2f00fb550d563fcd3.zip
chromium_src-67e5077346cde830210611c2f00fb550d563fcd3.tar.gz
chromium_src-67e5077346cde830210611c2f00fb550d563fcd3.tar.bz2
Add commands Jump, Call and Return
This is the minimal change version. There were 3 possible solution: #1) Remove these commands #2) Change the command buffers so the client side can not see the "get" pointer and therefore force the client side to use tokens to say in sync. It's the cleaner solution. It lets you put commands in any shared memory thereby getting rid of the ring buffer commands. But, it required major changes. After going down that path for an entire day I punted for... #3) Implement the commands assuming there is only one buffer the commands can be in (what is currently called the ring_buffer). With the jump commands available it no longer has to be used as a ring buffer. A Pepper or NaCl app can use it however they want but, unlike solution #2 they only get the one buffer. TEST=none BUG=none Review URL: http://codereview.chromium.org/555129 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37446 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu/command_buffer/service/cmd_buffer_engine.h')
-rw-r--r--gpu/command_buffer/service/cmd_buffer_engine.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/gpu/command_buffer/service/cmd_buffer_engine.h b/gpu/command_buffer/service/cmd_buffer_engine.h
index 09419a0..964944d 100644
--- a/gpu/command_buffer/service/cmd_buffer_engine.h
+++ b/gpu/command_buffer/service/cmd_buffer_engine.h
@@ -29,6 +29,12 @@ class CommandBufferEngine {
// Sets the token value.
virtual void set_token(int32 token) = 0;
+ // Sets the "get" pointer. Return false if offset is out of range.
+ virtual bool SetGetOffset(int32 offset) = 0;
+
+ // Gets the "get" pointer.
+ virtual int32 GetGetOffset() = 0;
+
private:
DISALLOW_COPY_AND_ASSIGN(CommandBufferEngine);
};