Передо мной стоит непростая задача, осуществить вывод сцены из OpenGL на bmp, а потом поместить его в пеинтбокс.
Сначала я подумал, что такое невозможно, но великое гугление убедило меня в обратном.
Дано:
● Есть GL_Main, которому нужен указатель.
● Есть Paint Box, которому нужен bmp.
Цель:
● Любыми извращениями присобачить одно к другому.
Есть следующие догадки:
1. Вывести это дело на дочернюю форму, затем скриншотить и отправлять на пеинтбокс.
Проблема в том, что скриншотится видимая на мониторе область, а мне не нужна копия окна.
2. Воспользоваться каким нибудь конвертором или цепочкой конверторов, но не имею ни малейшего понятия чем.
Взываю местных супер-умов о помощи.
Этот топик читают: Гость
Ответов: 14
Рейтинг: 0
|
|||
карма: 1 |
|
Ответов: 2059
Рейтинг: 132
|
|||
sedyh, Вкл/выкл режима "Поплавок" (т.е. окно при потере фокуса всегда остаётся поверх всех окон)
+ скриншот окна.
|
|||
карма: 6 |
|
Ответов: 2265
Рейтинг: 676
|
|||
sedyh писал(а): Взываю местных супер-умов о помощи.sedyh, если вы объясните что вы хотите получить или хоть для чего скрещивать BMP с OpenGL, будет проще вам помочь.\ Пока могу предложить такой вариант: code_37196.txt |
|||
карма: 11 |
| ||
файлы: 1 | code_37196.txt [1.8KB] [305] |
Ответов: 14
Рейтинг: 0
|
|||
flint2 писал(а): т.е. окно при потере фокуса всегда остаётся поверх всех оконНу так мне не нужно только одно окно. Те это был как вариант того, чтобы изобразить его на главной форме. sla8a писал(а): что вы хотите получить или хоть для чего скрещивать BMP с OpenGL, будет проще вам помочьДа, конечно, хочу достичь двух разных целей: 1. Мне нужно поставить анимированные ImgBtn (движение по тригонометрии, эдакий такой слайдер). Но вот когда я вывожу окно OpenGL на окно, эти компоненты оставляют за собой белый хвост, который быстро исчезает. Как видно на следующем примере, если между выводом OpenGL и анимированным элементом изображение - он ведет себя как надо. 2. Мне нужны будут самые обыкновенные слои. |
|||
карма: 1 |
|
Ответов: 2265
Рейтинг: 676
|
|||
sedyh, выше мной выложен пример, смотрели? После вашего описания лично мне не стало понятней.
sedyh писал(а): когда я вывожу окно OpenGL на окноВыкладывайте свой набросок в виде схемы, а то будем долго разбираться. Как скопировать и вставить схему |
|||
карма: 11 |
|
Ответов: 14
Рейтинг: 0
|
|||
Да, смотрел, довольно интересная версия, но, как я и говорил, скриншот формы работает только тогда, когда область видна на мониторе, а мне не нужно доп. окно / панель итд.
Вот набросок из картинки выше. Мне нужно избежать белых подлагиваний. Код залил к себе на хост - http://mcglcapes.ru/Programs/Code.txt. Это была та часть, где мне именно нужны картинки на фоне OpenGL'а. Просьба также помочь с проблемой, что я написал в начале этого сообщения (т.е. каким то непонятным мне образом сделать конвертирование в bmp без вывода на дополнительные визуальные элементы). |
|||
карма: 1 |
|
Ответов: 2265
Рейтинг: 676
|
|||
sedyh писал(а): Мне нужно избежать белых подлагиваний.Так пойдет? code_37197.txt (картинки удалил, вставите) |
|||
карма: 11 |
| ||
файлы: 1 | code_37197.txt [1.7KB] [350] | ||
Голосовали: | sedyh |
Ответов: 14
Рейтинг: 0
|
|||
О, спасибо большое, вариант почти идеальный, как раз то, что нужно.
Теперь хотелось бы решить второй вопрос (про встраиванию его в слой пеинтбокса). Точно знаю, в пеинтбоксе проблем такого рода почти нет и, стараясь себя избавить от подобного в будущем, я хочу встроить вывод OpenGL в слой пеинтбокса, но как я сказал ранее, не знаю как это сделать без дополнительных визуальных элементов. |
|||
карма: 1 |
|
Ответов: 39
Рейтинг: 2
|
|||
'пеинтбокс' visible = false и уже нет визуальных
|
|||
карма: 1 |
|
Ответов: 14
Рейтинг: 0
|
|||
RAWY писал(а): 'пеинтбокс' visible = false и уже нет визуальныхНе смешно . |
|||
карма: 1 |
|
Ответов: 2265
Рейтинг: 676
|
|||
sedyh писал(а): хочу встроить вывод OpenGL в слой пеинтбокса |
|||
карма: 11 |
|
Ответов: 14
Рейтинг: 0
|
|||
Тогда покажу результаты гугления, может быть они помогут:
- http://www.delphimaster.ru/cgi-bin/forum.pl?id=1321797240&n=7 - http://www.delphimaster.net/view/1-1252394890 |
|||
карма: 1 |
|
Ответов: 39
Рейтинг: 2
|
|||
sedyh, а зачем в paintbox? Почему на форме сразу не рисовать все что нужно?
|
|||
карма: 1 |
|
Разработчик
Ответов: 26149
Рейтинг: 2127
|
|||
sedyh писал(а): Проблема в том, что скриншотится видимая на мониторе область, а мне не нужна копия окнаА кто мешает прицепить Handle ScreenShort-a к Handle окна вывода? Тогда скриншот будет сниматься только того окна, которое прицеплено. Если же точка Handle у ScreenShort-a не задействована, то снимается вся область экрана. |
|||
карма: 22 |
|
Ответов: 2265
Рейтинг: 676
|
|||
nesco, это не серьезно. sedyh как я понял, нужно вывести openGL вначале на картинку (Bitmap), потом дорисовать еще коечто и только потом вывести на экран. Вроде ничего криминального.
Вроде как достаточно поменять в GL_Main
|
|||
карма: 11 |
|