|
|

楼主 |
发表于 2004-11-14 14:15:00
|
显示全部楼层
Re: Re: 求教一个directdraw的问题。
sagitden: Re: 求教一个directdraw的问题。
用getlockedpixel肯定慢啊。。。。。vb的计算本来就慢
16位色下我记得我以前做的好像有30多祯啊。。
一般来说要处理整个屏幕还是用 getlockedArray比较快一点
把我的原码贴上吧
Private Sub testeffect()
On Error GoTo Err
Dim i As Long, j As Long, d As DDSURFACEDESC2, rx As Long, ry As_
Long, v As Long, c As Long, array1() As Byte, array2() As Byte
pics.Lock rectga, d, DDLOCK_WAIT, 0
gapics.Lock rectga, d, DDLOCK_WAIT, 0
pics.GetLockedArray array1()
gapics.GetLockedArray array2()
For i = 0 To d.lPitch - 1
For j = 0 To 479
array1(i, j) = ColorMix(array1(i, j), array2(i, j))
Next j
Next i
gapics.Unlock rectga
pics.Unlock rectga
'''bs.BltFx rectga, gapics, rectga, DDBLT_KEYSRC Or DDBLT_WAIT, bf
bs.Blt rectga, pics, rectga, DDBLT_WAIT
'''bs.DrawText 200, 100, CStr(cnt), False
ps.Blt rectall, bs, rectall, DDBLT_WAIT
Err:
Exit Sub
Unload Me
End Sub
这样了,还是慢,就算那句改array1=array2还是慢,vb处理数组效率也太低了吧。 [em20] |
|