Давно пытаюсь въехать, как сделать свой фильтр в Unreal, но никак не могу разобраться в коде Может, товарищ SMT даст пару подсказок? Интересуют режимы 320x240x32 и 640x480x32.
Давно пытаюсь въехать, как сделать свой фильтр в Unreal, но никак не могу разобраться в коде Может, товарищ SMT даст пару подсказок? Интересуют режимы 320x240x32 и 640x480x32.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
если новый режим, то посмотри, как сделаны profi/atm. фильтр читает данные из спектрум-памяти и по ним рисует в видеобуфер картинку. используется куча вспомогательных таблиц, но тебе надёжнее завести свои таблицы и заполнить их, чем разбираться в существующих
если именно новый фильтр, чтобы уж со строчкой в настройках, то просто добавить запись в массив renders[] в файле dx.cpp с флагами RF_32|RF_2X для 32bit 640x480 или RF_32 для 320x240x32 и написать функцию прорисовки
Последний раз редактировалось SMT; 26.10.2005 в 17:31.
собирался как-то сделать что-то похожее на фильтры directShow, чтобы составлять произвольные цепочки, но что-то никак времени нет заняться
А нельзя ли чуть поподробнее? Уж больно хитро там всё завязано.
1. За один вызов рендерной функции рисуется весь экран или только его часть?
2. Как рисуются полоски на бордюре?
3. По какому указателю обратиться к экранной памяти спектрума?
4. По какому указателю писать в видеопамять?
Сорри за глупые вопросы.
судя по вопросам, ты даже не пытался. всё просто, как 2+2А нельзя ли чуть поподробнее? Уж больно хитро там всё завязано
весь экранЗа один вызов рендерной функции рисуется весь экран или только его часть
если в твоём режиме нужен мультиколор+бордюр, используй массив rbuf - там пары байтов (байт данных/атрибут к нему), оттрасированные по ходу луча со всеми эффектами. атрибуты не спектрумовские, а верхний полубайт - цвет "0" битов данных, нижний - цвет "1" битов данных. строки в rbuf лежат подряд, каждая строка занимает MAX_WIDTH_P = 128 байт, правые части не заполняются. если делать режим типа ATM/PROFI/PENT512, то рисуй серединку сам, а для бордюра вызывай готовые функции rend_frame_*Как рисуются полоски на бордюре
memory - начало памяти. memory+5*0x4000 - начало 5-й страницы, где лежит экран zx-128 (чистого 48-го режима в unreal нет, только 128-й с блокировкой порта #7FFD битом 5)По какому указателю обратиться к экранной памяти спектрума
передаётся в функция-рендер. второй параметр - ширина строки в байтах (т.е. смещение на следующую строку)По какому указателю писать в видеопамять
Последний раз редактировалось SMT; 28.10.2005 в 17:25.
Спасибо
расскажешь, какие идеи появились по новым режимам?
Идеи (скриншоты) выкладывал в другой ветке, про эмуляцию телевизора
http://www.zx.pk.ru/showthread.php?t=442&page=3&pp=10
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)