DirectX Çalışma Ortamının Hazırlanması
DirectX Çalışma Ortamının Hazırlanması
DirectX uygulamaları geliştirebilmek için DirectX SDK ya ihtiyacımız
var. SDK içerisinde DirectX uygulamaları geliştirebilmek için gerekli
kütüphaneler, örnek projeler, yardımcı araçlar ve dökümanlar bulunur.
Konumuza geçmeden önce DirectX SDK yı aşağıdaki adresten indirin.
DirectX in ana sayfası.
http://msdn.microsoft.com/directx/
Kaldığımız yerden DirectX'e devam edelim. DirectX le çalışmaya
başlamadan önce DirectX in başlık (include) ve kütüphane (library)
dosyalarının bulunduğu yolları IDE mize tanıtmamız gerekmektedir.
Ayarlar Visual Studio 2005 IDE sine göre anlatılmaktadır. Ancak Visual
Studionun eski sürümlerinde de ayarlar aşağı yukarı aynıdır. IDE mizin Tools menüsünden Options maddesine tıklayarak aşağıdaki ayar penceresini açalım. Sol taraftaki menüden Projects and Solutions altındaki VC++ Directories
maddesini tıklayınca sağ tarafta ilgili ayar kısmı belirecektir.
Aşağıdaki resimde kırmızı oklarla gösterilen sırada işlemlerimizi
gerçekleştiriyoruz. Aşağıdaki resimde DirectX in başlık dosyalarının
bulunduğu klasörü IDE mize tanıtıyoruz. Bunun için Show directories kısmından Iclude files
seçeneğini seçip 3. okla gösterilen buton ile yeni bir yol satırı
ekliyoruz. 4. okla gösterilen butona basarak boş olan yol satırına
DirectX in başlık dosyalarının olduğu yolu gösteriyoruz. DirectX e ait
başlık ve kütüphane dosyalarının olduğu klasörler DirectX SDK nın kurulu
olduğu klasörün içindedir. Yani başlık dosyaları için (DxSdk klasörü)include, kütüphane dosyaları için; 32bit sistemler için (DxSdk klasörü)Libx86, 64bit sistemler için (DxSdk klasörü)Libx64 yollarını IDE mize eklememiz gerekiyor. Bende DirectX Sdk c:\DXSDK konumunda kurulu olduğu için ayarları ona göre yapıyorum. Normalde DxSdk "Program Files" klasörü içine kurulmaktadır. Sizde kendi sisteminizdeki kurulum yerine göre klasörlerin yerini ekleyiniz.
Başlık (include .h) dosyalarının bulunduğu klasörleri eklemek için izlenecek adımlar:
Kütüphane (library .lib) dosyalarının bulunduğu klasörleri eklemek için izlenecek adımlar:
DirectX e ait başlık ve kütüphane dosyalarının bulunduğu klasörleri IDE
mize tanıtmış olduk. Bu ayarları bir defalığa mahsus yapıyoruz. DirectX
le çalışacağımız diğer projeler için aynı ayarı tekrar tekrar yapmamız
gerekmez.
Şimdi de DirectX i kendi projelerimize nasıl adapte edeceğimize
bakalım. Önceki yazımızda DirectX'in bir çok kütüphaneden ibaret
olduğundan bahsetmiştik. Bu kütüphaneleri ihtiyacımız doğrultusunda
projemize dahil ederek ihtiva ettikleri fonksiyonları ve yapıları
projemize dahil ederiz. Başlangıç için aşağıdaki başlık dosyalarını
projemize eklememiz yeterli olacaktır. d3dx9.h dosyası içinde
Direct3D nin çoğu arabirimi ve yapısının tanımlarının bulunduğu başlık
dosyaları zaten önceden tanımlıdır. Onun için d3dx9.h dosyasını eklemek yeterli olacaktır. Buna ek olarak ileride gerekli olacak birkaç başlık dosyasını daha projemize ekleyelim. Dxerr.h
başlık dosyası içinde DirectX in hata kodlarını işleyebilmemiz için
gerekli fonksiyonlar ve tanımlar bulunmaktadır. math.h dosyası içinde
standart matematik işlemeler yapabilmemiz için gerekli fonksiyonlar
tanımlıdır. mmsystem.h dosyası içinde de ileride işimize yarayacak
fonksiyonlar bulunmaktadır.
C/C++ kodu:
#include <d3dx9.h> #include <Dxerr.h> #include <mmsystem.h> #include <math.h>
Başlık dosyalarından sonra kütüphane dosyalarını da (.lib) projemize dahil edelim. d3d9.lib, d3dx9.lib/d3dx9d.lib, DxErr.lib başlangıç için kullanacağımız arabirimlerin tanımlı olduğu kütüphanelerdir. Dikkat ederseniz d3dx9.lib/d3dx9d.lib
gibi ikili bir tanım kullandık. Bunun nedeni şudur. Çoğu kütüphanenin
hem debug hem de release için ayrı sürümleri bulunur. Yani release ve
debug derleme için ayrı ayrı .lib dosyaları kullanılır ve ona göre ayar
yapmamız gerekir. Bunun nedenini şu şekilde açıklayayım. Debug
derlemelerde programımız release derlemeye göre daha yavaş çalışır ancak
çalışma sırasında hataları, program işleyişi sırasında gelişen olayları
daha iyi izlemeye olanak tanır. Release derleme de programımız en iyi
hızda çalışır ancak hata tespiti zordur. Kütüphane dosyalarını projemize
dahil etme işlemine devam edelim. Bunu iki yolla yapabiliriz. Birincisi
projemizin başına #pragma comment(lib,"xxxxx.lib") gibi bir
satır eklememiz gerekmektedir. Yalnız bahsini ettiğimiz iki değişik
kütüphanenin seçilen derleme için projeye ayrı ayrı dahil edilmeleri
gerekmektedir. Bunu da aşağıdaki gibi bir kod yazarak sağlayabiliriz.
Aşağıdaki kod parçasında debug derleme yapıldığı zaman d3dx9d.lib dosyası, diğer durumlar için d3dx9.lib dosyaları projeye dahil edilecek. d3d9.lib ve DxErr.lib her koşulda projeye dahil edilecek. Aslında d3d9.lib
kütüphanesininde release ve debug için ayrı sürümleri var ancak ileride
bu seçimin dışarıdan müdahalelerle nasıl yapılacağını ve bize ne gibi
yararlar sağlayacağını göreceğiz.
C/C++ kodu:
C/C++ kodu:
//Değişik derleme sürümleri bulunan kütüphanelerin derleme türüne göre projeye dahil edilmesi işlemi. #ifdef _DEBUG #pragma comment(lib,"d3dx9d.lib") #else #pragma comment(lib,"d3dx9.lib") #endif #pragma comment(lib,"d3d9.lib") #pragma comment(lib,"DxErr.lib")
Kütüphane dosyalarını projemize dahil etmenin ikinci yolu ise "Project" menüsünden "Properties" seçeneğine tıklayarak açılan proje ayarları penceresinden yapmaktır. Configuration kısmında projemizin derleme tipine göre ayrı ayarlar kullanmasını sağlayabiliriz. Altta kırmızı oklarla gösterilen derleme türlerinden birini seçip gerekiyorsa her derleme türü için ayrı ayarlar yapabiliriz. Aşağıdaki resimde Release derleme tipi için olan ayar gösterilmektedir. Linker/Input seçeneği ile açılan pencerede sağ tarafta Additiolan Dependencies kutusuna projeye dahil edilecek olan kütüphane dosyalarını aralarında boşluk bırakarak dahil ederiz. Release için d3d9.lib,d3dx9.lib ve DxErr.lib dosyalarını dahil ettik . Aynı işlemi Debug içinde yapmalıyız ama bu sefer farklı olarak d3dx9.lib yerine d3dx9d.lib dosyasını dahil edeceğiz. Yani Additiolan Dependencies kutusuna d3d9.lib,d3dx9d.lib ve DxErr.lib dosyalarını yazacağız. All Configurations için yapılan ayarlar hem Debug hem de Release derlemeler için geçerli olacaktır. Diğer kütüphaneleri de aynı bu şekilde projemize dahil edebiliriz. Hangi yöntem size daha rahat geliyorsa onu kullanın. Ancak şunu unutmayın ki bu konuştuklarımız sadece projeye kütüphane dosyalarını dahil etmekle ilgiliydi. Bazı durumlarda daha teferruatlı ve değişik ayarlar gerekebilir. Bu durumda da kodla uğraşmak yerine bunu proje ayarlarından yani aşağıdaki resimde gördüğünüz pencereden yaparsınız. Kodla göstermiş olduğum projeye kütüphane dosyalarını dahil etmenin alternatif bir yoluydu sadece.
Başlık ve kütüphaneleri DirectX le uğraşacağımız her proje için ayrı
ayrı tanıtmak gerekmektedir. Çünkü her projenin kendi ayarları
bulunmaktadır. Bir sonraki dersimizde görüşünceye kadar kendinize iyi
bakın.
Bilgin Terzi ( 3ddreams)
Yorumlar
Yorum Gönder