Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2005.10.09;
Скачать: [xml.tar.bz2];

Вниз

OpenGL портит виндовские хинты! Как бороться?   Найти похожие ветки 

 
WondeRu ©   (2005-06-02 14:14) [0]

При использовании OpenGL (как обычной так и GLScene) в оконном режиме в WinXP возникают жуткие ситуации:
1. Часть хинтов показывает левые данные (из прошлого хинта)... обычно проявляется на панели задач, когда хочешь посмотреть хинт приложения.
2. Полное пропадание каких бы то ни было хинтов во всей системе до того как не выгрузишь прогу с OpenGL

Кто замечал? Как бороться?


 
XProger ©   (2005-06-02 17:43) [1]

Есть множество вариантов:
1) Переустановить винду
2) Сменить внутренности системного блока
3) Убрать вообще хинты
4) Нормально организовать игровой цикл
5) А кому они нужны? Забить!


 
Кефир87   (2005-06-02 21:11) [2]

Никогда такого небыло. Было что-то более странное... Закрываю дельфю, закрываю свою прогу... Выключаю пк... Появляется "Невозможно завершить процесс OpenGL.glPushMatrix"...


 
WondeRu ©   (2005-06-02 23:00) [3]

1) Переустановить винду
такой глюк проявляется как минимум на 20-30 компьютерах в Москве, Самаре, Владивостоке, Питере и еще туче городах... так что переустановка не поможет, так и смена места жительства ;)

2) Сменить внутренности системного блока
начиная от ширпотреба, заканчивая серваками мощными... такое везде...

3) Убрать вообще хинты
Необходимы для нормальной работы других приложений!

4) Нормально организовать игровой цикл
У меня не "игровой" :)
организация очень уж проста:
есть дисплейней списки+несколько сотен примитивов, меняющие свое положение в зависимости от работы программы...
отрисовка происходит по WM_PAINT и 4 раза в секунду по таймеру(так нада, чтоб все моргало и не занимало больше 2% процессора) ...

5) А кому они нужны? Забить!
Незя на клиентов забивать ;)


 
XProger ©   (2005-06-02 23:26) [4]

:)
Result := DefWindowProc(hwnd, message, wParam, lParam);
в WinProc делаешь?


 
Strech   (2005-06-03 04:44) [5]

Такая ситуация происходит, когда ты работаешь с видеопамятью. У меня была такая ситуация, когда я попытался нарисовать что-то за пределами экрана при прямом доступе к видео. Начали глючить не только хинты, но и курсоры, иконки и прочая беда.


 
XProger ©   (2005-06-03 09:21) [6]

Strech, а Ваша программа в Win NT осях вооще запускалась при прямом то доступе к видеопамяти...? ;)


 
Strech   (2005-06-03 09:46) [7]

>XProger ©
а почему она не должна запускаться? ;)


 
XProger ©   (2005-06-03 09:52) [8]

так как NT не допускает прямого доступа к "железу" на уровне приложения...


 
!Trinix ©   (2005-06-03 10:09) [9]

Что такое "хинты"?


 
XProger ©   (2005-06-03 10:14) [10]

Всплывающая подсказка (Hint)


 
!Trinix ©   (2005-06-03 10:15) [11]

Какое время у вас XProger ©? (16:15)


 
XProger ©   (2005-06-03 10:26) [12]

<offtopic>!Trinix, 10:26 я уже не в Якутии живу ;)


 
!Trinix ©   (2005-06-03 10:34) [13]

<offtopic>А я в Чите.


 
!Trinix ©   (2005-06-03 12:01) [14]

Кстати, как я понимаю Hint"ы это всплывающие подсказки, какие всплывающие подсказки могут быть в opengl или glscene. Лично я использую такой метод:
Персонаж находится в dummycube, в этом dummycube находится еще один (или другой объект, только скрытый), collision проверяет, есть ли столкновение, если да, то с чем. В нижней (верхней или около курсора) части экрана становится visible меню с надписью объекта (подписывается при наведении). Если вы используете не 3(2)D – игру (текстовая игра), то можете место стандартного Hint"а использовать свой собственный или какой-нибудь компонент.


 
WondeRu ©   (2005-06-03 13:14) [15]

Моя программа - составляющая огромного комплекса... существует куча форм где необходимы Хинты... так что заменить их чем-то другим не представляется возможным!

XProger ©   (02.06.05 23:26) [4]
Result := DefWindowProc(hwnd, message, wParam, lParam);
в WinProc делаешь?

ничего не делаю! у меня стандартное VCL окно, а рисую на пенельке (TPanel).

Strech   (03.06.05 4:44) [5]
Такая ситуация происходит, когда ты работаешь с видеопамятью

не работаю!


 
Sapersky   (2005-06-03 13:25) [16]

Вряд ли OpenGL сам по себе портит хинты - скорее, это ошибка в программе. Например, задаётся неправильный аргумент OGL-функции - указатель или индекс для адресации, номер того же дисплейного списка или ещё что-нибудь. A OGL для скорости его правильность не проверяет (D3D так себя ведёт, во всяком случае), и на уровне драйвера влезает в область памяти, где лежат хэндлы хинтов...
Необязательно даже на уровне драйвера - KOL исключительно с помощью WinAPI вытворял подобные фокусы, правда, в Win 9x.


 
Гарри Поттер ©   (2005-06-03 14:07) [17]

WondeRu ©   (02.06.05 14:14)

Замечал, есть такое. Как бороться не знаю, не разбирался.


 
XProger ©   (2005-06-03 14:41) [18]

WondeRu, напиши вращающийся треугольник и посмотри как там будет... у меня ничего подобного не происходило :P


 
WondeRu ©   (2005-06-03 15:16) [19]

XProger ©   (03.06.05 14:41) [18]
вот треугольник нормально отрабатывает! Даже кубик!


 
XProger ©   (2005-06-03 15:34) [20]

А 100000 треугольников?
Если тоже нормально, то проблема действительно в самом коде, а может и не в OpenGL даже...


 
WondeRu ©   (2005-06-03 15:46) [21]

XProger ©   (03.06.05 15:34) [20]
а может и не в OpenGL даже...


такое происходит не всегда... GLScene тоже бывает сносит хинты...


 
ancara ©   (2005-06-03 17:30) [22]

У меня такое тоже было в свое время, голову ломал - ничего путного не придумал. Поставил ServicePack 2 - трабл исчез. (Был WinXP SP1).
Пришел к выводу, что причина крылась в Винде, возможно это и не так...

2 WondeRU: у Вас, кстати, какой SP?


 
Chuvak ©   (2005-06-03 17:45) [23]

Такая же фигня с ГЛ...Винда СП1...


 
WondeRu ©   (2005-06-03 21:27) [24]

ancara ©   (03.06.05 17:30) [22]
вроде на SP2 такого нет... Но идея хорошая, буду анализировать и проверять!

Спасибо всем)



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2005.10.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.014 c
6-1118842370
debuger
2005-06-15 17:32
2005.10.09
Сеть. С чем есть?


4-1123996431
zero-g
2005-08-14 09:13
2005.10.09
Баги при использования com-интерфейса


14-1127029252
Proger121
2005-09-18 11:40
2005.10.09
alphacontrol


2-1125231700
Иван Семенов
2005-08-28 16:21
2005.10.09
Как сохранить TColor в реестре?


14-1127041601
Verner
2005-09-18 15:06
2005.10.09
Вопрос к знатокам математики





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский