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