terminal/src/renderer/inc/IRenderer.hpp
2019-07-19 11:07:20 -05:00

65 lines
2.1 KiB
C++

/*++
Copyright (c) Microsoft Corporation
Licensed under the MIT license.
Module Name:
- IRenderer.hpp
Abstract:
- This serves as the entry point for console rendering activites.
Author(s):
- Michael Niksa (MiNiksa) 17-Nov-2015
--*/
#pragma once
#include "FontInfoDesired.hpp"
#include "IRenderEngine.hpp"
#include "IRenderTarget.hpp"
#include "../types/inc/viewport.hpp"
namespace Microsoft::Console::Render
{
class IRenderer : public IRenderTarget
{
public:
virtual ~IRenderer() = 0;
[[nodiscard]] virtual HRESULT PaintFrame() = 0;
virtual void TriggerSystemRedraw(const RECT* const prcDirtyClient) = 0;
virtual void TriggerRedraw(const Microsoft::Console::Types::Viewport& region) = 0;
virtual void TriggerRedraw(const COORD* const pcoord) = 0;
virtual void TriggerRedrawCursor(const COORD* const pcoord) = 0;
virtual void TriggerRedrawAll() = 0;
virtual void TriggerTeardown() = 0;
virtual void TriggerSelection() = 0;
virtual void TriggerScroll() = 0;
virtual void TriggerScroll(const COORD* const pcoordDelta) = 0;
virtual void TriggerCircling() = 0;
virtual void TriggerTitleChange() = 0;
virtual void TriggerFontChange(const int iDpi,
const FontInfoDesired& FontInfoDesired,
_Out_ FontInfo& FontInfo) = 0;
[[nodiscard]] virtual HRESULT GetProposedFont(const int iDpi,
const FontInfoDesired& FontInfoDesired,
_Out_ FontInfo& FontInfo) = 0;
virtual bool IsGlyphWideByFont(const std::wstring_view glyph) = 0;
virtual void EnablePainting() = 0;
virtual void WaitForPaintCompletionAndDisable(const DWORD dwTimeoutMs) = 0;
virtual void WaitForPaintCompletion(const DWORD dwTimeoutMs) = 0;
virtual void AddRenderEngine(_In_ IRenderEngine* const pEngine) = 0;
};
inline Microsoft::Console::Render::IRenderer::~IRenderer() {}
}