Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: Графическая консоль |
|
|
На днях вернулся к этой библиотеке. Не развивается больше? Интерсено, как поставить другой шрифт при выводе, для слова Print?
На днях вернулся к этой библиотеке. Не развивается больше? Интерсено, как поставить другой шрифт при выводе, для слова Print?
|
|
|
|
Добавлено: Пт апр 15, 2011 20:04 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Варнак писал(а): Да мне почти все равно, на что переходить, с FIG-Forth'а после 15-тилетнего перерыва. СПФ просто первый под руку попался и на этом форуме он, явно, самый популярный.
а почему не GNU Forth ? UNIX не планируете использовать ?
[quote="Варнак"]Да мне почти все равно, на что переходить, с FIG-Forth'а после 15-тилетнего перерыва. СПФ просто первый под руку попался и на этом форуме он, явно, самый популярный.[/quote]
а почему не GNU Forth ? UNIX не планируете использовать ?
|
|
|
|
Добавлено: Ср июн 25, 2008 22:08 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Обнаружил баг в слове Print:
Код: ConCreate 200 30 ConSize 0x00FFFF ColorText 0 BackgroundText 10 5 S" 1234567890" Print ConRefresh Длина печатаемой строки ограничена высотой консоли. Поменяв местами rectl и recth, все заработало как надо: Код: \ ~pi\lib\wincon\text.f 0 CELL -- rectx CELL -- recty CELL -- rectl CELL -- recth CONSTANT RECT 0 VALUE rect RECT ALLOCATE THROW TO rect
Немного скорретировав(убрав 'STRUCT:') , запустил в ннкроне Правда иногда убивает крон насмерть - даже гуард не помогает, приходится ручками перезапускать.
Обнаружил баг в слове Print:
[code]ConCreate 200 30 ConSize 0x00FFFF ColorText 0 BackgroundText 10 5 S" 1234567890" Print ConRefresh[/code] Длина печатаемой строки ограничена высотой консоли. Поменяв местами rectl и recth, все заработало как надо: [code] \ ~pi\lib\wincon\text.f 0 CELL -- rectx CELL -- recty CELL -- rectl CELL -- recth CONSTANT RECT 0 VALUE rect RECT ALLOCATE THROW TO rect[/code]
Немного скорретировав(убрав 'STRUCT:') , запустил в ннкроне :) Правда иногда убивает крон насмерть - даже гуард не помогает, приходится ручками перезапускать.
|
|
|
|
Добавлено: Ср июн 25, 2008 14:41 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Варнак писал(а): Всем спасибо! Какое-то представление составил о проблеме. Кварк, возможно - то что надо, но отсутствие даже минимальной документации не позволяет начать использовать с ходу.
Каюсь, грешен! Документация будет вот-вот, потому что уже многим надо. Вкратце оно PIXEL ( x, y, color -- ), остальное вобщем-то как обычно. Только словари вот по стандарту 83. Еще можно скачать proton, это графическая оболочка, подгружающая quark.dll. Там, в частности, подгружается и список слов.
[quote="Варнак"]Всем спасибо! Какое-то представление составил о проблеме. Кварк, возможно - то что надо, но отсутствие даже минимальной документации не позволяет начать использовать с ходу.[/quote]
Каюсь, грешен! :) Документация будет вот-вот, потому что уже многим надо. Вкратце оно PIXEL ( x, y, color -- ), остальное вобщем-то как обычно. Только словари вот по стандарту 83. Еще можно скачать proton, это графическая оболочка, подгружающая quark.dll. Там, в частности, подгружается и список слов.
|
|
|
|
Добавлено: Чт ноя 22, 2007 01:14 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Короче граф консоль, будет новая, эта оказывается не фурычит, если ее в систему SPF интегрировать. Уф, долго отсутствовал, у нас тут поголовный переход на линукс был, совсем замотался.
Короче граф консоль, будет новая, эта оказывается не фурычит, если ее в систему SPF интегрировать. Уф, долго отсутствовал, у нас тут поголовный переход на линукс был, совсем замотался.
|
|
|
|
Добавлено: Ср ноя 21, 2007 13:40 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Всем спасибо! Какое-то представление составил о проблеме. Кварк, возможно - то что надо, но отсутствие даже минимальной документации не позволяет начать использовать с ходу. Попутно, лишний раз убедился, что внимание к интеренсым мелочам сильно отвлекает от главной задачи - поэтому буду заниматься ею, а отрисовка уж какая получается, можно в конце концов и в файл картинку записать, а потом посмотреть.
Всем спасибо! Какое-то представление составил о проблеме. Кварк, возможно - то что надо, но отсутствие даже минимальной документации не позволяет начать использовать с ходу. Попутно, лишний раз убедился, что внимание к интеренсым мелочам сильно отвлекает от главной задачи - поэтому буду заниматься ею, а отрисовка уж какая получается, можно в конце концов и в файл картинку записать, а потом посмотреть.
|
|
|
|
Добавлено: Вт ноя 20, 2007 10:10 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
На форуме, да и в среде российских фортеров - да. Кварк сейчас в стадии доработки, позиционируется как некий common Forth без особых наворотов, и в виде dll (чтобы не навязывать людям консоль, окно определенного типа и интерфейс). Основная идея - дать "плоский экран" с внутренним доступом и отрисовкой в окно OpenGL. Плавающая точка. Архив тут http://www.msyst.ru/quarkexe.zip
Вот тут http://www.msyst.ru/proton.zip IDE к нему, использующая идею "подключаем quark.dll и скармливаем ему строки".
exe-версия полностью аналогична dll, за исключением того, что сама создает OpenGL-окно. Документация в процессе Примеры на форуме в разделе "Наши проекты - Quark".
P.S. Quark планируется как freeware, но не opensource. Однозначно - и то, и другое
На форуме, да и в среде российских фортеров - да. Кварк сейчас в стадии доработки, позиционируется как некий common Forth без особых наворотов, и в виде dll (чтобы не навязывать людям консоль, окно определенного типа и интерфейс). Основная идея - дать "плоский экран" с внутренним доступом и отрисовкой в окно OpenGL. Плавающая точка. Архив тут [url]http://www.msyst.ru/quarkexe.zip[/url]
Вот тут [url]http://www.msyst.ru/proton.zip[/url] IDE к нему, использующая идею "подключаем quark.dll и скармливаем ему строки".
exe-версия полностью аналогична dll, за исключением того, что сама создает OpenGL-окно. Документация в процессе :) Примеры на форуме в разделе "Наши проекты - Quark".
P.S. Quark планируется как freeware, но не opensource. Однозначно - и то, и другое :)
|
|
|
|
Добавлено: Пн ноя 19, 2007 14:27 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Да мне почти все равно, на что переходить, с FIG-Forth'а после 15-тилетнего перерыва. СПФ просто первый под руку попался и на этом форуме он, явно, самый популярный.
А как Кварк позиционируется? Какие у него особенности? Я полагаю, что все стандартные слова в нем есть ...
Да мне почти все равно, на что переходить, с FIG-Forth'а после 15-тилетнего перерыва. СПФ просто первый под руку попался и на этом форуме он, явно, самый популярный.
А как Кварк позиционируется? Какие у него особенности? Я полагаю, что все стандартные слова в нем есть ...
|
|
|
|
Добавлено: Пн ноя 19, 2007 14:13 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Кварк все это делает. Не предлагаю из-за этого переходить на кварк, но вот его код для отрисовки.
Код: invoke glDrawPixels, [rc.right], [rc.bottom], GL_RGBA, GL_UNSIGNED_BYTE, eax invoke SwapBuffers,[hdc]
GL_RGBA означает формат, в котором 3 байта отвечают за отдельные цвета, а четвертый - за альфа-канал.
Кварк все это делает. Не предлагаю из-за этого переходить на кварк, но вот его код для отрисовки.
[code] invoke glDrawPixels, [rc.right], [rc.bottom], GL_RGBA, GL_UNSIGNED_BYTE, eax invoke SwapBuffers,[hdc] [/code]
GL_RGBA означает формат, в котором 3 байта отвечают за отдельные цвета, а четвертый - за альфа-канал.
|
|
|
|
Добавлено: Пн ноя 19, 2007 12:35 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Цитата: http://www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/drawpixels.html
Посмотрел. Когда-нибудь, возможно, придется изучить. А пока же хочется, чтобы какая-то библиотека
("basicdraw", или "графическая консоль", или что-то еще) скрыла от меня эти подробности и предоставила слово вроде такого (сейчас я делаю это же, рисуя точки в цикле, небыстро, но пока сойдет) :
SHOW-BMP ( addr w h x y -- ... ) , где
addr - адрес массива, состоящего из элементов растра в RGB формате,
w, h - размеры растра по горизонтали и вертикали,
x, y - координата в текущем окне, которая будет левым верхним углом изображения.
[quote]http://www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/drawpixels.html[/quote]
Посмотрел. Когда-нибудь, возможно, придется изучить. А пока же хочется, чтобы какая-то библиотека
("basicdraw", или "графическая консоль", или что-то еще) скрыла от меня эти подробности и предоставила слово вроде такого (сейчас я делаю это же, рисуя точки в цикле, небыстро, но пока сойдет) :
SHOW-BMP ( addr w h x y -- ... ) , где
addr - адрес массива, состоящего из элементов растра в RGB формате,
w, h - размеры растра по горизонтали и вертикали,
x, y - координата в текущем окне, которая будет левым верхним углом изображения.
|
|
|
|
Добавлено: Пн ноя 19, 2007 11:17 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Варнак писал(а): Цитата:1') создавать окна из нескольких потоков, ... или сделать эти окна child'ами
Вот об этом подробнее, пожалуйста. У каждого главного окна есть цикл обработки сообщений, который крутится всё время жизни окна. Если вам надо 2 toplevel окна то нужны два цикла. Единственный способ чтобы эти два цикла работали одновременно и независимо - запустить их в разных потоках. Если же вы создаёте окна child'ами по отношению к какому либо другому окну то у них нет своего цикла обработки, за них получение сообщений делает родитель. Пример GL окон встроенных в диалог - ~ygrek/prog/wfl/grid.f. Но как я понял вы хотите чтобы окна были перекрывающимися. Это наверное можно сделать и для child'ов.. Но вариант с потоками по-моему проще. Вот, где-то так, если не ошибаюсь. Варнак писал(а): Цитата: 4) Если вы скажем подготовите растр чтобы он совпадал с форматом который принимают gl-функции то думаю проблем добавить его обработку в glimage не будет.
Подготовлю, а каковы эти форматы?
http://www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/drawpixels.html
[quote="Варнак"]Цитата:1') создавать окна из нескольких потоков, ... или сделать эти окна child'ами
Вот об этом подробнее, пожалуйста.[/quote]
У каждого главного окна есть цикл обработки сообщений, который крутится всё время жизни окна. Если вам надо 2 toplevel окна то нужны два цикла. Единственный способ чтобы эти два цикла работали одновременно и независимо - запустить их в разных потоках. Если же вы создаёте окна child'ами по отношению к какому либо другому окну то у них нет своего цикла обработки, за них получение сообщений делает родитель. Пример GL окон встроенных в диалог - [url=http://forth.org.ru/~ygrek/prog/wfl/grid.f]~ygrek/prog/wfl/grid.f[/url]. Но как я понял вы хотите чтобы окна были перекрывающимися. Это наверное можно сделать и для child'ов.. Но вариант с потоками по-моему проще. Вот, где-то так, если не ошибаюсь.
[quote="Варнак"]Цитата: 4) Если вы скажем подготовите растр чтобы он совпадал с форматом который принимают gl-функции то думаю проблем добавить его обработку в glimage не будет.
Подготовлю, а каковы эти форматы?[/quote]
[url]http://www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/drawpixels.html[/url]
|
|
|
|
Добавлено: Вс ноя 18, 2007 11:17 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
ygrek писал(а): Можно также попробовать ~ygrek/lib/wfl/opengl - либа берёт на себя создание окна и встраивание окна как контрола в диалог WFL. В частности basicdraw есть надстройкой над этой либой. Спасибо. посмотрю. Может там найдутся слова более очевидные для использования. (Я чуть позже опишу подробнее, почему у меня не получается использовать basicdraw в привычной для меня манере) Цитата: 1') создавать окна из нескольких потоков, ... или сделать эти окна child'ами Вот об этом подробнее, пожалуйста. Цитата: 2) из коробки этой реплики вообще не понял Цитата: 4) Если вы скажем подготовите растр чтобы он совпадал с форматом который принимают gl-функции то думаю проблем добавить его обработку в glimage не будет.
Подготовлю, а каковы эти форматы?
[quote="ygrek"]Можно также попробовать [url=http://forth.org.ru/~ygrek/lib/wfl/opengl]~ygrek/lib/wfl/opengl[/url] - либа берёт на себя создание окна и встраивание окна как контрола в диалог WFL. В частности basicdraw есть надстройкой над этой либой.[/quote] Спасибо. посмотрю. Может там найдутся слова более очевидные для использования. (Я чуть позже опишу подробнее, почему у меня не получается использовать basicdraw в привычной для меня манере)
[quote]1') создавать окна из нескольких потоков, ... или сделать эти окна child'ами [/quote] Вот об этом подробнее, пожалуйста.
[quote] 2) из коробки [/quote] этой реплики вообще не понял
[quote] 4) Если вы скажем подготовите растр чтобы он совпадал с форматом который принимают gl-функции то думаю проблем добавить его обработку в glimage не будет.[/quote]
Подготовлю, а каковы эти форматы?
|
|
|
|
Добавлено: Вс ноя 18, 2007 09:07 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Можно также попробовать ~ygrek/lib/wfl/opengl - либа берёт на себя создание окна и встраивание окна как контрола в диалог WFL. В частности basicdraw есть надстройкой над этой либой.
Варнак писал(а): 1) как создать окно нужного размера в нужном месте экрана? 1') как создавать несколько окон и рисовать в разные, переключаясь между ними по мере необходимости? 2) как добиться того, чтобы после закрытия окна не закрывался и СПФ, откуда это слово запускалось? 3) в чем сакральный смысл слова "ShiftMatrix", удаление которого из текста примера (слова "main"), приводит к прекращению отрисовки (к этому же приводит и передача ему трех нулевых параметров)? 4) можно ли как "одним махом" отобразить поготовленный растр?
Применительно к basicdraw
1) 200 100 SET-SIZE
1') создавать окна из нескольких потоков, или проще разбить одно окно на логические области, или сделать эти окна child'ами
2) из коробки
4) есть ~profit/lib/wfl/opengl/GLImage.f, но он грузит растр тоже из BMP. Суть в том что у этого растра может быть миллион с хвостиком форматов. Если вы скажем подготовите растр чтобы он совпадал с форматом который принимают gl-функции то думаю проблем добавить его обработку в glimage не будет.
Можно также попробовать [url=http://forth.org.ru/~ygrek/lib/wfl/opengl]~ygrek/lib/wfl/opengl[/url] - либа берёт на себя создание окна и встраивание окна как контрола в диалог WFL. В частности basicdraw есть надстройкой над этой либой.
[quote="Варнак"] 1) как создать окно нужного размера в нужном месте экрана? 1') как создавать несколько окон и рисовать в разные, переключаясь между ними по мере необходимости? 2) как добиться того, чтобы после закрытия окна не закрывался и СПФ, откуда это слово запускалось? 3) в чем сакральный смысл слова "ShiftMatrix", удаление которого из текста примера (слова "main"), приводит к прекращению отрисовки (к этому же приводит и передача ему трех нулевых параметров)? 4) можно ли как "одним махом" отобразить поготовленный растр?[/quote]
Применительно к basicdraw
1) 200 100 SET-SIZE
1') создавать окна из нескольких потоков, или проще разбить одно окно на логические области, или сделать эти окна child'ами
2) из коробки
4) есть [url=http://forth.org.ru/~profit/lib/wfl/opengl/GLImage.f]~profit/lib/wfl/opengl/GLImage.f[/url], но он грузит растр тоже из BMP. Суть в том что у этого растра может быть миллион с хвостиком форматов. Если вы скажем подготовите растр чтобы он совпадал с форматом который принимают gl-функции то думаю проблем добавить его обработку в glimage не будет.
|
|
|
|
Добавлено: Сб ноя 17, 2007 16:26 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
|
|
|
Добавлено: Пт ноя 16, 2007 16:53 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Варнак писал(а): ... 4) можно ли как "одним махом" отобразить поготовленный растр?
Если эти (1' и 4) проблемы будет решены в рамках модуля ~pi/lib/wincon/..., то и это вполне устроило бы. Пока что им и пользуюсь, отрисовывая растр по точкам.
Может Вам попробовать пакетный графический редактор ( находится на странице forth.org.ru/~yz )
На базе этого кода и еще tprint этого же автора н-ое время назад накидал
проект Простого Node редактора ( найти можно в разделе подфорума SPF)
По Приведенным Вам пунктам у него еще не вся функциональность, но
попробовать его возможности уже можно.
P.S. Проект, пока сырой и как обычно говорят:)
нет много времени, что бы продолжить его развитие.
Пока рисует в монохроме и есть еще недоработанные места.
[quote="Варнак"] ... 4) можно ли как "одним махом" отобразить поготовленный растр?
Если эти (1' и 4) проблемы будет решены в рамках модуля ~pi/lib/wincon/..., то и это вполне устроило бы. Пока что им и пользуюсь, отрисовывая растр по точкам.[/quote]
Может Вам попробовать пакетный графический редактор ( находится на странице forth.org.ru/~yz )
На базе этого кода и еще tprint этого же автора н-ое время назад накидал
проект Простого Node редактора ( найти можно в разделе подфорума SPF)
По Приведенным Вам пунктам у него еще не вся функциональность, но
попробовать его возможности уже можно.
P.S. Проект, пока сырой и как обычно говорят:)
нет много времени, что бы продолжить его развитие.
Пока рисует в монохроме и есть еще недоработанные места.
|
|
|
|
Добавлено: Пт ноя 16, 2007 14:20 |
|
|
|
|