BitBlt API Hakkında Soru

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
anonymousdelphicoder
Üye
Mesajlar: 152
Kayıt: 16 May 2014 11:23

Re: BitBlt API Hakkında Soru

Mesaj gönderen anonymousdelphicoder »

ertank yazdı:
Eğer sürücüler "Onaylı Üreticiler" tarafından imzalanıyor ise size onay sorulmadan yüklenir. Eğer 64bit platform için geliştirilen bir sürücü ise "Onaylı Üretici" tarafından imzalanma zorunluluğu vardır. Ayrıca Microsoft'a gönderip WHQL şeklinde imzalanmış sürücüler içinde onay sorulmadan sisteme yüklenilmesine izin verilir.

Her uygulama kopya sürücü kullanmalı diye bir zorunluluk yok tabi. VNC bildiğim kadarı ile tüm ekran bilgisini okuyarak bu işlemi gerçekleştiriyor. Yine yüksek ihtimalle BitBlt() kullanıyordur. Bir ihtimal ProcessPriority değerini uygulama çalıştıktan sonra yükselterek bir miktar FPS artışı sağlıyor olabilirler.

Özünde grafik kartları yazma optimizasyonlu oluyorlar. Grafik kartının frame buffer bilgisi anlık okuma için pek sık kullanılmaz. Video hafızasını okuma işleminin kendisi yavaştır. Aralıklar ile bunu yapmaya çalıştığınızda yavaş ile çok yavas arasında bir performans elde edersiniz. 1280x1024 ekran boyutu gerçek renkler ile 5 MB'ın biraz üzerinde bir veri oluşturur. Çok iyi grafik kartları "çift port" hafıza kullanırlar. Bu tür ekran kartları yazma sırasında okumaya izin verir ve performans kaybı yaşamazlar.

Delphi ile sürücü yazılmaz diye bir kural yok. C/C++'a göre biraz daha uğraştırır.
http://stackoverflow.com/questions/2263 ... elphi-2010
http://www.delphibasics.info/home/delph ... lopmentkit
http://w-shadow.com/blog/2006/10/12/wri ... in-delphi/
İlginiz ve alakanız için çok teşekkür ediyorum, VNC yi inceleyeceğim, "tüm ekran bilgisini okuyarak" söyleminizden kastınız tamamen BitBlt kullanarak bu işi yaptığını söylüyorsunuz sanırım, Delphi ile Driver yazmak külfetli ve önü biraz karanlık olabilir gibi geliyor bana, bu konularda detaylı bilgi edindiğimde ufak birşeyler yapıp burada deneyimimi paylaşmak isterim, özünde bu ekran yakalama işini doğrudan DirectX üzerinden hızlıca yapabileceğimi düşünmüştüm fakat sanırım DirectX de bu konuda yavaş kalıyor, normal görüntü aygıtları için (kamera vs) için o görüntü aygıtının driverina bağlanıp(bağlandığını sanıyorum, harici destekde sağlıyor olabilir mi ?) hızlı aktarıyor ama ekranın görüntüsü için bir ara örnek kodlar denedim COM nesnelerinin ilk yüklenmesi haricinde yine yavaştı.

Teşekkürler.
Cevapla