Рисование
|
|
WQ | Дата: Четверг, 19.03.2015, 15:12 | Сообщение # 1 |
Полковник
Группа: Проверенные
Сообщений: 215
Статус: Offline
| Код #Include Once "fltk-c.bi" #Include "window9.bi" #Include "win\mmsystem.bi"
Dim Shared As MMRESULT wTimerId Dim Shared As Double nTicks=500 Dim Shared As Fl_Window Ptr win
Sub DrawMe(ByVal win As Any Ptr) Static As Double zoom = 2 Fl_WindowMakeCurrent win DrawPushMatrix DrawSetRGBColor 255,255,0 DrawBeginComplexPolygon DrawRectFill 0,1, 700,100 DrawEndComplexPolygon DrawSetRGBColor 0,0,128 DrawBeginComplexPolygon DrawArc2 200,1000,60,0,90 ' почему-то без этой строки не работает нормально
DrawEndComplexPolygon DrawPopMatrix
DrawSetColor FL_BLACK DrawSetFont Fl_TIMES, 5+40*zoom DrawStr Time, nTicks, 80 DrawEndComplexPolygon nTicks-=0.05
If nTicks<-900 Then nTicks=200 End Sub
Function TimeProc(uID As UINT,uMsg As UINT,dwUser As Integer,iw1 As Integer,iw2 As Integer) As Integer DrawMe win Function=0 End Function
Function On_Timer(msInterval As Integer) As Integer Dim As TIMECAPS tc Dim As UINT wTimerRes Dim As Integer TARGET_RESOLUTION = 1 'timer resolution, millisecs timeGetDevCaps(@tc,Len(TIMECAPS)) wTimerRes = min(max(tc.wPeriodMin,TARGET_RESOLUTION),tc.wPeriodMax)
'If TARGET_RESOLUTION < tc.wPeriodMin Then 'EndIf 'print tc.wPeriodMin,tc.wPeriodMax
wTimerId = timeSetEvent(msInterval,_ '// delay' wTimerRes,_ '// resolution' @TimeProc,_ '// callback function' NULL,_ '// user data' TIME_PERIODIC) '// or TIME_ONESHOT Function=0 End Function
On_Timer(2)
win = Fl_WindowNew(640,480,"Drawing03.bas") Fl_WindowShow win
Fl_WindowMakeCurrent win
Fl_Run
Посмотрел функции FLTC для рисования и написал этот код. Рисование здесь несколько отличается от других библиотек Задача - чтоб текст двигался без мерцания. Возможно ли это? Да, использую таймер с наименьшим интервалом - для большей плавности, обычный WinApi-таймер в 50 раз медленнее.
|
|
| |
haav | Дата: Пятница, 20.03.2015, 11:25 | Сообщение # 2 |
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Статус: Offline
| Ты рисуешь прямо на окне. При рисовании не используется двойная буферизация, поэтому и мерцание . Если ты на winapi так же будешь рисовать по окну просто в одном контексте (например при сообщении WM_PAINT) , то мерцания не избежать. Когда используется двойная буферизация, то рисуется в одном контексте, а потом копируется в другой для вывода на экран.
В FLTK походу можно рисовать с двойной буферизацией. Есть пример на С++ :
Код // // "$Id: doublebuffer.cxx 8864 2011-07-19 04:49:30Z greg.ercolano $" // // Double-buffering test program for the Fast Light Tool Kit (FLTK). // // This demo shows how double buffering helps, by drawing the // window in a particularily bad way. // // The single-buffered window will blink as it updates. The // double buffered one will not. It will take just as long // (or longer) to update, but often it will appear to be faster. // // This demo should work for both the GL and X versions of Fl, // even though the double buffering mechanism is totally different. // // Copyright 1998-2010 by Bill Spitzak and others. // // This library is free software. Distribution and use rights are outlined in // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // // http://www.fltk.org/COPYING.php // // Please report all bugs and problems on the following page: // // http://www.fltk.org/str.php //
#include <FL/Fl.H> #include <FL/Fl_Single_Window.H> #include <FL/Fl_Double_Window.H> #include <FL/Fl_Box.H> #include <FL/fl_draw.H> #include <FL/Fl_Hor_Slider.H> #include <stdlib.h> #include <FL/math.h> #include <stdio.h>
// this purposely draws each line 10 times to be slow: void star(int w, int h, int n) { fl_push_matrix(); fl_translate(w/2, h/2); fl_scale(w/2, h/2); for (int i = 0; i < n; i++) { for (int j = i+1; j < n; j++)/* for (int k=0; k<10; k++)*/ { fl_begin_line(); fl_vertex(cos(2*M_PI*i/n+.1), sin(2*M_PI*i/n+.1)); fl_vertex(cos(2*M_PI*j/n+.1), sin(2*M_PI*j/n+.1)); fl_end_line(); } } fl_pop_matrix(); }
int sides[2] = {20,20};
void slider_cb(Fl_Widget* o, long v) { sides[v] = int(((Fl_Slider*)o)->value()); o->parent()->redraw(); }
void bad_draw(int w,int h,int which) { // for (int i=0; i<10; i++) { // fl_color(7); fl_rectf(0,0,w,h); fl_color(0); star(w,h); // fl_color(0); fl_rectf(0,0,w,h); fl_color(7); star(w,h); // } fl_color(FL_BLACK); fl_rectf(0,0,w,h); fl_color(FL_WHITE); star(w,h,sides[which]); // for (int x=0; x<sides[which]; x++) for (int y=0; y<sides[which]; y++) //fl_draw_box(FL_UP_BOX, 10*x, 10*y, 25,25, FL_GRAY); }
class single_blink_window : public Fl_Single_Window { void draw() {bad_draw(w(),h(),0); draw_child(*child(0));} public: single_blink_window(int x, int y,int w,int h,const char *l) : Fl_Single_Window(x,y,w,h,l) {resizable(this);} };
class double_blink_window : public Fl_Double_Window { void draw() {bad_draw(w(),h(),1); draw_child(*child(0));} public: double_blink_window(int x, int y, int w,int h,const char *l) : Fl_Double_Window(x,y,w,h,l) {resizable(this);} };
int main(int argc, char **argv) { if (!Fl::visual(FL_DOUBLE)) printf("Xdbe not supported, faking double buffer with pixmaps.\n"); Fl_Window w01(420,420,"Fl_Single_Window"); w01.box(FL_FLAT_BOX); single_blink_window w1(10,10,400,400,"Fl_Single_Window"); w1.box(FL_FLAT_BOX); w1.color(FL_BLACK); //w1.position(100,200); Fl_Hor_Slider slider0(20,370,360,25); slider0.range(2,30); slider0.step(1); slider0.value(sides[0]); slider0.callback(slider_cb, 0); w1.end(); w01.end(); Fl_Window w02(420,420,"Fl_Double_Window"); w02.box(FL_FLAT_BOX); double_blink_window w2(10,10,400,400,"Fl_Double_Window"); w2.box(FL_FLAT_BOX); w2.color(FL_BLACK); //w2.position(600,200); Fl_Hor_Slider slider1(20,370,360,25); slider1.range(2,30); slider1.step(1); slider1.value(sides[0]); slider1.callback(slider_cb, 1); w2.end(); w02.end(); w01.show(argc, argv); w1.show(); w02.show(); w2.show(); return Fl::run(); }
// // End of "$Id: doublebuffer.cxx 8864 2011-07-19 04:49:30Z greg.ercolano $". //
P.S. Вообще надо конечно сначала шерстить документацию (вот например про рисование: http://www.fltk.org/doc-1.3/drawing.html). А так просто перебирая примеры Джоши, мало что поймешь. Хотя примеры необходимы, чтобы понять и адаптироваться к оберткам Джоши. Библиотека очень объемная, не на один месяц изучения Но если разберешься в ней, никакие другие GUI либы нафиг не нужны будут. Я вот тут вчера долго не мог въехать, как отловить событие закрытия окна... Может где-то есть функция получения хендла окна, а там уже можно любое событие отловить, я же нашел способ с callback0. Все таки справка не очень удобно организована...
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
|
| |
WQ | Дата: Пятница, 20.03.2015, 20:56 | Сообщение # 3 |
Полковник
Группа: Проверенные
Сообщений: 215
Статус: Offline
| haav Спасибо за пример! Все таки не могу разобраться - можно ли компилировать fltk так, чтобы не нужно было таскать libfltk-c-1.3.3-32.dll ? На оф форуме есть что-то про FLTKSTATIC Покопаля - вроде такое было в старых версиях для freebasica 0.90... Тьфу
Сообщение отредактировал WQ - Пятница, 20.03.2015, 21:02 |
|
| |
haav | Дата: Суббота, 21.03.2015, 06:28 | Сообщение # 4 |
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Статус: Offline
| Цитата WQ ( ) Все таки не могу разобраться - можно ли компилировать fltk так, чтобы не нужно было таскать libfltk-c-1.3.3-32.dll ? На оф форуме есть что-то про FLTKSTATIC Покопаля - вроде такое было в старых версиях для freebasica 0.90...
FLTK написана для С++ и использует сишные классы при программировании с ней. Естественно внутреннее устройство FB(шных) классов и сишных классов различно (они несовместимы). Ты можешь конечно сам взять С++ (MINGW) , сделать обертку для каждой функции, метода и откомпилировать в Static lib. Но думаю, что ты не захочешь так париться . Можно конечно попросить у Джоши исходники с обертками и просто взять и откомпилировать на MINGW, может быть с небольшими правками. Дело в том, что Джоши для С++ использует майкрософтовский компилятор, а он компилирует статическую либу в формате .lib, а для FB нужна .a. Ну или попросить самого Джоши, чтобы он перекомпилировал свои исходники на GNU(шном) компиляторе.
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
|
| |
WQ | Дата: Четверг, 26.03.2015, 16:09 | Сообщение # 5 |
Полковник
Группа: Проверенные
Сообщений: 215
Статус: Offline
| Просто непонятно, раньше была такая возможность, а сейчас нет. На оф форуме никто про это не спрашивал, никому не нужно компилировать все в один файл? Та же проблема, что и с IUP 3.11 в freebasic 1.00 - какие-то функции не запилены и все. Из реальных вариантов видятся три: 1) забить на принципы и таскать dll рядом с программой. 2) использовать более старую версию и freebasic 0.90, вынести модули в lib или dll, прикрутить к программе написанной на freebasic 1.00 Я сильно подсел на динамические массивы в структурах, да и багов в новых версиях должно быть меньше. 3) не использовать fltk.Добавлено (26.03.2015, 16:09) --------------------------------------------- Возник еще один вопрос - как по FLTK, так и IUP. Как сделать элемент для ввода времени или даты?
|
|
| |
haav | Дата: Четверг, 26.03.2015, 18:22 | Сообщение # 6 |
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Статус: Offline
| Цитата WQ ( ) Возник еще один вопрос - как по FLTK, так и IUP. Как сделать элемент для ввода времени или даты?
Готовых нет. В обоих либах есть возможность рисовать или пытайся какие нибудь встроенные прикрутить, но это мне кажется будет некрасиво.
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
|
| |
WQ | Дата: Понедельник, 06.04.2015, 14:58 | Сообщение # 7 |
Полковник
Группа: Проверенные
Сообщений: 215
Статус: Offline
| Цитата haav ( ) отовых нет. В обоих либах есть возможность рисовать или пытайся какие нибудь встроенные прикрутить, но это мне кажется будет некрасиво. Где-то советуют при отсутствии таких элементов использовать элементы типа List. Я прикинул - вроде возможно.
И еще вопрос по fltk - можно там использовать иконки из ресурсов?
|
|
| |
haav | Дата: Понедельник, 06.04.2015, 15:34 | Сообщение # 8 |
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Статус: Offline
| Цитата WQ ( ) И еще вопрос по fltk - можно там использовать иконки из ресурсов?
Библиотека кроссплатформенная, а ресурсы только на винде. Возможно через задний проход в Windows можно сделать, но на Linux как будешь делать?
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
|
| |
WQ | Дата: Понедельник, 24.08.2015, 21:08 | Сообщение # 9 |
Полковник
Группа: Проверенные
Сообщений: 215
Статус: Offline
| Цитата haav ( ) Библиотека кроссплатформенная, а ресурсы только на винде. Возможно через задний проход в Windows можно сделать, но на Linux как будешь делать? Ну, вообще имелось в виду возможность загрузки изображений, находящихся в том или ином виде в скомпилированном файле программы. У меня в программе несколько десятков изображений и иконок - пришлось бы таскать этот зоопарк рядом с файлом программы. Если идти по такому, я бы даже сказал, "заманчивому", пути, то программа быстро раскабанеет в лучших традициях современных софтописателей - когда следующая версия больше предыдущей в разы
Например, та же IUP поддерживает и ресурсы из Win, и какой-то аналог из GTK, и просто представление изображений в виде строки с числами прямо в коде, можно и нарисовать картинку через ImageCreate и сразу загрузить в Button или Label.
На FLTK последней версии мне очень понравился пример с плавающей нарисованной строкой текста - выглядит лучше, чем то, что есть у меня сейчас. Думаю, как это все совместить.Добавлено (24.08.2015, 21:08) --------------------------------------------- Возник такой вопрос: Допустим, в программе в два потоках создаются 2 окна. В WinApi\window9 сделать, чтобы эти окна были независимы (сообщения, рисование, кнопочки всякие и т.д.), несложно - 2 процедуры, в каждой свой цикл. Собственно, таким способом мне удавалось запускать десяток независимых окон, и все стабильно работало.
А как такое сделать в FLTK? По-простому как-то не очень понятно, простое помещение функции создания окна и Fl_Run в отдельную процедуру, и запуск через ThreadCreate сопровождается разного рода глюками... Или из-заа того, что здесь FLTK на основе dll, есть какие-то ограничения?
|
|
| |
haav | Дата: Понедельник, 24.08.2015, 21:44 | Сообщение # 10 |
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Статус: Offline
| Цитата WQ ( ) А как такое сделать в FLTK? По-простому как-то не очень понятно, простое помещение функции создания окна и Fl_Run в отдельную процедуру, и запуск через ThreadCreate сопровождается разного рода глюками... Или из-заа того, что здесь FLTK на основе dll, есть какие-то ограничения? C этим вопросом лучше к Джоши. Неизвестно как он там реализовал интерфейс, а исходники вроде как закрыты.
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
|
| |
WQ | Дата: Вторник, 25.08.2015, 17:55 | Сообщение # 11 |
Полковник
Группа: Проверенные
Сообщений: 215
Статус: Offline
| Исходники есть в формате CodeBlocks, но у меня не компилируются, ставил на разные системы сборки с компилятором, не находит компилятор... Да и программирую-то я на Freebasic-е, а не на C++, который знаю плохо...
Да и скорее всего ничего не получится, почитал документацию к FLTK - там что-то вроде переключения между потоками, не слишком хорошо, как и в Autoit с его одним потоком. Не могу сделать два окна, чтобы в них одновременно что-то рисовалось, и не останавливалось при работе с другим окном. Не за этим я пришел в Freebasic
А я только разобрался, как в FLTK рисовать свои виджеты, собирался полностью переписать свои программы с IUP и WinApi. Нужна кроссплатформенность, малый объем, и как можно меньше всяких dll в папке с программой. Ну и захотелось внешний вид покрасивее. FLTK вроде полностью подходила, портабельная, виджеты красивые, а тут такая засада... IUP тоже портабельная, но кнопки там нарисовать красивые практически невозможно (я долго ее "мучал", а потом нарисовал пару элементов в FLTK, и мои IUP-кнопки теперь вызывают какие-то неприятные чувства), при большом числе элементов и высокой скорости отрисовки тормозит. Некоторые функции в IUP странные - можно сделать окно неправильной формы в Win и линукс, но на нем не видно ни одной кнопки или другого элемента! И зачем такое нужно? С другой строны, IUP на основе WinApi и Gtk, можно использовать функции из этих библиотек, там есть встраиваемый браузер (а мне он нужен обязательно), часто обновляется, создатели сами выкладывают lib-файлы для FB...
Далее есть еще GTK - на Win мне ее заставить работать не удалось, все время требует какие-то dll, целую кучу, хотя все они лежат рядом и пути прописаны. Мне бы какую-нибудь сборку, чтобы работало сразу, хотя бы возможности оценить. На линуксе работает, но тоже требует сначала установить кучу всего... Но там вроде тоже можно свои виджеты создавать? И документация есть...
Еще смотрел Wx-c, которая в сборке присутствует, примеров мало, кроссплатформенная ли она? Опять же все с C++...
Пока думаю одну часть, где не требуется многопоточность, писать на FLTK, а другую не знаю на чем
|
|
| |
haav | Дата: Вторник, 25.08.2015, 20:47 | Сообщение # 12 |
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Статус: Offline
| Цитата WQ ( ) Исходники есть в формате CodeBlocks, но у меня не компилируются, ставил на разные системы сборки с компилятором, не находит компилятор... Джоши использовал компиль gnu_gcc_compiler_i686_w64_492. В настройках проекта стоит именно он, для того, чтобы использовать предустановленный тобою компиль, надо его задать в настройках проекта. Более того, это ведь не весь проект, а только те файлы, которые написал Джоши, то есть нужно будет еще скачивать исходники FLTK и тоже подключать к проекту. В общем думаю пока это не для тебя
Цитата WQ ( ) Далее есть еще GTK - на Win мне ее заставить работать не удалось, все время требует какие-то dll, целую кучу, хотя все они лежат рядом и пути прописаны. Что-то не так делаешь. Я сейчас не помню, но вроде как GTK можно установить инсталлятором. Там по умолчанию все пути занесутся в переменные среды. Но судя по твоему желанию:
Цитата WQ ( ) Нужна кроссплатформенность, малый объем, и как можно меньше всяких dll в папке с программой тебе GTK не подойдет, потому, что там рантайм после установки весит где-то 25 мб. При чем это можно сказать базовый набор, а ведь для удобства и более красивого вида , есть еще Glade... В папке где будет установлен GTK , окажется очень много DLL-ок , да и EXE-шники тоже есть.
Цитата WQ ( ) Еще смотрел Wx-c, которая в сборке присутствует, примеров мало, кроссплатформенная ли она?
Да она кроссплатформенная, многие любят и хвалят ее, при том под винду всего одна DLL-ка, правда под 10 мб, но кто их сейчас считает эти мегабайты . И да ты прав, это опять враппер...
Цитата WQ ( ) при большом числе элементов и высокой скорости отрисовки тормозит Мне кажется для тебя самое лучшее - это IUP , пробуй подключать CAIRO для рисования , или используй изображения для кнопок. В конце концов можно под винду красивости в IUP расширить за счет WINAPI, а в linux за счет GTK. Но я все это не пробовал, мне вообще трудно что либо советовать по этим библиотекам, это с window9 я могу что-то подсказать, а там другая архитектура, требующая изучения и определенного практического использования.
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
|
| |
WQ | Дата: Вторник, 17.11.2015, 12:57 | Сообщение # 13 |
Полковник
Группа: Проверенные
Сообщений: 215
Статус: Offline
| haav Спасибо за советы. В IUP можно выводить текст с выбром шрифта, но при большой скорости и плавности велика нагрузка на процессор. Но там же можно рисовать и картинку в формате IupImage с заранее выведенным текстом, и нагрузка при этом гораздо меньше. До меня только недавно дошло, что IupImage - практически то же самое, что и Fbimage, получаемый от ImageCreate, указатель на пиксели (и оно же формат изображений в FLTK) Т.е., подходит любая библиотека для вывода текста в графическое окно freebasic, и где можно задать шрифт. Попробовал xfont - работает, кроссплатформенная, есть юникод, но там, как я понял, проблема с выбором шрифта, нужно их подготавливать заранее... Да, и CAIRO должно подойти, но под win просит кучу dll, есть freetype, там вроде только одна dll, но пока ищу что-нибудь, что можно статически привязать. Есть CD, библиотека от создателей IUP - довольно интересная вещь, она может прямо рисовать текст в IUP-окна, но также нагружает процессор. Статическая линковка, размер относительно небольшой. Через несколько операций нарисованную картинку можно вывести и в IupImage, но пока не смог заставить работать пример кода, который дается на сайте CD.Добавлено (17.09.2015, 00:06) --------------------------------------------- Еще один вопрос по FLTK - можно ли к произвольному виджету привязать плавающее меню из нескольких пунктов? В примерах только кнопка с меню, которая скачет при клике по окну.
Пишу свой виджет Input, нужно добавить возможность вставки\копирования текста из буфера через меню. У встроенного инпута тоже нет меню. Конечно, можно и обычные window меню привязать, но может есть способ через средства самой FLTK. Добавлено (03.10.2015, 15:50) --------------------------------------------- Написал Джоши на офф форум про проблемы с работай вставки-копирования в буфер обмена в Win и Linux. В итоге обнаружилась ошибка в функции FL_Paste, Джоши оперативно обновил враппер, за что ему спасибо большое. Позже постараюсь у него еще некоторые моменты прояснить. Добавлено (21.10.2015, 13:02) --------------------------------------------- Попросил Джоши добавить функцию Fl_XID - получение хэндла окна FLTK в Windows и идентификатора в Linux (непонятно, почему он ее сразу не добавил). Сейчас функция добавлена, и теперь сравнительно несложно интегрировать FLTK-окна в другие, в первую очередь, Windows-проекты. Добавлено (25.10.2015, 13:21) --------------------------------------------- Продолжаю разбираться с FLTK Благодаря выложенным все тем же Джоши кодам появилась возможность относительно простым способом выделить из FLTK некоторые полезные кросcплатформенные функции в виде небольших (20-30 кб) статических библиотек - например, функции работы с UTF (набор функций, позволяет перегонять строки zstring utf8 в wstring или массивы unicode символов и обратно простым и понятным способом, в отличие от WinApi, но при этом может использоваться и в Linux) или функции работы с именами файлов и папок. Насколько я понял, эти функции автономны и могут использоваться в несколько потоков, в отличие от функций создания GUI. Добавлено (17.11.2015, 12:57) --------------------------------------------- Сейчас выложена FB-версия FLTK со статической линковкой под Win и Linux, теперь не требуется таскать dll\so, и размеры программ уменьшаются как минимум на 300-350 кб.
|
|
| |
haav | Дата: Вторник, 17.11.2015, 14:14 | Сообщение # 14 |
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Статус: Offline
| Цитата WQ ( ) Сейчас выложена FB-версия FLTK со статической линковкой под Win и Linux, теперь не требуется таскать dll\so, и размеры программ уменьшаются как минимум на 300-350 кб.
Спасибо за новость! Кстати, ты проверял, как с кириллицей на Linux? У меня крякозябры на Linux mint. На винде все нормально. Если у тебя тоже траблы, отпиши тогда пожалуйста Джоши, может косяк именно в библиотеке, а не в FB , хотя может и второе...
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
|
| |
WQ | Дата: Вторник, 29.03.2016, 15:19 | Сообщение # 15 |
Полковник
Группа: Проверенные
Сообщений: 215
Статус: Offline
| Цитата haav ( ) Спасибо за новость! Кстати, ты проверял, как с кириллицей на Linux? У меня крякозябры на Linux mint. На винде все нормально. Если у тебя тоже траблы, отпиши тогда пожалуйста Джоши, может косяк именно в библиотеке, а не в FB , хотя может и второе... Я не так часто под linux сейчас пишу, сейчас проверил эту статическую версию - компилятор ругнулся на отсутствие GL lib. Решение sudo apt-get install libgl1-mesa-dev (в Ubuntu) После этого все вроде компилируется Рекомендуется переходить на FB 1.04, Джоши под последнюю версию все это видимо пишет.Добавлено (18.11.2015, 00:54) --------------------------------------------- В общем я малость запутался, думал, речь в целом про FLTK в Linux... сейчас все перепроверил на Ubuntu 14.04 + FB 1.04: да, что-то на этой новой версии кириллица не работает. Напишу на оф форуме. Добавлено (19.11.2015, 15:20) --------------------------------------------- haav Джоши отписался, что знает о проблеме, но решения у него нет. Пишет, что код для .so и для .a библиотек одинаковый. Предлагает использовать динамическую версию. Я, в свою очередь, погрузился в исходники, которые Джоши выложил. Пока вижу, что проблема на стороне языка C, но я в нем тоже новичек. Возможно, решение на поверхности, т.к. Джоши - пользователь латиницы, и у него не возникает обычных проблем с кодировками и всем таким прочим, которые есть у пишущих на кириллице. Может быть, русскоязычный спец по С сразу бы что-нибудь подсказал.
В любом случае, кроме кириллицы, мне потребуются и иероглифы, и FLTK в Ubuntu по-простому не может их показать, даже динамическая версия - скорее всего, дело в шрифтах, которые в FLTK ограничены. Добавлено (29.03.2016, 15:19) --------------------------------------------- Джоши выложил новый C враппер для FLTK http://www.freebasic.net/forum/viewtopic.php?f=14&t=24547
Старую тему он вообще просил удалить (и все файлы для загрузки убрал). Насколько могу понять, все библиотеки динамические, что, с моей точки зрения, не есть хорошо. Из отличий также - версия FLTK для ARM типа Raspberry PI, а вот это очень хорошо.
Сообщение отредактировал WQ - Среда, 18.11.2015, 00:46 |
|
| |
|