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

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