|
26.02.2008, 18:58
|
#1
|
|
DrawPixmap ускорение (OpenGL)
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 10 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.
|
Последний раз редактировалось jimon, 26.02.2008 в 20:24.
|
|
|
Эти 5 пользователя(ей) сказали Спасибо за это полезное сообщение:
|
|
26.02.2008, 19:28
|
#2
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: DrawPixmap ускорение (OpenGL)
glDrawPixels это очень удобная и очень тормозная команда. если нужна скорость, то быстрее всего рисовать квад, с текстурой.
фильтрация nearest.
можно пример рисующий 5к пиксмапов 512 на 512?
незабываем что это примерно 1311 мегапикселей.
|
(Offline)
|
|
26.02.2008, 20:23
|
#3
|
|
Ответ: DrawPixmap ускорение (OpenGL)
я такой код юзал, криво но пашет
Framework brl.GLMax2D
Import jimon.systimer
Import brl.PNGLoader
Graphics 800,600
img:TImage = LoadImage("Star_01.png")
Cls
SetBlend alphablend
SetColor 255,255,255
SetAlpha 1
SetScale 1,1
SetRotation 0
DrawImage img,0,0
pix:TPixmap = GrabPixmap(0,0,512,512)
For Local i2% = 0 To 10
time# = MilliSecs()
time2:Double = jMillisecs()
Cls
SetBlend alphablend
SetColor 255,255,255
SetAlpha 1
SetScale 1,1
SetRotation 0
For Local i% = 1 To 500
DrawPixmap pix,Rand(0,800),Rand(0,600)
Next
Flip 0
time = MilliSecs() - time
time2 = jMillisecs() - time2
'DrawText time,0,0
'DrawText time2,0,20
DebugLog time + " / "+time2
Next
img = Null
pix = Null
End
Ps. перепутал ... не 5K ... а 500 :-[
|
|
|
27.02.2008, 11:09
|
#4
|
Мастер
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений (для 252 пользователей)
|
Ответ: DrawPixmap ускорение (OpenGL)
Хороший прирост в скорости, никому еще не вредил. Спасиб.
|
(Offline)
|
|
27.02.2008, 18:47
|
#5
|
|
Ответ: DrawPixmap ускорение (OpenGL)
я вот теперь подумал, а нафиг оно надо ?
кто тут усиленно pixmapы рисует ? и где ?
потому что картинка рисуется вот таким кодом : (TGLImageFrame в glmax2d.bmx)
Method Draw( x0#,y0#,x1#,y1#,tx#,ty# )
Assert seq=GraphicsSeq Else "Image does not exist"
EnableTex name
glBegin GL_QUADS
glTexCoord2f u0,v0
glVertex2f x0*ix+y0*iy+tx,x0*jx+y0*jy+ty
glTexCoord2f u1,v0
glVertex2f x1*ix+y0*iy+tx,x1*jx+y0*jy+ty
glTexCoord2f u1,v1
glVertex2f x1*ix+y1*iy+tx,x1*jx+y1*jy+ty
glTexCoord2f u0,v1
glVertex2f x0*ix+y1*iy+tx,x0*jx+y1*jy+ty
glEnd
End Method
и как его ускорить то ?
|
|
|
27.02.2008, 20:17
|
#6
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: DrawPixmap ускорение (OpenGL)
правильно. ибо это самый быстрый способ.
хотя про GL_QUADS ходят плохие слухи. хз что с ним будет делать драйвер видекарты. Видеокарта только триугольники умеет рисовать.
|
(Offline)
|
|
01.03.2008, 01:28
|
#7
|
Троллота
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений (для 1,772 пользователей)
|
Ответ: DrawPixmap ускорение (OpenGL)
Сообщение от HolyDel
правильно. ибо это самый быстрый способ.
хотя про GL_QUADS ходят плохие слухи. хз что с ним будет делать драйвер видекарты. Видеокарта только триугольники умеет рисовать.
|
По идее должна триангулировать, что несколько замедлит рендеринг.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:33.
|