다음을 통해 공유


InkD2DRenderer 클래스

IInkD2DRenderer 인터페이스를 구현합니다.

IInkD2DRenderer 개체를 사용하면 기본 InkCanvas 컨트롤 대신 유니버설 Windows 앱의 지정된 Direct2D 디바이스 컨텍스트에 잉크 스트로크를 렌더링할 수 있습니다.

멤버

InkD2DRenderer 클래스는 IUnknown 인터페이스에서 상속됩니다. InkD2DRenderer 에는 다음과 같은 유형의 멤버도 있습니다.

메서드

InkD2DRenderer 클래스에는 이러한 메서드가 있습니다.

메서드 Description
Draw 잉크 스트로크를 앱의 지정된 Direct2D 디바이스 컨텍스트로 렌더링합니다.

Creation\Access 함수

클래스 식별자 InkD2DRenderer를 사용하여 CoCreateInstance를 호출하여 개체에 대한 참조를 검색합니다.

CoCreateInstance(__uuidof(InkD2DRenderer),
  nullptr,
  CLSCTX_INPROC_SERVER,
  IID_PPV_ARGS(&_spInkD2DRenderer));

예제

복합 수동 입력 샘플의 "SceneComposer.cpp" 파일의 이 코드 조각은 잉크 스트로크 컬렉션을 Direct2D 디바이스 컨텍스트로 렌더링하는 방법을 보여 줍니다.

_inkRenderer->Render(strokes, _deviceResources->GetD2DDeviceContext());
strokes->Clear();

Complex 수동 입력 샘플의 "InkRenderer.cpp" 파일의 이 코드 조각은 스트로크 렌더링을 위해 Draw 메서드를 호출하는 Render 메서드(이전 코드 조각에서 호출됨)를 보여 줍니다.

void InkRenderer::Render(
    Platform::Collections::Vector<
        Windows::UI::Input::Inking::InkStroke^>^ strokes,
        Microsoft::WRL::ComPtr<ID2D1DeviceContext> d2dContext)
{
    HRESULT hr = S_OK;
    if (_spInkD2DRenderer != nullptr)
    {
        if (strokes != nullptr && strokes->Size > 0)
        {
            // Cast the stroke collection into IUnknown to call Inkd2dRenderer
            ComPtr<IUnknown> spUnkStrokes = 
                reinterpret_cast<IUnknown*>(reinterpret_cast<__abi_IUnknown*>(strokes));
            hr = _spInkD2DRenderer->Draw(d2dContext.Get(), spUnkStrokes.Get(), false);
            if (FAILED(hr))
            {
                DX::ThrowIfFailed(hr);
            }
        }
    }
}

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows 10 [데스크톱 앱만 해당]
지원되는 최소 서버
지원되는 버전 없음
헤더
Inkrenderer.h
IDL
Inkrenderer.idl
IID
IID_IInkD2DRenderer 4044e60c-7b01-4671-a97c-04e0210a07a5로 정의됩니다.

잉크 렌더러, 펜 및 스타일러스 상호 작용, 잉크 분석 샘플, 간단한 수동 입력 샘플, 복잡한 수동 입력 샘플