gpu: Change Produce/ConsumeTexture to allow texture sharing
commit62e65f0cc982cf66eb00a1a2fc40fb6d82510e31
authorpiman@chromium.org <piman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Wed, 29 May 2013 22:28:10 +0000 (29 22:28 +0000)
committerpiman@chromium.org <piman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Wed, 29 May 2013 22:28:10 +0000 (29 22:28 +0000)
treea57c4c457c3acb0c93f4650c4ffb06d5e1a26c81
parent150c18a1e10ec3422780680d43ceb85867229bd9
gpu: Change Produce/ConsumeTexture to allow texture sharing

This changes the semantics of ProduceTexture to not replacing the current texture by a dud, but instead keeping the existing one, that it also puts into the mailbox. It changes the semantics of ConsumeTexture to deleting the current texture, and replacing it by the mailbox contents (without taking it out of the mailbox). The texture becomes shared. The mailbox is now effectively a weak pointer onto the texture.

BUG=230137

Review URL: https://chromiumcodereview.appspot.com/14188053

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@202992 0039d316-1c4b-4281-b951-d872f2087c98
22 files changed:
content/common/gpu/texture_image_transport_surface.cc
content/common/gpu/texture_image_transport_surface.h
gpu/GLES2/extensions/CHROMIUM/CHROMIUM_texture_mailbox.txt
gpu/command_buffer/service/context_group.cc
gpu/command_buffer/service/framebuffer_manager.cc
gpu/command_buffer/service/framebuffer_manager.h
gpu/command_buffer/service/gl_context_virtual.cc
gpu/command_buffer/service/gles2_cmd_decoder.cc
gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc
gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc
gpu/command_buffer/service/mailbox_manager.cc
gpu/command_buffer/service/mailbox_manager.h
gpu/command_buffer/service/renderbuffer_manager.cc
gpu/command_buffer/service/renderbuffer_manager.h
gpu/command_buffer/service/renderbuffer_manager_unittest.cc
gpu/command_buffer/service/texture_definition.cc [deleted file]
gpu/command_buffer/service/texture_definition.h [deleted file]
gpu/command_buffer/service/texture_manager.cc
gpu/command_buffer/service/texture_manager.h
gpu/command_buffer/service/texture_manager_unittest.cc
gpu/command_buffer/tests/gl_texture_mailbox_unittests.cc
gpu/command_buffer_service.gypi