|  | // Copyright 2014 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #ifndef GPU_COMMAND_BUFFER_MAILBOX_HOLDER_H_ | 
|  | #define GPU_COMMAND_BUFFER_MAILBOX_HOLDER_H_ | 
|  |  | 
|  | #include <stdint.h> | 
|  | #include <string.h> | 
|  |  | 
|  | #include "gpu/command_buffer/common/mailbox.h" | 
|  | #include "gpu/command_buffer/common/sync_token.h" | 
|  | #include "gpu/gpu_export.h" | 
|  |  | 
|  | namespace gpu { | 
|  |  | 
|  | // A MailboxHolder is a mechanism by which texture image data produced by one | 
|  | // context can be consumed by another. The |sync_point| is used to allow one | 
|  | // context to wait until another has finished using the texture before it begins | 
|  | // using the texture. When the mailbox is backed by a GPU texture, the | 
|  | // |texture_target| is that texture's type. | 
|  | // See here for OpenGL texture types: | 
|  | // https://www.opengl.org/wiki/Texture#Texture_Objects | 
|  | struct GPU_EXPORT MailboxHolder { | 
|  | MailboxHolder(); | 
|  | MailboxHolder(const gpu::Mailbox& mailbox, | 
|  | const gpu::SyncToken& sync_token, | 
|  | uint32_t texture_target); | 
|  |  | 
|  | gpu::Mailbox mailbox; | 
|  | gpu::SyncToken sync_token; | 
|  | uint32_t texture_target; | 
|  | }; | 
|  |  | 
|  | }  // namespace gpu | 
|  |  | 
|  | #endif  // GPU_COMMAND_BUFFER_MAILBOX_HOLDER_H_ |