Наше комьюнити:   OpenGL Shader Lab  •  Half-Life FX  •  Форум  
HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > Библиотека FLTK
Fast Light Toolkit
Страницы (3): « 1 2 [3]   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 2014

Рейтинг



Не исключено, что в FLTK они обёрнуты одинаково. Но чё гадать, с другой стороны.

Сообщить модератору | | IP: Записан
Сообщение: 171787

Старое сообщение 26-02-2018 17:22
- За что?
FreeSlave
Житель форума

Дата регистрации: Nov 2007
Проживает: Тула
Сообщений: 776

Рейтинг



XaeroX, походу это можно через виртуальные сканкоды сделать. В SDL есть такая штука https://wiki.libsdl.org/SDL_Scancode
Нажатие на A на azerty клавиатурах возвращает SDL_SCANCODE_Q. Глянул сорцы - там маппинги на коды в ОС. Так что ты прав, хардвар-коды тут лишние.

__________________
I'm on github
I'm on bitbucket
I'm on launchpad
I'm on opendesktop.org

Сообщить модератору | | IP: Записан
Сообщение: 171789

Старое сообщение 26-02-2018 19:02
- За что?
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 2014

Рейтинг



Вопросики скорее не про саму либу, а про организацию взаимодействия её с OpenGL. Вот сделал я подкласс Fl_Gl_Window и реализовал триде-вьюпорт для геометрии. Всё зашибись, но теперь я хочу ещё один подкласс, который будет дваде-вьюпортом для ювишек.
Все данные на отрисовку доступны через один и тот же VBO — и для 3D, и для 2D. Надо ли предпринимать что-нибудь особенное, чтобы обе разновидности вьюпорта работали одновременно? Как лучше поступить с шейдерными прогами: создавать под каждый тип вьюпорта свою или юзать общую (и вкорячивать дополнительные условия и униформы в шейдеры)? Не будет ли гонок из-за общего доступа к VBO?

Сообщить модератору | | IP: Записан
Сообщение: 172871

Старое сообщение 09-06-2018 09:51
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Новосибирск
Сообщений: 28078
Нанёс повреждений: 466 ед.
Возраст: 32

Рейтинг



Награды
 
[1 награда]


Цитата:
nemyax писал:
Надо ли предпринимать что-нибудь особенное, чтобы обе разновидности вьюпорта работали одновременно

Нужно расшарить ресурсы между контекстами обеих вьюпортов.
Не могу сказать, как это делается в FLTK, увы.
Цитата:
nemyax писал:
Не будет ли гонок из-за общего доступа к VBO?

Что именно ты собираешься писать в VBO каждый кадр? Нельзя обойтись стейтом и униформами?
Цитата:
nemyax писал:
Как лучше поступить с шейдерными прогами: создавать под каждый тип вьюпорта свою или юзать общую (и вкорячивать дополнительные условия и униформы в шейдеры)?

Нужно профилировать и сравнивать. Я бы (при отсутствии времени на профилирование) предпочёл первый вариант.

__________________
So she began again: 'Où est ma chatte?' which was the first sentence in her French lesson-book. The Mouse gave a sudden leap out of the water, and seemed to quiver all over with fright. 'Oh, I beg your pardon!' cried Alice hastily, afraid that she had hurt the poor animal's feelings. 'I quite forgot you didn't like cats.'

Сообщить модератору | | IP: Записан
Сообщение: 172872

Старое сообщение 09-06-2018 10:09
-
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 2014

Рейтинг



Цитата:
XaeroX писал:
Нужно расшарить ресурсы между контекстами обеих вьюпортов.

Ну то есть если по-простому, то завести что-нибудь наподобие:

C++ Source Code:
struct render_state
{
    GLuint shader_program_3d;
    GLuint shader_program_2d;
    GLuint vert_buffer;
    GLint my_uniform3d_1;
    GLint my_uniform3d_2;
    GLint my_uniform2d_1;
    GLint my_uniform2d_2;
};



И в обоих подклассах определить и присвоить:
C++ Source Code:
render_state *shared_res;

Так получается?

Цитата:
XaeroX писал:
Что именно ты собираешься писать в VBO каждый кадр?

Не, у меня содержимое будет перезаписываться только при выполнении команд в основной проге.

Сообщить модератору | | IP: Записан
Сообщение: 172873

Старое сообщение 09-06-2018 10:28
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Новосибирск
Сообщений: 28078
Нанёс повреждений: 466 ед.
Возраст: 32

Рейтинг



Награды
 
[1 награда]


nemyax
Тебе надо расшарить идентификаторы между двумя OpenGL-контекстами. Это делается по-разному в зависимости от ОС. Например, под виндой это wglShareLists. В FLTK должно быть что-то такое в API (в Qt, допустим, есть).

Цитата:
nemyax писал:
у меня содержимое будет перезаписываться только при выполнении команд в основной проге.

Тогда в чём может заключаться гонка?

Добавлено 09-06-2018 в 17:42:

Судя по коду, FLTK по дефолту шарит все контексты с первым.
Ну тогда вообще ничего специально делать не надо.

__________________
So she began again: 'Où est ma chatte?' which was the first sentence in her French lesson-book. The Mouse gave a sudden leap out of the water, and seemed to quiver all over with fright. 'Oh, I beg your pardon!' cried Alice hastily, afraid that she had hurt the poor animal's feelings. 'I quite forgot you didn't like cats.'

Сообщить модератору | | IP: Записан
Сообщение: 172874

Старое сообщение 09-06-2018 10:42
-
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 2014

Рейтинг



Цитата:
XaeroX писал:
Тебе надо расшарить идентификаторы между двумя OpenGL-контекстами. Это делается по-разному в зависимости от ОС.

Ага, благодарю, буду копать.

Цитата:
XaeroX писал:
Тогда в чём может заключаться гонка?

Мало ли, вдруг при чистом чтении она тоже может происходить. Я как-то glVertexAttribPointer-ом насовал вершинам атрибутов с соседних вершин дальше по массиву, чтобы не дублировать. Так у меня рендерилось то ожидаемое, то кокаета хрень, как повезёт. Вот теперь дую на воду.

Сообщить модератору | | IP: Записан
Сообщение: 172875

Старое сообщение 09-06-2018 10:51
- За что?
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 2014

Рейтинг



Цитата:
XaeroX писал:
Судя по коду, FLTK по дефолту шарит все контексты с первым.
Ну тогда вообще ничего специально делать не надо.

Не похоже на то. Стоят рядом два одинаковых GL-окошка, одно рендерит буфер, другое нет. Идентификаторы они на отрисовку отдают одни и те же.

Сообщить модератору | | IP: Записан
Сообщение: 173255

Старое сообщение 04-07-2018 14:00
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Новосибирск
Сообщений: 28078
Нанёс повреждений: 466 ед.
Возраст: 32

Рейтинг



Награды
 
[1 награда]


nemyax
Я же говорю - "судя по коду"

C++ Source Code:
if ( context ) {
    if ( context_list && nContext ) wglShareLists( context_list[0], context );
        add_context( context );
}

__________________
So she began again: 'Où est ma chatte?' which was the first sentence in her French lesson-book. The Mouse gave a sudden leap out of the water, and seemed to quiver all over with fright. 'Oh, I beg your pardon!' cried Alice hastily, afraid that she had hurt the poor animal's feelings. 'I quite forgot you didn't like cats.'

Сообщить модератору | | IP: Записан
Сообщение: 173256

Старое сообщение 04-07-2018 14:02
-
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 2014

Рейтинг



Карочы надо взять у первого GL-окошка контекст через void *my_shared_context = first_good_gl_win->context(); и потом явно задавать его другим нужным окошкам через other_gl_win->context(my_shared_context);. Тогда будет шариться.

Сообщить модератору | | IP: Записан
Сообщение: 173258

Старое сообщение 05-07-2018 13:21
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 09:32. Новая тема    Ответить
Страницы (3): « 1 2 [3]   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > Библиотека FLTK
Fast Light Toolkit
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Chain Studios © 2005-2018

Рейтинг@Mail.ru