#include "third_party/blink/renderer/platform/graphics/gpu/xr_frame_transport.h"
#include "base/logging.h"
#include "base/task/sequenced_task_runner.h"
#include "base/trace_event/trace_event.h"
#include "build/build_config.h"
#include "device/vr/public/mojom/vr_service.mojom-blink.h"
#include "gpu/command_buffer/client/gles2_interface.h"
#include "gpu/command_buffer/common/mailbox_holder.h"
#include "mojo/public/cpp/system/platform_handle.h"
#include "third_party/blink/public/platform/task_type.h"
#include "third_party/blink/renderer/platform/graphics/image_to_buffer_copier.h"
#include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h"
#include "third_party/blink/renderer/platform/mojo/mojo_binding_context.h"
#include "ui/gfx/gpu_fence.h"
namespace blink {
XRFrameTransport::XRFrameTransport(
ContextLifecycleNotifier* context,
scoped_refptr<base::SequencedTaskRunner> task_runner)
: … { … }
XRFrameTransport::~XRFrameTransport() = default;
void XRFrameTransport::PresentChange() { … }
void XRFrameTransport::SetTransportOptions(
device::mojom::blink::XRPresentationTransportOptionsPtr transport_options) { … }
void XRFrameTransport::BindSubmitFrameClient(
mojo::PendingReceiver<device::mojom::blink::XRPresentationClient>
receiver) { … }
bool XRFrameTransport::DrawingIntoSharedBuffer() { … }
void XRFrameTransport::FramePreImage(gpu::gles2::GLES2Interface* gl) { … }
void XRFrameTransport::FrameSubmitMissing(
device::mojom::blink::XRPresentationProvider* vr_presentation_provider,
gpu::gles2::GLES2Interface* gl,
int16_t vr_frame_id) { … }
bool XRFrameTransport::FrameSubmit(
device::mojom::blink::XRPresentationProvider* vr_presentation_provider,
gpu::gles2::GLES2Interface* gl,
gpu::SharedImageInterface* sii,
DrawingBuffer::Client* drawing_buffer_client,
scoped_refptr<Image> image_ref,
int16_t vr_frame_id) { … }
void XRFrameTransport::OnSubmitFrameTransferred(bool success) { … }
void XRFrameTransport::WaitForPreviousTransfer() { … }
void XRFrameTransport::OnSubmitFrameRendered() { … }
base::TimeDelta XRFrameTransport::WaitForPreviousRenderToFinish() { … }
void XRFrameTransport::OnSubmitFrameGpuFence(gfx::GpuFenceHandle handle) { … }
base::TimeDelta XRFrameTransport::WaitForGpuFenceReceived() { … }
void XRFrameTransport::Trace(Visitor* visitor) const { … }
}