169 похожих чатов

@Kpilippenok and @all По поводу эпопеи компонента OpenGL в версиях 3.2,

3.6.
В общем, с помощью дебага и экспериментов, я выяснил, что функции gdk_x11_get_default_xdisplay() и gdk_x11_get_default_screen() работают нормально.
Во всяком случае, я взял glxtest.pp и запихнул их в проект Лазаруса с Tform по нажатию кнопки - этот тест работает.
Проблема проявляется с самим фактом TOpenGLControl. Т.е. проблема с glxChooseFBConfig() появляется, если у объекта свойство visible поставить в true.
Если с этого момента начать дебажить по шагам, то всё идёт своим чередом до файла wincontrol.inc, процедура TWinControl.CreateWnd(), внутри которой строка 7538 вызов функции TWSWinControlClass(WidgetSetClass).CreateHandle(Self, Params); , которая собственно вызывает из компонента OpenGL функцию TWOpenGLControl.CreateHandle(), далее из которой доходит до glxChooseFBConfig(), которая возвращает nil.
Вот я дошёл до этой стадии, но мне не понять суть проблемы и как её решить?
Что делает такого TOpenGLControl, что сносит башню у функций gdk и glx?

17 ответов

17 просмотров

может @rouse_79 что скажет?

ну так почитайте доку на glxChooseFBConfig

Yan Bessonov- Автор вопроса
Boris Usievich
ну так почитайте доку на glxChooseFBConfig

Я читал. Если бы это помогло, то вопроса бы не было.

Iluha Companets
может @rouse_79 что скажет?

Тут не подскажу, не смотрел этот gl

Yan Bessonov
Я читал. Если бы это помогло, то вопроса бы не был...

оно выдает null если на входе что-то не то.

Yan Bessonov
Я читал. Если бы это помогло, то вопроса бы не был...

Return Values Null Indicates that either - an undefined GLX attribute is encountered in the specified AttributeList, that no FBConfig matches the specified values for the GLX attributes or - that screen is invalid.

Yan Bessonov- Автор вопроса
Boris Usievich
оно выдает null если на входе что-то не то.

Функции библиотеки gdk отлично работают за пределами компонента opengl. Атрибуты тоже менял в исходниках компонента и перекомпилировал. Не помогает.

Yan Bessonov- Автор вопроса
Serg
Return Values Null Indicates that either - an un...

Перетаскивал в исходник компонента атрибуты из glxtest.pp - не работает. Сами по себе функции gdk работают в тесте glxtest.pp Я делаю вывод, что проблема где то в лазарусе или компоненте OpenGL применительно к X11.

Yan Bessonov
Функции библиотеки gdk отлично работают за предела...

Проблема очевидно в параметрах, которые передаются, ибо библиотеке глубоко пофиг, кто ее вызывает

Yan Bessonov
Перетаскивал в исходник компонента атрибуты из glx...

запросили то, чего найти не получилось, получился пустой список результатов

Yan Bessonov- Автор вопроса
Boris Usievich
Проблема очевидно в параметрах, которые передаются...

У функций библиотеки gdk нет параметров. Атрибуты для glxChooseFBConfig определяются Самим компонентом opengl

Yan Bessonov- Автор вопроса
Serg
запросили то, чего найти не получилось, получился ...

Функция CreateOpenGLContextAttrList() получает на входе вполне нормальные параметры, из которых формируются атрибуты, которые используются в glxChooeFBConfig()

Yan Bessonov
У функций библиотеки gdk нет параметров. Атрибуты ...

а это что тогда: { Attributes to choose context with glXChooseFBConfig. Similar to Attr, but not exactly compatible. } AttrFB: Array[0..10] of integer = ( GLX_X_RENDERABLE, 1 { true }, GLX_RED_SIZE, 1, GLX_GREEN_SIZE, 1, GLX_BLUE_SIZE, 1, GLX_DOUBLEBUFFER, 1 { true }, none); ... FBConfigs := glXChooseFBConfig(dpy, DefaultScreen(dpy), AttrFB, FBConfigsCount);

Yan Bessonov- Автор вопроса
Yan Bessonov
В смысле?

файл unit_glxtest.pas: строка 38: опереляется константа AttrFB строка 144, 245: константа AttrFB передается 3-м параметром (AttributeList) в функцию glXChooseFBConfig()

Yan Bessonov- Автор вопроса
Serg
файл unit_glxtest.pas: строка 38: опереляется конс...

Это понятно, но какие из этого выводы? Атрибуты частично насильно поменял и glxChooseFBConfig() перестала возвращать nil. Подробности выше.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта