为什么 在
8位模式下 求像素点的位置为x+y*(ddsd.lPitch)
面在
16位模式下求像素点的位置为x+y*(ddsd.lPitch>>1)ddsd.lPitch不是反回的表面的跨度吗?
难道不是显示模式是 8位 16 位 24位 还是其它.它都只反回8位的表面跨度
8位模式下 求像素点的位置为x+y*(ddsd.lPitch)
面在
16位模式下求像素点的位置为x+y*(ddsd.lPitch>>1)ddsd.lPitch不是反回的表面的跨度吗?
难道不是显示模式是 8位 16 位 24位 还是其它.它都只反回8位的表面跨度
x+y*(ddsd.lPitch> > 1) 这个是因为16位一个像素两个字节
假如:8位 为 8; 16位的为 16。
如果:x+y*(8),8位时对了。
但:x+y*(16/2) ,16位时好像不对,应该是x+y*(16)。
请指点。
这里确实有点晕
那么像素点的相对内存偏移为(x +y*(16/2))*2;
要么就是x*2+y*lPitch.
16位是 2 * x + y * lPitch
24位是 3 * x + y * lPitch
32位是 4 * x + y * lPitch好象没有lPitch >> 1这样的写法