23class GpuSurfaceObserverRegistry;
150 using Factory = std::function<std::unique_ptr<PluginViewHost>(
259 virtual void set_size(uint32_t width, uint32_t height) = 0;
354 : registry_(std::move(other.registry_)), id_(other.id_) {
355 other.registry_.reset();
359 if (
this != &other) {
361 registry_ = std::move(other.registry_);
363 other.registry_.reset();
371 bool active() const noexcept {
return id_ != 0 && !registry_.expired(); }
372 explicit operator bool() const noexcept {
return active(); }
378 : registry_(
std::move(
r)), id_(id) {}
380 std::weak_ptr<detail::GpuSurfaceObserverRegistry> registry_;
381 std::uint64_t id_ = 0;
437 (void)timestamp_seconds;
580 float& tx,
float& ty)
const {
581 (void)sx; (void)sy; (void)tx; (void)ty;
627 std::vector<NativeViewHost*> attached_native_views_;
635 std::shared_ptr<detail::GpuSurfaceObserverRegistry> gpu_observers_;
Abstract GPU surface — a presentable rendering target backed by a native window/view.
Definition gpu_surface.hpp:112
A Yoga-laid-out widget that embeds a single platform-native child view (a system WebView,...
Definition native_view_host.hpp:72
Accumulated repaint damage for one frame, in root/window coordinates.
Definition pending_damage.hpp:32
Definition plugin_view_host.hpp:348
bool active() const noexcept
Definition plugin_view_host.hpp:371
friend class PluginViewHost
Definition plugin_view_host.hpp:375
GpuSurfaceSubscription(GpuSurfaceSubscription &&other) noexcept
Definition plugin_view_host.hpp:353
GpuSurfaceSubscription & operator=(GpuSurfaceSubscription &&other) noexcept
Definition plugin_view_host.hpp:358
GpuSurfaceSubscription & operator=(const GpuSurfaceSubscription &)=delete
~GpuSurfaceSubscription()
Definition plugin_view_host.hpp:368
GpuSurfaceSubscription(const GpuSurfaceSubscription &)=delete
GpuSurfaceSubscription()=default
Definition plugin_view_host.hpp:64
virtual ~PluginViewHost()
Out-of-line, and NOT trivial: it clears the back-pointer of every NativeViewHost still attached to th...
void mark_gpu_surface_pending()
Definition plugin_view_host.hpp:407
std::function< void(const GpuSurfaceStatus &)> GpuSurfaceObserver
Definition plugin_view_host.hpp:340
virtual float scale_factor() const
Definition plugin_view_host.hpp:601
virtual bool is_attached() const noexcept
Definition plugin_view_host.hpp:203
virtual void set_design_viewport(float design_w, float design_h)
Definition plugin_view_host.hpp:535
bool pending_repaint_is_full() const
Definition plugin_view_host.hpp:247
static std::unique_ptr< PluginViewHost > create(View &root, Size size)
static void set_factory(Factory factory)
Rect pending_dirty_bounds() const
Definition plugin_view_host.hpp:249
virtual Point window_to_root_point(Point pt) const
Definition plugin_view_host.hpp:563
virtual bool is_gpu_backed() const
Definition plugin_view_host.hpp:268
virtual void attach_to_parent(NativeViewHandle parent)=0
GpuSurfaceSubscription observe_gpu_surface(GpuSurfaceObserver observer)
virtual void set_resize_callback(std::function< void(uint32_t, uint32_t)> cb)
Definition plugin_view_host.hpp:419
virtual bool present_first_frame()
Definition plugin_view_host.hpp:219
virtual Size get_size() const =0
virtual std::vector< uint8_t > capture_back_buffer_png()
Definition plugin_view_host.hpp:445
virtual render::GpuSurface * gpu_surface() const
Definition plugin_view_host.hpp:290
void publish_gpu_surface(render::GpuSurface *surface, GpuSurfaceState state)
virtual void request_frame()
A frame without damage (see WindowHost::request_frame()).
Definition plugin_view_host.hpp:244
virtual void detach_native_child_view(NativeViewHandle child_view)
Definition plugin_view_host.hpp:476
virtual bool set_native_child_view_clip(NativeViewHandle child_view, bool has_clip, float x, float y, float width, float height)
Definition plugin_view_host.hpp:489
virtual void set_design_viewport_top_align(bool top_align)
Definition plugin_view_host.hpp:547
virtual bool design_viewport_transform(float &sx, float &sy, float &tx, float &ty) const
Definition plugin_view_host.hpp:579
friend class NativeViewHost
Definition plugin_view_host.hpp:623
virtual void release_gpu_caches()
Return every GPU cache resource nothing references to the device.
Definition plugin_view_host.hpp:310
virtual GpuCacheUsage gpu_cache_usage() const
Definition plugin_view_host.hpp:299
void clear_pending_dirty()
Host calls this once the frame is painted and submitted.
Definition plugin_view_host.hpp:251
GpuSurfaceStatus gpu_surface_status() const noexcept
Definition plugin_view_host.hpp:387
virtual NativeViewHandle native_handle()=0
PresentPolicy
How a host presents finished frames (WAH-13).
Definition plugin_view_host.hpp:77
@ nonblocking
Do not block on acquire (Mailbox, then Immediate, then Fifo).
Definition plugin_view_host.hpp:97
bool has_pending_dirty_bounds() const
Definition plugin_view_host.hpp:248
virtual bool start_file_drag(const FileDragRequest &request)
Definition plugin_view_host.hpp:178
virtual void advance_frame(double timestamp_seconds)
Definition plugin_view_host.hpp:436
void mark_dirty_full()
Definition plugin_view_host.hpp:237
void mark_dirty_region(const Rect &root_rect)
Definition plugin_view_host.hpp:233
virtual void set_scale_factor(float scale)
Definition plugin_view_host.hpp:600
PendingDamage damage_
Definition plugin_view_host.hpp:254
virtual void set_idle_callback(std::function< void()> callback)
Definition plugin_view_host.hpp:427
static std::unique_ptr< PluginViewHost > create(View &root, const Options &options)
static bool has_factory()
virtual bool try_attach_to_parent(NativeViewHandle parent)
Definition plugin_view_host.hpp:193
virtual bool attach_native_child_view(NativeViewHandle child_view, float x, float y, float width, float height)
Definition plugin_view_host.hpp:452
GpuSurfaceState
Definition plugin_view_host.hpp:330
@ unavailable
Definition plugin_view_host.hpp:330
@ pending
Definition plugin_view_host.hpp:330
virtual void pump_x_events()
Definition plugin_view_host.hpp:512
virtual void set_fixed_aspect_ratio(float ratio)
Definition plugin_view_host.hpp:522
virtual void set_size(uint32_t width, uint32_t height)=0
static void clear_factory()
GpuSurfaceState gpu_surface_state() const noexcept
Definition plugin_view_host.hpp:388
virtual bool set_native_child_view_bounds(NativeViewHandle child_view, float x, float y, float width, float height)
Definition plugin_view_host.hpp:464
std::function< std::unique_ptr< PluginViewHost >( View &root, const Options &options)> Factory
Definition plugin_view_host.hpp:150
SequencerStateChannel is the audio-safe transport for a plugin's structured NON-parameter state: the ...
Definition audio_device_manager.hpp:48
Definition accessibility_provider.hpp:65
std::size_t lite_host_gpu_request_count() noexcept
Requests noted by note_lite_host_gpu_request() in this process.
bool note_lite_host_gpu_request()
A lite editor binary (pulp_add_plugin LITE_EDITOR) is built without the GPU host.
Hover-cursor tracking for platform window hosts.
Definition fwd.hpp:27
constexpr std::uint8_t kEditorHostClearR
Definition plugin_view_host.hpp:58
constexpr std::uint32_t kEditorHostClearRgb
The background a plug-in editor host paints when the plug-in has not declared its own (Processor::edi...
Definition plugin_view_host.hpp:48
constexpr std::uint8_t kEditorHostClearB
Definition plugin_view_host.hpp:60
constexpr std::uint8_t kEditorHostClearG
Definition plugin_view_host.hpp:59
@ y
Definition input_events.hpp:42
@ r
Definition input_events.hpp:41
@ x
Definition input_events.hpp:41
@ height
Definition css_animation.hpp:128
void register_platform_plugin_view_host()
void * NativeViewHandle
Definition native_view_host.hpp:19
Definition drag_drop.hpp:109
Bytes held by this host's GPU resource caches: budgeted against Skia's budget, purgeable what a trim ...
Definition plugin_view_host.hpp:295
std::size_t purgeable
Definition plugin_view_host.hpp:297
std::size_t budgeted
Definition plugin_view_host.hpp:296
Definition plugin_view_host.hpp:333
render::GpuSurface * surface
non-null iff state==ready
Definition plugin_view_host.hpp:334
GpuSurfaceState state
Definition plugin_view_host.hpp:335
Definition plugin_view_host.hpp:100
bool enable_gpu_timing
Enable GPU timing instrumentation (Dawn timestamp queries).
Definition plugin_view_host.hpp:117
PresentPolicy present_policy
Presentation policy for this host.
Definition plugin_view_host.hpp:107
bool use_gpu
Use GPU rendering (Dawn/Skia Graphite) instead of CoreGraphics.
Definition plugin_view_host.hpp:102
std::uint32_t background_rgb
The editor's own background, 0xRRGGBB.
Definition plugin_view_host.hpp:126
Size size
Definition plugin_view_host.hpp:101
Definition plugin_view_host.hpp:66
uint32_t height
Definition plugin_view_host.hpp:68
uint32_t width
Definition plugin_view_host.hpp:67
Definition geometry.hpp:20
Axis-aligned rectangle in continuous (float) coordinates.
Definition geometry.hpp:52