Задать вопрос
@MrakLula

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

Мне нужена стаья\листинг того как можно изменять значение отидельно взятых пикслелей, без Open GL\DirectX и прочих графических API, просто нужен скелект и функция которая позволить изменять значение пикселей, подойдет либо на асм, либо на си
  • Вопрос задан
  • 426 просмотров
Подписаться 1 Средний 5 комментариев
Решения вопроса 1
mayton2019
@mayton2019
Bigdata Engineer
Во времена DOS это работало да. Ты мог писать напрямую в банки видеопамяти старых карточек типа VGA/SVGA.
Примеры кода для C++ можно найти в книжке Шикина и Борескова по графике. Но я не советую потому что
не актуально. И современный стек графики чуть длиннее.

Знание того как работает OpenGL и DirectX - скорее всего тебе не даст полной картины как работает железо.
Потому что железо NVidia и железо Radeon скорее всего будет сильно отличаться. Как будут обобщены отличия - чорт его знает. Скорее всего через драйвер. Но если ты очень хочешь поработать с пикселами отдельно и быстро
по посмотри в SDL. Я кстати тоже туда хотел посмотреть на днях. Мне чего-то захотелось температурную
карту IPv4 адресов нарисовать. Я такую видел образца 2009 года. А тут захотел свою.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
Гугли "GDI+"
Это библиотека под винду, которя позволяет рисовать в окнах/на экране.
Надо получить DeviceContext для экрана, и там рисовать что хочешь.
Ответ написан
saboteur_kiev
@saboteur_kiev
software engineer
Никак.

В DOS у тебя не было прав доступа, не было мультизадачности (кроме резидентов), ты мог напрямую обращаться к любому адресу памяти или устройству. Там можно было менять пиксели на экране.

в Windows у тебя процесс запускается без привилегий, и пускать тебя напрямую тебя к экранной памяти или устройству никто не будет.
Поэтому варианта под виндовс строго два - или ты пользуешься стандартными библиотеками виндовс (GDI+) и вызываешь функции библиотеки из ассемблера.
Или ты пишешь свой драйвер экрана с этими функциями, устанавливаешь его, и получаешь доступ к функционалу через драйвер, но второй путь явно не для новичков.
Ответ написан
Комментировать
@Chernysh_Aleksandr
Создаешь программу в которой будет отдельное скрытое окно размером в пиксель, наследуешь от этого окна детей, задаешь им координаты, цвет, видимость.
Также был вариант с нестандартной формой окна (искать в гугле)
еще был вариант вывода в виде фонового изображения
еще вариант перехватывать окна программ и рисовать в них (была программа в старых версиях winspy) - так как эксплоер.ехе тоже программа которая запускает всю графику рабочего стола то возможно декомпилировать файл и найти вызовы для нужного места стола
расковырять программы оформители
сделать прозрачное окно поверх всех, на нем рисовать, а фокус передавать на элементы окна под ним
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы