Можно ли получить устройство рендеринга для данного композитора в API композиции Windows? - PullRequest
0 голосов
/ 02 сентября 2018

Мне интересно, можно ли как-то вызвать эту функцию API для данного композитора элемента управления xaml: https://msdn.microsoft.com/en-ca/library/windows/apps/mt620066?f=255&MSPPError=-2147217396

Я думаю, что-то вроде этого:

    // Get the graphics device for the compositor
    auto compositor = Window::Current().Compositor();
    com_ptr<ICompositorInterop> comp_interop{ compositor.as<ICompositorInterop> };
    com_ptr<ICompositionGraphicsDevice> m_compgd{nullptr};
    comp_interop->GetGraphicsDevice(m_compgd.put()); // This doesn't actually exist.

    // Get the rendering device
    com_ptr<ICompositionGraphicsDeviceInterop> compgd_interop{m_compgd.as<ICompositionGraphicsDeviceInterop>()};
    com_ptr<IUnknown> m_device{ nullptr };
    check_hresult(
        compgd_interop->GetRenderingDevice(m_device.put())
    );

За исключением того, что, очевидно, это не работает, потому что нет функции GetGraphicsDevice, только CreateGraphicsDevice.

...