|
![]() |
#1 |
Участник
|
Был у меня такой косяк. Функции dll меняют внутренние переменные, если вызывать все из одной переменной то работает, а если из разных, то соответственно нет.
Как связано с данным случаем не знаю, но вполне возможно поможет. |
|
![]() |
#2 |
Участник
|
Связь - внутри функции SetPixelFormat().
При ее вызове происходит загрузка библиотеки OPENGL32 и сохранение данных в ее контексте. Если библиотека после этого выгружается, то все эти изменения пропадают. При вызове wglCreateContext() вызывается GetPixelFormat(), который не может вернуть данные, постольку поскольку они были удалены при предыдущей выгрузке бибилиотеки. Да и вообще, с точки зрения производительности - одно дело дернуть функцию у уже загруженной библиотеки, другое - открыть файл загрузить его в память, настроить все связи и только после этого вызвать функцию
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#3 |
Участник
|
С точки зрения производительности да, но всё остальное не верно. Все нужные данные замечательно сохранены в hDC, iPixelFormat, pfd, такова уж реализация OpenGL, в этом он и удобнее Direct3D.
|
|
![]() |
#4 |
Участник
|
Ню-ню
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#5 |
Участник
|
Интересно - вы проверили или спорите просто так?
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: Lucky13 (1). |
![]() |
#6 |
Участник
|
AndyD прав. Хотя бы потому что hDC это всего лишь int, в него ничего нельзя сохранить, это индекс и он просто на что-то ссылается. Когда dll выгружается она это что-то за собой очистить может и hDC потеряет смысл
|
|
![]() |
#7 |
MCTS
|
_wglCreateContext.returns(ExtTypes:
![]() а возвращается тип IntPtr, ExtTypes: ![]() переделываю классы Dronas |
|
![]() |
#8 |
MCTS
|
УРА ЗАРАБОТАЛО (почти).
Выкладываю проект (еще минуту). Контекст получает без проблем и окно закрашивается, осталось причесать функции glEnd и glLoadIdentity Последний раз редактировалось Eldar9x; 01.12.2006 в 14:59. |
|
![]() |
#9 |
Участник
|
Ну рад за Вас, во что окрашивается-то?
Конкретнее про исправления раскажи. |
|
![]() |
#10 |
MCTS
|
ГОТОВО!!! ВОТ РАБОЧИЙ ПРОЕКТ. ЛЮБУЙТЕСЬ
![]() проверьте и подтвердите его работу на всех компьютерах |
|
|
За это сообщение автора поблагодарили: Viknik (1). |
![]() |
#11 |
Участник
|
А выведи pfd ?!
|
|
![]() |
#12 |
MCTS
|
так у тебя этот работает или нет?
|
|
![]() |
#13 |
Участник
|
Работает, однако.
![]() |
|
![]() |
#14 |
Участник
|
|
|
![]() |
#15 |
Участник
|
Я пробовать не буду, потом попробую свё под твоё переписать, просто ты там классы стандартные правил на сколько я понял, не хочется в систему загонять
![]() Ну и инфу из pfd покажите, ну плиз. |
|
![]() |
#16 |
Участник
|
|
|
![]() |
#17 |
MCTS
|
а зачем? Никаких стандартных классов я не правил. Подредактировал только класс OpenGL, и GDI, качай не боясь
![]() Последний раз редактировалось Eldar9x; 01.12.2006 в 15:22. |
|
![]() |
#18 |
Участник
|
интересно, что там внутри, только изначальное заполнение как у меня сделай!
|
|
![]() |
#19 |
MCTS
|
предлагаю теперь заняться DirectX, шутка
![]() |
|
![]() |
#20 |
MCTS
|
а у меня без проблем... попробуй все поудалять из системы и импортировать проект заново
|
|