如何从IDCompositionSurface获取像素数据

问题描述 投票:0回答:2

我将 DirectComposition 与 DirectManipulation 结合使用来渲染事物。我在 DirectCompositionVisuals 上存在一些垂直链接的文本。我想提取所选内容的像素数据,以便我可以用它来做一些事情。我正在尝试执行以下操作,但这会导致表面被清除

HRESULT hr = DCSurface->BeginDraw(&rect, IID_PPV_ARGS(&dxSurface), &point);
HDC hdcSurface = nullptr;
hr = dxSurface->GetDC(FALSE, &hdcSurface);

winapi direct-composition
2个回答
0
投票

就我而言,首先,您应该创建一个可更新的表面对象,该对象可以通过 IDCompositionDevice::CreateSurface 方法与一个或多个视觉效果关联以进行合成。然后使用

IDCompositionSurface::BeginDraw method
用像素数据初始化表面。


0
投票

是的,BeginDraw 为您提供了新的绘图纹理。来自MSDN

检索到的表面矩形不包含位图之前的内容。

© www.soinside.com 2019 - 2024. All rights reserved.