| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > захват изображения из TPanel |
| Автор: Leopard255 29.5.2013, 13:10 | ||
| пытаюсь получить изображение из TPanel, вместо ожидаемого получаю серый фон с надписью "Panel" посередине в чем может быть дело? (на других приложениях код работает)
|
| Автор: Alexeis 29.5.2013, 13:16 |
| Чтобы узнать что происходит не так, нужно увидеть как оно происходит |
| Автор: Leopard255 29.5.2013, 13:22 |
| правда код не паскалевский, сюда написал потому что окно(TPanel) дельфийское |
| Автор: Alexeis 29.5.2013, 13:27 |
| Рисунок каким образом попадает на панельку? |
| Автор: Leopard255 29.5.2013, 13:31 |
| точно не известно, а какие есть варианты? |
| Автор: Alexeis 29.5.2013, 13:37 |
| Может там DirectX окно какое нить или одно окно поверх другого с рисунком или форма прозрачная и проглядывает рисунок снизу. В общем если рисуют при помощи GDI то точно должно копироваться, а остальное нужно думать. Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//object-id51a5d4786ccc19683b000002#findElement_E7045_51a5da7b6ccc1976130017b5_0 |
| Автор: Leopard255 29.5.2013, 13:44 |
| рисуется с помощью OpenGL в приложении только родительское окно и TPanel в нем. |
| Автор: Alexeis 29.5.2013, 13:51 |
| Насколько я помню, перед копированием с OpenGL контекста его нужно освобождать. Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//object-id51a5d4786ccc19683b000002#findElement_E7045_51a5ddb96ccc193d2f000a19_0 |
| Автор: Leopard255 29.5.2013, 13:54 |
| фрапс делает правильные скриншоты этого окна. как освободить контекст "чужого окна" ? |
| Автор: Alexeis 29.5.2013, 14:29 |
| Если даже это получиться сделать, то дальше чужое окно начнет работать нестабильно. Я думал, что для своего окна делать скриншот. Не уверен, что получиться простыми средствами решить этот вопрос. Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//object-id51a5d4786ccc19683b000002#findElement_E7045_51a5e6966ccc197613001c62_0 |
| Автор: Alexeis 29.5.2013, 14:55 |
| Фрапс возможно делает перехваты вызовов функций графических библиотек для такого копирования. Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//object-id51a5d4786ccc19683b000002#findElement_E7045_51a5ecad6ccc1976130021ac_0 |
| Автор: Leopard255 29.5.2013, 15:25 |
| а можно перенести эту тему в "Программирование -> C++ -> C/C++: Мультимедия, OpenGL/DirectX (еще)" ? Может там кто знает. |
| Автор: kami 29.5.2013, 15:26 | ||
пробуй
|
| Автор: Leopard255 29.5.2013, 15:49 |
| не помогает |
| Автор: BorisVorontsov 19.6.2013, 15:42 |
Есть доступ к коду OpenGL? Если есть, тогда там следует вызвать glReadPixels с последующей передачей в CreateBitmap |