Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт мар 19, 2024 12:27

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - Quark C64
Автор Сообщение
  Заголовок сообщения:  Re: Quark C64  Ответить с цитатой
QChart прошел по той же схеме подключения


Вложения:
qt2.png
qt2.png [ 182.89 Кб | Просмотров: 17352 ]
Сообщение Добавлено: Вт июн 16, 2020 04:39
  Заголовок сообщения:  Re: Quark C64  Ответить с цитатой
Victor__v писал(а):
Ну так что?
Есть 64-битный Кварк в виде DLL?

Нет, он такой пока не нужен. Он в виде forth.h и компилируется в составе проекта - например, с GUI. Соответственно, и dll создает пускай внешняя программа.
Сообщение Добавлено: Сб сен 28, 2019 17:32
  Заголовок сообщения:  Re: Quark C64  Ответить с цитатой
Ну так что?
Есть 64-битный Кварк в виде DLL?

Если есть, то какие конвенции вызозов поддерживаются.
И может ли Кварк пересохранить себя в виде DLL c записью новых функций в секцию экспорта?
Сообщение Добавлено: Сб сен 28, 2019 10:23
  Заголовок сообщения:  Re: Quark C64  Ответить с цитатой
Да, вот тут написано, что ppm поддерживается.
https://doc.qt.io/qt-5/qimage.html#reading-and-writing-image-files

В принципе да, получается просто еще одна разновидность двумерного массива пикселов (что и нужно), просто с другим заголовком.
Сообщение Добавлено: Вт июл 09, 2019 00:33
  Заголовок сообщения:  Re: Quark C64  Ответить с цитатой
В P6 только заголовок текстовый, rgb - это обычные бинарные байты
по байту на каждый цвет.
Сообщение Добавлено: Пн июл 08, 2019 23:50
  Заголовок сообщения:  Re: Quark C64  Ответить с цитатой
vikt писал(а):
Возможно не к месту, я использовал простой формат ppm
https://ru.wikipedia.org/wiki/Portable_anymap
он элементарно пишется и читается всем, чем угодно

Действительно, интересная штука. Вот возможность записи/чтения в очевидной текстовой форме как раз и подкупает. Только боюсь, на обработку придется тратить больше времени. bmp все-таки самый простой вариант с точки зрения представления пикселов, причем достаточно фиксированного заголовка. Пока тестирую написанное, и скорость у bmp более или менее приемлемая. Понятно, что игровая графика при такой реализации получается с натяжкой, но для нее есть OpenGL.
Сообщение Добавлено: Пн июл 08, 2019 21:46
  Заголовок сообщения:  Re: Quark C64  Ответить с цитатой
Возможно не к месту, я использовал простой формат ppm
https://ru.wikipedia.org/wiki/Portable_anymap
он элементарно пишется и читается всем, чем угодно

P6
#тут возможна строка комментариев это текстовый заголовок
X Y
255
тут конец текстового заголовка, идут байты rgb в количестве X*Y
Сообщение Добавлено: Пн июл 08, 2019 15:49
  Заголовок сообщения:  Re: Quark C64  Ответить с цитатой
Уфф. Создание в памяти bmp, похоже, работает. И с учетом того, что момент обновления выбирается в программе, скорость вполне приличная. Остается еще один интересный вопрос - ведь с таким подходом "экранов" в программе становится много - столько, сколько будет создано QImage для вывода картинок.


Вложения:
neutron001.png
neutron001.png [ 3.01 Кб | Просмотров: 22989 ]
Сообщение Добавлено: Пн июл 08, 2019 02:08
  Заголовок сообщения:  Re: Quark C64  Ответить с цитатой
В принципе, какого-то специального требования нет. Однако аналог объекта Canvas очень даже удобен. Достаточно просто ставить пиксели и другие объекты куда-то в буфер, а они оттуда сами забираются. Так сделано в Кварке, где вся графика рисуется без всякого знания о GDI со стороны программиста, просто буфер регулярно забирается движком Кварка и посылается на экран (с самостоятельным определением реального размера и прочего). По сравнение с написанием обработчика wm_paint это существенно проще, потому что при необходимости вывода чего-то другого в другой части программы уже не нужно думать, как это будет стыковаться с уже написанным для wm_paint кодом.

Я уже посматриваю в сторону QImage.loadFromData, который может принимать на вход указатель на массив, содержащий графический файл. В принципе, нет ничего сложного в подготовке bmp в самой программе, достаточно сделать фиксированный заголовок. Чуть неудобнее то, что инициировать отрисовку этого bmp придется программисту же, каждый раз, когда он захочет увидеть на экране сделанные изменения.
Сообщение Добавлено: Сб июл 06, 2019 21:04
  Заголовок сообщения:  Re: Quark C64  Ответить с цитатой
Hishnik писал(а):
... каждый пиксель ...

А - зачем каждый и - по одному?
Или - задачей диктуется?
Сообщение Добавлено: Сб июл 06, 2019 12:11
  Заголовок сообщения:  Re: Quark C64  Ответить с цитатой
Немного предсказуемый, но все равно неприятный эффект - никакие ухищрения с QImage и отложенным обновлением отрисовки не помогают привести двумерную графику к приемлемому уровню производительности. Проблема в отсылке сообщений из Форта в Qt - каждый пиксель надо "обернуть" в сообщение, поместить в FIFO, а оттуда его заберет основной поток приложения. А это все существенно медленнее, чем просто писать в массив. Так что еще одно препятствие образовалось на пути к красивым приложениям...
Сообщение Добавлено: Пн июл 01, 2019 01:08
  Заголовок сообщения:  Re: Quark C64  Ответить с цитатой
Начал работать TextEdit. Загрузка, сохранение, подсчет строк и отправка i-й строки в форт-машину.


Вложения:
screen02.png
screen02.png [ 39.05 Кб | Просмотров: 24420 ]
Сообщение Добавлено: Вс фев 24, 2019 18:44
  Заголовок сообщения:  Re: Quark C64  Ответить с цитатой
Hishnik писал(а):
В целом там форт-машина упакована в два массива - код и данные. Если их сохранить и потом загрузить, компиляцию можно будет пропустить. Правда, возможен вариант, когда при старте будет генерироваться много данных, и попытка записи непомерно раздует сохраняемые файлы.

Отлично, думаю вполне нормальное решение. Генерацию больших объемов данных можно и отложить. Да и при современных объемах и характеристиках ПК даже несколько мегабайт данных это ничтожно мало.
Hishnik писал(а):
Свой экран есть у форт-машины, его можно достать в Qt при необходимости. Виджеты создаются движком Qt, но их параметрами управляет форт-машина. Наложение виджетов на экран Форта может быть некоторой проблемой из-за особенностей отрисовки, но можно будет делать виджет "изображение" и связывать его с экраном Форта.

Вот как. В таком случае, думаю виджет вполне подходящее решение. Тогда, возможно, имеет смысл сделать экран не один, а инстансом — т.е. вот есть экран по умолчанию, но если надо — то можно еще наклепать сколько надо и сделать их виджетами? Чтобы можно было сделать несколько виджетов и/или окон. Например при наличии двух мониторов можно будет на один вывести красивую 3D графику, а на втором разные элементы управления, виджеты или еще что-то нужное. Или для каждого экрана лучше просто делать отдельную форт-машину форком в отдельном потоке?
Сообщение Добавлено: Чт фев 21, 2019 00:29
  Заголовок сообщения:  Re: Quark C64  Ответить с цитатой
VoidVolker писал(а):
Думаю, компиляции в ШК и проходом каким-нибудь шифром сверху для большинства задач упаковки приложения будет вполне достаточно.

В целом там форт-машина упакована в два массива - код и данные. Если их сохранить и потом загрузить, компиляцию можно будет пропустить. Правда, возможен вариант, когда при старте будет генерироваться много данных, и попытка записи непомерно раздует сохраняемые файлы.

VoidVolker писал(а):
Какие еще ожидаются новые функции по сравнению с предыдущей версией кварка? А как работает и взаимодействует виртуальный экрана совместно с Qt и его виджетами? Я так понимаю Qt создает этот виртуальный экран и отдает его кварку? При этом в него можно рендерить как OpenGL и отдельные пиксели как раньше, так и виджеты Qt? Или это несколько разных слоев?


Свой экран есть у форт-машины, его можно достать в Qt при необходимости. Виджеты создаются движком Qt, но их параметрами управляет форт-машина. Наложение виджетов на экран Форта может быть некоторой проблемой из-за особенностей отрисовки, но можно будет делать виджет "изображение" и связывать его с экраном Форта.
Сообщение Добавлено: Ср фев 20, 2019 23:48
  Заголовок сообщения:  Re: Quark C64  Ответить с цитатой
Ага, в целом понятно. Думаю, компиляции в ШК и проходом каким-нибудь шифром сверху для большинства задач упаковки приложения будет вполне достаточно.
Hishnik писал(а):
На Qt делается то, что "пишется один раз", а вот размеры виджетов, положение, текст, да и действие - это все меняется от проекта к проекту и даже в рамках модификаций одного проекта

Это да, тут полностью согласен.
Какие еще ожидаются новые функции по сравнению с предыдущей версией кварка? А как работает и взаимодействует виртуальный экрана совместно с Qt и его виджетами? Я так понимаю Qt создает этот виртуальный экран и отдает его кварку? При этом в него можно рендерить как OpenGL и отдельные пиксели как раньше, так и виджеты Qt? Или это несколько разных слоев?
Сообщение Добавлено: Ср фев 20, 2019 23:36

Часовой пояс: UTC + 3 часа [ Летнее время ]


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB