САПР на Lazarus

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

Re: САПР на Lazarus

Сообщение olegy123 » 20.11.2017 07:59:54

Объектов.
Софтово или хардкорно.
glRenderMode(GL_SELECT);
или свои способы.

просто glRenderMode(GL_SELECT) в OpenGL 3.x уже deprecated.
olegy123
долгожитель
 
Сообщения: 1643
Зарегистрирован: 25.02.2016 12:10:20

Re: САПР на Lazarus

Сообщение zub » 20.11.2017 15:31:14

Софтово. Математически определяют попадание примитива в область выбора
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение olegy123 » 20.11.2017 18:55:03

Советуют читать буфер цвета, буфер глубины и буфер трафарета.. как это все вместе увязать?

и еще пробелема, не могу прочитать png файл с доступом к Raw данным
Нагуглил это:
Код: Выделить всё
var
ImgReader: TLazReaderBMP;
IntfImg: TLazIntfImage;
aprasas: TRawImageDescription;
begin
ImgReader := TLazReaderBMP.Create;
IntfImg := TLazIntfImage.Create(0,0);
//IntfImg.DataDescription.Init_BPP32_B8G8R8A8_M1_BIO_TTB(0, 0);
aprasas.Init_BPP32_B8G8R8A8_BIO_TTB(0, 0); // there is
IntfImg.DataDescription:=aprasas; // solution
IntfImg.LoadFromFile('red.bmp', ImgReader);
DumpMem(PCardinal(IntfImg.PixelData), IntfImg.DataDescription.Height*IntfImg.DataDescription.Width);
ImgReader.Destroy;
IntfImg.Destroy;
end;
Но не работает. Есть буффер нужными размерами, но он пустой. Может я что то не знаю.
Не хотелос бы линковать левые libpng.so.
olegy123
долгожитель
 
Сообщения: 1643
Зарегистрирован: 25.02.2016 12:10:20

Re: САПР на Lazarus

Сообщение zub » 21.11.2017 04:51:16

>>Советуют читать буфер
Плохой совет. зачем попадания примитива в область связывать с отрисовкой? кроме токо - область выделения это не 1-2 пикселя, она может быть очень большой

>>Нагуглил это:
это в другой топик
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение olegy123 » 21.11.2017 08:18:11

zub писал(а):Плохой совет. зачем попадания примитива в область связывать с отрисовкой? кроме токо - область выделения это не 1-2 пикселя, она может быть очень большой
Да, я это знаю.
Но не все вопросы можно решать через поиск по всем объектам. Это пока рисуешь линиями - поиск не сложный, а когда начнутся сложные тела, калькуляция усложнится сильно.
Тогда иметь "аппаратное" ускорение - это выход.

zub писал(а):это в другой топик
не другой. Сам же вроде с текстурами хочет поработать. Просто я столкнулся с тем, что штатными средствами почему то доступ к Data^ закрыт. Не хотелось бы плугинить строение средства типа BGRA, или libpng.
olegy123
долгожитель
 
Сообщения: 1643
Зарегистрирован: 25.02.2016 12:10:20

Re: САПР на Lazarus

Сообщение zub » 21.11.2017 15:25:46

>>а когда начнутся сложные тела, калькуляция усложнится сильно
Считаешь что когда рисуешь сложные тела эти калькуляции ненужны?

>>Тогда иметь "аппаратное" ускорение - это выход.
нету никакого аппаратного ускорения в glRenderMode(GL_SELECT) это такаяже софтварная приблуда. и работает она только с темиже линиями\треугольниками - неважно насколько сложные тела ты рисуешь

>>не другой. Сам же вроде с текстурами хочет поработать.
у меня небыло никаких проблем при доступе к пикселям. хотя делал это нечасто. явно просто забыта какаято элементарщина, неохота вникать
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение zub » 20.03.2018 15:28:56

Сломалась система локализации zcad`а
fpc (или лазарус?) стал очищать генерируемые po файлы - теперь пересборку проекта переживают только resourcestring, все что в po добавлял сам zcad (много рантайм данных нуждается в локализации) вычищается компилятором.
Придется придумывать чтото другое((
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение Максим » 20.03.2018 16:12:54

Поподробнее можно?

Сейчас при перегенерации гарантируется, что в файлы PO попадают только элементы, имеющиеся в файлах RSJ (RST для старых версий FPC) и LRJ (для форм со включённой локализацией). Предыдущая реализация в ряде случаев не убирала ненужные элементы из файлов, являлась источником ошибок и была излишне сложной.

Соответственно, следует убедиться, что используется последняя ревизия Lazarus (не забыть при этом пересобрать файл updatepofiles.exe, если он используется) и использовать строки ресурсов для перевода рантайм данных, не пытаясь самостоятельно напрямую записывать что-либо в файлы PO.
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 597
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Re: САПР на Lazarus

Сообщение zub » 20.03.2018 16:29:06

>>Сейчас при перегенерации гарантируется, что в файлы PO попадают только элементы, имеющиеся в файлах RSJ (RST для старых версий FPC) и LRJ (для форм со включённой локализацией)
я так и понял

>>и использовать строки ресурсов для перевода рантайм данных
они на то и рантайм, что во время компиляции про них ничего неизвестно

>>не пытаясь самостоятельно напрямую записывать что-либо в файлы PO.
Я сразу подозревал что это решение когда нибудь подведет)), но оно проработало довольно долго и как ни странно было очень удобным. Сейчас наверно придется разделить локализацию на 2 ро - рантайм и компилетайм

Добавлено спустя 2 минуты 10 секунд:
>>Сейчас при перегенерации гарантируется, что в файлы PO попадают только элементы, имеющиеся в файлах
можно уточнить кто за это причастен - лазарус или фпц? и с какой ревизии? я пользую английские версии, поломалось наверно давно, заметил только сегодня

Добавлено спустя 4 минуты 45 секунд:
>>Поподробнее можно?
в po генерируемый компилятором я подмешивал свои данные и сам следил за их актуальностью

Добавлено спустя 2 минуты 23 секунды:
Код: Выделить всё
#: uzestrconsts.rsunknownfileformat
msgid "Unknown file format"
msgstr ""

#: zcadexternal.acn_3dpoly~caption
msgid "3DPolyLine"
msgstr ""

rsunknownfileformat - компилятора
zcadexternal.acn_3dpoly~caption - мое

Добавлено спустя 4 минуты 30 секунд:
нет возможности оставлять строки помеченные какимто образом? содержащие какойнить символ например?
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение Максим » 20.03.2018 16:56:26

zub писал(а):>>и использовать строки ресурсов для перевода рантайм данных
они на то и рантайм, что во время компиляции про них ничего неизвестно

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

zub писал(а):можно уточнить кто за это причастен - лазарус или фпц? и с какой ревизии? я пользую английские версии, поломалось наверно давно, заметил только сегодня

Это моя деятельность в Lazarus (начиная с 1 марта). Ревизии 57426 (была откачена ревизией 57431), 57489, 57491.

Добавлено спустя 54 секунды:
Максим писал(а):нет возможности оставлять строки помеченные какимто образом? содержащие какойнить символ например?

Нет.
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 597
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Re: САПР на Lazarus

Сообщение zub » 20.03.2018 17:29:22

>>Не понял. :) Переводчику-то всё равно нужны их фиксированные значения.
В 2х словах:
то что нужно перевести грузится в рантайме, переводится руками и как то используется. на момент компиляции это неизвестно.
в зкаде есть команда "updatepo" - по ней все что было загружено в рантайме, но ненайдено в zcad.po туда добавляется, а все что было не использовано из zcad.po выпиливается. после ее выполнения имеем свои данные подмешаные в zcad.po. При следующей перекомпиляции проекта подмешанные данные расползались по zcad.%lang%.po

>>Нет.
ок.
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение Максим » 20.03.2018 17:42:13

zub писал(а):В 2х словах:
то что нужно перевести грузится в рантайме, переводится руками и как то используется. на момент компиляции это неизвестно.
в зкаде есть команда "updatepo" - по ней все что было загружено в рантайме, но ненайдено в zcad.po туда добавляется, а все что было не использовано из zcad.po выпиливается. после ее выполнения имеем свои данные подмешаные в zcad.po. При следующей перекомпиляции проекта подмешанные данные расползались по zcad.%lang%.po

То есть перекомпиляция всё равно выполняется? Тогда почему бы не генерировать некий файл *.inc со строками ресурсов?

Добавлено спустя 2 минуты 38 секунд:
Впрочем, если никак иначе не получается, то действительно лучше всего выделить такие строки в отдельный файл PO. Лазарь его никогда трогать не будет. Такое решение будет надёжно работать в долгосрочной перспективе.
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 597
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Re: САПР на Lazarus

Сообщение zub » 20.03.2018 20:06:58

>>То есть перекомпиляция всё равно выполняется?
Изначально я хотел поискать другой способ обновить локализованные файлы. Но чето както привык. Да перекомпиляция здесь совсем лишняя
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение Максим » 20.03.2018 20:29:34

Это можно делать после обновления главного файла PO при помощи утилитки updatepofiles в каталоге tools, либо дёргать функцию из модуля translations подобно ей.
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 597
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Re: САПР на Lazarus

Сообщение zub » 20.03.2018 20:41:31

Спасибо!

Добавлено спустя 13 часов 28 минут 39 секунд:
Максим
разделил файлы было
Код: Выделить всё
zcad.po

стоало
Код: Выделить всё
zcad.po
zcadrt.po

лазарус продолжает хозяйничать в zcadrt.po это уже бажок похоже
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Пред.След.

Вернуться в Разработки на нашем сайте

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 37

Рейтинг@Mail.ru