Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.042 c
1-1098226254
Кклуб
2004-10-20 02:50
2004.10.31
Динамическое создание OnClick


14-1097229183
duk
2004-10-08 13:53
2004.10.31
Просмотр графического файла PNG


1-1097831762
П7
2004-10-15 13:16
2004.10.31
Высота текста с переносами


3-1096622628
vic1
2004-10-01 13:23
2004.10.31
Построение дерева


3-1096958299
Mitrofan
2004-10-05 10:38
2004.10.31
EhLib DBGrid Как получить сумму по столбцу




   Наверх