Вот вопрос возник нубский, а как собсна это всё работает? Какой примерно должна быть программа на ассемблере, чтобы она нарисовала точку на экране? Ведь ассемблерской команды как таковой нет, а если есть готовые Windows функции, они полюбому должны теми же стандартными командами всё это делать. Как же виндоус рисует все окна/кнопки? Как OpenGL/D3D рисует? Что если дизассемблировать самую простейщую программу, которая рисует пиксель в левом верхнем углу, не задействуя готовые библиотеки/функции Windows (т. е. написана с чистого листа на асме) ?
Попрошу разжевать :D т. к. давно интересующая меня тема.
Другие языки программирования и технологии
Как работают устройства ввода-вывода или как вывести пиксель на экран, не задействуя WinAPI и пр.?
Какбэ функции винды сами не рисуют, а это делает драйвер вашей видеокарты, передавая ей данные об текущей картинке на экране.
Обращайтесь не к функциям, а к драйверу и получите то, что хотите.
В обход драйвера можно, но будет работать только с конкретной моделью видеокарты (вам самим придется написать для нее драйвер) , а другими видухами - облом, ведь каждая видеокарта устроена по своему и не зря ведь для каждой свой драйвер!
Обращайтесь не к функциям, а к драйверу и получите то, что хотите.
В обход драйвера можно, но будет работать только с конкретной моделью видеокарты (вам самим придется написать для нее драйвер) , а другими видухами - облом, ведь каждая видеокарта устроена по своему и не зря ведь для каждой свой драйвер!
Marat D
А где почитать про это всё?)) Как работают эти драйвера (как всё-таки они этот пиксель на экран выводят :D)
Пока есть ядро системы, но нет к ней оболочки, можно изгаляться на свой вкус, но после того как оболочка написана и сдана в эксплуатацию, что-то добавить своё, думаю, невозможно. Драйвер видеокарты пишется уже под существующую систему. Ваш пиксель в ней не учтён! Так что рисовать придётся в уже существующей графической оболочке и по её правилам.
http://smoking-room.ru/data/pnp/gui_history/
http://smoking-room.ru/data/pnp/gui_history/
драйвер обычно открывается через CreateFIle, далее работа с ним напоминает работу с pipe'ом. Драйвер может общаться с устройством 2я путями: 1) через ассемблерные команды in\out (и тому подобные) , 2) Через регионы памяти, которые ассоциируются с видеокартой, т. е. драйвер копирует что-либо в стуктуру (буфер) , а менеджер памяти перенаправляет этот поток байтов в видеокарту
Похожие вопросы
- Ассемблер SVGA VESA вывести пиксель
- C++: файловый ввод-вывод.
- Что значит "ошибка ввода-вывода на устройстве"? При попытке скинуть с карты
- C# средства ввода-вывода, графика
- В чем разница между форматированным вводом/выводом и не форматированным?
- Создать список. вывести его на экран.
- Как вывести информацию на экран, assembler
- Ввод вывод на Ассемблере
- Как преобразуется обычная прога на си, где надо вывести слово на экран в маш.код и что процессор там считает?
- Программисты С/С++, объясните есть ли отличия в операторах ввода/вывода (cin/cout от printf/scanf)