![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
КАК быстрее? [D7, WinXP]
parovoZZ © (2004-08-01 04:34:00)Что быстрее: пряиое копирование битового массива с помощью блокировки памяти (Lock и UnLock) или функция StretchDIBits()?
parovoZZ (2004-08-02 13:11:00) [1]Исходник у тебя под free pascal, ну ладно, вечером скачаю.
cyborg (2004-08-02 12:42:00) [2]
> А зачем вообще гнаться за скоростью загрузки графики, если
> процессы загрузки графики происходят очень редко?
Как буд-то эту тему я создал. Кто тебя знает зачем тебе это надо?
parovoZZ (2004-08-02 12:27:00) [3]А как тогда узнать реальный размер картинки?
А зачем вообще гнаться за скоростью загрузки графики, если процессы загрузки графики происходят очень редко?
Ссылки киньте к статейкам, плиз.
wicked (2004-08-02 11:55:00) [4]
> Что быстрее: пряиое копирование битового массива с помощью
> блокировки памяти (Lock и UnLock) или функция StretchDIBits()?
замерить через RDTSC... а лучше - имхо StretchDIBits, с ней мороки меньше... :)
можно также поискать PTC (официальный хоумпейдж умер вроде как), там есть кучка блиттеров....
> Servelat нашёл в чём причина, оказывается у BMP тоже бывает
> реальная ширина не соответствующая ширине самой картинки,
в msdn всё прекрасно описано....
cyborg (2004-08-02 08:58:00) [5]Посмотри для конкурса колортетрис я использовал дописанный модуль к статьям, скачай исходник колортетриса (если тут на форуме не найдёшь у меня на сайте в разделе Исходники смотри) там в модуле GraphRoutines.pas функция с загрузкой 8 битовых картинок от Servelata добавил и ещё пару функций полезных. А сейчас для Танчиков сделал мини2ДЕнгине в виде ДЛЛ, там внутри директинпут и объект(спрайт)енгине встроен, по ходу немного доработаю и выложу в народ.
cyborg (2004-08-02 08:51:00) [6]Servelat нашёл в чём причина, оказывается у BMP тоже бывает реальная ширина не соответствующая ширине самой картинки, в этих случаях работает криво, нужно учитывать это, мне лень код исправлять, у меня и так всё работает :).
Вчера на GameDev.ru на форуме увидел интересный пример как с помощью функции виндоуз грузить любые картинки (GIF, JPG, PNG и пр), там на С++ написали, пока не охото разбираться.
parovoZZ (2004-08-01 22:41:00) [7]Дело говоришь. Я вот полазил по твоему сайту, отыскал интересную статейку про конвертацию пикселей. Попробовал - функция работает корректно только если картинка не меньше 100*100, а если меньше - получается билиберда. В чём дело пока не разбирался. Но опять - таки почему именно 24 бита? А нельзя файл сразу сохранить как 16 битный в редакторе?
cyborg (2004-08-01 21:41:00) [8]
> [3] parovoZZ © (01.08.04 21:12)
Какая ещё бабка, думаешь StretchDIBits дуновением волшебного электрона всё разом переносит, нет ничего быстрее прямой записи/чтения, другое дело как это организовать.
miek (2004-08-01 21:22:00) [9]Процедуры GDI всегда работают в софтварном режиме, а DirectDraw может копировать через DMA.
parovoZZ (2004-08-01 21:12:00) [10]Хотя при прямом копировании байты приходится блоками переносить, цикл организовывать. Так что тут бабка на двое сказала.
parovoZZ (2004-08-01 17:27:00) [11]Ну, а, в принципе, и хрен с ним, если всего-то 10 картинок надо загрузить. Юзверь нет волк, может и подождать. От компа не убежит))
cyborg (2004-08-01 08:16:00) [12]прямое копирование. StretchDIBits с растяжением рисует вроде.