// Copyright 2017 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 UI_ACCELERATED_WIDGET_MAC_CA_LAYER_FRAME_SINK_H_ #define UI_ACCELERATED_WIDGET_MAC_CA_LAYER_FRAME_SINK_H_ #include "ui/accelerated_widget_mac/accelerated_widget_mac_export.h" #include "ui/gfx/ca_layer_params.h" #include "ui/gfx/native_widget_types.h" namespace ui { // An interface to an NSView that will embed content described by CALayerParams // in its heirarchy. class ACCELERATED_WIDGET_MAC_EXPORT CALayerFrameSink { public: virtual ~CALayerFrameSink() {} // Translate from a gfx::AcceleratedWidget to the gfx::CALayerFrameSink // interface through which frames may be submitted. This may return nullptr. static CALayerFrameSink* FromAcceleratedWidget(gfx::AcceleratedWidget widget); // Update the embedder's CALayer tree to show the content described by // |ca_layer_params|. virtual void UpdateCALayerTree(const gfx::CALayerParams& ca_layer_params) = 0; }; } // namespace ui #endif // UI_ACCELERATED_WIDGET_MAC_CA_LAYER_FRAME_SINK_H_