Программирование видеоадартера SVGA

Тема в разделе "WASM.WIN32", создана пользователем sarmat, 13 апр 2006.

  1. sarmat

    sarmat New Member

    Публикаций:
    0
    Регистрация:
    22 янв 2006
    Сообщения:
    15
    Адрес:
    Russia
    Меня интересует программирование видеоадаптера SVGA в Visual C++ с ассемблерными вставками. Пожалуйста хотя бы немного сориентируйте. Полагаю, что в Kernel есть какие-то функции для этого.
     
  2. zobot1

    zobot1 New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2005
    Сообщения:
    55
    видеоадаптер свга понимаю вам надо vesa? а сталобыть и дос, и никаких msvc++.



    если просто в винде - то ddraw или дровишки из леса пейсать чтобы давали в видео фигачить напрямую и в порты за одно, а сталобыть и...
     
  3. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    sarmat

    Либы VESA и дос.

    Либы WIN API (даже не DirectX) позволяет получить список доступных режимов и переключиться ну и для рисования использовать GDI, OpenGL.
     
  4. sarmat

    sarmat New Member

    Публикаций:
    0
    Регистрация:
    22 янв 2006
    Сообщения:
    15
    Адрес:
    Russia
    ddraw или дровишки из леса пейсать чтобы давали в видео фигачить напрямую и в порты за одно

    А вот это как раз мне и интересно. Это под ДОС я делал. Как под окнами это делать пока не сориентировался. Что можно по этому вопросу посмотреть ? Фроловы - это 1995г. и под ДОС, а мне под Win охота.
     
  5. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    sarmat

    Виндоус работает в защищенном режиме.

    Ли бы ты пользуешься одним из стандарных средств

    GDI(GDI+), DirectX, OpenGL.

    Почитать MSDN, DirectX SDK, статьи в интернете или книжку купить.



    Либы писать драйвер. Вот только что ты там сможешь сделать? Ответ не больше, чем тебе даст тотже GDI. Так как там трудностий много и основная отсутствие документации на видео карты.
     
  6. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    sarmat

    При программировании соременных SVGA видеокарт напрямую, даже если ты досканально знаешь набор регистров, тут же сталкиваешся со следующими проблемами: Если попытаться изменить видеорежим (перепрограммировав регистры), то во-первых это не получится в подавляющем большинстве карт если не использовать специфические регисты, а во вторых доступ к этим специфическим регистрам должен быть разблокирован перед их использованием. Имеено поэтому даже самые изкоуровневые функции драйвера экрана (в большей степени мини драйвера) используют старое досовское int 10h на определенном этапе, даже в Windows 2003.

    Если режима экрана менять не нужно, то можно попробывать отыскать базовый адрес видеопамяти (через PCI конфигурационную область) и что самое сложное - межстрочный интервал (расстояние в байтах между текушим байтом и таким же но строкою ниже) он в подавляющем большинстве случаев не равен длинне отображаемой строки, менее сложное определить число бит на пиксел (последние две вещи можно с переменным успехом определить через классические CRT регисты).