轉(zhuǎn)載自:http://hi.baidu.com/daoguchengshu/item/06aa4a09d3ca7810ebfe3815
lpitch是結(jié)構(gòu)體DDSURFACEDESC2的一項,這個結(jié)構(gòu)體描述了頁面/表面的一些信息。
lpitch一般譯做步幅(stride)或內(nèi)存寬度(memory width)。注意,它與DDSURFACEDESC2結(jié)構(gòu)體中的另一項dwWidth的意義是不一樣的。
lpitch的單位是字節(jié),dwWidth的單位是像素。所以,一個640×480×8(640×480個像素,每像素用8位,即一個字節(jié)表示)頁面,dwWidth=640 像素(字節(jié))。但是,此時Lpitch不一定就等于640(字節(jié))!同樣一個640×480×16的頁面,它的Lpitch值也不一定等于640×2(字節(jié))。
這是因為,Lpitch中的字節(jié)數(shù)有時還包含了高速緩沖區(qū)的內(nèi)存字節(jié)數(shù)。如下圖:

通過以上圖可以看到,頁面外面還有一段額外內(nèi)存,而這段內(nèi)存是未知的;所以說,假如一個640×480×8的頁面,它的dwWidth值是640,但是,它的Lpitch值應(yīng)該是640+x,x就是高速緩沖區(qū)Cache占用的內(nèi)存。
所以,如果要訪問這個頁面緩沖區(qū)的第y行的第x個像素,應(yīng)該這樣:
ddsd.lpSurface[x+y*ddsd.lpitch]