Графика 3М (GUI на базе OpenGL)
Модератор: Модераторы
Re: Графика 3М (GUI на базе OpenGL)
Пишу в linux-е Debian.
вот как выглядит строчка
c.TextOut(5,14,'Test Тест');
исходник
Добавлено спустя 5 минут 37 секунд:
шрифт имеет кирилицу
вот как выглядит строчка
c.TextOut(5,14,'Test Тест');
исходник
Добавлено спустя 5 минут 37 секунд:
шрифт имеет кирилицу
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
Re: Графика 3М (GUI на базе OpenGL)
olegy123, ну это же обычные проблемы с кодировкой.
Re: Графика 3М (GUI на базе OpenGL)
Неворуженным взглядом видно что вместо юникода приходит утф8.
TextOut объявлено как
поэтому либо ручками перекодировать, либо бом в файл добавить, либо {$codepage utf8}
Добавлено спустя 1 минуту 49 секунд:
а в каком месте тут OpenGL?
Добавлено спустя 28 минут 14 секунд:
да и такого
>>Код полностью родной(native) Lazarus/FPC.
кода тут кот наплакал, попробуй запустить это под виндой
TextOut объявлено как
Код: Выделить всё
procedure TextOut (x,y:integer;text:unicodestring); virtual;поэтому либо ручками перекодировать, либо бом в файл добавить, либо {$codepage utf8}
Добавлено спустя 1 минуту 49 секунд:
а в каком месте тут OpenGL?
Добавлено спустя 28 минут 14 секунд:
да и такого
>>Код полностью родной(native) Lazarus/FPC.
кода тут кот наплакал, попробуй запустить это под виндой
Re: Графика 3М (GUI на базе OpenGL)
FreeType использует UTF8 кодировку.Лекс Айрин писал(а):olegy123, ну это же обычные проблемы с кодировкой.
Почему в lasarus не выводит кириллицу, ведь текст кода пишется в UTF8, поэтому Utf8toAnsi как AnsitoUtf8 результата не дает. Я пока не знаю почему.
На сколько я знаю код пишется в utf. Если нужно перевести в старую консоль, то нужно UTF8toConsole переводит.zub писал(а):Неворуженным взглядом видно что вместо юникода приходит утф8.
TextOut объявлено как
TFPCustomCanvas.TextOut (x,y:integer;text:string); virtual; -> TFPCustomDrawFont.DoDrawText (x,y:integer; text:string); virtual; abstract; - > TFreeTypeFont.DoDrawText (atx,aty:integer; atext:string); override;
2D пока пишется канвой(TFPImageCanvas). Потом буду переводить в OpenGL. Сроки горят.zub писал(а):а в каком месте тут OpenGL?
zub писал(а):Код полностью родной(native) Lazarus/FPC.
Цель написать проект без привлечения сторонних библиотек. Сначала была идея привлечь BGRABitmap, но там активно используется asm и стали привлекать OpenGL.
Re: Графика 3М (GUI на базе OpenGL)
{$codepage utf8} поставь в начале модуля - заработает.
>>Цель написать проект без привлечения сторонних библиотек.
freetype это не сторонняя библиотека?
>>Цель написать проект без привлечения сторонних библиотек.
freetype это не сторонняя библиотека?
Re: Графика 3М (GUI на базе OpenGL)
ставил - не работает.
Добавлено спустя 7 минут 36 секунд:
Сейчас никакой оптимизации и без подключения иных библиотек.
По мне бы подключить Cairo или даже Skia - но Cairo еще как то описан в lazarus-е и он есть в Linux-е, хотя он активно использует OpenGL и нужно переключать контексты. А это усложняет. Но под винду его нет, нужно докачивать либлы. То со Skia еще хуже - кроме как src под с++ да еще требует пакет "ninja+pythonа" его не заполучить.
Добавлено спустя 1 минуту 55 секунд:
Пока подняться хотя бы на уровень nanoVG/nanoGUI
Добавлено спустя 7 минут 36 секунд:
цель - работа на Arm-ах..zub писал(а):freetype это не сторонняя библиотека?
Сейчас никакой оптимизации и без подключения иных библиотек.
По мне бы подключить Cairo или даже Skia - но Cairo еще как то описан в lazarus-е и он есть в Linux-е, хотя он активно использует OpenGL и нужно переключать контексты. А это усложняет. Но под винду его нет, нужно докачивать либлы. То со Skia еще хуже - кроме как src под с++ да еще требует пакет "ninja+pythonа" его не заполучить.
Добавлено спустя 1 минуту 55 секунд:
Пока подняться хотя бы на уровень nanoVG/nanoGUI
Re: Графика 3М (GUI на базе OpenGL)
>>ставил - не работает
А у меня работает...
А у меня работает...
Re: Графика 3М (GUI на базе OpenGL)
Буква похожая на 'D' = это символ #208
когда UTF8ToCP1251, UTF8ToKOI8 - то кол-во букв совпадает.
Добавлено спустя 24 минуты 54 секунды:
Чую что нужно через
FT_Select_Charmap() в режим FT_ENCODING_UNICODE переводить
когда UTF8ToCP1251, UTF8ToKOI8 - то кол-во букв совпадает.
Добавлено спустя 24 минуты 54 секунды:
Чую что нужно через
FT_Select_Charmap() в режим FT_ENCODING_UNICODE переводить
Re: Графика 3М (GUI на базе OpenGL)
и так не работает?
c.TextOut(5,14,UTF8ToUTF16('Test Тест'));
чето ты темнишь
c.TextOut(5,14,UTF8ToUTF16('Test Тест'));
чето ты темнишь
Re: Графика 3М (GUI на базе OpenGL)
Ничего не меняется.
Возможно это проблема инициализации локальных переменных, возможно нужно принудительно вызывать FT_Select_Charmap с флагом FT_ENCODING_UNICODE, но чтобы это сделать нужно перелапатить весь Lazarus, из коробки не дает мне писать в /usr/lib/lazarus/.. файл, а при перекомпиляции хочет папку создавать "lib/$(TargetCPU)-$(TargetOS)".. это все трудности перевода.
Я этим потом займусь.
Сейчас я не могу понять почему в выборке вместо данные указатель на объект(на сам объект) мне приходят данные (данные на указатель на сам объект) - где то есть ошибка синтаксиса программы, а возможно компилятор не до понял меня.. видимо компилятор слишком толерантен с приведением типов указателей одного типа к другому..
Возможно это проблема инициализации локальных переменных, возможно нужно принудительно вызывать FT_Select_Charmap с флагом FT_ENCODING_UNICODE, но чтобы это сделать нужно перелапатить весь Lazarus, из коробки не дает мне писать в /usr/lib/lazarus/.. файл, а при перекомпиляции хочет папку создавать "lib/$(TargetCPU)-$(TargetOS)".. это все трудности перевода.
Я этим потом займусь.
Сейчас я не могу понять почему в выборке вместо данные указатель на объект(на сам объект) мне приходят данные (данные на указатель на сам объект) - где то есть ошибка синтаксиса программы, а возможно компилятор не до понял меня.. видимо компилятор слишком толерантен с приведением типов указателей одного типа к другому..
Re: Графика 3М (GUI на базе OpenGL)
FPC какой используется? может стоит попробовать в транке?
судя по
TFPCustomCanvas.TextOut (x,y:integer;text:string);
чтото старенькое
судя по
TFPCustomCanvas.TextOut (x,y:integer;text:string);
чтото старенькое
Re: Графика 3М (GUI на базе OpenGL)
обновил с 1.6 до 1.8.0RC5
Добавлено спустя 10 часов 25 минут 10 секунд:
Тут для себя сделал открытие - оказывается переменная на класс - это уже ссылка(ссылочная переменная).
Form:TForm; это есть на самом деле Form:^TForm;
Теперь понимаю почему сишники не любят так паскаль.
Добавлено спустя 5 минут 47 секунд:
Тогда возникает вопрос, где происходит передача ссылки, а где имеет место копирование данных.
Добавлено спустя 10 часов 25 минут 10 секунд:
Тут для себя сделал открытие - оказывается переменная на класс - это уже ссылка(ссылочная переменная).
Form:TForm; это есть на самом деле Form:^TForm;
Теперь понимаю почему сишники не любят так паскаль.
Добавлено спустя 5 минут 47 секунд:
Тогда возникает вопрос, где происходит передача ссылки, а где имеет место копирование данных.
Re: Графика 3М (GUI на базе OpenGL)
>>Тут для себя сделал открытие
Поздравляю! я бы постеснялся такое прилюдно говорить))
>>Теперь понимаю почему сишники не любят так паскаль.
есть object`ы
>>Тогда возникает вопрос, где происходит передача ссылки, а где имеет место копирование данных.
происходит передача указателя по ссылке и по значению, данные будь добр копировать сам
Поздравляю! я бы постеснялся такое прилюдно говорить))
>>Теперь понимаю почему сишники не любят так паскаль.
есть object`ы
>>Тогда возникает вопрос, где происходит передача ссылки, а где имеет место копирование данных.
происходит передача указателя по ссылке и по значению, данные будь добр копировать сам
Re: Графика 3М (GUI на базе OpenGL)
olegy123 писал(а):Тут для себя сделал открытие - оказывается переменная на класс - это уже ссылка(ссылочная переменная).
День мы сидим, другой день сидим, а на третий день Орлиный Глаз заметил, что у сарая нет одной стены.
zub писал(а):есть object`ы
автодеструкторов тоже нет.
Re: Графика 3М (GUI на базе OpenGL)
Увсе выборку сделал..
Работает
OnMouseDown,OnMouseUp,OnMouseMove,OnMouseEnter,OnMouseLeave для TGGUIButton компонента.
Работает
OnMouseDown,OnMouseUp,OnMouseMove,OnMouseEnter,OnMouseLeave для TGGUIButton компонента.
