5#ifndef FLUTTER_SHELL_PLATFORM_FUCHSIA_FLUTTER_FLATLAND_CONNECTION_H_
6#define FLUTTER_SHELL_PLATFORM_FUCHSIA_FLUTTER_FLATLAND_CONNECTION_H_
8#include <fuchsia/ui/composition/cpp/fidl.h>
10#include "flutter/fml/closure.h"
11#include "flutter/fml/macros.h"
12#include "flutter/fml/time/time_delta.h"
13#include "flutter/fml/time/time_point.h"
25 std::function<void(fuchsia::scenic::scheduling::FramePresentedInfo)>;
37 fuchsia::ui::composition::FlatlandHandle
flatland,
51 fuchsia::ui::composition::Flatland*
flatland() {
return flatland_.get(); }
54 return {++next_transform_id_};
58 return {++next_content_id_};
65 void OnError(fuchsia::ui::composition::FlatlandError
error);
67 void OnNextFrameBegin(
68 fuchsia::ui::composition::OnNextFrameBeginValues values);
69 void OnFramePresented(fuchsia::scenic::scheduling::FramePresentedInfo
info);
78 fuchsia::ui::composition::FlatlandPtr flatland_;
82 uint64_t next_transform_id_ = 0;
83 uint64_t next_content_id_ = 0;
86 bool present_waiting_for_credit_ =
false;
89 uint64_t next_present_trace_id_ = 0;
105 std::vector<zx::event> acquire_fences_;
106 std::vector<zx::event> current_present_release_fences_;
107 std::vector<zx::event> previous_present_release_fences_;
108 std::string debug_label_;
static void info(const char *fmt,...) SK_PRINTF_LIKE(1
fuchsia::ui::composition::ContentId NextContentId()
fuchsia::ui::composition::Flatland * flatland()
FireCallbackCallback pending_fire_callback_
fml::TimePoint last_presentation_time_
bool first_feedback_received_
void EnqueueReleaseFence(zx::event fence)
uint32_t present_credits_
std::queue< fml::TimePoint > next_presentation_times_
void AwaitVsyncForSecondaryCallback(FireCallbackCallback callback)
fml::TimeDelta vsync_offset_
void EnqueueAcquireFence(zx::event fence)
fml::TimeDelta vsync_interval_
void AwaitVsync(FireCallbackCallback callback)
fuchsia::ui::composition::TransformId NextTransformId()
static constexpr TimeDelta FromMilliseconds(int64_t millis)
FlKeyEvent uint64_t FlKeyResponderAsyncCallback callback
const uint8_t uint32_t uint32_t GError ** error
#define FML_DISALLOW_COPY_AND_ASSIGN(TypeName)
std::function< void(fuchsia::scenic::scheduling::FramePresentedInfo)> on_frame_presented_event
std::function< void(fml::TimePoint, fml::TimePoint)> FireCallbackCallback
static constexpr fml::TimeDelta kInitialFlatlandVsyncOffset
std::function< void()> closure