Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "Media";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.033 c
1-1097676888
П7
2004-10-13 18:14
2004.10.31
Тут 2 поста натолкнули на вопрос


14-1097241932
WondeRu
2004-10-08 17:25
2004.10.31
Атас! ДНК "Бога"


14-1097413050
race1
2004-10-10 16:57
2004.10.31
compiler


14-1097489837
ValeX
2004-10-11 14:17
2004.10.31
Есть экзешник на делфи, Исходник нет. Как перевести текст кнопок?


14-1097664594
Demetrius2003
2004-10-13 14:49
2004.10.31
Исходник joiner a





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский