Всем привет! Наконец-таки зарегистрировался на этом форуме:) А то все посещал в качестве тени...
Собственно, к делу. Уже давненько не могу узнать, каким образом осуществляется(как реализовывается, неужели это секрет?!) быстрая отрисовка той или иной графической задачи- к примеру, обычная спрайтовая анимация, возьмем эдак 32битную картинку(серию картинок) 1280х1024. Взять, к примеру, OpenGL! В нем, такая анимация летать будет, да что там одна- сделать много кубиков, приделать к каждому такое дело и все равно- ни каких тебе тормозов и прочего. А вот видновс- в котором даже одна простая череда таких изображений уже вызовет фликеринг(если кривые руки:) ), да даже если не это, то все равно заметно, что приложению становится "тяжело". Возникает вопрос, сам собой, как достигается такая скорость? Ответ, безусловно, кроется где-то очень близко с 'прямым доступом к видеопамяти и к устройству, т.е видеокарте', как я думаю. Но все же? Как опенЖЛ добирается туда? Как бы не смешон был вопрос... Да, опыт общения с опенжл есть. Хочется также попробывать уйти от всяких апи-функции в использовании графики, заменяющих тормознутые функции стандартного модуля Graph. А от апи-функции к опенжл/дайректХ итд? Да, эти библиотеки придуманы для того, чтобы не изобретать велосипед, это понятно. Но ведь интересно же попытаться самому нечто очень отдаленно похожее?
Знаю, также, что все можно реализовать через дорогой и любимый ассемблер (только вот системы уже не 16разрядные, и вся информация, которую я находил- 'просроченная') - еще одна такая вот моя зацепка.
Бывает просто сходишь с ума, когда в твоем приложений пара-тройка анимаций заметно сокращают и память, и быстродействие, в то время как весь рабочий стол, все открытые окна(с их кучей отдельных элементов, требующих отдельной прорисовки) рисуются незаметно для глаза!
В общем, кто понял, что я хотел сказать- отзовитесь, кто не понял или чуть-чуть понял- пишите всё, что поможет разобраться.
Ах, да, чуть не забыл. Среда - Фри паскаль 2.4.0.
Моя Оська- Windows XP SP3, Видюха- nvidia GeForce 9600.