Вверх ↑
Этот топик читают: Гость
Ответов: 47
Рейтинг: 2
#1: 2008-12-09 11:27:24 ЛС | профиль | цитата
Собственно, сабж.

При инициализации ОГЛа вывод графики происходит на окно, чей Handle был подключен к соответствующему элементу.

А как вывести графику на несколько окон одновременно? К примеру, указывается элемент1 - и на него выводится графика. Потом указываю элемент2 - и графика указывается уже на него. Думается, что нужно использовать какой-либо буфер, имеющий Handle и позволяющий выдавать содержимое в поток наподобие Bitmap элементов. Пробовал вариант с элементом "Изображение" из wincontrols, как раз имеет Handle и способен выдавать данные в потоке, но что-то неполучилось

Подскажите пожалуйста!!! Буду премного благодарен
карма: 0

0
Ответов: 8930
Рейтинг: 823
#2: 2008-12-09 11:50:42 ЛС | профиль | цитата
alikseyguitar, не подойдёт это:

Add(GetIndexData,4537264,112,427)
{
}


карма: 19

0
Ответов: 47
Рейтинг: 2
#3: 2008-12-09 14:26:33 ЛС | профиль | цитата
Леонид,
Спасибо за ответ!

Если Вы имели ввиду использовать этот компонент для выбора параметра Handlе, то я только что еще раз попробовал - и еще раз убедился, что параметр Handle используется при инициализации ОГЛа, но при отрисовке содержимого - нет. Такой принцип мог бы работать при выводе информации из элементов, относящихся к разделу grafics.

Я бы мог применить такой компонент, если бы операция инициализации происходила бы столь же часто, как и отрисовка буфера - но это приведет к тотальному заполнению виртуальной памяти. Вспомнилось о Програмистских играх, с борящимися друг с другом программами

Всеже я думаю стоит поставить элемент - конвектор. Это было бы хоть и не самое дешевое средство, но зато и возможностей больше - можно было бы использовать в редакторе при создании обьектов в окнах дочерней формы.
карма: 0

0
Ответов: 8930
Рейтинг: 823
#4: 2008-12-09 18:32:04 ЛС | профиль | цитата
alikseyguitar, а вот так использовать: code_10912.txt
карма: 19

0
файлы: 1code_10912.txt [3.1KB] [217]
Ответов: 47
Рейтинг: 2
#5: 2008-12-09 20:04:25 ЛС | профиль | цитата
Леонид, огромное Вам спасибо за готовность помочь!!!
Вами представленный код работает, но имеет одну особенность.

Леонид, попробуйте поставьте вместо кнопки переключения окон таймер с малым временем срабатывания и немного подождите - а заодно откройте диспетчер задач. Уверен, Вы увидите, как быстро заполняется свободная память - ведь при каждой инициализации создается новый буфер... А старый не уничтожается. Потому места в виртуальной памяти будет с каждым "переключением" окна будет занимать все больше. Вот если бы удалять "старый" буфер, тогда такое решение очень даже рабочее. А так лишь до некоторого времени.

Хотя я тут немного поговорил с одним человеком, делавшим подобный проект на Делфи, и он упоминал, что инициализация штука сложная и постепенная. Выделил он по сути 2 ветви - инициализация железа и инициализация уже программных методов.

Вот и данный нам элемент имеет 2 ветви инициализации - первый метод - инициализация ОГЛ - видимо, подключение железа и основных библиотек и возможно буфера - и второй метод - установка окна выводов и его размеров. Вот и сдается мне, что нужно бы проработать второй метод. Этим и займусь.

Я потому и спросил на форуме, ибо подобные решения уже приходили и ко мне. И увы, ни одна не оказалась рабочей.
карма: 0

0
Ответов: 8930
Рейтинг: 823
#6: 2008-12-09 20:35:16 ЛС | профиль | цитата
alikseyguitar, а сколько экранов надо, если 2-3, может GL_Main подкорректировать можно. Удаления созданного в компоненте нет, одна надежда на более опытных товарищей
nesco, не поможешь
карма: 19

0
Ответов: 2125
Рейтинг: 159
#7: 2008-12-09 21:15:28 ЛС | профиль | цитата
А если в динамический мультик засунуть?
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#8: 2008-12-09 21:17:02 ЛС | профиль | цитата
Леонид писал(а):
Удаления созданного в компоненте нет

есть. Вот такая схема корректно переинициализирует OpenGL
code_10915.txt

------------ Дoбавленo:

tsdima, опередил...
карма: 27
0
файлы: 1code_10915.txt [3.3KB] [209]
Ответов: 2125
Рейтинг: 159
#9: 2008-12-09 21:17:32 ЛС | профиль | цитата
Быстро ты
карма: 1

0
Ответов: 8930
Рейтинг: 823
#10: 2008-12-09 21:41:34 ЛС | профиль | цитата
tsdima, Dilma, ну надо же, я тоже решил попробовать динамическую схему, и с радостью увидел, что не кушает память, но вы опередили
карма: 19

0
Ответов: 47
Рейтинг: 2
#11: 2008-12-10 10:38:20 ЛС | профиль | цитата
Всем огромное спасибо!!!! Очень ценю Вашу помощь!
Работает как надо )))


Скажите, а по какому принципу этот компонент работает??
Я не уверен, но похоже на то, что при обращении к компоненту схема заново создается, а после "стирается". Ну или что-то в этом роде.
------------ Дoбавленo:

Однако, решение очень красиво выглядит. Я б до такого наверно еще не скоро додумался бы, ведь много не знаю еще о компонентах.
карма: 0

0
Ответов: 8930
Рейтинг: 823
#12: 2008-12-10 10:52:28 ЛС | профиль | цитата
alikseyguitar, именно так, в динамическом контейнере можно создать сколько угодно одинаковых схем, например страниц для БД, непосредственно во время работы программы, соответственно и работать с ними, и удалять любую. В данном случае создаётся, работает с "0" и удаляется схема GL.
карма: 19

0
Администрация
Ответов: 15295
Рейтинг: 1519
#13: 2008-12-10 11:57:23 ЛС | профиль | цитата
если контейнер полиморфный, то внутри уже может создаваться не одна и та же схема, а любая из созданных на этапе проектирования и размещенная в данном контейнере
карма: 27
0
13
Сообщение
...
Прикрепленные файлы
(файлы не залиты)