Hello On 14.07.05, Maxim Ilyn wrote:\n MI> Сам посуди - строишь сначала в обычной памяти видеокадр - потом WPA MI> перебрасываешь его на экран. Ну, а демках так всё и делается. Сначала рисуется в памяти кадр, а потом на экранчик пуляется :) MI> А то сразу резервируешь место в видеопамяти и там строишь кадр, потом MI> просто подсовываешь его. Да и doublebuffers получается одновременно. Хм, если строить видеокадр по кускам прямо на эране можно нарваться на асинхронизацию. MI>> Сначала откроем экран. Попробую на сях написать :) Если ошибусь поправте. Я MI>> только в начале пути... MI>> MI>> cgxscr = OpenScreenTagList(*cgxsreentags); теги вообщем ничем от обычных не MI>> отличаются. scr = *cgxscr; MI>> scr = *(scr+sc_RastPort+rpBitMap); чует моё сердце, что эти две строчи написаны MI>> неправильно :) MI> Нда, кто-же тебя так учил обращаться к элементу структуры ;) Никто, я же дои читать не люблю. В сях меня хватило на пол книжки :) А в целом, что я написал работь будет? MI> Сейчас детей плохому научишь ;) Надо вот так, без промежуточных : Писизму? :) MI> cgxbitmaplock = LockBitMapTagList(cgxscr->RastPort.BitMap, Разъясни в чём разница и как работает? MI>> в cgxbitmap_baseaddress лежат вожделенные "битмапы" и в них спокойно можно писать MI> Это я уже понял. А что значит битмапы ? В случае 32бит экрана там вроде адрес MI> первой ячейки. Или ты еще про AGA вспомнил ? Ну адрес, какая разница. Наывается всё равно по старой памяти битмапами. MI>> напрямую. только предварительно нужно проверить (сразу после открытия экрана), MI>> что выделенная под экран память непрерывна и вообще киберграфична :) scr = MI>> *cgxscr; MI>> scr = *(scr+sc_RastPort+rpBitMap); a=GetCyberMapAttr(scr, CYBRMATTR_ISCYBERGFX); MI>> b=GetCyberMapAttr(scr, CYBRMATTR_ISLINEARMEM); MI> Вот этого я не делал, спасибо, учтем, но как я понял она всегда непрерывна. MI> Иначе где храняться адреса кусков ? Видимо нет. Дело в том, что я писал это с оглядкой на стартапы из за бугра. Там эта проверка есть. Тут видимо опять старое наследие работает. На AGA битмапы могли лежать не подряд, а посему есть проверка на линейность. Сейчас подозреваю, что данная проверка не нужна. MI>> не забыть про глубину экрана и про, то что форматов расположения может быть MI>> несколько RGBA, ARGB, RGB например. Это всё вроде в ID экрана должно быть. MI> А тут зачем ID - ты же уже получли значения : cgxbitmap_dept, cgxbitmap_pixfmt Это если экран отрывается через листер. Пользователь там может выбрать много чего. А вообще делал это в качестве эксперемента, поглядеть как будут работать разные форматы. MI>> Угу. Я на вуду прикалывался в прошлом году. Там кстати 24 бита открывалось вроде. MI> Как хоть это у вас получалось ? У меня только 8LUT, RGB16PC или ARGB32 MI> открываются. У тебя RadeOn :) У меня сейчас тоже. В прошлом году вуда была. Regards