-#ifndef DALI_OFFSCREEN_WINDOW_H
-#define DALI_OFFSCREEN_WINDOW_H
-
-/*
- * Copyright (c) 2020 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <memory>
-#include <dali/public-api/actors/actor.h>
-#include <dali/public-api/math/uint-16-pair.h>
-#include <dali/public-api/signals/dali-signal.h>
-#include <dali/public-api/object/any.h>
-
-// INTERNAL INCLUDES
-#include <dali/devel-api/adaptor-framework/offscreen-application.h>
-
-namespace Dali
-{
-
-/**
- * @addtogroup dali_adaptor_framework
- * @{
- */
-
-class Layer;
-
-namespace Internal
-{
-class OffscreenWindow;
-}
-
-class DALI_IMPORT_API OffscreenWindow : public Dali::BaseHandle
-{
-public:
-
- typedef Uint16Pair WindowSize;
- typedef Signal<void (OffscreenWindow, Any)> PostRenderSignalType;
-
-public:
-
- /**
- * @brief Creates an initialized handle to a new OffscreenWindow
- * @note You should hold the returned handle. If you missed the handle, the OffscreenWindow will be released
- *
- * @param[in] width The initial width of the OffscreenWindow
- * @param[in] height The initial height of the OffscreenWindow
- * @param[in] isTranslucent Whether the OffscreenWindow is translucent or not
- */
- static OffscreenWindow New( uint16_t width, uint16_t height, bool isTranslucent );
-
- /**
- * @brief Creates an initialized handle to a new OffscreenWindow
- * @note You should hold the returned handle. If you missed the handle, the OffscreenWindow will be released
- *
- * @param[in] surface The native surface handle of your platform
- * @param[in] isTranslucent Whether the OffscreenWindow is translucent or not
- */
- static OffscreenWindow New( Any surface, bool isTranslucent );
-
- /**
- * @brief Constructs an empty handle
- */
- OffscreenWindow();
-
- /**
- * @brief Copy constructor
- */
- OffscreenWindow( const OffscreenWindow& window );
-
- /**
- * @brief Assignment operator
- */
- OffscreenWindow& operator=( const OffscreenWindow& window );
-
- /**
- * @brief Destructor
- */
- ~OffscreenWindow();
-
-public:
- /**
- * @brief Adds a child Actor to the OffscreenWindow.
- *
- * The child will be referenced.
- *
- * @param[in] actor The child
- * @pre The actor has been initialized.
- * @pre The actor does not have a parent.
- */
- void Add( Actor actor );
-
- /**
- * @brief Removes a child Actor from the OffscreenWindow.
- *
- * The child will be unreferenced.
- *
- * @param[in] actor The child
- * @pre The actor has been added to the OffscreenWindow.
- */
- void Remove( Actor actor );
-
- /**
- * @brief Sets the background color of the OffscreenWindow.
- *
- * @param[in] color The new background color
- */
- void SetBackgroundColor( const Vector4& color );
-
- /**
- * @brief Gets the background color of the OffscreenWindow.
- *
- * @return The background color
- */
- Vector4 GetBackgroundColor() const;
-
- /**
- * @brief Returns the root Layer of the OffscreenWindow.
- *
- * @return The root layer
- */
- Layer GetRootLayer() const;
-
- /**
- * @brief Queries the number of on-scene layers.
- *
- * Note that a default layer is always provided (count >= 1).
- *
- * @return The number of layers
- */
- uint32_t GetLayerCount() const;
-
- /**
- * @brief Retrieves the layer at a specified depth in the OffscreenWindow.
- *
- * @param[in] depth The depth
- * @return The layer found at the given depth
- * @pre Depth is less than layer count; see GetLayerCount().
- */
- Layer GetLayer( uint32_t depth ) const;
-
- /**
- * @brief Returns the size of the OffscreenWindow in pixels as a Vector.
- *
- * The x component will be the width of the OffscreenWindow in pixels.
- * The y component will be the height of the OffscreenWindow in pixels.
- *
- * @return The size of the OffscreenWindow as a Vector
- */
- WindowSize GetSize() const;
-
- /**
- * @brief Gets the native handle.
- * @note When users call this function, it wraps the actual type used by the underlying system.
- * @return The native handle or an empty handle
- */
- Any GetNativeHandle() const;
-
-public: // Signals
-
- /**
- * @brief This signal is emitted when the OffscreenWindow is rendered.
- *
- * @return The signal
- */
- PostRenderSignalType& PostRenderSignal();
-
-public: // Not intended for application developers
-
- /**
- * @brief Internal constructor
- */
- explicit DALI_INTERNAL OffscreenWindow( Internal::OffscreenWindow* window );
-
-};
-
-/**
- * @}
- */
-
-} // namespace Dali
-
-#endif // DALI_OFFSCREEN_WINDOW_H