Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.15.147.53] |
|
Страницы: (16) 1 [2] 3 4 ... 15 16 все ( Перейти к последнему сообщению ) |
Сообщ.
#16
,
|
|
|
Если ddraw - то отлига! Он позволяет всё!
И пасквилянтов не забудьте! А то можно и засмесить - а-ля буилдер и сделать bgi32.dll. Главное - чтоб ellipse был! :) |
Сообщ.
#17
,
|
|
|
Нет, не DirectDraw. Win32API. И вывод осуществляется средствами GDI.
Один вопрос: сколько цветов надо? 16 или 256? Просто надо не отойти от синтаксиса прототипа, а там вроде 16 цветов определено. |
Сообщ.
#18
,
|
|
|
Цитата Der Meister @ Win32API А чем не устраивает DirectDraw + GDI Plus ? Цитата Der Meister @ Один вопрос: сколько цветов надо? 16 или 256? Просто надо не отойти от синтаксиса прототипа, а там вроде 16 цветов определено Скока запросит |
Сообщ.
#19
,
|
|
|
Der Meister, а можешь кинуть сюда список поддерживаемых и нет функций ?
ToDo? |
Сообщ.
#20
,
|
|
|
Цитата Neko @ А чем не устраивает DirectDraw + GDI Plus ? Слишком уж наворочено. Я не ставлю цели сделать вывод графики супербыстрым. Тут уж мелькала мысль, чтоб сделать вывод в окне. Может так и будет... Romtek #define closegraph DGML::closegraph #define line DGML::line #define linerel DGML::linerel #define lineto DGML::lineto #define cleardevice DGML::cleardevice #define getmaxx DGML::getmaxx #define getmaxy DGML::getmaxy #define setcolor DGML::setcolor #define getcolor DGML::getcolor #define putpixel DGML::putpixel #define outtextxy DGML::outtextxy Надо просто решить некоторые вопросы. А остальные функции (bar, ellipse, etc...) написать - как два пальца об асфальт. Работы много, но все это легко. Позже сообщу о результатах. TODO: Write all other functions from Borland's graphics.h. |
Сообщ.
#21
,
|
|
|
Цитата Der Meister @ Это, по большей части, я попросил за других пользователей. В файл DGML_init.h я и сам догадался посмотреть. Romtek #define closegraph DGML::closegraph #define line DGML::line #define linerel DGML::linerel #define lineto DGML::lineto #define cleardevice DGML::cleardevice #define getmaxx DGML::getmaxx #define getmaxy DGML::getmaxy #define setcolor DGML::setcolor #define getcolor DGML::getcolor #define putpixel DGML::putpixel #define outtextxy DGML::outtextxy Надо просто решить некоторые вопросы. А остальные функции (bar, ellipse, etc...) написать - как два пальца об асфальт. Работы много, но все это легко. Позже сообщу о результатах. А что насчёт исходников либы? У меня нет Студии и я не могу прилинковать .lib в GCC. |
Сообщ.
#22
,
|
|
|
Цитата Romtek @ А что насчёт исходников либы? Держи: Прикреплённый файлDGML_src_0_0_75.rar (5.82 Кбайт, скачиваний: 360) |
Сообщ.
#23
,
|
|
|
Уф. После нескльких попыток скомпилировать получилось (на знал как подключать gdi32 к линкеру).
Надо было добавить -lgdi32 . Теперь надо узнать как создавать библиотеку в GCC. Добавлено Der Meister, а какие файлы находятся в либе? Я скомпоновал DGML.o,DGML_Error.o,graphics.o,input.o,system.o в DGML.a. |
Сообщ.
#24
,
|
|
|
Цитата Romtek @ Я скомпоновал DGML.o,DGML_Error.o,graphics.o,input.o,system.o в DGML.a. Все правильно. Я сейчас занимаюсь реализацией остальных функций, некоторые пока закрыл заглушками. |
Сообщ.
#25
,
|
|
|
Один вопрос: можно ли как-нибудь выдрать help из bc? Или справочник по bgi? А то пришлось ему приоритет на "низкий" установить - сколько ресурсов дашь, столько и съест.
А сейчас я разбираюсь с параметрами вот так: Прикреплённый файлbc.jpg (69.45 Кбайт, скачиваний: 893) |
Сообщ.
#26
,
|
|
|
Цитата Der Meister @ #define Лучше так: using DGML::closegraph; В аттаче: краткая справка по BGI на русском Прикреплённый файлbgi.zip (17.67 Кбайт, скачиваний: 437) |
Сообщ.
#27
,
|
|
|
Цитата Neko @ using DGML::closegraph; Учтем. Цитата Neko @ В аттаче: краткая справка по BGI на русском Спасибо! |
Сообщ.
#28
,
|
|
|
Цитата Neko @ using DGML::closegraph; Не работает так. Как тогда сделать. Может вместо класса сделать namespace и туда засунуть все интерфейсные функции, а служебные ф-ции оставить в классе... Так и сделаю. |
Сообщ.
#29
,
|
|
|
Слава Аллаху! Я это сделал.
Теперь получилась максимально прозрачная интерфейсная часть и максимально уродливая реализация системы. Пространство имен DGML будет полностью по сигнатуре идентично содержимому graphics.h. Вот текущая версия: namespace DGML { // инициализирует графическую систему void initgraph(int *graphdriver, int *graphmode, const char *pathtodriver); // ждет, пока не будет нажата клавиша и возвращает ее код int getch(void); // чертит линию между заданными точками void line(int x1, int y1, int x2, int y2); // закрывает графическую систему void closegraph(void); // чертит линию относительно текущей позиции (ТП) void linerel(int dx, int dy); // чертит линию от текущей позиции (ТП) до (x,y) void lineto(int x, int y); // очищает графический экран void cleardevice(void); // возвращает максимальную x координату int getmaxx(void); // возвращает максимальную y координату int getmaxy(void); // устанавливает цвет пера void setcolor(int color); // возвращает текущий цвет пера int getcolor(void); // выводит пиксел в заданной точке void putpixel(int x, int y, int color); // выводит текст в заданной позиции void outtextxy(int x, int y, char* textstring); void arc(int x, int y, int stangle, int endangle, int radius); // Выводит окружность с центром в точке (x,y) и радиусом radius. void circle(int x, int y, int radius); // Выводит сектор круга от stangle до endangle с центром в точке (x,y) , радиусом radius. void pieslice(int x, int y, int stangle, int endangle, int radius); // Выводит закрашенный прямоугольник без контура. void bar(int left, int top, int right, int bottom); // Выводит прямоугольный параллелепипед. void bar3d(int left, int top, int right, int bottom, int topflag); // Выводит многоугольник из numpoints точек, переданных массивом polypoints. void drawpoly(int numpoints, int* polypoints); // Выводит закрашенный многоугольник, состоящий из numpoints точек, переданных в массиве polypoints. void fillpoly(int numpoints, int* polypoints); // Выводит эллиптическую дугу с центром в (x,y), радиусами xradius и yradius и сектором (stangle;endangle) void ellipse(int x, int y, int stangle, int endangle, int xradius, int yradius); // Выводит закрашенный эллипс с центром в (x,y) и радиусами xradius и yradius. void fillellipse(int x, int y, int xradius, int yradius); // Выводит закрашенный эллиптический сектор с центром в (x,y), радиусами xradius и yradius и сектором (stangle;endangle) void sector(int x, int y, int stangle, int endangle, int xradius, int yradius); } Проект перешел из разряда идей. Но не в "тестирование программ" же его засовывать?! |
Сообщ.
#30
,
|
|
|
Цитата Der Meister @ Самое время в "Коллективных Проектах" страничку создавать. Проект перешел из разряда идей. Но не в "тестирование программ" же его засовывать?! Добавлено Я уже предлагал, по-моему самое то. Можешь написать описание программы, привести пару примеров программ, добавить список поддерживаемых функций, скриншоты и т.д. |