terminal/src/renderer/vt/Xterm256Engine.hpp

53 lines
1.8 KiB
C++

/*++
Copyright (c) Microsoft Corporation
Licensed under the MIT license.
Module Name:
- Xterm256Engine.hpp
Abstract:
- This is the definition of the VT specific implementation of the renderer.
This is the xterm-256color implementation, which supports advanced sequences such as
inserting and deleting lines, and true rgb color.
Author(s):
- Mike Griese (migrie) 01-Sept-2017
--*/
#pragma once
#include "XtermEngine.hpp"
namespace Microsoft::Console::Render
{
class Xterm256Engine : public XtermEngine
{
public:
Xterm256Engine(_In_ wil::unique_hfile hPipe,
wil::shared_event shutdownEvent,
const Microsoft::Console::IDefaultColorProvider& colorProvider,
const Microsoft::Console::Types::Viewport initialViewport,
_In_reads_(cColorTable) const COLORREF* const ColorTable,
const WORD cColorTable);
virtual ~Xterm256Engine() override = default;
[[nodiscard]] HRESULT UpdateDrawingBrushes(const COLORREF colorForeground,
const COLORREF colorBackground,
const WORD legacyColorAttribute,
const ExtendedAttributes extendedAttrs,
const bool isSettingDefaultBrushes) noexcept override;
private:
[[nodiscard]] HRESULT _UpdateExtendedAttrs(const ExtendedAttributes extendedAttrs) noexcept;
// We're only using Italics, Blinking, Invisible and Crossed Out for now
// See GH#2916 for adding a more complete implementation.
ExtendedAttributes _lastExtendedAttrsState;
#ifdef UNIT_TESTING
friend class VtRendererTest;
#endif
};
}