Задать вопрос
  • Процесс вывода кадра из Front buffer на матрицу монитора. Как это работает?

    @JustMoose
    krv2k, Можно просто вбить в гугл "hsync vsync" и полистать. Вот, например.
    Написано
  • Процесс вывода кадра из Front buffer на матрицу монитора. Как это работает?

    @JustMoose
    krv2k, Шляпа в том, что устройство мониторов - это скорее про электронику (в её классическом понимании), а не про программирование/драйверы/видеокарты.
    Тут скорее надо читать что-то вроде "Айсберг Е. Д. — Телевидение?.. Это очень просто!"
    Ну или вбить в гугл "книги про устройство видеокарт vga svga" и читать до наступления просветления
    Написано
  • Процесс вывода кадра из Front buffer на матрицу монитора. Как это работает?

    @JustMoose
    В современных мониторах он обычно есть или нет?


    krv2k, если верить вот этой статье фрейм-буфер в современных мониторах есть. А вот здесь можно посмотреть на существующие разновидности мониторов и картинки их внутренностей.

    Если нет, то как данные с кабеля (например, DP) попадают на матрицу?
    Сигналы hsync и vsync, которые посылает видеокарта, явным образом говорят монитору, где начинается кадр, и где начинается каждая строка. Сейчас, видимо, эти сигналы говорят, в какое конкретно место фрейм-буфера надо произвести запись. Думаю, что раньше, когда фрейм буфера не было в мониторе, эти сигналы просто запускали какие-то внутренние генераторы в мониторе, которые виртуально двигали виртуальный луч слева направо и сверху вниз. (Ну или реальный луч в ЭЛТ мониторах).

    Контроллер дисплея в реальном времени (как в ЭЛТ-мониторах) получает их и обновляет матрицу?

    Думаю, что матрицу никто не "обновляет". Чисто технически LCD матрица это миллионы "пикселей", каждый из которых представлен парой металлических пластин и капли "жидких кристаллов" между ними. Подаёшь напряжение - кристалл упорядочивается/поворачивается и становится прозрачным. (Сейчас мониторы цветные, и таких капель-кристаллов три штуки, на каждый пиксель. Там выше есть ссылки и внутри картинки). Короче, матрицу нельзя обновить, просто потому, что она не хранит данные о цвете. Всё, что делает матрица, это меняет яркость конкретного пикселя, в зависимости от поданного на этот пиксель напряжения. Данные хранятся снаружи, в какой-то видеопамяти. Плюс есть некая схема-драйвер, которая берёт конкретное значение из видеопамяти и формирует напряжение, которое управляет пикселем. (Ну да, это ЦАП, он же DAC).

    Как тогда применяются настройки монитора в части яркости и контрастности? Кто и в какой момент этим занимается?

    По-видимому в тот момент, когда от видеокарты приходит сигнал, процессор монитора корректирует яркость/контрасность (путём умножения цифры - значения яркости на некий коэффициент) и записыват результат во фрейм-буфер.
    Написано
  • Процесс вывода кадра из Front buffer на матрицу монитора. Как это работает?

    @JustMoose
    1. "Да, в некоторых случаях frame buffer (кадровый буфер) может располагаться в мониторе, хотя обычно он находится в видеокарте или GPU. В современных мониторах с интегрированными скалерами, как правило, есть собственный буфер для хранения текущего кадра, который выводится на экран." (с) Гугл

    2. DAC - это цифро-аналоговый преобразователь. Можно считать, что это просто горсть резисторов (R-2R), которая позволяет подать на вход, например, один байт (в виде нулей и единиц), а на выходе получить аналоговое напряжение. Условно, подали на вход 00000000, получили на выходе 0 Вольт. Подали 11111111, получили 5 Вольт. Это было актуально, когда мониторы были ЭЛТ, ибо напряжением можно было задавать яркость каждого пикселя. Используется ли аналоговый сигнал внутри LCD мониторов - я не знаю. В любом случае, DAC не занимается обработкой изображения.
    Написано
  • Процесс вывода кадра из Front buffer на матрицу монитора. Как это работает?

    @JustMoose
    Монитор "считает" количество отправленных пикселей? Или только на тайминги ориентируется?

    krv2k, Вообще, помимо "проводков" по которым передаётся цвет, есть ещё проводки hsync и vsync, которые и позволяют засинхронизировать работу видеокарты и монитора.
    Попробуй вот это посмотреть: https://ru.wikipedia.org/wiki/%D0%92%D0%B5%D1%80%D...
    Написано
  • Что стоит изучить в C++ если ты увлекаешься эмуляторами?

    @JustMoose
    >> Зато в плюсах есть STL
    > В который одну фичу могут добавлять 20 лет, добавить, через несколько лет признать неудачной и объявить устаревшей?
    Вы вообще хоть одну книжку по С++ открывали?
    С++11 был очень сильно переработан по сравнению с С++98. Добавилась многопоточка.
    В С++17 досыпали ахапку полезностей, например лямбды, распаковку, инициализацию, расширили STL.
    В С++20 ещё досыпали вкусностей.

    Как человек, который пишет на С++ постоянно, могу сказать, что я реально не успеваю хотя бы читать, что ж они там нового сделали.
    КАЖДЫЕ 3 ГОДА в плюсы добавляют что-то новое.

    Я понимаю, что вы знаете очень много клёвых интересных слов. Но есть один нюанс:
    > Кто сейчас использует ООП кроме погрязшего в болоте Java-энтерпрайса какого-нибудь? Покажите мне их. У гугла вон вообще половину фич из ООП запрещено использовать и забанено на уровне компиляции проектов.

    Гугл пишет Хром. И Хромиум. Один на базе другого. Они написаны на чистейшем С++. Более того, сейчас 99% браузеров сделаны из Хромиума.
    Как вы думаете, почему?
    Браузер - очень хороший пример. Дело в том, что он БОЛЬШОЙ. Очень большой.
    1. Если бы его писали на чистом Си - это было бы непролазное болото. Большое неподдерживаемое болото.
    2. Его пишут на С++. И почему-то ВСЕ браузерописатели используют одно и то же ядро. Почему? Потому что нет никакого смысла переписывать ядро браузера с С++ на что-то ещё. Потому что ни один другой язык не позволяет написать проект, который будет одновременно эффективен (не будет тормозить) и читабелен.

    Просто примеры. На С++ написаны:
    браузер(ы);
    Яндекс поиск;
    Гугл поиск;
    Counter-Strike;
    Microsoft Office;
    Windows (ну там винегрет).

    Python, кстати, поддерживает ООП.
    Написано
  • Как написать свой фреймворк?

    @JustMoose Автор вопроса
    VoidVolker, Спасибо, попробую! В иксы я ещё не лазил. (ну, почти) :)
    Написано
  • Как написать свой фреймворк?

    @JustMoose Автор вопроса
    VoidVolker, Именно этим и занимаюсь. Просто предпочитаю, чтобы этот кто-то был автором книжки :)
    Написано
  • Как написать свой фреймворк?

    @JustMoose Автор вопроса
    VoidVolker, Деталей толком нет пока. Я на работу только через месяц выхожу) Решил вот подготовиться и почитать.
    Написано
  • Как написать свой фреймворк?

    @JustMoose Автор вопроса
    VoidVolker, если бы всё было так просто.
    Написано
  • Как написать свой фреймворк?

    @JustMoose Автор вопроса
    VoidVolker,
    опытного консультанта на фрилансе
    - а что делать, если я и сам уже где-то в районе "опытного консультанта", хотя и не на фрилансе? Просто конкретно проектирование гуя я прошляпил ;)
    Написано
  • Как написать свой фреймворк?

    @JustMoose Автор вопроса
    Wataru, Ну, может и так. Сначала написать самому, потом подумать. Спасибо, есть над чем подумать!
    Написано
  • Что стоит изучить в C++ если ты увлекаешься эмуляторами?

    @JustMoose
    Дмитрий, "Плюсы под такое не сильно годятся из-за своего зоопарка неопределённого поведения."

    Откуда ж вы тащите эти байки??? Ах да.... Так Линус сказал.

    Всю жизнь на плюсах пишу, никаких проблем.
    Зато в плюсах есть STL. А в чистом Си придётся самому писать всё это (сортировки, поиски, деревья, хеширование) с нуля. Зачем??? Чтобы потренироваться? На языке 50 летней давности? Может уж лучше Smalltalk взять?

    Сейчас плюсы есть от Microsoft, clang, gcc. Вы действительно думаете, что три огромные группы разработчиков напишут STL и C++, который будет работать хуже, чем геройство какого-то одного у[м]ника, который почему-то решил, что он круче всех? Ну чес слово.

    Окей. Даже если не брать STL - современное ООП гениальнейшее изобретение человечества. Просто потому, что минимальная идея "давайте положим данные, и код их обработки рядом" уже облегчает написание кода в разы.

    А шаблоны позволяют один раз сделать какой-нибудь vector или map, и не переживать, что завтра придётся делать ту же самую работу, но уже не для int-а, а для char-а, long-а, или строки.
    Написано
  • Как написать свой фреймворк?

    @JustMoose Автор вопроса
    VoidVolker, И к процессу разработки любого ПО обычно прилагается учебник. Хотя бы по паттернам! Но мне надо не просто спроектировать приложение, а целый гуёвый фреймворк! Вот я и думаю, может есть какая-нибудь книжка, а-ля "Паттерны написания графических фреймворков" :))
    Написано
  • Как написать свой фреймворк?

    @JustMoose Автор вопроса
    Wataru, К Ардуине прилагаются отличные экранчики, а-ля 480x320 и true color. Они прям в Arduino Uno втыкаются. Или в Mega. Хочу сделать красиво: придумать framework, который будет позволять нарисовать кнопки, текст, скроллы, ну тач обработать. И чтобы это нарисовать один раз и больше не трогать!

    А потом в main писать что-то вроде:
    void setup() {
      Window w(480, 320);
      w.addButton(100, 40);
      w.setCallback([]{ Beep(); });
    }
    
    void loop() {}


    и не думать о том, как там внутри это устроено.
    Не, я могу и "в лоб" написать.
    Но, опять таки: я не хочу изобретать велосипед. Я уверен, что кто-то где-то что-то уже написал о том, как такие штуки проектируются. Просто не могу почему-то ничего найти :(
    Написано
  • Как написать свой фреймворк?

    @JustMoose Автор вопроса
    mayton2019, В какой-то степени. Периодически приходится что-то вытаскивать в отдельно взятые библиотеки. То свои классы-обёртки над WinAPI, то в детстве мастерил GUI под "DOS" на чистых плюсах (прям целиком... кнопки, окна, диалоги).
    Но по большей части всё-таки усиленно расширял существующие фреймворки (компоненты для VCL делал, допиливал GUIёвую часть хромиума).
    Написано
  • Как написать свой фреймворк?

    @JustMoose Автор вопроса
    в которой у него нет компетенции

    Прости, а у кого есть компетенция для этой задачи?
    Гуёвых фреймворков на рынке - не то, чтобы три штуки, но исчезающе мало.
    И пишут их отдельные программисты (хотя больше похоже, что целые отделы).
    Кто-то ведь их должен писать?
    Написано
  • Как написать свой фреймворк?

    @JustMoose Автор вопроса
    Wataru, Возможно, я просто неправильно ставлю задачу. Просто представь, что я хочу написать условно стандартный GUI для Arduino ;)

    (ЗЫ: а может ну эти фреймворки? пойти что ли и вправду под ардуину запилить.... но как? книжка, мне нужна книжка).
    Написано
  • Как написать свой фреймворк?

    @JustMoose Автор вопроса
    Ох. Я вроде шёл на инженера-программиста. А этот список на целый отдел разработчиков потянет.
    Написано
  • Как написать свой фреймворк?

    @JustMoose Автор вопроса
    Everything_is_bad, просто кушать хочется. А новый работодатель хочет, чтобы я написал framework.
    Написано