Важная информация

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 14

Тема: Вопрос писателям эмулей по графике

  1. #1
    Master Аватар для ILoveSpeccy
    Регистрация
    20.03.2007
    Адрес
    Germany
    Сообщений
    863
    Благодарностей: 400
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Вопрос писателям эмулей по графике и звуку

    Привет всем,

    есть вопрос к эмуляторописателям:

    как быстро и красиво вывести картинку/звук на экран?

    Пока знаком только с SDL. В принципе работает нормально, но хотел сделать интерфейс, схожий со спектакулятором.

    В принципе интересуют 2 подхода: нативный win32 и кроссплатформенный.
    Кто как это делает???

    С уважением,
    Дима
    Последний раз редактировалось ILoveSpeccy; 30.09.2012 в 18:08.
    SpeccyLand - тут рождается клон!

    Новый проект: Аркадный автомат своими руками

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Veteran Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Рязань
    Сообщений
    1,003
    Благодарностей: 1126
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ILoveSpeccy Посмотреть сообщение
    В принципе интересуют 2 подхода: нативный win32 и кроссплатформенный.
    Кто как это делает???
    В Win32-версии использовал VfW. Для чистого блиттинга нормально.

  4. #3
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    9,938
    Благодарностей: 3437
    Mentioned
    2 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от ILoveSpeccy Посмотреть сообщение
    В принципе интересуют 2 подхода: нативный win32 и кроссплатформенный.
    Кто как это делает???
    Я для видео пользую DirectDraw (хотя это уже устарело), а конкретнее BitBlit.
    А для аудио DirectSound.

    Правда, пока что никто на кодеровских форумах не смог мне внятно подсказать метода ожидания начала кадра (VBlank) посредством либо засыпания процесса, либо же чтобы по VBlank'у устанавливался какой-нить семафор, вызывался бы колбек и т.д. Нашел только метод WaitForVerticalBlank, но он неэкономичный, т.к. процесс при этом не засыпает. Буду тоже признателен, если кто-нить подскажет, т.к. я не виндусятный кодер, и не очень ориентируюсь.

  5. #4
    Master Аватар для ILoveSpeccy
    Регистрация
    20.03.2007
    Адрес
    Germany
    Сообщений
    863
    Благодарностей: 400
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А для чего ждать начала кадра?
    SpeccyLand - тут рождается клон!

    Новый проект: Аркадный автомат своими руками

  6. #5
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    9,938
    Благодарностей: 3437
    Mentioned
    2 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от ILoveSpeccy Посмотреть сообщение
    А для чего ждать начала кадра?
    Это для того, если хочешь, чтобы изображение на экране менялось синхронно с кадровой разверткой. В иных случаях о плавности можно забыть.

  7. #6
    Master Аватар для ILoveSpeccy
    Регистрация
    20.03.2007
    Адрес
    Germany
    Сообщений
    863
    Благодарностей: 400
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Странно, я таких проблем не замечал. Как уже писал, использую SDL и DoubleBuffering вывод. Всё очень плавно.
    SpeccyLand - тут рождается клон!

    Новый проект: Аркадный автомат своими руками

  8. #7
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,031
    Благодарностей: 1426
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ILoveSpeccy Посмотреть сообщение
    В принципе интересуют 2 подхода: нативный win32 и кроссплатформенный.
    А в чем суть каждого подхода?

  9. #8
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    9,938
    Благодарностей: 3437
    Mentioned
    2 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от ILoveSpeccy Посмотреть сообщение
    Странно, я таких проблем не замечал. Как уже писал, использую SDL и DoubleBuffering вывод. Всё очень плавно.
    Как происходит синхронизация с кадром? Или со временем?

  10. #9
    Master Аватар для ILoveSpeccy
    Регистрация
    20.03.2007
    Адрес
    Germany
    Сообщений
    863
    Благодарностей: 400
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    А в чем суть каждого подхода?
    Вообще изначально планировался кроссплатформенный эмуль.
    Таким он сейчас и является. Собирается и работает на Win32/Ubuntu.

    Интерфейса как такового только нет. Есть только простенькое меню
    (через bitmap-шрифт) для выбора образа диска. и всё.
    Мне очень нравится интерфейс спектакулятора. Было бы идеально
    иметь похожий. Чтобы остаться кросплатформенным думал использовать
    WxWidgets. Даже немного пробовал простенькие формы с кнопочками
    делать. Проблема в том, что у меня не получается прилепить окошко SDL
    к Win32 форме. В идеале должен быть доступ к меню из полноэкранного
    режима.

    ---------- Post added at 20:16 ---------- Previous post was at 20:14 ----------

    Цитата Сообщение от Titus Посмотреть сообщение
    Как происходит синхронизация с кадром? Или со временем?
    Я сделал так: запустил таймер на 20мс. Выполнил нужное количество тактов, вывел картинку и засыпаю до прерывания от таймера. Всё. Как я понял, SDL при использовании DoubleBuffering сама заботится о "плавности".
    Последний раз редактировалось ILoveSpeccy; 30.09.2012 в 20:25.
    SpeccyLand - тут рождается клон!

    Новый проект: Аркадный автомат своими руками

  11. #10
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    9,938
    Благодарностей: 3437
    Mentioned
    2 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от ILoveSpeccy Посмотреть сообщение
    Я сделал так: запустил таймер на 20мс. Выполнил нужное количество тактов, вывел картинку и засыпаю до прерывания от таймера. Всё. Как я понял, SDL при использовании DoubleBuffering сама заботится о "плавности".
    Нет, о плавности она не заботится, а максимум о синхронности вывода закадрового буфера по VBlank'у. Т.е. что изображение не попадает 'под лучик'.
    Плавность видеовывода достигается только при синхронности с кадровой разверткой монитора. Т.е. если у монитора 60Гц, то обновлять изображение надо не раз в 20мс, а раз в 16.6мс, причем не по таймеру, а строго синхронно с VBlank.

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Вопрос по ПЗУ
    от haywire в разделе Память
    Ответов: 6
    Последнее: 22.08.2012, 11:42
  2. вопрос
    от Sayman в разделе Барахолка (архив)
    Ответов: 10
    Последнее: 20.11.2008, 09:40
  3. Вопрос про ПЗУ
    от Eltaron в разделе Память
    Ответов: 14
    Последнее: 25.12.2005, 20:17
  4. тестик для реалов и эмулей
    от psb в разделе Эмуляторы
    Ответов: 11
    Последнее: 03.06.2005, 11:06

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •