blob: c2fa67fcbddf0dc3e77cfac664f0e43a7430ec2a [file] [log] [blame]
// Copyright 2019 The Fuchsia 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 SRC_UI_SCENIC_LIB_GFX_RESOURCES_IMAGE_PIPE2_HANDLER_H_
#define SRC_UI_SCENIC_LIB_GFX_RESOURCES_IMAGE_PIPE2_HANDLER_H_
#include <fuchsia/images/cpp/fidl.h>
#include <lib/zx/time.h>
#include "lib/fidl/cpp/binding_set.h"
namespace scenic_impl::gfx {
class ImagePipe2;
class ImagePipe2Handler : public fuchsia::images::ImagePipe2 {
public:
ImagePipe2Handler(::fidl::InterfaceRequest<fuchsia::images::ImagePipe2> request,
::scenic_impl::gfx::ImagePipe2* image_pipe);
private:
// fuchsia::images::ImagePipe2 implementation
void AddBufferCollection(uint32_t buffer_collection_id,
::fidl::InterfaceHandle<::fuchsia::sysmem::BufferCollectionToken>
buffer_collection_token) override;
// fuchsia::images::ImagePipe2 implementation
void AddImage(uint32_t image_id, uint32_t buffer_collection_id, uint32_t buffer_collection_index,
fuchsia::sysmem::ImageFormat_2 image_format) override;
// fuchsia::images::ImagePipe2 implementation
void RemoveBufferCollection(uint32_t buffer_collection_id) override;
// fuchsia::images::ImagePipe2 implementation
void RemoveImage(uint32_t image_id) override;
// fuchsia::images::ImagePipe2 implementation
void PresentImage(uint32_t image_id, uint64_t presentation_time,
::std::vector<::zx::event> acquire_fences,
::std::vector<::zx::event> release_fences,
PresentImageCallback callback) override;
::fidl::Binding<fuchsia::images::ImagePipe2> binding_;
::scenic_impl::gfx::ImagePipe2* image_pipe_;
};
} // namespace scenic_impl::gfx
#endif // SRC_UI_SCENIC_LIB_GFX_RESOURCES_IMAGE_PIPE2_HANDLER_H_