Jendela transparan di atas OpenGL

Aplikasi saya memiliki Mesin OpenGL di Jendela yang dihosting WPF. Saya membuat widget setengah transparan (sebagai objek Window) yang seharusnya menampilkan konten di atas jendela OpenGL. Terkadang saat aplikasi memproses data, latar belakang widget menjadi hitam (lihat gambar terlampir). Apakah ada yang tahu apa itu. Bagaimana cara mengatasi masalah ini.masukkan deskripsi gambar di sini


person Adam D    schedule 28.02.2012    source sumber
comment
Sejauh yang saya tahu transparansi hanya berfungsi di antara item WPF, jadi saya terkejut terkadang ini berhasil untuk Anda.   -  person Ignacio Soler Garcia    schedule 28.02.2012
comment
Jendela OpenGL tidak transparan tetapi jendela wpf transparan. Ini berfungsi dengan sangat baik tetapi menurut saya masalah ini muncul ketika rendering asinkron terjadi (menurut saya)   -  person Adam D    schedule 28.02.2012
comment
Sejauh yang saya tahu jendela WPF hanya transparan terhadap jendela WPF lainnya. Anda tidak dapat menempatkan kontrol transparan WPF di atas kontrol Windows Forms dan mengharapkannya berfungsi.   -  person Ignacio Soler Garcia    schedule 28.02.2012
comment
Lihat ini: khason.net/blog/   -  person Ignacio Soler Garcia    schedule 28.02.2012
comment
Ada postingan menarik di sini, mungkin itu yang Anda cari.   -  person karlphillip    schedule 19.03.2012


Jawaban (2)


Karena Windows Vista mendukung flag PIXELFORMATDESCRIPTOR baru: PFD_SUPPORT_COMPOSITION. Jika tanda ini disetel, konteks OpenGL yang dibuat akan diintegrasikan ke dalam sistem komposisi desktop:

http://msdn.microsoft.com/en-us/library/cc231189(v=prot.10).aspx

person datenwolf    schedule 28.02.2012

Itu tidak dijamin berhasil sama sekali. Jendela OpenGL tidak digabungkan dengan transparansi WPF, baik di bawah maupun di atas. Kadang-kadang mungkin berhasil, tetapi tidak harus berhasil.

person Nicol Bolas    schedule 28.02.2012
comment
Pengomposisian dapat diaktifkan untuk pengomposisian. Hal ini dilakukan melalui flag PIXELFORMATDESCRIPTOR baru. - person datenwolf; 28.02.2012
comment
Pertama, itu hanya gabungan dengan hal-hal di belakangnya, bukan di atasnya. Kedua, saya tidak melihat padanannya di wglChoosePixelFormatARB, yaitu tempat kebanyakan orang mendapatkan format pikselnya. Jika tidak, Anda tidak dapat menggunakan framebuffer sRGB atau multisampling. - person Nicol Bolas; 28.02.2012
comment
@datenwolf: Dan ketiga, tidak ada jaminan bahwa PFD_SUPPORT_COMPOSITION tidak akan mematikan akselerasi perangkat keras atau memaksa penggunaan driver Microsoft GL. Tidak ada jaminan bahwa hal itu akan terjadi, tetapi saya ingin informasi lebih lanjut sebelum mencoba melakukan perubahan tersebut. - person Nicol Bolas; 28.02.2012