Index: content/common/gpu/texture_image_transport_surface.cc |
diff --git a/content/common/gpu/texture_image_transport_surface.cc b/content/common/gpu/texture_image_transport_surface.cc |
index a40b60df36e7bc9c505f4483869a54e395342d41..186cc37b22d823bf31c57be30d112bdaaa1545fa 100644 |
--- a/content/common/gpu/texture_image_transport_surface.cc |
+++ b/content/common/gpu/texture_image_transport_surface.cc |
@@ -214,9 +214,7 @@ bool TextureImageTransportSurface::SwapBuffers() { |
DCHECK(backbuffer_.size == current_size_); |
GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params params; |
params.size = backbuffer_.size; |
- const MailboxName& name = backbuffer_.mailbox_name; |
- params.mailbox_name.assign( |
- reinterpret_cast<const char*>(&name), sizeof(name)); |
+ params.mailbox_name = backbuffer_.mailbox_name; |
glFlush(); |
ProduceTexture(&backbuffer_); |
@@ -256,9 +254,7 @@ bool TextureImageTransportSurface::PostSubBuffer( |
params.y = y; |
params.width = width; |
params.height = height; |
- const MailboxName& name = backbuffer_.mailbox_name; |
- params.mailbox_name.assign( |
- reinterpret_cast<const char*>(&name), sizeof(name)); |
+ params.mailbox_name = backbuffer_.mailbox_name; |
glFlush(); |
ProduceTexture(&backbuffer_); |
@@ -316,12 +312,10 @@ void TextureImageTransportSurface::OnBufferPresented( |
} |
void TextureImageTransportSurface::BufferPresentedImpl( |
- const std::string& mailbox_name) { |
+ const gpu::Mailbox& mailbox_name) { |
DCHECK(!backbuffer_.service_id); |
- if (!mailbox_name.empty()) { |
- DCHECK(mailbox_name.length() == GL_MAILBOX_SIZE_CHROMIUM); |
- mailbox_name.copy(reinterpret_cast<char *>(&backbuffer_.mailbox_name), |
- sizeof(MailboxName)); |
+ if (!mailbox_name.IsZero()) { |
+ backbuffer_.mailbox_name = mailbox_name; |
ConsumeTexture(&backbuffer_); |
} |
@@ -370,7 +364,7 @@ void TextureImageTransportSurface::ReleaseBackTexture() { |
glDeleteTextures(1, &backbuffer_.service_id); |
backbuffer_.service_id = 0; |
- backbuffer_.mailbox_name = MailboxName(); |
+ backbuffer_.mailbox_name = gpu::Mailbox(); |
glFlush(); |
CHECK_GL_ERROR(); |
} |
@@ -401,12 +395,13 @@ void TextureImageTransportSurface::CreateBackTexture() { |
} |
if (!backbuffer_.service_id) { |
- MailboxName new_mailbox_name; |
- MailboxName& name = backbuffer_.mailbox_name; |
+ gpu::Mailbox& name = backbuffer_.mailbox_name; |
// This slot should be uninitialized. |
- DCHECK(!memcmp(&name, &new_mailbox_name, sizeof(MailboxName))); |
+ DCHECK(name.IsZero()); |
+ |
+ MailboxName new_mailbox_name; |
mailbox_manager_->GenerateMailboxName(&new_mailbox_name); |
- name = new_mailbox_name; |
+ name.SetName(new_mailbox_name.key); |
glGenTextures(1, &backbuffer_.service_id); |
} |
@@ -449,13 +444,13 @@ void TextureImageTransportSurface::ConsumeTexture(Texture* texture) { |
DCHECK(!texture->service_id); |
scoped_ptr<TextureDefinition> definition(mailbox_manager_->ConsumeTexture( |
- GL_TEXTURE_2D, texture->mailbox_name)); |
+ GL_TEXTURE_2D, MailboxName(texture->mailbox_name))); |
if (definition.get()) { |
texture->service_id = definition->ReleaseServiceId(); |
texture->size = gfx::Size(definition->level_infos()[0][0].width, |
definition->level_infos()[0][0].height); |
} else { |
- texture->mailbox_name = MailboxName(); |
+ texture->mailbox_name = gpu::Mailbox(); |
} |
} |
@@ -489,12 +484,12 @@ void TextureImageTransportSurface::ProduceTexture(Texture* texture) { |
// at which point we consume the correct texture back. |
bool success = mailbox_manager_->ProduceTexture( |
GL_TEXTURE_2D, |
- texture->mailbox_name, |
+ MailboxName(texture->mailbox_name), |
definition.release(), |
NULL); |
DCHECK(success); |
texture->service_id = 0; |
- texture->mailbox_name = MailboxName(); |
+ texture->mailbox_name = gpu::Mailbox(); |
} |
} // namespace content |