IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> DC, GLRC, Лизбез нужен
сообщение
Сообщение #1


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Ну я так понял, что DC - это описатель какой-то фигни, связанной с поверхностью рисования окна. Ну ладно.
Функций GetDC(H) возвращает описатель поверхности для данного H, это понятно.
Вопросы:
1. Может ли DC внезапно измениться во время жизни H?
2. Что делает ReleaseDC(H, DC), и зачем у этой процедуры два параметра, разве одного H не хватило бы?
3. Может ли GLRC внезапно "повиснуть в воздухе" (перестать быть связанным с поверхностью рисования H) во время жизни H?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Цитата
1. Может ли DC внезапно измениться во время жизни H?
Вопрос к тому, можно ли один раз сохранить DC и потом его использовать отовсюду, не прибегая к вызову GetDC? Нет, нельзя. Гарантируется только неизменность DC между вызовами GetDC/ReleaseDC и между вызовами BeginPaint/EndPaint. Все остальное - вилами на воде писано. Может и не изменится. А вдруг?

Есть еще CS_OWNDC: Что делает стиль оконного класса CS_OWNDC?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


> Гарантируется только неизменность DC между вызовами GetDC/ReleaseDC

А, хорошо, а вот я, допустим, при создании окна делаю сразу же GetDC и не делаю ReleaseDC, то это так же плохо, как OwnDC?
И что насчёт GLRC? Не потеряет ли он окно, если я не заблокирую DC?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Цитата
а вот я, допустим, при создании окна делаю сразу же GetDC и не делаю ReleaseDC
... и рано или поздно видишь сообщение "out of resources". Зачем оно тебе?

Цитата
И что насчёт GLRC?
А вот этого я не знаю, ибо с OpenGL знаком чуть больше чем поверхностно.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


> ... и рано или поздно видишь сообщение "out of resources"

Почему? Я же только один раз сделал GetDC, при создании окна, и всё.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Потому что WinAPI требует от тебя освободить ресурс после того, как ты его получил через GetDC и сделал с ним все что нужно. Чем меньше времени ресурс будет занят тобой - тем лучше. Windows - она вообще-то многозадачная, ага. И то, что ты не работаешь с ресурсом - не значит, что сама система с ним не работает, и что другие приложения с ним не работают - тоже не значит.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 4.11.2025 1:10
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name