User Tag List

Показано с 1 по 10 из 1107

Тема: Emu80 v.4

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,376
    Спасибо Благодарностей отдано 
    407
    Спасибо Благодарностей получено 
    650
    Поблагодарили
    256 сообщений
    Mentioned
    27 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Как синхронизируется звук и видео?
    Вопрос очень объемный, но если в 2 словах, то сейчас синхронизация происходит за счет звука, а не видео (что было бы логичнее). Если интересует что-то более конкретное - поясню. Я бы спросил, как у тебя сделано, но боюсь, что в моих реалиях этот вариант будет неприемлем ;(

    Цитата Сообщение от Titus Посмотреть сообщение
    Как ожидается начало кадра vblank?
    Установкой соответствующего флага в Qt, отвечающего за ожидание vsync при отрисовке. Особых вариантов Qt не оставляет... Отсюда и 100% загрузка процессора, обсуждаемая чуть выше - это происходит где-то в недрах Qt или даже скорее видеодрайвера, как раз во время ожидания vsync...

    Надо будет еще вернуться к этому вопросу и попробовать переработать синхронизацию, сохранив кроссплатформенность. Можно попробовать задействовать еще SDL специально для вывода звука. Я вообще удивлен, что в текущем варианте удалось добиться удовлетворительных результатов с использованием исключительно возможностей Qt с его жесткими ограничениями...

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

  3. #2

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,421
    Спасибо Благодарностей отдано 
    1,717
    Спасибо Благодарностей получено 
    2,245
    Поблагодарили
    882 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Pyk Посмотреть сообщение
    Вопрос очень объемный, но если в 2 словах, то сейчас синхронизация происходит за счет звука, а не видео (что было бы логичнее). Если интересует что-то более конкретное - поясню. Я бы спросил, как у тебя сделано, но боюсь, что в моих реалиях этот вариант будет неприемлем ;(
    Тогда щелчок звука логичен. Когда хватаешь окошко, цикл сообщений начинает обрабатываться внутри системной функции ресайза/перемещения окна. Поэтому главная твоя программа в основном потоке как бы подвисает, пока оконная функция закончит ресайз/перемещение, и не возвратит управление твоему основному циклу. Не знаю, как он там в реалиях QT устроен. Если аудиобуфер доиграл, а главная программа висит из-за того, что основной поток залип в цикле ресайза/перемещения, то тогда упс.

  4. #3

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,376
    Спасибо Благодарностей отдано 
    407
    Спасибо Благодарностей получено 
    650
    Поблагодарили
    256 сообщений
    Mentioned
    27 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Titus, ну да, примерно так. Причем с этим мало что можно сделать, так как есть жесткое ограничение: рисовать в Qt можно только из GUI-потока. Так что даже если сделать собственно эмуляцию в отдельном потоке, в случае ресайза это не поможет Хотя, уже Qt6 вышел, можно посмотреть, не изменилось ли там что-то в этом плане, а также не появилось ли что-то полезное для синхронизации и звука. Но что-то я пессимистически настроен по этому поводу, уже сколько лет никаких важных изменений...

  5. #4

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,421
    Спасибо Благодарностей отдано 
    1,717
    Спасибо Благодарностей получено 
    2,245
    Поблагодарили
    882 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Pyk Посмотреть сообщение
    Хотя, уже Qt6 вышел, можно посмотреть, не изменилось ли там что-то в этом плане, а также не появилось ли что-то полезное для синхронизации и звука. Но что-то я пессимистически настроен по этому поводу, уже сколько лет никаких важных изменений...
    А какой смысл тогда писать под QT? Не лучше ли перейти на чистый WinAPI или типа того?

  6. #5

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,376
    Спасибо Благодарностей отдано 
    407
    Спасибо Благодарностей получено 
    650
    Поблагодарили
    256 сообщений
    Mentioned
    27 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Titus, мультиплатформенность. Сейчас все, что нужно для запуска на другой ОС - перекомпиляция.
    А поддерживать несколько версий GUI под разные API слишком сложно...

    Посмотрим, простор для оптимизации всегда есть, не все так плохо. Вот и сейчас посмотрел внимательнее документацию - оказывается и в Qt можно рисовать не в GUI-потоке, если использовать вызовы OpenGL вместо встроенных средств Qt. Просто я после первой реализации уже почти 4 года не возвращался к этому вопросу, увлекся поддержкой новых компов, надо будет заняться в этом году...

  7. #6

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,421
    Спасибо Благодарностей отдано 
    1,717
    Спасибо Благодарностей получено 
    2,245
    Поблагодарили
    882 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Pyk Посмотреть сообщение
    Titus, мультиплатформенность. Сейчас все, что нужно для запуска на другой ОС - перекомпиляция.
    А поддерживать несколько версий GUI под разные API слишком сложно...
    А нужно ли это? Сколько у нас этих платформ? UNIX'ы, но на них WinE есть, под которым вполне хорошо работает.
    На маке тоже можно запускать PC-шные приложения.

    А на мобильных и планшетах все равно нужен другой интерфейс, чем на PC.

  8. #7

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,376
    Спасибо Благодарностей отдано 
    407
    Спасибо Благодарностей получено 
    650
    Поблагодарили
    256 сообщений
    Mentioned
    27 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    А на мобильных и планшетах все равно нужен другой интерфейс, чем на PC.
    Пользовательский интерфейс в какой-то мере да, а ввод-вывод? Доработать SDL-версию для запуска под андроид куда проще, чем писать весь все с нуля.
    А кроме мобильных устройств ведь еще и web есть...

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

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

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

Похожие темы

  1. Emu80, старые версии
    от Pyk в разделе Эмуляторы отечественных компьютеров
    Ответов: 68
    Последнее: 11.03.2017, 00:33

Ваши права

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