的IDirect3DVertexBuffer9有方法Direct3D的VertexBuffer鎖()和unlock()函數不同D3DPOOL
STDMETHOD(Lock)(THIS_ UINT OffsetToLock,UINT SizeToLock,void** ppbData,DWORD Flags) PURE
STDMETHOD(Unlock)(THIS) PURE
我不知道內部實現這些功能的實現。 我期待下一個。
'Lock'方法將VertexBuffer的視頻內存映射到ppbData。它獲得了更多的表現。
'Lock'方法分配一個system-mem並使ppbData指向它。 'UnLock'方法是將該內存複製到真實的視頻內存中。這種通過在硬件中放置抽象層的方法消除了差異。
我猜: 在「D3DPOOL_SYSTEMMEM」模式,它通過方式2 在「D3DPOOL_DEFAULT」模式來實現,它由1路
/* Pool types */
typedef enum _D3DPOOL {
D3DPOOL_DEFAULT = 0,
D3DPOOL_MANAGED = 1,
D3DPOOL_SYSTEMMEM = 2,
D3DPOOL_SCRATCH = 3,
D3DPOOL_FORCE_DWORD = 0x7fffffff
} D3DPOOL;
實現,但我不知道在每個D3DPOOL模式下如何實現。 幫助我~~