Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.31;
Скачать: CL | DM;

Вниз

КАК быстрее?   Найти похожие ветки 

 
parovoZZ ©   (2004-08-01 04:34) [0]

Что быстрее: пряиое копирование битового массива с помощью блокировки памяти (Lock и UnLock) или функция StretchDIBits()?


 
cyborg ©   (2004-08-01 08:16) [1]

прямое копирование. StretchDIBits с растяжением рисует вроде.


 
parovoZZ ©   (2004-08-01 17:27) [2]

Ну, а, в принципе, и хрен с ним, если всего-то 10 картинок надо загрузить. Юзверь нет волк, может и подождать. От компа не убежит))


 
parovoZZ ©   (2004-08-01 21:12) [3]

Хотя при прямом копировании байты приходится блоками переносить, цикл организовывать. Так что тут бабка на двое сказала.


 
miek ©   (2004-08-01 21:22) [4]

Процедуры GDI всегда работают в софтварном режиме, а DirectDraw может копировать через DMA.


 
cyborg ©   (2004-08-01 21:41) [5]


> [3] parovoZZ ©   (01.08.04 21:12)

Какая ещё бабка, думаешь StretchDIBits дуновением волшебного электрона всё разом переносит, нет ничего быстрее прямой записи/чтения, другое дело как это организовать.


 
parovoZZ ©   (2004-08-01 22:41) [6]

Дело говоришь. Я вот полазил по твоему сайту, отыскал интересную статейку про конвертацию пикселей. Попробовал - функция работает корректно только если картинка не меньше 100*100, а если меньше - получается билиберда. В чём дело пока не разбирался. Но опять - таки почему именно 24 бита? А нельзя файл сразу сохранить как 16 битный в редакторе?


 
cyborg ©   (2004-08-02 08:51) [7]

Servelat нашёл в чём причина, оказывается у BMP тоже бывает реальная ширина не соответствующая ширине самой картинки, в этих случаях работает криво, нужно учитывать это, мне лень код исправлять, у меня и так всё работает :).

Вчера на GameDev.ru на форуме увидел интересный пример как с помощью функции виндоуз грузить любые картинки (GIF, JPG, PNG и пр), там на С++ написали, пока не охото разбираться.


 
cyborg ©   (2004-08-02 08:58) [8]

Посмотри для конкурса колортетрис я использовал дописанный модуль к статьям, скачай исходник колортетриса (если тут на форуме не найдёшь у меня на сайте в разделе Исходники смотри) там в модуле GraphRoutines.pas функция с загрузкой 8 битовых картинок от Servelata добавил и ещё пару функций полезных. А сейчас для Танчиков сделал мини2ДЕнгине в виде ДЛЛ, там внутри директинпут и объект(спрайт)енгине встроен, по ходу немного доработаю и выложу в народ.


 
wicked ©   (2004-08-02 11:55) [9]


> Что быстрее: пряиое копирование битового массива с помощью
> блокировки памяти (Lock и UnLock) или функция StretchDIBits()?

замерить через RDTSC... а лучше - имхо StretchDIBits, с ней мороки меньше... :)
можно также поискать PTC (официальный хоумпейдж умер вроде как), там есть кучка блиттеров....


> Servelat нашёл в чём причина, оказывается у BMP тоже бывает
> реальная ширина не соответствующая ширине самой картинки,

в msdn всё прекрасно описано....


 
parovoZZ ©   (2004-08-02 12:27) [10]

А как тогда узнать реальный размер картинки?

А зачем вообще гнаться за скоростью загрузки графики, если процессы загрузки графики происходят очень редко?

Ссылки киньте к статейкам, плиз.


 
cyborg ©   (2004-08-02 12:42) [11]


> А зачем вообще гнаться за скоростью загрузки графики, если
> процессы загрузки графики происходят очень редко?

Как буд-то эту тему я создал. Кто тебя знает зачем тебе это надо?


 
parovoZZ ©   (2004-08-02 13:11) [12]

Исходник у тебя под free pascal, ну ладно, вечером скачаю.



Страницы: 1 вся ветка

Текущий архив: 2004.10.31;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.024 c
3-1096884772
_none_
2004-10-04 14:12
2004.10.31
stream read error


14-1097138479
Lool
2004-10-07 12:41
2004.10.31
Задача по геометрии


1-1097681010
Ivan_
2004-10-13 19:23
2004.10.31
вывести 2 таблицы в TdxDBGrid


4-1095793869
ser_ega
2004-09-21 23:11
2004.10.31
Телефон, мини-АТС, определитель!


4-1096040015
appendix
2004-09-24 19:33
2004.10.31
поток в Win98 и winXP