На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
Страницы: (16) « Первая ... 11 12 [13] 14 15 ... Последняя » все  ( Перейти к последнему сообщению )  
> эмуляция BGI графики
    Люди, я вообще реализацию bgi пишу с начала года (для использования для обучения на первом курсе. собственно, со следующего полугодия библиотека будет использоваться в моём ВУЗе). Там уже реализованы все graphics.h функции + несколько прикольных фич
    1) опционально RGB - mode - не 16 цетов а полная цветовая паллитра
    2) опционально полноэкранный режим
    3) опционально показывает второе окно, в котором всегда отображается "невидимая страница". удобна при отладке программы с двойной буферизацией.
    4) режимы 800x600, 1024x767

    основная фича библиотеки - что во время отладки окошко с графикой всё равно перерисовывается правильно, не затирается. (без лишней скромности скажу, это решалось нетривиально :).

    реализованы по-моему, все функции из graphics.h + дополнения для работы с мышкой/клавой.

    сайт : http://sourceforge.net/projects/openbgi. собственно странички нет, только стандартный интерфейс sourceforge (там лежат исходники + несколько примеров).

    Если кто хочет - прошу присоединяться к проекту, по-хорошему нужно всё переписывать, по причине страшнного кода.
    Пожелания и сообщения о багах приветствуются ;)

    Работает под MSVC6-2005, mingw
    Жизнь слишком коротка, чтобы писать на ассемблере...
      theos, сложно у тебя, да и зависит от платформы Windows.
      Я бы использовал какую-то другую open-source библиотеку, независимую от платформы. Как правило, такие даже реализованы проще.

      А страничка http://openbgi.sourceforge.net/ чего пустует? :whistle:

      Чёркни хоть пару строк что и как. Вообще, документация нужна хоть минимальная.
        1) зависит от платформы - так естественно, нужно писать принципиально разнае реализации под WinAPI(GDI) и под XWindow.
        а вообще я писал, что код лчше переписать. можно было бы сделать его чуточку переноимее.(SDL, между прочем, сама посебе не переносима, просто реализация есть под разные платформы.)
        2) сложно - а вы попробуйте реализовать проще! что бы обязательно на процессах, т.к. VS не умеет один поток отлаживать, в то время как другой будет работать.
        3) с документацие и страничкой - действительно беда, времени на них пока не хватает.

        Это библиотека не для серьёзных проектов - медленновата(по определению из-за двухпроцессности), да и архаизм этот grphics.h. просто для людей(учащихся) что бы ни счем не заморачиваться (opengl, winapi) и что б отладка нормальная была - это imho неплохой вариант.
        Сообщение отредактировано: theos -
        Жизнь слишком коротка, чтобы писать на ассемблере...
          Привет всем заинтересованным в этой теме! Поздравляю вас с событием - DGML не дожил до первого релиза, но вместо этого идет работа над новой версией DGML...

          Библиотека написана на SDL. На выходе получается DGML.dll (под Windows) или DGML.so (под UNIX).

          Текущая версия 2.0.3.64. Тестировалась на Visual C++ 2005, Delphi 6 и подключалась даже к MASM32. Под *BSD/Linux пока не тестировалась.

          Реализованы следующие функции:
          Цитата
          + готово
          * частично реализовано
          - только заглушка

          CONIO.H
          * clrscr
          * getch
          * kbhit

          DOS.H
          + delay
          + sleep
          - sound
          - nosound

          GRAPHICS.H
          + arc
          + bar
          + bar3d
          + circle
          + cleardevice
          + clearviewport
          + closegraph
          + detectgraph
          + drawpoly
          + ellipse
          + fillellipse
          * fillpoly
          + floodfill
          + getarccoords
          + getaspectratio
          + getbkcolor
          + getcolor
          + getdefaultpalette
          + getdrivername
          + getfillpattern
          + getfillsettings
          + getgraphmode
          + getimage
          + getlinesettings
          + getmaxcolor
          + getmaxmode
          + getmaxx
          + getmaxy
          + getmodename
          + getmoderange
          + getpixel
          + getpalette
          + getpalettesize
          + gettextsettings
          + getviewsettings
          + getx
          + gety
          + graphdefaults
          - grapherrormsg
          - graphresult
          + imagesize
          + initgraph
          + installuserdriver
          + installuserfont
          + line
          + linerel
          + lineto
          + moverel
          + moveto
          * outtext
          * outtextxy
          + pieslice
          + putimage
          + putpixel
          + rectangle
          + registerbgidriver
          + registerfarbgidriver
          + restorecrtmode
          + sector
          + setactivepage
          + setallpalette
          + setaspectratio
          + setbkcolor
          + setcolor
          + setfillpattern
          + setfillstyle
          + setgraphbufsize
          + setgraphmode
          + setlinestyle
          + setpalette
          + setrgbpalette
          + settextjustify
          + settextstyle
          + setusercharsize
          + setviewport
          + setvisualpage
          + setwritemode
          + textheight
          + textwidth

          STDLIB.H
          + random
          + randomize


          То есть работает вся графическая подсистема с некоторыми исключениями:
          - floodfill некорректно обрабатывает некоторые многоугольники
          - outtext выводит только однострочный тект и только по горизонтали
          - поддерживается только растровый шрифт по умолчанию, векторные не поддерживаются

          Все функции реализованы программно и очень медленно. Однако тестировалось на машинке с Pentium III M 600Mhz и отрисовывается терпимо по времени.

          Под Borland Delphi 6 все жутко тормозит.

          Ниже есть ссылка на скомпилированные примеры. Для их запуска надо в папку поместить файлы DGML.dll и SDL. SDL я использовал старенькую, 1.2.9, ссылка на длл тоже есть.

          Ссылки для скачивания:
          DGML 2.0.3.64 - исходники, заголовочные файлы и бинарник под Win32

          Скомпилированные примеры для DGML на Си и Паскале

          SDL.dll

          Жду ваших комментариев...;)
            Поправь первый пост, чтоб понятно было что такое "DGML", вдруг мне тоже нужно :huh: а все читать ломает :)
              MeG
              У меня нет прав редактировать первый пост...

              DGML - Dos Graphics Migration Library. Она позволяет компилировать программы, с использованием графического интерфейса BGI современными компиляторами.

              Забыл сказать, что на поддержка Delphi весьма условна и многие примеры не работают...
                Der_Meister, а чего поддержку BGI-фонтов не сделал? Без них как то ни туда, ни сюда ;)
                  AndNot
                  Сейчас скачал описаниние форматов CHR-шрифтов. Возможно, скоро появится их поддержка...
                    Да я тебе и так могу рассказать их формат :D Могу даже примерчик кинуть, на Паскале и на Асме ;) Сам писал сто лет назад, ничего сложного там нет, формат примитивнейший.
                      AndNot
                      Спасибо, я уже реализовал загрузку и вывод штриховых шрифтов... Осталось только корректный вывод многострочного и вертикального текста сделать...
                        закинул lib и dll в LIB, h в INCLUDE, компилил в билдере, в vc 2005 express, в devc(ключ указывал), а вот такая гадость все равно(VC):

                        ExpandedWrap disabled
                          ...
                          main.obj : error LNK2028: unresolved token (0A00032B) "extern "C" int __stdcall random(int)" (?random@@$$J14YGHH@Z) referenced in function "void __cdecl changecolors(void)" (?changecolors@@$$FYAXXZ)
                          main.obj : error LNK2028: unresolved token (0A00032C) "extern "C" void __stdcall initgraph(int *,int *,char const *)" (?initgraph@@$$J212YGXPAH0PBD@Z) referenced in function "void __cdecl initgraphicmode(void)" (?initgraphicmode@@$$FYAXXZ)
                          main.obj : error LNK2019: unresolved external symbol "extern "C" int __stdcall getch(void)" (?getch@@$$J10YGHXZ) referenced in function "void __cdecl initgraphicmode(void)" (?initgraphicmode@@$$FYAXXZ)
                          main.obj : error LNK2019: unresolved external symbol "extern "C" char * __stdcall grapherrormsg(int)" (?grapherrormsg@@$$J14YGPADH@Z) referenced in function "void __cdecl initgraphicmode(void)" (?initgraphicmode@@$$FYAXXZ)
                          ...


                        и так далее

                        что я делаю не так?
                        Сообщение отредактировано: oldsoldier -
                          oldsoldier
                          А просто проект из папки projects пробовал запускать?

                          Похоже библиотека не подключена.

                          В VC2005 в параметрах проекта (правой на проекте в solution explorer -> properties) в разделе linker -> input в поле additional dependencies надо написать 'dgml.lib'.

                          Либо в начале файла main.cpp написать '#pragma comment(lib, "dgml.lib")'.
                            Выкладываю новую версию - 2.0.5.31. В ней полностью реализована поддержка строковых шрифтов, а так же исправлены некоторые недочеты.

                            http://schtudent.ru/file.php?fid=661

                            oldsoldier

                            На всякий случай выкладываю описание создания проекта в vc2005 со скриншотами.

                            http://schtudent.ru/file.php?fid=662
                              Под Open Watcom нет варианта?
                                Оззя
                                Нет. Но я думаю сложностей в компиляции под него быть не должно, достаточно иметь библиотеки импорта SDL...

                                Попробую достать ватком и проверить сам...
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script Execution time: 0,1973 ]   [ 16 queries used ]   [ Generated: 23.10.19, 10:17 GMT ]