【问题标题】:IDirect3DTexture9::SetData?IDirect3DTexture9::SetData?
【发布时间】:2023-03-14 08:33:02
【问题描述】:

在 XNA 中,你可以这样做

texture = new Texture2D( GraphicsDevice, width, height ) ;

我猜在 MSFT 的深处,这相当于 C++ 代码:

D3DXCreateTexture( GraphicsDevice, width, height, 1, 0, D3DFMT_A8R8G8B8, D3DPOOL_MANAGED, &texture ) ;

在 XNA 中,有一个漂亮的函数可以让您设置已创建纹理的像素值:

texture.SetData<Color>( new Color[]{ pixel, values, pixel, values ) ; 

现在我非常肯定必须有一个 C++ DirectX 等价物。有人知道是什么吗?

【问题讨论】:

    标签: c# c++ xna direct3d


    【解决方案1】:

    【讨论】:

    • 好吧,那只是获取指向数据的指针,请记住并不是所有的纹理类型在DX9中都是可锁定的。 (渲染目标或深度纹理不可锁定。)在这种情况下,使用 UpdateSurface 更新纹理/表面。 (仅适用于渲染目标,因为深度纹理不可更新(某些带有 hack 的卡片除外))
    猜你喜欢
    • 2015-06-22
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-19
    • 2017-05-17
    • 1970-01-01
    相关资源
    最近更新 更多