/* * Copyright (C) 2017-2018 Team Kodi * This file is part of Kodi - https://kodi.tv * * SPDX-License-Identifier: GPL-2.0-or-later * See LICENSES/README.md for more information. */ #pragma once #include "utils/Geometry.h" struct RESOLUTION_INFO; namespace KODI { namespace RETRO { class IGUIRenderSettings; /*! * \brief Interface to expose rendering functions to GUI components */ class IRenderManager { public: virtual ~IRenderManager() = default; /*! * \brief Render a fullscreen window * * \param bClear Whether the render area should be cleared * \param coordsRes Resolution that the window coordinates are in */ virtual void RenderWindow(bool bClear, const RESOLUTION_INFO& coordsRes) = 0; /*! * \brief Render a game control * * \param bClear Whether the render area should be cleared * \param bUseAlpha Whether the graphics context's alpha should be used * \param renderRegion The region of the control being rendered * \param renderSettings The settings used to render the control */ virtual void RenderControl(bool bClear, bool bUseAlpha, const CRect& renderRegion, const IGUIRenderSettings* renderSettings) = 0; /*! * \brief Clear the background of a fullscreen window */ virtual void ClearBackground() = 0; }; } // namespace RETRO } // namespace KODI