2012-10-23 18 views
6

Kendi 2D GUI kitaplığımı OpenGL ile programlıyorum ve (yuvarlatılmış dikdörtgen veya yıldız gibi) ve diğer alt öğeleri içeren bir kapsayıcı kontrole sahip olduğum aşamadayım kontroller ... vb ... Çocuk kontrolleri ve grafik elemanlarının oluşturulmasını ana kontrolde birleştirmeye çalışıyorum. Yani bir çocuk konteynır konteynır sınırlarını taşarsa, işlenmez.OpenGL 2B dikdörtgen olmayan bölge kırpımı

İlk düşüncem, web'de arama yaparken onu keşfettikten sonra "makas testi" kullanmaktı. Ancak sorun şu ki, dikdörtgen bir kırpmaya kısıtlıyım ve içeriği yıldız köşeli bir şekil gibi keyfi bir bölgeye sığdırmak istiyorum. Benim denetim içeriğini klibi veya olmamalıdır eğer benim bir fikrim var

...

bir kontrol ve onun grafik öğelerini çizmek an

, bakacağım. Evetse, ekran dışı bir dokuda siyah bir arka plan üzerinde düzgün bir beyaz renkle çizerim. Sonra onu bir gölgelendirici programa gönderirim. Bu nedenle, her çocuğumda (denetimler ve grafik öğeleri), gölgelendiricim etkinleştirildi. Bu parça gölgelendiricide, her parça için, daha önce aktarılan özel dokuda aynı koordinatlara bakmayı düşünüyorum. Özel dokudaki parça beyazsa, bu bölgeyi görünür bölgede olduğu için oluşturabilirim.

Çalışabileceğini düşünüyor musunuz? İyi bir fikir mi yoksa daha iyi mi?

cevap

2

İhtiyaçlarınıza bağlı olarak birkaç yolla yapılabilir. Doku ya da şablon arabelleği oluşturmak, muhtemelen en iyi seçim olacaktır. Cevabınız için

OpenGL clipping

+1

Merhaba ve teşekkür: Bu bağlantı daha başlangıç ​​için bilgiler. Bu şablon çözümünü okumaya ve incelemeye devam ettim. Ben bununla hiç çalışmamıştım, ama uygulamak daha kolay bir gölgelendirici çözümden daha kolay olacağını düşünüyorum. – user1768815