![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
OpenGL портит виндовские хинты! Как бороться?
WondeRu © (2005-06-02 14:14:00)При использовании OpenGL (как обычной так и GLScene) в оконном режиме в WinXP возникают жуткие ситуации:
1. Часть хинтов показывает левые данные (из прошлого хинта)... обычно проявляется на панели задач, когда хочешь посмотреть хинт приложения.
2. Полное пропадание каких бы то ни было хинтов во всей системе до того как не выгрузишь прогу с OpenGL
Кто замечал? Как бороться?
WondeRu (2005-06-03 21:27:00) [1]ancara © (03.06.05 17:30) [22]
вроде на SP2 такого нет... Но идея хорошая, буду анализировать и проверять!
Спасибо всем)
Chuvak (2005-06-03 17:45:00) [2]Такая же фигня с ГЛ...Винда СП1...
ancara (2005-06-03 17:30:00) [3]У меня такое тоже было в свое время, голову ломал - ничего путного не придумал. Поставил ServicePack 2 - трабл исчез. (Был WinXP SP1).
Пришел к выводу, что причина крылась в Винде, возможно это и не так...
2 WondeRU: у Вас, кстати, какой SP?
WondeRu (2005-06-03 15:46:00) [4]XProger © (03.06.05 15:34) [20]
а может и не в OpenGL даже...
такое происходит не всегда... GLScene тоже бывает сносит хинты...
XProger (2005-06-03 15:34:00) [5]А 100000 треугольников?
Если тоже нормально, то проблема действительно в самом коде, а может и не в OpenGL даже...
WondeRu (2005-06-03 15:16:00) [6]XProger © (03.06.05 14:41) [18]
вот треугольник нормально отрабатывает! Даже кубик!
XProger (2005-06-03 14:41:00) [7]WondeRu, напиши вращающийся треугольник и посмотри как там будет... у меня ничего подобного не происходило :P
Гарри Поттер (2005-06-03 14:07:00) [8]WondeRu © (02.06.05 14:14)
Замечал, есть такое. Как бороться не знаю, не разбирался.
Sapersky (2005-06-03 13:25:00) [9]Вряд ли OpenGL сам по себе портит хинты - скорее, это ошибка в программе. Например, задаётся неправильный аргумент OGL-функции - указатель или индекс для адресации, номер того же дисплейного списка или ещё что-нибудь. A OGL для скорости его правильность не проверяет (D3D так себя ведёт, во всяком случае), и на уровне драйвера влезает в область памяти, где лежат хэндлы хинтов...
Необязательно даже на уровне драйвера - KOL исключительно с помощью WinAPI вытворял подобные фокусы, правда, в Win 9x.
WondeRu (2005-06-03 13:14:00) [10]Моя программа - составляющая огромного комплекса... существует куча форм где необходимы Хинты... так что заменить их чем-то другим не представляется возможным!
XProger © (02.06.05 23:26) [4]
Result := DefWindowProc(hwnd, message, wParam, lParam);
в WinProc делаешь?
ничего не делаю! у меня стандартное VCL окно, а рисую на пенельке (TPanel).
Strech (03.06.05 4:44) [5]
Такая ситуация происходит, когда ты работаешь с видеопамятью
не работаю!
!Trinix (2005-06-03 12:01:00) [11]Кстати, как я понимаю Hint'ы это всплывающие подсказки, какие всплывающие подсказки могут быть в opengl или glscene. Лично я использую такой метод:
Персонаж находится в dummycube, в этом dummycube находится еще один (или другой объект, только скрытый), collision проверяет, есть ли столкновение, если да, то с чем. В нижней (верхней или около курсора) части экрана становится visible меню с надписью объекта (подписывается при наведении). Если вы используете не 3(2)D – игру (текстовая игра), то можете место стандартного Hint'а использовать свой собственный или какой-нибудь компонент.
!Trinix (2005-06-03 10:34:00) [12]<offtopic>А я в Чите.
XProger (2005-06-03 10:26:00) [13]<offtopic>!Trinix, 10:26 я уже не в Якутии живу ;)
!Trinix (2005-06-03 10:15:00) [14]Какое время у вас XProger ©? (16:15)
XProger (2005-06-03 10:14:00) [15]Всплывающая подсказка (Hint)
!Trinix (2005-06-03 10:09:00) [16]Что такое "хинты"?
XProger (2005-06-03 09:52:00) [17]так как NT не допускает прямого доступа к "железу" на уровне приложения...
Strech (2005-06-03 09:46:00) [18]>XProger ©
а почему она не должна запускаться? ;)
XProger (2005-06-03 09:21:00) [19]Strech, а Ваша программа в Win NT осях вооще запускалась при прямом то доступе к видеопамяти...? ;)
Strech (2005-06-03 04:44:00) [20]Такая ситуация происходит, когда ты работаешь с видеопамятью. У меня была такая ситуация, когда я попытался нарисовать что-то за пределами экрана при прямом доступе к видео. Начали глючить не только хинты, но и курсоры, иконки и прочая беда.