Собственно, сабж.
При инициализации ОГЛа вывод графики происходит на окно, чей Handle был подключен к соответствующему элементу.
А как вывести графику на несколько окон одновременно? К примеру, указывается элемент1 - и на него выводится графика. Потом указываю элемент2 - и графика указывается уже на него. Думается, что нужно использовать какой-либо буфер, имеющий Handle и позволяющий выдавать содержимое в поток наподобие Bitmap элементов. Пробовал вариант с элементом "Изображение" из wincontrols, как раз имеет Handle и способен выдавать данные в потоке, но что-то неполучилось
Подскажите пожалуйста!!! Буду премного благодарен
Этот топик читают: Гость
Ответов: 47
Рейтинг: 2
|
|||
карма: 0 |
|
Ответов: 8930
Рейтинг: 823
|
|||
alikseyguitar, не подойдёт это:
|
|||
карма: 19 |
|
Ответов: 47
Рейтинг: 2
|
|||
Леонид,
Спасибо за ответ! Если Вы имели ввиду использовать этот компонент для выбора параметра Handlе, то я только что еще раз попробовал - и еще раз убедился, что параметр Handle используется при инициализации ОГЛа, но при отрисовке содержимого - нет. Такой принцип мог бы работать при выводе информации из элементов, относящихся к разделу grafics. Я бы мог применить такой компонент, если бы операция инициализации происходила бы столь же часто, как и отрисовка буфера - но это приведет к тотальному заполнению виртуальной памяти. Вспомнилось о Програмистских играх, с борящимися друг с другом программами Всеже я думаю стоит поставить элемент - конвектор. Это было бы хоть и не самое дешевое средство, но зато и возможностей больше - можно было бы использовать в редакторе при создании обьектов в окнах дочерней формы. |
|||
карма: 0 |
|
Ответов: 8930
Рейтинг: 823
|
|||
alikseyguitar, а вот так использовать: code_10912.txt
|
|||
карма: 19 |
| ||
файлы: 1 | code_10912.txt [3.1KB] [217] |
Ответов: 47
Рейтинг: 2
|
|||
Леонид, огромное Вам спасибо за готовность помочь!!!
Вами представленный код работает, но имеет одну особенность. Леонид, попробуйте поставьте вместо кнопки переключения окон таймер с малым временем срабатывания и немного подождите - а заодно откройте диспетчер задач. Уверен, Вы увидите, как быстро заполняется свободная память - ведь при каждой инициализации создается новый буфер... А старый не уничтожается. Потому места в виртуальной памяти будет с каждым "переключением" окна будет занимать все больше. Вот если бы удалять "старый" буфер, тогда такое решение очень даже рабочее. А так лишь до некоторого времени. Хотя я тут немного поговорил с одним человеком, делавшим подобный проект на Делфи, и он упоминал, что инициализация штука сложная и постепенная. Выделил он по сути 2 ветви - инициализация железа и инициализация уже программных методов. Вот и данный нам элемент имеет 2 ветви инициализации - первый метод - инициализация ОГЛ - видимо, подключение железа и основных библиотек и возможно буфера - и второй метод - установка окна выводов и его размеров. Вот и сдается мне, что нужно бы проработать второй метод. Этим и займусь. Я потому и спросил на форуме, ибо подобные решения уже приходили и ко мне. И увы, ни одна не оказалась рабочей. |
|||
карма: 0 |
|
Ответов: 8930
Рейтинг: 823
|
|||
alikseyguitar, а сколько экранов надо, если 2-3, может GL_Main подкорректировать можно. Удаления созданного в компоненте нет, одна надежда на более опытных товарищей
nesco, не поможешь |
|||
карма: 19 |
|
Ответов: 2125
Рейтинг: 159
|
|||
А если в динамический мультик засунуть?
|
|||
карма: 1 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Леонид писал(а): Удаления созданного в компоненте нетесть. Вот такая схема корректно переинициализирует OpenGL code_10915.txt ------------ Дoбавленo: tsdima, опередил... |
|||
карма: 27 |
| ||
файлы: 1 | code_10915.txt [3.3KB] [209] |
Ответов: 2125
Рейтинг: 159
|
|||
Быстро ты
|
|||
карма: 1 |
|
Ответов: 8930
Рейтинг: 823
|
|||
tsdima, Dilma, ну надо же, я тоже решил попробовать динамическую схему, и с радостью увидел, что не кушает память, но вы опередили
|
|||
карма: 19 |
|
Ответов: 47
Рейтинг: 2
|
|||
Всем огромное спасибо!!!! Очень ценю Вашу помощь!
Работает как надо ))) Скажите, а по какому принципу этот компонент работает?? Я не уверен, но похоже на то, что при обращении к компоненту схема заново создается, а после "стирается". Ну или что-то в этом роде. ------------ Дoбавленo: Однако, решение очень красиво выглядит. Я б до такого наверно еще не скоро додумался бы, ведь много не знаю еще о компонентах. |
|||
карма: 0 |
|
Ответов: 8930
Рейтинг: 823
|
|||
alikseyguitar, именно так, в динамическом контейнере можно создать сколько угодно одинаковых схем, например страниц для БД, непосредственно во время работы программы, соответственно и работать с ними, и удалять любую. В данном случае создаётся, работает с "0" и удаляется схема GL.
|
|||
карма: 19 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
если контейнер полиморфный, то внутри уже может создаваться не одна и та же схема, а любая из созданных на этапе проектирования и размещенная в данном контейнере
|
|||
карма: 27 |
|
13