Отрисовка / скрытие заголовка и границ окна. (Linux)

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Andreich
постоялец
Сообщения: 268
Зарегистрирован: 17.04.2008 12:33:43

Отрисовка / скрытие заголовка и границ окна. (Linux)

Сообщение Andreich »

Существует окно (создано при помощи glut/opengl)... Оно выглядит как черный прямоугольник! Как заставить систему рисовать для этого окна границы и заголовок?

P.S. Операционная система: Linux (Ubuntu 8.04); Lazarus 0.9.26

P.P.S. Если кто-нибудь знает, как рисовать в родном окне Lazarus (например на Form1) при помощи OpenGL - подскажите пожалуйста, как это реализуется?
Аватара пользователя
FedeX
постоялец
Сообщения: 422
Зарегистрирован: 27.03.2006 09:25:34
Откуда: украина, житомир

Сообщение FedeX »

В Лазаре есть компонент TOpenGLContext. При установке лазаря из репозитория этот компонент лежит в Убунте где-то здесь /usr/lib/lazarus/components/opengl.
Насчёт глут - я с ним не работал, но насколько знаю там по умолчанию создаёться окно с заголовком. Тоесть ты что-то не так инициализировал.
Ещё если знать хендл х-окна можно рисовать на практически произвольном окне в Линуксе и отображать прятать его рамку и т.д. В LCL хендл х-окна (а возможно гтк виджета - не помню точно) вродебы лежит в Form.Handle (где-то на этом форуме упоминалось). Где-то на этом сайте кажеться есть статья как работать с х-ами напрямую.
Аватара пользователя
B4rr4cuda
энтузиаст
Сообщения: 693
Зарегистрирован: 28.12.2007 06:48:35

Сообщение B4rr4cuda »

Я пробовал работать с GL и рисовать на форме - впечатления отвратные. В общем не знаю как под виндой, а под лином все мерцает. Форма постоянно обновляется и перерисовывается поверх gl контекста. Ужас. Хороший результат дает чистый fpc +glut или fpc+SDL. Многие крайне не рекомендуют глут. Честно говоря хз по каким причинам, но не любят его. Если цель геймдев - то SDL - хороший выбор (пакет JEDI-SDL). Честно говоря покопал я это дело и плюнул. Тут моя запись в блоге на эту тему.
Некоторое время покопал в сторону Ogre3D. Хороший графический кроссплатформенный движок. Минус у него один - нужно писать на сях.
Аватара пользователя
FedeX
постоялец
Сообщения: 422
Зарегистрирован: 27.03.2006 09:25:34
Откуда: украина, житомир

Сообщение FedeX »

B4rr4cuda писал(а):Я пробовал работать с GL и рисовать на форме - впечатления отвратные. В общем не знаю как под виндой, а под лином все мерцает.

Наверно что-то не так было сделано - демка-то поставляемая с lazarus (/usr/lib/lazarus/examples/openglcontrol) замечательно работает. Если руками создавал контекст, возможно не выставил двойную буферизацию или ещё что...

Многие крайне не рекомендуют глут. Честно говоря хз по каким причинам, но не любят его

Наверно из-за лицензии. Хотя есть freeglut. А ещё наверно из-за того, что в документации к глуту так и написано, что он для демонстраций и уроков, а не для серьёзных приложений.

SDL, да - хорош. Только в нашем веке уже лучше не юзать SDLSurface-ы и пр. растровые возможности SDL - лучше связку - SDL+OpenGL.

Ещё GLScene сносно работала и под Линухом и под Виндой. ВОзможностей там тьма, хотя всё это со временем поростает мохом. К тому же я её пробовал на Лазаре 0.9.24, а на 0.9.26 попробовал ради интереса поставить - уже не ставиться что-то. Просит JpegForLazarus, а я не знаю куда он делся. Мож кто знает?
Andreich
постоялец
Сообщения: 268
Зарегистрирован: 17.04.2008 12:33:43

Сообщение Andreich »

FedeX писал(а):Насчёт глут - я с ним не работал, но насколько знаю там по умолчанию создаёться окно с заголовком. Тоесть ты что-то не так инициализировал.

Даже не знаю,... пример брал с lazarus wiki (http://wiki.lazarus.freepascal.org/OpenGL_Tutorial), но там у них картинки с заголовками и границами!.. а у меня их нет.

B4rr4cuda писал(а):Хороший результат дает чистый fpc +glut или fpc+SDL. Многие крайне не рекомендуют глут. Честно говоря хз по каким причинам, но не любят его.

Тоже сейчас пробую lazarus+glut,.. пока вроде нормально, особых нареканий нет!
Аватара пользователя
VirtUX
энтузиаст
Сообщения: 880
Зарегистрирован: 05.02.2008 09:52:19
Откуда: Крым, Алушта

Сообщение VirtUX »

Одному из окон в проекте установил свойство BorderStyle := bsNone. Если использовать процедуру Form.ShowModal; для показа этого окна, то заголовок все-равно отрисовывается. Если использовать Form.Show, то заголовка с рамкой нет, но мне не подходит такой вариант, т.к. вызывающая форма должна быть заблокирована для редактирования. Виджет QT 4.5. Lazarus 0.9.27 SVN от 13 мая. Это бага или можно как-то по другому решить проблему?
alexmai
постоялец
Сообщения: 106
Зарегистрирован: 02.02.2009 13:58:42

Сообщение alexmai »

VirtUX писал(а):Одному из окон в проекте установил свойство BorderStyle := bsNone. Если использовать процедуру Form.ShowModal; для показа этого окна, то заголовок все-равно отрисовывается. Если использовать Form.Show, то заголовка с рамкой нет, но мне не подходит такой вариант, т.к. вызывающая форма должна быть заблокирована для редактирования. Виджет QT 4.5. Lazarus 0.9.27 SVN от 13 мая. Это бага или можно как-то по другому решить проблему?

Попробуйте установить это свойство BorderStyle := bsNone установить в самом методе Show.
правда у меня виджет gtk2 Lazarus 27 , но заголовок убирает и Show и в ShowModal.
На этом форуме я уже задавал другой вопрос, что в КДЕ нельзя сделать тип окна только с системным крестиком, все время вылазят все иконки , и сворачивания и разворачивания.
Аватара пользователя
EmeraldMan
постоялец
Сообщения: 149
Зарегистрирован: 16.10.2008 08:41:51
Откуда: Белгород
Контактная информация:

Сообщение EmeraldMan »

Возникла проблемка с glut в Ununtu 9.04.
Под Windows написаны простенькие программы (напр. вращающийся куб).
Подключаю glut и рисую чайник glutSolidTeapot(1.5); тоже все работает.
Компилирую в Ubuntu и тут начались проблемы... Прога не запускается.
Убираю из проекта чайник и подключение модуля glut - все работает.
Докачал библиотеки Glut (libglut3 и др.), подключаю модуль glut - запускается! (До этого даже просто с подключенным модулем не запускалась).
Снова использую функцию glutSolidTeapot, запускаю - окно формы только появляется и сразу исчезает...
Может кто сталкивался с этим или знает выход из ситуации?
insight81
незнакомец
Сообщения: 1
Зарегистрирован: 22.03.2010 13:41:17

Сообщение insight81 »

Отвечаю первоначальный вопрос по теме.
Сам столкнулся с подобной проблемой. Решается так: в ubuntu необходимо отключить визуальные эффекты (Система-Параметры-Внешний вид-Визуальные эффекты-Без эффектов). После этого окна на базе glut отображаются нормально, в смысле с заголовком.
Удачи.
Ответить