C++ 是否将ID2D1Effect输出存储在ID2D1Bitmap/Image中,以便以后绘制?
我想将ID2D1Effect的输出图像转换为ID2D1Bitmap,这样我就可以在以后绘制它,而无需反复应用所有效果 我的第一次尝试只是保留ID2D1Effect::GetOutput image ptr,但是如果我将此效果与其他图像源一起使用,则此图像会发生更改 我的下一次尝试是创建一个设置了D2D1_Bitmap_OPTIONS_TARGET标志的位图(ID2D1DeviceContext::CreateBitmap),并将效果输出绘制到此位图,但这似乎也不起作用 将效果绘制到给定位图1**(目的地): (与DeviceContext相同-没有返回HRESULT的函数返回错误代码) 我做错了什么C++ 是否将ID2D1Effect输出存储在ID2D1Bitmap/Image中,以便以后绘制?,c++,effect,direct2d,C++,Effect,Direct2d,我想将ID2D1Effect的输出图像转换为ID2D1Bitmap,这样我就可以在以后绘制它,而无需反复应用所有效果 我的第一次尝试只是保留ID2D1Effect::GetOutput image ptr,但是如果我将此效果与其他图像源一起使用,则此图像会发生更改 我的下一次尝试是创建一个设置了D2D1_Bitmap_OPTIONS_TARGET标志的位图(ID2D1DeviceContext::CreateBitmap),并将效果输出绘制到此位图,但这似乎也不起作用 将效果绘制到给定位图1**
我该怎么做?只是忘记在CreateBitmap中指定像素格式
D2D1::PixelFormat(DXGI_FORMAT_B8G8R8A8_UNORM, D2D1_ALPHA_MODE_PREMULTIPLIED)
现在可以工作。要查找问题,启用Direct2D(和Direct3D)的调试层非常有用。
this->pD2DeviceContext->DrawBitmap(preview.Get(), D2D1::RectF(x, y, x+width, y + height));
D2D1::PixelFormat(DXGI_FORMAT_B8G8R8A8_UNORM, D2D1_ALPHA_MODE_PREMULTIPLIED)