Direct3D
Direct 3D, yazılım geliştirenlerin kullandığı bilgisayarın özelliklerini çok daha iyi kullanabilmeleri için Microsoft'un API'lerinden biridir. Direct 3D hakkında bir çok bilgi verilebilir, ama biz Direct 3D'nin değişik özelliklerini içeren 3 başlık altında bunu inceleyeceğiz. Bunlar:
1- Direct 3D'ye genel bakış
2- Direct 3D Retain Mode
3- Direct 3D Immediate Mode
Direct 3D, Direct X'in bir parçasıdır ve
daha önce de belirttiğimiz gibi bir API'dir. Bu şekilde 3 boyutlu grafikler
çok daha hızlı olarak kullanılabilir.
DirectX
DirectX, bir API'ler bütünüdür ve bir COM (Component Object Model) olarak kullanılır. Bu API'ler, Windows ortamında gerçek-zamanlı, yüksek performanslı uygulamalar geliştirmek için objeler ve fonksiyonlar sağlar.
Bu tip kütüphaneler üretilmesinin esas sebebi, Windows’un, oyun ve multimedia
gibi yoğun grafiksel işlemler içeren programları göstermede çok zayıf
kalmasıdır. Aynı programların DOS versiyonları çok daha hızlıdır.
DirectX, bu gibi programların yüksek performansla işlenmesi için standart ve
çok güçlü bir platform sunmaktadır.
DirectX bu imkanı sunarken bilgisayardaki
donanımdan bağımsız olarak çalışır. Bunu yaparken donanımla aralasında
bir arayüz sağlar ve uyumsuzlukları en aza indirger. Örneğin DOS’la yazılmış
programlar bir çok değişik donanım konfigürasyonunu göz önüne almalı ve
ona göre davranmalıdır. Ama şimdi, bütün bu uyumsuzluk yükü programcının
üzerinden alınmış, daha az kodla daha hızlı program geliştirme sağlanmıştır.
DirectX tek başına bir varlık değil,
birbirinden bağımsız çalışan uygulamaların bütünüdür. Bunlar:
DirectDraw: 2 boyutlu işlemler için,
örneğin “fast 2D blitting (bit
block transfers)”
DirectSound:
Programlara ses ekleme
DirectPlay:
Uygulamalar için birden fazla kullanıcı eklemek, network iletişimi sağlamak
için
Direct3D:
3 boyutlu işlemler eklemek için
DirectInput:
Joystick, mouse, klavye vb.’den gelen bilgileri almak için
DirectDraw
DirectDraw bileşeni, direkt ya da dolaylı olarak Direct3D tarafından kullanıldığından önemlidir. DirectDraw, yazılım ve donanım arasındaki donanım soyutlama tabakasını (hardware abstraction layer (HAL)) oluşturur. HAL, programları donanım farklılıklarından korur. DirectDraw kullanan programlar yalnızca DirectDraw’la iletişim kurar ve HAL’e ile direkt ya da dolaylı olarak ulaşamazlar.
DirectDraw 2 boyutlu uygulamalar için performans artırıcı destek ve ekran dışındaki görüntülere direkt ve hızlı ulaşım sağlar. Ayrıca blitting (bit block transfer) ve buffer flipping (tampon yerdeğiştirmesi)’i kullanmamıza, saydam blitting yapmaya, ekranda obje ve çok katmanlı animasyonlar oluşturmaya olanak tanır. Bütün bu özellikler programların Windows ortamında çok daha hızlı ve performanslı çalışmasını sağlar.
DirectDraw Objeleri
DirectDraw kullanan programlar 2 obje kullanır, DirectDraw ve
DirectDrawSurface. DirectDraw objesi ekran kartını simgeler, DirectDrawSurface
ise ekrana gelecek görüntünün oluşturulduğu görüntü hafızasını
temsil eder. Bunun yanında uygulamalar DirectDrawPalette ve DirectDrawClipper
gibi yardımcı objeler de kullanabilirler.
Genel Kullanım
DirectDraw kullanmada kullanılan bir yol
şöyledir:
1- Ön ve arka tamponu hazırla (görüntüleri yer değiştirmek için kullanılırlar)
2- Ekrana getirilecek görüntüler direkt ekrana gelmeden önce arka tamponda çizilir
3-
Çizim tamamlanınca, ön ve arka tamponlar yerdeğiştirilir. Bundan
sonra arka tampon ön tampon, ön tampon da arka tampon olmuş olur.