有没有办法将渲染目标设置为SlimDX中的GDI位图,这样一旦渲染场景,我可以立即将渲染器从那里BitBlt进行处理,然后继续渲染?
是否需要渲染到纹理然后将内容复制到位图?我希望能够在没有任何不必要的复制的情况下做到这一点。我将需要我能得到的每一次加速。
答案 0 :(得分:3)
很抱歉,您需要渲染到RenderTarget,然后将该资源复制到Texture2D中,然后您可以映射数据并将像素放入您的位图。
RenderTargets的内存标记为显卡的特殊用途,无法直接读取
纹理的内存可以被标记,以便只能通过API读取它,因为它仍然保存在图形卡上(有些例外,但DirectX必须使用最低的公分母)
如果您需要额外的速度重用相同的位图,或者准备好一组准备好的位图来填充并保持它们的旋转。
与以往一样,使用分析器测量这些东西消耗的时间,以便量化瓶颈。