(Direct3D 9) 操作资源
应用程序操作资源以呈现场景。 首先,应用程序需要使用以下方法之一创建纹理资源:
- IDirect3DDevice9::CreateCubeTexture
- IDirect3DDevice9::CreateTexture
- IDirect3DDevice9::CreateVolumeTexture
可以使用 D3DXCreatexxx 纹理函数之一创建纹理资源。
纹理创建方法返回的纹理对象是表面或卷的容器;这些容器通常称为缓冲区。 资源拥有的缓冲区继承资源的用法、格式和池,但具有自己的类型。 有关详细信息,请参阅 (Direct3D 9) 的资源属性 。
应用程序通过调用以下方法获取对包含图面的访问权限,以便加载插图。 有关详细信息,请参阅 将资源锁定 (Direct3D 9) 。
锁定方法采用表示包含表面的参数(例如,纹理的 mipmap 子级别或立方体面),并返回指向像素的指针。 典型的应用程序从不直接使用 Surface 对象。
通过调用 IDirect3DDevice9::CreateIndexBuffer 或 IDirect3DDevice9::CreateVertexBuffer 来创建面向几何图形的资源。
通过调用 IDirect3DIndexBuffer9::Lock 或 IDirect3DVertexBuffer9::Lock 来锁定和填充缓冲区资源,具体取决于资源。
对于托管纹理资源,资源创建过程将在此处结束。 对于非托管纹理资源,应用程序通过调用 IDirect3DDevice9::UpdateTexture,将系统内存资源提升为设备可访问的资源, (进行硬件加速) 。
若要显示从资源呈现的图像,应用程序还需要颜色和深度模具缓冲区。 对于典型应用程序,颜色缓冲区由设备的交换链拥有,该交换链是后台缓冲区表面的集合,是随设备隐式创建的。 深度模具图面可以隐式创建,也可以使用 IDirect3DDevice9::CreateDepthStencilSurface 方法显式创建。 应用程序将设备及其深度和颜色缓冲区与调用 IDirect3DDevice9::SetRenderTarget 或 IDirect3DDevice9::SetDepthStencilSurface 相关联。
有关呈现最终图像的详细信息,请参阅 (Direct3D 9) 呈现场景 。
相关主题