Forth
http://fforum.winglion.ru/

Графическая консоль
http://fforum.winglion.ru/viewtopic.php?f=18&t=823
Страница 1 из 4

Автор:  Pretorian [ Пт июн 22, 2007 09:17 ]
Заголовок сообщения:  Графическая консоль

Сделал графическую автономную консоль wincon.f, теперь можно рисовать как и в кварке. берем контекст который указан в доке (в конце файла) и рисуем, консоль сохраняет данные сама, можно ни о чем не беспокоится.
Для тех кто не хочет возится с апи для рисования, graph.f сможет помочь в рисовании примитивов.
Для демонстрации качайте оба файла и запустите graph.f, в общем все очень просто как в старом бейсике, рисуем по ходу выполнении программы, а не через WS_PAINT и все сохраняется и не исчезает без вашего ведома.

http://spf.cvs.sourceforge.net/spf/devel/~pi/lib/

Естественно еще будут новшества, но т.к. ухожу в отпуск на 10 дней, решил выложить что есть (и так уже не плохо).

Автор:  profiT [ Пт июн 22, 2007 12:06 ]
Заголовок сообщения: 

---

Автор:  profiT [ Пт июн 22, 2007 12:10 ]
Заголовок сообщения: 

---

Автор:  Pretorian [ Пт июн 22, 2007 13:55 ]
Заголовок сообщения: 

Да это точно, забыл про ето, еще и поток забыл остановить.
А код и ненадо понимать, только то что есть в доке, что бы не навредить лишним не пользоваться.

Автор:  Pretorian [ Пт июн 22, 2007 14:17 ]
Заголовок сообщения: 

profiT писал(а):
С этой точки зрения тогда вообще нет необходимости в двух файлах, достаточно одного: ~pi/lib/wincon.f . То есть: перенести определения слов Ellipse, Circle и прочих в ~pi/lib/wincon.f. И сделать в prog файлик, содержащий запускающий код.

graph.f это расшерение не обязательное. Хотя поначалу был тока wincon.
profiT писал(а):
+ в MODULE: внутренние слова опять же можно (даже желательно) "спрятать".

Я всегда стараюсь прятать, но что то STRUCT: не работают когда спрятаны, незнаю почему и пока не разбирался, да и это тока начало проекта.
profiT писал(а):
А вообще -- нормально, даже отлично. А то вот хочется иногда такого порисовать -- а сходу нельзя. Теперь -- можно.

Я рад что понравилось, особенно приятно услышать от profitT такое, библиотека будет развиваться, я тока начал. Жаль в отпуске до компа не доберусь, а ноута нет. Кстати OpenGL тоже прикрутим сюда впоследствии, гулять, так гулять!

Автор:  profiT [ Ср июл 04, 2007 11:21 ]
Заголовок сообщения: 

---

Автор:  Pretorian [ Чт июл 05, 2007 06:30 ]
Заголовок сообщения: 

profiT писал(а):
Пока Pretorian наслаждается отпуском, оставлю ему "на автоответчик" ещё пожелания.

Я уже нагулялся :)
profiT писал(а):
Ну, во-первых повторю прошлые пожелания:
1. gpaph.f по идее должно быть graph.f

Это поправленно, но еще не залито.
profiT писал(а):
2. Библиотека должна быть библиотекой, то есть не должна ничего выполнять, а только компилировать. Если хочется показать пример работы с ней можно либо выводить пример в отдельный файл (не в папке lib, само собой), либо отграничивать пример(-ы) от кода библиотеки словом /TEST (~profit/lib/testing.f -- удобный, простой и экономный по словам подход).

Это тоже сделанно, но еще не залил.
profiT писал(а):
Prerorian писал(а):
Я всегда стараюсь прятать, но что то STRUCT: не работают когда спрятаны, незнаю почему и пока не разбирался, ...

"Если водка мешает работе, ну её нафик..." (с) Можно использовать слово --.

Это будет сделанно, сам о этом думал.
profiT писал(а):
Prerorian писал(а):
...да и это тока начало проекта.

Ой. Обычно подобные слова обозначают не "начало проекта", а начало его конца.

Неее, пока у меня в мозгах начало его начала. Да и давненько я хотел его начать, пора помочь людям полноценно и быстро работать с графикой. В этой стезе чуствуешь себя нужным. Очень хочется увидеть в будущем на forth интрушку какие были во времена спектрума.
Prerorian писал(а):
Цитата:
Кстати OpenGL тоже прикрутим сюда впоследствии, гулять, так гулять!

Раз уж упомянуто, то такие же замечания к ~pi/lib/opengl.f и к некоторым другим:
1. INCLUDED где можно бы REQUIRE
2. Неуникальное имя модуля (HIDDEN)
3. Почему-то спрятанные внутри модуля WINAPI-функции.
4. STARTLOG, определение main и его вызов выносить или за \EOF или за /TEST или в отдельный файл ("библиотечность").


~pi/lib/opengl.f впоследствии перейдет в папку примеров, после написания opengl под мой проект.
С первым пунктом согласен, просмотрел. Второй вопрос учтем. WINAPI функции прячу т.к. считаю их неумесными в библиотеке которая сама является интерфейсом и предпологает что только через ее стандартные слова будет доступ. По четвертому вопросу согласен, это в период отладки такое у меня наблюдается.
По поводу замечаний graph.f в wincon.f отвечаю, wincon.f это низкий уровень интерфейса, кроме graph.f будут opengl.f, console.f ну еще что то возможно, так зачем нужен нам будет лишний код из graph.f если мы используем opengl.f. В любом случае будет все таки отдельная папка для всех этих файлов.

Автор:  profiT [ Чт июл 05, 2007 14:13 ]
Заголовок сообщения: 

---

Автор:  вопрос [ Чт июл 05, 2007 14:25 ]
Заголовок сообщения: 

Цитата:
Цель ниженаписанного -- не сбить энтузиазм, а хотя бы немного подзабороть "тёмную массу" (хотя на форуме это делать -- полубесполезное занятие).
ну, отчего, сделать на главной странице "Внимание - существующие програмы на Форте по разным направлениям" - и индех с перекрёстными ссылками, обновлять раз в квартал.

Автор:  Pretorian [ Чт июл 05, 2007 15:28 ]
Заголовок сообщения: 

profiT, я про интро(интрушки), не про игрушки. В общем я хочу написать хороший простой интерфейс прослойку для работы с графикой. И вобще у меня все совсем подругому в отличее от указанных библиотек, я использую последовательный вывод графики, обработку кода, и не заставляю кто будет использовать библиотеку заморачиваться на обработчике событий.

Автор:  VoidVolker [ Пт июл 06, 2007 00:55 ]
Заголовок сообщения: 

Pretorian писал(а):
В общем я хочу написать хороший простой интерфейс прослойку для работы с графикой. И вобще у меня все совсем подругому в отличее от указанных библиотек, я использую последовательный вывод графики, обработку кода, и не заставляю кто будет использовать библиотеку заморачиваться на обработчике событий.

А поподробнее можно? Что подразумевается под фразой "хороший простой интерфейс прослойку для работы с графикой"?

Автор:  Pretorian [ Пт июл 06, 2007 06:07 ]
Заголовок сообщения: 

Ну как известно для работы с API и обработчиками событий нужен опыт и не каждый может взять и сделать что то связанное с графикой, те библиотеки которые существуют упращают работу с API но не упрощают работу с обработчиком событий, т.е. для того что бы рисовать нужно обрабатывать сообщение ws_paint. У меня подход другой, в моей библиотеке ненужны ни какие обработчики событий, все рисуется и выполняется по ходу программы, как в старые добрые времена, это то и осуществляет wincon.f, эта библиотека не зависима и может служить начальной библиотекой для графических приложений, а так же для изучения GDI, OPENGL АПИ, не заморачиваясь на создание окна и обработчика событий (что самое не интересное и нудное). В настоящее время пишутся дополнительные библиотеки для работы с графикой которые будут использовать wincon.f.
Это:
graph.f - для работы с графикой GDI
wconsole.f - графической эмулятор консоли (в проекте)
opengl.f - для работы с 3D графикой (есть некоторые наброски)

Пока документация находится в самих библиотеках по ходу объявления слов и в конце файлов после \EOF, современем напишу нормальную документацию после того как wincon.f будет "удовлетворять меня". Планирую обновлять библиотеки на CVS раз в неделю.

Автор:  AlexF [ Пт июл 06, 2007 18:38 ]
Заголовок сообщения: 

Библиотека мне очень понравилась, собственно, ее ждал довольно давно. Спасибо автору. Жду ее развития.
Пробовал первую версию. Из замеченного -- не всегда перерисовываются графическое окно, н аконах других приложений, которые были на/под этим окном остаются артефакты :(

Графический вывод примитивов не сразу отражается в окне, приходится делать
Код:
ConHide ConShow 


Из пожеланий:
- сделать сохранение окна в BMP-файл :)
- чтение в окно указанного BMP-файла

Автор:  Pretorian [ Пн июл 09, 2007 08:19 ]
Заголовок сообщения: 

AlexF писал(а):
Из пожеланий:
- сделать сохранение окна в BMP-файл :)
- чтение в окно указанного BMP-файла


Это будет обязательно.
То что артефакты остаются и не перерисовывается, хм, извиняюсь, похоже пора обновить версию мне, все эти огрехи исправленны.

Обновил: http://spf.cvs.sourceforge.net/spf/deve ... ib/wincon/
Новая версия вот здесь, старая валяется еще в http://spf.cvs.sourceforge.net/spf/devel/~pi/lib/, но будет удалена, пока не разобрался как.

Автор:  Pretorian [ Пн июл 09, 2007 08:40 ]
Заголовок сообщения: 

AlexF писал(а):
Графический вывод примитивов не сразу отражается в окне, приходится делать
Код:
ConHide ConShow 


Странно а у меня оно сразу все отображает (XP), в любом случае тут wincon не виновата, это graph, дело в том что все рисуется в буфер, а в событии ws_paint этот буфер выводится в окно, похоже после чего то нарисованного надо будет посылать сообщение ws_paint, вобщем доработаю.

P.S. Кстати AlexF, проверь новую версию, может мне и не придется делать выше сказанное если будет все отображатся.

Страница 1 из 4 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/