2019-05-03 00:29:04 +02:00
|
|
|
// Copyright (c) Microsoft Corporation.
|
|
|
|
// Licensed under the MIT license.
|
|
|
|
|
|
|
|
#include "precomp.h"
|
|
|
|
#include "ScreenBufferRenderTarget.hpp"
|
|
|
|
#include "../interactivity/inc/ServiceLocator.hpp"
|
|
|
|
|
2019-05-30 20:14:21 +02:00
|
|
|
using Microsoft::Console::Interactivity::ServiceLocator;
|
2019-05-03 00:29:04 +02:00
|
|
|
ScreenBufferRenderTarget::ScreenBufferRenderTarget(SCREEN_INFORMATION& owner) :
|
|
|
|
_owner{ owner }
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
void ScreenBufferRenderTarget::TriggerRedraw(const Microsoft::Console::Types::Viewport& region)
|
|
|
|
{
|
|
|
|
auto* pRenderer = ServiceLocator::LocateGlobals().pRender;
|
|
|
|
const auto* pActive = &ServiceLocator::LocateGlobals().getConsoleInformation().GetActiveOutputBuffer().GetActiveBuffer();
|
|
|
|
if (pRenderer != nullptr && pActive == &_owner)
|
|
|
|
{
|
|
|
|
pRenderer->TriggerRedraw(region);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void ScreenBufferRenderTarget::TriggerRedraw(const COORD* const pcoord)
|
|
|
|
{
|
|
|
|
auto* pRenderer = ServiceLocator::LocateGlobals().pRender;
|
|
|
|
const auto* pActive = &ServiceLocator::LocateGlobals().getConsoleInformation().GetActiveOutputBuffer().GetActiveBuffer();
|
|
|
|
if (pRenderer != nullptr && pActive == &_owner)
|
|
|
|
{
|
|
|
|
pRenderer->TriggerRedraw(pcoord);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void ScreenBufferRenderTarget::TriggerRedrawCursor(const COORD* const pcoord)
|
|
|
|
{
|
|
|
|
auto* pRenderer = ServiceLocator::LocateGlobals().pRender;
|
|
|
|
const auto* pActive = &ServiceLocator::LocateGlobals().getConsoleInformation().GetActiveOutputBuffer().GetActiveBuffer();
|
|
|
|
if (pRenderer != nullptr && pActive == &_owner)
|
|
|
|
{
|
|
|
|
pRenderer->TriggerRedrawCursor(pcoord);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void ScreenBufferRenderTarget::TriggerRedrawAll()
|
|
|
|
{
|
|
|
|
auto* pRenderer = ServiceLocator::LocateGlobals().pRender;
|
|
|
|
const auto* pActive = &ServiceLocator::LocateGlobals().getConsoleInformation().GetActiveOutputBuffer().GetActiveBuffer();
|
|
|
|
if (pRenderer != nullptr && pActive == &_owner)
|
|
|
|
{
|
|
|
|
pRenderer->TriggerRedrawAll();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-05-04 23:17:37 +02:00
|
|
|
void ScreenBufferRenderTarget::TriggerTeardown() noexcept
|
2019-05-03 00:29:04 +02:00
|
|
|
{
|
|
|
|
auto* pRenderer = ServiceLocator::LocateGlobals().pRender;
|
|
|
|
const auto* pActive = &ServiceLocator::LocateGlobals().getConsoleInformation().GetActiveOutputBuffer().GetActiveBuffer();
|
|
|
|
if (pRenderer != nullptr && pActive == &_owner)
|
|
|
|
{
|
|
|
|
pRenderer->TriggerTeardown();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void ScreenBufferRenderTarget::TriggerSelection()
|
|
|
|
{
|
|
|
|
auto* pRenderer = ServiceLocator::LocateGlobals().pRender;
|
|
|
|
const auto* pActive = &ServiceLocator::LocateGlobals().getConsoleInformation().GetActiveOutputBuffer().GetActiveBuffer();
|
|
|
|
if (pRenderer != nullptr && pActive == &_owner)
|
|
|
|
{
|
|
|
|
pRenderer->TriggerSelection();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void ScreenBufferRenderTarget::TriggerScroll()
|
|
|
|
{
|
|
|
|
auto* pRenderer = ServiceLocator::LocateGlobals().pRender;
|
|
|
|
const auto* pActive = &ServiceLocator::LocateGlobals().getConsoleInformation().GetActiveOutputBuffer().GetActiveBuffer();
|
|
|
|
if (pRenderer != nullptr && pActive == &_owner)
|
|
|
|
{
|
|
|
|
pRenderer->TriggerScroll();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void ScreenBufferRenderTarget::TriggerScroll(const COORD* const pcoordDelta)
|
|
|
|
{
|
|
|
|
auto* pRenderer = ServiceLocator::LocateGlobals().pRender;
|
|
|
|
const auto* pActive = &ServiceLocator::LocateGlobals().getConsoleInformation().GetActiveOutputBuffer().GetActiveBuffer();
|
|
|
|
if (pRenderer != nullptr && pActive == &_owner)
|
|
|
|
{
|
|
|
|
pRenderer->TriggerScroll(pcoordDelta);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void ScreenBufferRenderTarget::TriggerCircling()
|
|
|
|
{
|
|
|
|
auto* pRenderer = ServiceLocator::LocateGlobals().pRender;
|
|
|
|
const auto* pActive = &ServiceLocator::LocateGlobals().getConsoleInformation().GetActiveOutputBuffer().GetActiveBuffer();
|
|
|
|
if (pRenderer != nullptr && pActive == &_owner)
|
|
|
|
{
|
|
|
|
pRenderer->TriggerCircling();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void ScreenBufferRenderTarget::TriggerTitleChange()
|
|
|
|
{
|
|
|
|
auto* pRenderer = ServiceLocator::LocateGlobals().pRender;
|
|
|
|
const auto* pActive = &ServiceLocator::LocateGlobals().getConsoleInformation().GetActiveOutputBuffer().GetActiveBuffer();
|
|
|
|
if (pRenderer != nullptr && pActive == &_owner)
|
|
|
|
{
|
|
|
|
pRenderer->TriggerTitleChange();
|
|
|
|
}
|
|
|
|
}
|