Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 是否将ID2D1Effect输出存储在ID2D1Bitmap/Image中,以便以后绘制?_C++_Effect_Direct2d - Fatal编程技术网

C++ 是否将ID2D1Effect输出存储在ID2D1Bitmap/Image中,以便以后绘制?

C++ 是否将ID2D1Effect输出存储在ID2D1Bitmap/Image中,以便以后绘制?,c++,effect,direct2d,C++,Effect,Direct2d,我想将ID2D1Effect的输出图像转换为ID2D1Bitmap,这样我就可以在以后绘制它,而无需反复应用所有效果 我的第一次尝试只是保留ID2D1Effect::GetOutput image ptr,但是如果我将此效果与其他图像源一起使用,则此图像会发生更改 我的下一次尝试是创建一个设置了D2D1_Bitmap_OPTIONS_TARGET标志的位图(ID2D1DeviceContext::CreateBitmap),并将效果输出绘制到此位图,但这似乎也不起作用 将效果绘制到给定位图1**

我想将ID2D1Effect的输出图像转换为ID2D1Bitmap,这样我就可以在以后绘制它,而无需反复应用所有效果

我的第一次尝试只是保留ID2D1Effect::GetOutput image ptr,但是如果我将此效果与其他图像源一起使用,则此图像会发生更改

我的下一次尝试是创建一个设置了D2D1_Bitmap_OPTIONS_TARGET标志的位图(ID2D1DeviceContext::CreateBitmap),并将效果输出绘制到此位图,但这似乎也不起作用

将效果绘制到给定位图1**(目的地):

(与DeviceContext相同-没有返回HRESULT的函数返回错误代码)

我做错了什么


我该怎么做?

只是忘记在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)