Страницы (2): [1] 2 » Показать все 54 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Технические вопросы (https://hlfx.ru/forum/forumdisplay.php?forumid=20)
-- Библиотека FLTK (https://hlfx.ru/forum/showthread.php?threadid=5048)
Библиотека FLTK
Изрядно намучившись с поддержкой самописной библиотеки виджетов vWidgets в волатиле, я принял решение от неё отказаться (код - в девнул, воспоминания - в треш). Решил найти готовое решение. Основные критерии - простота, кроссплатформенность, легковесность бинарников при статической линковке, возможность использовать в коммерческих проектах с закрытыми сорцами. В итоге выбор пал на FLTK
http://www.fltk.org/index.php
Потыкал - вроде интересно выглядит. Под линукс и макось собралась почти без проблем, всего каких-то два часа гугления и работы в консоли (это реально "быстро" и "без проблем", есличо) примеры под макосью заработали. Под винду пока собирать не пробовал.
Кто-нибудь пользовался этой библиотекой? Какие подводные камни?
Что используете в своих проектах, монстры типа Qt или wxWidgets, или что-то аналогично-легковесное?
__________________
Сам не писал под фултик и пользовался всего одной программой на нём (Dillo). Могу только сказать, что штатный селектор файлов там никуда не годится. Хотя не знаю, потребуется ли тебе такого рода функциональность в движке. А с кнопками-ползунками-скролами проблем не встречал.
Но это так, заметки мимокрокодила.
__________________
__________________
Kiss my ass if you don't like my Ford!
------------------------------------------
Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.
http://button.moddb.com/download/medium/125531.png
__________________
Так, ну что. Пока полёт нормальный, под виндой работает.
__________________
Сильно тулкит увеличивает размер исполняемого файла на венде?
Прилично увеличивает, учитывая, что я линкую статически и FLTK, и CRT.
Просмотрщик текстур увеличился с 250 кб до 500 кб.
Остальные пока ещё не перевёл на FLTK.
Добавлено 02-11-2017 в 21:29:
Зато под макосью просмотрщик текстур наконец-то заработал, и не пришлось сношать мозги с Cocoa.
__________________
А Джек будешь переносить?
Мне всё больше нравится FLTK! Портирование, по крайней мере, простых GUI-программ - это удовольствие.
__________________
XaeroX
Там есть возможность ловить кейкоды нажимаемых клавиш, а не символы?
nemyax
Нет, конечно. Это вообще где-то есть?
__________________
В gtk заявлено: https://developer.gnome.org/gdk3/st...tml#GdkEventKey
XaeroX
Супер! Ждем порт Джека
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
nemyax
Я подозреваю, что эти hardware_keycode не только не портабельны, но ещё и от модели клавиатуры зависят. Толку-то с них?
__________________
Надо бы повыяснять, совпадают ли они с вот этими.
Это виндовые виртуальные сканкоды, они ведь и называются virtual. С чего они должны совпадать?
В движках делают специальные маппинги системные сканкоды <-> движковые сканкоды, и таблицы соответствий для каждой ОС свои.
__________________
XaeroX
По какой доке собирал для венды?
Если остальное на си, могут ли возникнуть сложности при подключении туда FLTK?
Без доков, просто создал новый проект, добавил туда все нужные файлы, настройки сделал по вкусу.
Сложности будут, наверное - т.к. FLTK написан на С++, там классы.
__________________
А собирал какой студией?
nemyax 2017.
__________________
XaeroX
И какую версию FLTK ты взял?
Дык самую свежую на тот момент, с их сайта. FL_ABI_VERSION = 10302.
__________________
Да, вроде отличная штука. Для сборки за глаза хватает студии 2008 экспресс, исполняшки маленькие и статически линкованные. Круть.
nemyax
Дык!
__________________
__________________
I'm on github
I'm on opendesktop.org
FreeSlave
Ты предлагаешь вшить в игру аппаратные сканкоды всех известных клавиатур?
__________________
Уж наверняка цифробуковки-то у большинства клавиатур имеют одинаковые кейкоды.
Кстати, они таки доступны через static int Fl::event_key().
nemyax
Это не аппаратные сканкоды, а виртуальные. От ОС зависят, в общем.
__________________
Не исключено, что в FLTK они обёрнуты одинаково. Но чё гадать, с другой стороны.
XaeroX, походу это можно через виртуальные сканкоды сделать. В SDL есть такая штука https://wiki.libsdl.org/SDL_Scancode
Нажатие на A на azerty клавиатурах возвращает SDL_SCANCODE_Q. Глянул сорцы - там маппинги на коды в ОС. Так что ты прав, хардвар-коды тут лишние.
__________________
I'm on github
I'm on opendesktop.org
Вопросики скорее не про саму либу, а про организацию взаимодействия её с OpenGL. Вот сделал я подкласс Fl_Gl_Window и реализовал триде-вьюпорт для геометрии. Всё зашибись, но теперь я хочу ещё один подкласс, который будет дваде-вьюпортом для ювишек.
Все данные на отрисовку доступны через один и тот же VBO — и для 3D, и для 2D. Надо ли предпринимать что-нибудь особенное, чтобы обе разновидности вьюпорта работали одновременно? Как лучше поступить с шейдерными прогами: создавать под каждый тип вьюпорта свою или юзать общую (и вкорячивать дополнительные условия и униформы в шейдеры)? Не будет ли гонок из-за общего доступа к VBO?
__________________
1 | struct render_state |
2 | { |
3 | GLuint shader_program_3d; |
4 | GLuint shader_program_2d; |
5 | GLuint vert_buffer; |
6 | GLint my_uniform3d_1; |
7 | GLint my_uniform3d_2; |
8 | GLint my_uniform2d_1; |
9 | GLint my_uniform2d_2; |
10 | }; |
render_state *shared_res; |
nemyax
Тебе надо расшарить идентификаторы между двумя OpenGL-контекстами. Это делается по-разному в зависимости от ОС. Например, под виндой это wglShareLists. В FLTK должно быть что-то такое в API (в Qt, допустим, есть).
__________________
nemyax
Я же говорю - "судя по коду"
if ( context ) { |
if ( context_list && nContext ) [b]wglShareLists( context_list[0], context )[/b]; |
add_context( context ); |
} |
__________________
Карочы надо взять у первого GL-окошка контекст через void *my_shared_context = first_good_gl_win->context(); и потом явно задавать его другим нужным окошкам через other_gl_win->context(my_shared_context);. Тогда будет шариться.
Временная зона GMT. Текущее время 14:50. | Страницы (2): [1] 2 » Показать все 54 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024