PDA

Tam Sürümünü Görmek İçin : open gl


PUNK
01/10/2005, 17:59
open gl ile basit bi kaç şekil çizmeye çalışıyorum ;

void __fastcall Tolay::RenderGLScene()

fonksiyonu ne işe yarar neden tüm çizim fonksiyonlarını içine yazmak gerekir yada ben oyle sanıyorum. gdi deki gibi paint ten çaırmam mümkünmü bu fonksiyonlarımı;

void __fastcall Tolay::IdleLoop(TObject*, bool& done)

idleloop fonksiyonu nu illa kullanmak zorundamıyım ,ne işe yarıyor

void __fastcall Tolay::RenderGLScene()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
cizgiciz(x,y);
ucgenciz(x,y);
}
burada çizgiden sonra üçgen çizemiyorum üçgen neden çizilmiyordur :)

bide şu aşadaki saat türkiye saatimidir gerçekten ;
Forum saati Türkiye saatine göredir. GMT -7. Şu anda saat 08:00.

:) :2:


mr1yh1
01/10/2005, 19:33
http://bdn.borland.com/article/0,1410,10528,00.html

void __fastcall Tolay::RenderGLScene()
fonksiyonu ne işe yarar neden tüm çizim fonksiyonlarını içine yazmak gerekir yada ben oyle sanıyorum.

doğru düşünüyorsun o işe yarıyor.
ama bu fonksiyonu , doğrudan çağırmana gerek yok.
o zaten sürekli çağrılıyor.

Onidle durumu , uygulamanın mesaj döngüsü ilgili.
program , bir windows mesajı var mı diye bakıyor ,
varsa onu işliyor sonra bunu çağırıyor.
yok ise sadece bunu çağırıyor. ( PeekMessage )
windows message loop olarak arat.
tek fark , oyun tarzı şeyler GetMessage yerine PeekMessage kullanır.

MDC
02/10/2005, 18:19
Çizim yapılacağı fonksiyonun adı bir sabit değildir, herhangi bir isim yapabilirsin, ama bu fonksiyon mutlaka Windows mesaj döngüsü içinde sürekli çağrılmalı... Bunun dışında GL'de çizdiğin görüntüyü alamaman normal, çünkü çizdiğin görüntü GL'de sen ise onu Windows penceresine taşıman gerek... bunuda aynı şekilde Render() fonksiyonu içinde, tüm çizimler bittikten sonra SwapBuffers(g_HDC) ile yapıyorsun burada g_HDC GL'nin Content bilgisi oluyor, yani bağlantı ID'si gibi birşey... Daha fazla bilgi için, Google'a arama yap: OpenGL Tutorials diye yada ben sana gerekli linkleri veriyim...