DC, GLRC, Лизбез нужен |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
DC, GLRC, Лизбез нужен |
TarasBer |
26.01.2012 11:02
Сообщение
#1
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Ну я так понял, что DC - это описатель какой-то фигни, связанной с поверхностью рисования окна. Ну ладно.
Функций GetDC(H) возвращает описатель поверхности для данного H, это понятно. Вопросы: 1. Может ли DC внезапно измениться во время жизни H? 2. Что делает ReleaseDC(H, DC), и зачем у этой процедуры два параметра, разве одного H не хватило бы? 3. Может ли GLRC внезапно "повиснуть в воздухе" (перестать быть связанным с поверхностью рисования H) во время жизни H? -------------------- |
IUnknown |
26.01.2012 12:03
Сообщение
#2
|
a.k.a. volvo877 Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: 627 |
Цитата 1. Может ли DC внезапно измениться во время жизни H? Вопрос к тому, можно ли один раз сохранить DC и потом его использовать отовсюду, не прибегая к вызову GetDC? Нет, нельзя. Гарантируется только неизменность DC между вызовами GetDC/ReleaseDC и между вызовами BeginPaint/EndPaint. Все остальное - вилами на воде писано. Может и не изменится. А вдруг?Есть еще CS_OWNDC: Что делает стиль оконного класса CS_OWNDC? |
TarasBer |
26.01.2012 12:38
Сообщение
#3
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
> Гарантируется только неизменность DC между вызовами GetDC/ReleaseDC
А, хорошо, а вот я, допустим, при создании окна делаю сразу же GetDC и не делаю ReleaseDC, то это так же плохо, как OwnDC? И что насчёт GLRC? Не потеряет ли он окно, если я не заблокирую DC? -------------------- |
IUnknown |
26.01.2012 13:02
Сообщение
#4
|
a.k.a. volvo877 Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: 627 |
Цитата а вот я, допустим, при создании окна делаю сразу же GetDC и не делаю ReleaseDC ... и рано или поздно видишь сообщение "out of resources". Зачем оно тебе?Цитата И что насчёт GLRC? А вот этого я не знаю, ибо с OpenGL знаком чуть больше чем поверхностно. |
TarasBer |
26.01.2012 13:17
Сообщение
#5
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
> ... и рано или поздно видишь сообщение "out of resources"
Почему? Я же только один раз сделал GetDC, при создании окна, и всё. -------------------- |
IUnknown |
26.01.2012 13:53
Сообщение
#6
|
a.k.a. volvo877 Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: 627 |
Потому что WinAPI требует от тебя освободить ресурс после того, как ты его получил через GetDC и сделал с ним все что нужно. Чем меньше времени ресурс будет занят тобой - тем лучше. Windows - она вообще-то многозадачная, ага. И то, что ты не работаешь с ресурсом - не значит, что сама система с ним не работает, и что другие приложения с ним не работают - тоже не значит.
|
Текстовая версия | 29.04.2024 18:21 |