diff options
author | gman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-28 21:50:24 +0000 |
---|---|---|
committer | gman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-28 21:50:24 +0000 |
commit | 67e5077346cde830210611c2f00fb550d563fcd3 (patch) | |
tree | 2b44cd8f1774858d627ae7d43c36cc4a176afcd4 /gpu/command_buffer/service/cmd_buffer_engine.h | |
parent | a359ecc79d700a0d40701a29d9f1ca226136cc21 (diff) | |
download | chromium_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.h | 6 |
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); }; |