Сравнение быстроты GDI and DirectX

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Сравнение быстроты GDI and DirectX

Сообщение Fedorfx » 29.04.2004 (Чт) 14:59

Всем привет
есть задача нарисовать линию из 5 000 отрезков
сейчас использую API LineTo в цикле
Быстрота не устраивает
Думаю переходить на DirectX
Подскажите стоит ли овчинка выделки и о каком приросте может идти речь? Или может что еще посоветуете( в плане отображения примитивных графич функций)

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 29.04.2004 (Чт) 16:23

Ну, на VB у тебя что там, что сям будет примерно одинаково. Не забывай, что работа с DirectX производится через библиотеку типов, а это - очень медленный способ работы. Может, конечно, и получишь немного скорости, но вот что геморроя будет предостаточно - гарантирую.

ЗЫ Надеюсь, WM_SETREDRAW при работе через GDI ты используешь...

Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Сообщение Fedorfx » 29.04.2004 (Чт) 17:53

Ок
Если не DirectX то чем можно быстро нарисовать ломанную линию???

ЗЫ Надеюсь, WM_SETREDRAW при работе через GDI ты используешь...

Я использую CreateCompBitmap? рисую все на ней а потом копирую BitBtl. А при таком методе есть необходимость в WM_SETREDRAW?Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 30.04.2004 (Пт) 9:27

Код: Выделить всё
Declare Function Polyline Lib "gdi32" Alias "Polyline" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long


hdc
Identifies a device context.

lppt
Points to an array of POINT structures. Each structure in the array identifies a point in logical space.

cPoints
Specifies the number of points in the array. This number must be greater than or equal to two.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 30.04.2004 (Пт) 9:32

Да, GSerg, унасекомил :) Как-то я про нее забыл. Наверное, потому, что сам никогда не пользовался.

2 Fedorfx: Необходимость в WM_SETREDRAW есть всегда, когда ты сам что-то рисуешь.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 30.04.2004 (Пт) 9:34

:)

Интересно, как бы ты послал message в memory DC? :wink:
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 30.04.2004 (Пт) 9:59

GSerg писал(а):Интересно, как бы ты послал message в memory DC? :wink:

Ну, в memory DC оно и не нужно, а вот перед любым блиттингом на screen DC уже имеет смысл. И вообще, мы с тобой люди взрослые, мог бы и не подкапываться к мелочам :)

Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Сообщение Fedorfx » 30.04.2004 (Пт) 11:29

Спасибо за участие. Такой вопрос, а Lineto or Polyline использу.т аппаратное ускорение видеокарты или рисуется процессором? ( Я может некорректно выразился но суть вопроса надеюсь понятна)
И можно ли использовать некоторые функции из DirectX на GDI контексте???

Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Сообщение Fedorfx » 30.04.2004 (Пт) 18:04

Прошу высказаться,
на майских инета не будет а пораскинуть мозгами хочется 8)

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4160
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 30.04.2004 (Пт) 18:36

есть задача нарисовать линию из 5 000 отрезков
сейчас использую API LineTo в цикле
Быстрота не устраивает

Если ломаная уже загружена в вертекс буффер и железа аппаратно позволяет - на DirectX будет многократно быстрее.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList