命令列表不能引用使用命令列表的效果图的一部分。
可能的原因
填充命令列表时,应用程序可能包括对 ID2D1DeviceContext::D rawImage 的调用。 ID2D1DeviceContext::D rawImage 可用于绘制位图、效果或命令列表。 因此,ID2D1DeviceContext::D rawImage 调用可以语法上尝试绘制命令列表,而该命令列表设置为目标。 但是,以这种方式自我引用命令列表无效。 Direct2D 将识别发生此错误并报告错误的情况,调试层将输出此消息。
可能的修复方法
填充命令列表时,请确保设备上下文不会发出使用该相同命令列表的任何作。 发生此情况的最明显方式是调用 ID2D1DeviceContext::D rawImage,其命令列表设置为目标。 但是,这种情况也不太明显:ID2D1DeviceContext::D rawImage 可能引用效果图,效果图中的一个节点可能会尝试使用目标命令列表。 确保在使用前正确填充命令列表,并且调用 ID2D1DeviceContext::SetTarget 引用目标。