Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.63/76: Рейтинг темы: голосов - 76, средняя оценка - 4.63
42 / 42 / 27
Регистрация: 29.01.2013
Сообщений: 277

Прямой доступ к видеопамяти

18.07.2013, 17:10. Показов 15356. Ответов 41
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Требуется написать программу, которая будет напрямую обращаться в видеопамяти. Описание:

Реализовать функцию, принимающую три параметра - цвет фона, цвет тона и код символа и производящую заполнение этим символом всего экрана. Реализовать функцию очистки экрана с использованием созданной функции.

Для заполнения видеопамяти воспользуйтесь указателем на беззнаковый символ.
Для присвоения ему значения 0хВ8000000 необходимо осуществить явное преобразование типов. Непосредственное значение 0хВ8000000 имеет тип int. Следует сначала привести тип этого значения к void* а затем - к unsigned char* для того, чтобы присовение стало возможным.
Для обращения к различным байтам видеопамяти воспользуйтесь этим указателем.
Видеопамять организована следующим образом: байт по адресу 0хВ8000000 содержит код символа в левом верхнем углу экрана. Следующий за ним байт содержит цвет фона и цвет тона этого символа. В старшей половине этого байта содержится цвет фона, в младшей - цвет тона.

Коды некоторых цветов: 0х0 - черный, 0х7 - серый, 0хf - белый

При выполенини работы производите периодическое сохранение программы, так как некорректная работа с памятью может привести к ошибке ЭВМ и потере данных в оперативной памяти.

КОД, КОТОРЫЙ НЕ РАБОТАЕТ:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main(void)
{
    
    char *p =  (char *)((void *)0xB8000000);
        
    for(int i = 1; i <= 20; i++){
        *p = '8';
        p++;
        *p = 0;
        p++;
    }
    
 
    return 0;
}
Добавлено через 1 минуту
Доступно ли прямое обращение к памяти в Windows 7 в режиме user mode?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.07.2013, 17:10
Ответы с готовыми решениями:

Прямой доступ к переменным
Доброго времени суток, форумчане. Сразу оговорю, что название темы может не совсем корректно раскрывать суть вопроса. Начну с аналога...

Прямой доступ к видео памяти
Здравствуйте, подскажите как организовать прямой доступ к видео памяти на современно VGA/DVI видео адаптере. В Книги Шилдта есть указания...

вопрос по си-подключение видеопамяти
в проге-заготовке вот строка far*p=(char far *)MK_FP(0xB800,0x0000) прога-текстовой редактор,вопрос-какая библио в CPP отвечает за...

41
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
03.07.2023, 14:03
Студворк — интернет-сервис помощи студентам
KSergey9, и раньше и сейчас не было никакого "видео в ОЗУ", обращение к видеоадресам сразу перенаправлялось в железо видеокарты, а оно там само решало "как рисовать точку" видеопроцессор для этого нужен или видеопамять или что-то ещё. Так же и сейчас, операционка решает обратиться к коду драйвера, драйвер решает, что скомандовать видеокарте. Видеокарта внутри себя решает, что куда положить для выполнения команды.

Относись к видеокарте как к чёрному ящику, который понимает набор команд, и абсолютно неважно, где у неё лежит память.
Соответственно к видеоАПИ тоже как к чёрному ящику, который понимает набор других команд, и абсолютно неважно, в какие команды они транслируются драйверу. И в какие видеокарте.
0
 Аватар для COKPOWEHEU
4078 / 2676 / 432
Регистрация: 09.09.2017
Сообщений: 11,887
03.07.2023, 14:10
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Относись к видеокарте как к чёрному ящику, который понимает набор команд, и абсолютно неважно, где у неё лежит память.
Это на верхнем уровне. Если же захочется влезть глубже - в разработку драйверов видеокарты, в работу графических подсистем, а то и в железо - уже понадобится хотя бы базовое понимание.
Но что-то мне подсказывает, что ТС просто не знает, что его задача решается каким-то более простым способом, и ломится не в ту сторону.
0
143 / 27 / 4
Регистрация: 06.05.2019
Сообщений: 1,825
Записей в блоге: 4
03.07.2023, 22:58
Цитата Сообщение от KSergey9 Посмотреть сообщение
А всё же, мог бы кто-нибудь кратенько расссказать как сейчас железячно устроен обмен с отображаемым изображением в современных архитектурах PC?
Можно ли получить отборажение видеопамяти (той, что отрисовывается на дисплее сейчас) в какое-либо адресное пространство? (не берём в расчет "Windows не пустит обращения в память куда попало").
Или к "видеопамяти" вообще уже нет никакого доступа напрямую, а всей отрисовкой занимается процессор видеокарты, принимая команды типа "нарисуй окружность"?
Меня тоже интересует этот вопрос для общего развития.
Так вот и я об этом нужно сделать например скриншот и пересчитать пиксели возникает вопрос откуда этот скриншот копировать где он сидит? Или узнать какое изображение сидит в окне чтобы поработать с ним узнать изменилось ли оно или нет.

Добавлено через 9 минут
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Никто туда абстрактные данные не грузит. Вы можете воспользоваться GUI-библиотекой системы чтобы вывести кнопки, формочки, поля ввода и т.п., можете напрямую через OpenGL вывести графику.
Ну здесь есть функции для работы с изображениями https://learn.microsoft.com/en... di/bitmaps получается что рисовать и создавать объекты уже возможно. Но возникает вопрос а почему бы не загрузить кадры которые должны нарисоваться в окне в видюху а не кипятить процессор. Вот даже для шрифтов есть функции https://learn.microsoft.com/en... reatefonta, хотя мне кажется что там просто тэгами это дело обставлено как в скрипте да и всё главное что документ поддерживал rtf формат или что-то покруче.

Добавлено через 2 минуты
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Никто туда абстрактные данные не грузит. Вы можете воспользоваться GUI-библиотекой системы чтобы вывести кнопки, формочки, поля ввода и т.п., можете напрямую через OpenGL вывести графику.
А прямая запись в видеопамять давно уже юзер-спейс приложениям запрещена из соображений безопасности.
Ну да здесь тоже так написано https://learn.microsoft.com/en... indows-gdi что можно взаимодействовать с драйверами. В принципе это достаточно. Но описание размыто. Дальше видимо и идут эти функции для работы с графикой.
0
 Аватар для COKPOWEHEU
4078 / 2676 / 432
Регистрация: 09.09.2017
Сообщений: 11,887
03.07.2023, 23:09
Цитата Сообщение от Nexi99 Посмотреть сообщение
Так вот и я об этом нужно сделать например скриншот
Хороший вопрос. С ходу не знаю. В принципе, никто не запрещает посмотреть в исходники.
Цитата Сообщение от Nexi99 Посмотреть сообщение
Ну здесь есть функции для работы с изображениями
Здесь - где? По ссылке ничего подходящего нет.
Цитата Сообщение от Nexi99 Посмотреть сообщение
Но возникает вопрос а почему бы не загрузить кадры которые должны нарисоваться в окне в видюху а не кипятить процессор.
А как вы собираетесь формировать изображение, если не на процессоре и не на видеокарте? Про glDrawPixels и подобные я уже давно писал, что скопировать картинку прямо в окно не проблема.
Цитата Сообщение от Nexi99 Посмотреть сообщение
Вот даже для шрифтов есть функции https://learn.microsoft.com/en... reatefonta,
Ужас какой. Закопайте обратно.
Цитата Сообщение от Nexi99 Посмотреть сообщение
хотя мне кажется что там просто тэгами это дело обставлено как в скрипте да и всё главное что документ поддерживал rtf формат или что-то покруче.
При чем здесь теги и rtf формат, если вы картинку выводить хотите?!
0
143 / 27 / 4
Регистрация: 06.05.2019
Сообщений: 1,825
Записей в блоге: 4
03.07.2023, 23:12
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Вот как раз с окружностями на видеокартах проблемы...
Но в целом да, вы посылаете команды "создать окно", "создать кнопку", а графический сервер их выполняет.
Ваша программа на экране ведь обычно не одна, нехорошо если она полезет рисовать поверх чужих окон.
Значит в этот момент и происходит загрузка созданного вами кадра в видюху получается что изночально можно хоть в файле хоть в ОЗУ кадр чертить. А видюха это типа как онлайн выполнение.

Добавлено через 2 минуты
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Если видеокарта слабая (как в примере с USB-шной) или ее нет вообще, может и в обычной ОЗУ.
В более типичном случае - в памяти видеокарты.
Так или иначе прямого доступа туда для юзерских приложений нет. Нечего им рисовать поверх чужих окон.
---
Вы лучше опишите чего добиться хотите.
А этой функцией glDrawPixels можно сделать скриншот скопировать пиксели а дальше например в файл засунуть?
0
267 / 199 / 30
Регистрация: 26.11.2022
Сообщений: 859
03.07.2023, 23:15
У ТС это задание для реального режима ДОС
0хВ8000000 - это на самом деле 0хВ800:0x0000 - и это для текстового режима видеоадаптера
0
143 / 27 / 4
Регистрация: 06.05.2019
Сообщений: 1,825
Записей в блоге: 4
03.07.2023, 23:21
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Здесь - где? По ссылке ничего подходящего нет.
Там описание я так понял и функции должны быть. Этот раздел сырой для меня. Хочу позаниматься и интересуюсь как это работает. Судя по вашим ответам API обращается к драйверу, а драйвер указывает видюхе как рисовать и это хорошо. Драйвера пишут на низкоуровненвых языках типа Assambler но нам это не нужно.

Добавлено через 2 минуты
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Здесь - где? По ссылке ничего подходящего нет.
Вот https://learn.microsoft.com/en... eatebitmap CreateBitmap есть там функции просто читать нужно дальше. Можно самому писать функции для графики.

Добавлено через 2 минуты
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
А как вы собираетесь формировать изображение, если не на процессоре и не на видеокарте?
Если оно в файле разбирай файл, если на видюха делай скрин работай с пикселями если в ОЗУ свой массив памяти так с ним и работай. В общем понятно. В целом интересно это всё.
0
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
04.07.2023, 07:14

Не по теме:

Цитата Сообщение от Nexi99 Посмотреть сообщение
Так вот и я об этом нужно сделать например скриншот и пересчитать пиксели возникает вопрос откуда этот скриншот копировать где он сидит?
Нене, меня к этому не примазывайте. :)
Я сугубо из интереса без практической задачи интересовался лишь тем, как железячно нынче устроено "соединение" видео-изображения. Причем только на запись, а не чтение.



Чтобы делать скриншоты - это много материала встречалось в инете (обычно в рамках разработки собственного ПО для удалённого коннекта). И там много хитрых нюансов.
Например, RDP от MS для простоты и надёжности свой видеодрайвер подсовывает для удалённого сеанса.
0
 Аватар для COKPOWEHEU
4078 / 2676 / 432
Регистрация: 09.09.2017
Сообщений: 11,887
04.07.2023, 09:28
Цитата Сообщение от Nexi99 Посмотреть сообщение
Значит в этот момент и происходит загрузка созданного вами кадра в видюху получается что изночально можно хоть в файле хоть в ОЗУ кадр чертить. А видюха это типа как онлайн выполнение.
Ну можете и так. Для изучения основ графики сейчас, пожалуй, лучший вариант. Ручное наложение спрайтов с прозрачностью, ручной обсчет матриц преобразования, растеризации и тому подобного. А потом рисование полученного массива как картинки (текстуры).
Но напоминаю: это годится только для обучения. Потом стоит все же изучить возможности видеокарты - создание окна, OpenGL и т.д.
Цитата Сообщение от Nexi99 Посмотреть сообщение
А этой функцией glDrawPixels можно сделать скриншот скопировать пиксели а дальше например в файл засунуть?
glDrawPixels это наоборот, рисование того, что вы ей передали. Чтобы считать нарисованное в оперативку в OpenGL есть glReadPixels. Но вы же хотите вручную рисовать в оперативке, значит вам этот буфер и так доступен, без извращений.
С файлами OpenGL работать не умеет. Кажется, умеет SDL, да и в любом случае у какого-нибудь bmp формат довольно простой, у меня он занял 57 строк кода.
Цитата Сообщение от Aledveu Посмотреть сообщение
У ТС это задание для реального режима ДОС
Если задача именно такая, то только DOSBox. А если ТС учится для себя - все описанное выше.
Цитата Сообщение от Nexi99 Посмотреть сообщение
CreateBitmap есть там функции просто читать нужно дальше.
Я в этих ваших winapi не разбираюсь. Пару раз пришлось с ними работать - гадость редкостная. Можете по-человечески сказать... что вы там сказать хотели. Ну есть там функция преобразования массива в какое-то внутреннее представление картинки. Наверняка есть функция рисования этой картинки на экране. И что? Сам этот подход я тут с самого начала темы описываю. Вы хотите предложить конкретную реализацию? Ну так предлагайте - напишите минимально рабочий код, чтобы ТС мог проверить.
Кстати, надо бы и мне самому последовать своему совету.
0
 Аватар для COKPOWEHEU
4078 / 2676 / 432
Регистрация: 09.09.2017
Сообщений: 11,887
04.07.2023, 10:02
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Кстати, надо бы и мне самому последовать своему совету.
Собственно вот. Окно создается средствами SDL2, рисование ручное в массиве, потом через glDrawPixels вывод на экран.
Вложения
Тип файла: zip sdl2_opengl_drawpixels.zip (3.57 Мб, 5 просмотров)
1
 Аватар для Laborant666
208 / 101 / 20
Регистрация: 30.06.2020
Сообщений: 848
04.07.2023, 22:48
Цитата Сообщение от bgm123 Посмотреть сообщение
Т.е. я правильно понял, что для того, чтобы сделать скриншот, нужен либо драйвер, либо системные вызовы
Вам в раздел winApi. По поводу скриншотов в моём профиле есть даже в одной из тем готовый класс. Там для окон, конечно, но переписать под экран легко. Конечно, будет не прям что бы быстро (от 40 скриншотов в секунду), но гораздо проще, чем залезть в видеопамять

Добавлено через 1 минуту
Цитата Сообщение от Nexi99 Посмотреть сообщение
А как же грузить туда часть данных чтобы не мучить основной процессор?
При заполнении видеопамяти данными - процессор тоже принимает участие. Он же их туда и отправляет

Добавлено через 4 минуты
Цитата Сообщение от Nexi99 Посмотреть сообщение
Так вот и я об этом нужно сделать например скриншот и пересчитать пиксели возникает вопрос откуда этот скриншот копировать где он сидит? Или узнать какое изображение сидит в окне чтобы поработать с ним узнать изменилось ли оно или нет.
Как и думал. Собсна winApi, HBITMAP, самое простое

Добавлено через 5 минут
Цитата Сообщение от Nexi99 Посмотреть сообщение
Но возникает вопрос а почему бы не загрузить кадры которые должны нарисоваться в окне в видюху а не кипятить процессор
Потому что роль процессора - кадр этот создать чисто геометрически, вершины, все фигуры и тд, а роль видеокарты этот кадр "раскрасить". Почему так? Потому что создание кадра - много всяких разных действий. А его отрисовка - куча всяких одинаковых по сути. Как раз процессор рассчитан на большой охват возможностей, а видеоядро на шуструю работу одних и тех же (или схожих) действий. Заменить одно на другое неоптимально получается. Ну а изображение экрана это ни к процу, ни к видеоядру не относится. Это просто буфер в памяти. И тот же winApi, из простого и не шибко медленного, имеет туда доступ. Быстрее только работать через драйвер, как это делает тот же shadowPlay от нвидиа, он сидит в драйвере. Но добраться туда нелегко

Добавлено через 8 минут
Цитата Сообщение от Laborant666 Посмотреть сообщение
Это просто буфер в памяти
А вот где этот буфер - черт его знает. Драйвер наверное знает или документация по winApi. Так-то из дескриптора главного окна я брал скриншоты. По идее где-то можно и найти по дескриптору эти данные. Но вопрос - будет ли это быстрее того же winApi? Скорее всего нет. Быстрее только драйвер модифицировать, что бы он помимо переноса отрисованного кадра в буфер монитора (утрирую) ещё и выдавал адрес в памяти этого кадра, что бы можно было туда залезть сразу, а не через дебри winApi, который наверняка делает запрос сначала к винде, потом она перенаправляет это всё куда-то ещё, раз другой, там дают ответ где эти данные, это всё летит обратно, проверяется, обрабатывается викидывая мусор или доставая из какого-то более масштабного контейнера только изображение, копируется (ибо winApi даёт скриншот посредством копирования данных, сам источник не даётся) и только потом уже можно работать с изображением

Добавлено через 5 минут
Кстати, погуглил я тут. Вполне вероятно что shadowPlay не делает скриншот за скриншотом, а делает как видеокодеки - скриншот полный, 2-3-5 карт изменений (которые меньше весят, меньше надо записывать и обрабатывать) и опять полный скриншот. И получается что захват на высокой частоте кадров. Ну и опять же не обязательно это всё сразу обрабатывается, оно в простое может обрабатываться или по завершению записи. Возможно то шустрее тех же 40 кадров полных скриншотов и не получится даже и через драйвер. Ну и давайте по существу - для определения скорости объекта, его направления - хватит и кадров 15 смело
1
0 / 0 / 0
Регистрация: 28.03.2017
Сообщений: 7
22.10.2023, 00:17
Laborant666, COKPOWEHEU, если вдруг знаете хорошие книги/материалы по теме архитектуры ПК, посоветуйте пожалуйста. Что-то вроде Танненбаума наверное.
0
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,260
22.10.2023, 08:34
Теоретически должна быть область памяти, в которой формируется изображение, которое затем поступает в видеокарту. "Нарисовать линию, нарисовать окружность" это конечно хорошо. Но можно представить изображение, в котором каждый пиксель имеет свой уникальный цвет - и тут уже командами "нарисуй что-то" не обойдешься. Но эта область памяти тщательно охраняется и скрывается виндой, что-бы кто попало туда не лезли, даже только для чтения.

Копайте в сторону линукса. У него открытые исходники, и где-то в самой глубине, в ядре - должна прятаться та самая заветная область памяти, из которой читает видеокарта. Несколько лет труда - и наверняка вы до неё доберётесь.

Добавлено через 27 минут
И ещё. Картинка на экране рисуется и без ОС, например БИОСом. Так что область памяти для работы с видеокартой должна находиться где-то в железе материнской платы. Можно предположить, что для этого выделяется часть памяти ОЗУ, но тогда без вставленных плат ОЗУ мат. плата должна быть мёртвой - т.е. не выдавать никакой картинки вообще, даже БИОС. А это скорее всего не так.
0
 Аватар для COKPOWEHEU
4078 / 2676 / 432
Регистрация: 09.09.2017
Сообщений: 11,887
22.10.2023, 14:14
Цитата Сообщение от alexu_007 Посмотреть сообщение
И ещё. Картинка на экране рисуется и без ОС, например БИОСом.
Увы, нет. Биос мог разве что текст выводить, а графика, пусть даже самая простая, уже средствами видеокарты. Впрочем, чо там сейчас, с UEFI, не знаю. Но явно не так просто, как во времена int 33h.
Цитата Сообщение от alexu_007 Посмотреть сообщение
Можно предположить, что для этого выделяется часть памяти ОЗУ, но тогда без вставленных плат ОЗУ мат. плата должна быть мёртвой - т.е. не выдавать никакой картинки вообще, даже БИОС. А это скорее всего не так.
Нет, это именно так. Без планок оперативки материнская плата именно что не стартует, даже логотип BIOS/UEFI не рисуется.
0
143 / 27 / 4
Регистрация: 06.05.2019
Сообщений: 1,825
Записей в блоге: 4
22.10.2023, 16:36
Цитата Сообщение от alexu_007 Посмотреть сообщение
Теоретически должна быть область памяти, в которой формируется изображение
В ОЗУ это если быстро, худший вариант файл подкачки. А построить изображение можно где угодно. Это может быть текстовый файл, бинарный файл, можно построить в массиве ОЗУ- память там можно брать как на стэке если изображение простое и памяти много не нужно так и выделять оператором new или чем другим. А далее функциями нужно этот буфер правильно перенаправить. Скриншот да копируется в автоматический буфер из которого его нужно прочитать, имеется в виду распознать пиксели.
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Увы, нет. Биос мог разве что текст выводить, а графика, пусть даже самая простая, уже средствами видеокарты. Впрочем, чо там сейчас, с UEFI, не знаю. Но явно не так просто, как во времена int 33h.
Ну да там чёрный экран при загрузке. выводит текст. На данном этапе работать с картинками ен нужно.
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
UEFI не рисуется.
На новых уже там чуть ли не вся виндовс. Например ноутбук Asus Tuf Gaming, но скорее всего низкоуровневый вариант там закрыт и там работает видюха и мы приходим к тому что на старте нет никаких изображений, это консольный экран. Интересно а приложения которые работаю через консольный экран они через видюху строятся, или консольный экран является отсуствием изображения.
0
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,260
22.10.2023, 18:31
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Увы, нет. Биос мог разве что текст выводить
А текст на экране это разве не картинка? Экран это многа-многа пикселов, из которых состоит любое изображение: буква, цифра, женская голая задница, и так далее. БИОС умеет рисовать картинку, которая состоит из букв и цифр на синем фоне. По любому надо заполнить видео-память информацией и отдать видеокарте на выполнение.

Добавлено через 12 минут
Цитата Сообщение от Nexi99 Посмотреть сообщение
изображение простое и памяти много не нужно
Памяти нужно ровно столько, сколько пикселей на экране. Потому что ни процессор, ни видеокарта не знают, что появится на экране в следующую секунду - буква, цветочек или радикально синий экран - и на что оно поменяется в следующую секунду. Это вы путаете с кодированием видео, в котором кодек может "залезть" на сколько угодно кадров вперёд и сделать вывод - перерисовывать весь экран или только часть.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
22.10.2023, 18:35
Есть же VESA BIOS Extensions.
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,852
22.10.2023, 20:49
Цитата Сообщение от alexu_007 Посмотреть сообщение
Памяти нужно ровно столько, сколько пикселей на экране.
Радио 86РК работал с телевизором в качестве монитора. Разрешение его 800х600 итого 480 000 пикселей, 60000 Байт
А памяти у компьютера всего 16 кБайт (в продвинутом 32 кБайт). Как так?
0
 Аватар для Tanya2007
593 / 230 / 72
Регистрация: 13.05.2020
Сообщений: 412
22.10.2023, 21:10
Денис Рубан, Цифровая схемотехника и архитектура компьютера второе издание Дэвид М. Харрис и Сара Л. Харрис
0
 Аватар для COKPOWEHEU
4078 / 2676 / 432
Регистрация: 09.09.2017
Сообщений: 11,887
22.10.2023, 22:27
Цитата Сообщение от alexu_007 Посмотреть сообщение
А текст на экране это разве не картинка?
С точки зрения кого? Для консольных приложений текст это набор байтов. И при выводе через прерывания BIOS он так и передается, буква за буквой. А уж как там видеокарта отрисовывает буквы не их забота.
Цитата Сообщение от alexu_007 Посмотреть сообщение
По любому надо заполнить видео-память информацией и отдать видеокарте на выполнение.
Вопрос только в том в каком формате эта информация. Это может быть набор символов, это могут быть координаты треугольников, это может быть текстура.
Нет, у нормальной видеокарты, разумеется, есть свой видеобуфер, и не один. Но вот доступа к нему у обычного приложения нет.
Цитата Сообщение от alexu_007 Посмотреть сообщение
Памяти нужно ровно столько, сколько пикселей на экране.
В общем случае - нет. Даже не говоря про то, что на пиксель может отводиться на по одному байту.
Но бывают и векторные дисплеи, в которых хранятся описания фигур. Кажется, современный xterm умеет такое эмулировать. Вроде бы X11 подобным способом может работать - не рисовать окно, а говорить "окно там-то и там-то".
Да и я когда-то делал подобное - вывод трехмерной графики на stm32f103 с 20 кБ оперативки на экран 320х240, 16 бит на пиксель.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.10.2023, 22:27
Помогаю со студенческими работами здесь

Прямой доступ к видеопамяти
Здраствуйте уважаемы программеры! У меня к вам огромная просьба не могу написать казалось бы простую программу на ассемблере. Вобщем как не...

Прямой доступ к видеопамяти в DirectХ 9
Есть ли возможность обратится напрямую к вторичной поверхности (задний буфер) в DirectХ 9. Такая возможность была в DirectDraw. ...

Прямой доступ к видеопамяти в режиме VESA
Если у кого-то есть код программы вывода на экран точки, графика, линии и т. д. в режиме VESA на ассемблере, то напишите пожалуйста. Буду...

Вывод строки используя прямой доступ к видеопамяти
CSEG segment org 100h begin: mov ax,dx mov es,ax mov al, 02h mov ah, 00h int 10h mov bp,offset string

Доступ к видеопамяти
Здравствуйте! Подскажите, как можно средствами C# получить доступ к содержимому видеопамяти (чтение данных, запись в память). Обязательно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru