Geliştirme Ortamı Kurma – Analizi Yaptırma Fiyatları – Yazılım Analizi Örnekleri – Ücretli Analizi Yaptırma – Ücretli Yazılım Yaptırma
Geliştirme Ortamı Kurma
Burada geliştirme ortamını kuruyoruz ve örnekler için örnek bir çerçeve oluşturuyoruz. Öncelikle Direct3D 10 uyumlu bir ekran kartına ve Microsoft Windows Vista işletim sistemine sahip olmamız gerekiyor. Bu bölümdeki örnekler bir NVIDIA 8600GT ekran kartı üzerinde test edilmiştir. Ardından, Direct3D programlama için gerekli olan DirectX SDK’yı arayıp indirmemiz gerekiyor.
Ardından DirectX programını yazmak için gerekli olan header ve library dosyalarını içeren Visual Studio for DirectX SDK kurulumunu aşağıdaki gibi yapıyoruz. Kodun çoğu otomatik olarak oluşturulur. Yalnızca birkaç kod parçasını değiştirmemiz ve eklememiz gerekiyor.
Visual Studio 2005’te, “Araçlar->Seçenekler” menüsünü seçin, “Projeler ve Çözümler->VC++ Dizinleri”ne göz atın, “Şunun için dizinleri göster:” açılır kutusunda “Dosyaları dahil et”i seçin, “$(DXSDK_DIR)include” öğesini ekleyin dizin listesinde, “Kitaplık dosyaları”nı “Şunun için dizinleri göster:” içinde seçin ve 32 bit bilgisayar için dizin listesine “$(DXSDK_DIR)lib\x86” ekleyin veya dizine “$(DXSDK_DIR)lib\x64” ekleyin 64bit bilgisayar için liste sunmak gerekir.
DXSDK_DIR, DirectX SDK kurulum programı tarafından oluşturulan sistem çapında bir ortam değişkenidir. Değişken, DirectX SDK için kurulum yolunu tutar. Artık programlamaya hazırız.
Örnek Bir Çerçeve
Örnek bir çerçeve projeyi aşağıdaki gibi oluşturabiliriz. İlk olarak Visual Studio 2005’te “File->New->Project” menüsünü seçerek yeni bir proje oluşturuyoruz. “Yeni Proje” penceresinde, sol “Proje türleri” ağaç listesi penceresinde “Visual C++” altından “Win32”yi seçin, ardından sağdaki “Şablonlar” penceresinde “Win32 Projesi”ni seçin.
“New Project” penceresinin alt kısmında, “Ad” alanına “ExampleFramework” yazın, yeni proje için bir klasör seçmek için “Gözat” düğmesine tıklayın ve devam etmek için “Tamam” düğmesine tıklayın. Bir “Win32 Uygulama Sihirbazı” penceresi açılacaktır. Varsayılan ayarı kullanmak için “Bitir”e tıklamanız yeterlidir. Uygulamayı derleyip çalıştırırsak standart Windows menüsü ve kontrollerinin olduğu boş bir pencere görmeliyiz. Ardından Direct3D’yi de başlatabiliriz.
Minimal Direct3D 10 uygulaması, bir pencere ayarlamayı, bir Direct3D aygıt nesnesi oluşturmayı ve pencerede bir renk görüntülemeyi içerir. Örnek çerçeve için pencereyi ayarlamak için kullanılan kodun çoğu zaten oluşturulmuştur. Aşağıdaki gibi birkaç metot eklememiz yeterli olacaktır. Direct3D aygıt nesnesi oluşturma kodu, InitD3D10Device yöntemindedir. Yöntem, geçerli pencere için bir tanıtıcı kabul eder, bir aygıt ve bir takas zinciri oluşturur, bir oluşturma hedefi görünümü oluşturur ve son olarak bir görünüm alanı da kurar.
Cihaz nesnesi, uygulama tarafından işlemeyi gerçekleştirmek için kullanılır. Arabelleklerin bakımı ve içeriğin gerçek monitör ekranında görüntülenmesi için takas zinciri de dahil olmak üzere, bir arabelleğe dönüştürmek için gereken kaynakları oluşturmaya yönelik yöntemler de içerir.
Takas zinciri iki veya daha fazla tampon içerir (ön tampon ve arka tampon). Takas zincirini oluşturmak için takas zincirini açıklayan bir DXGI_SWAPCHAIN_DESC yapısını dolduruyoruz. Aşağıdaki kod, örnek çerçevemizde kullanılan DXGI_SWAPCHAIN_DESC yapısını da listeler.
Yukarıdaki kodda, BufferCount, ön tampona ek olarak takas zincirindeki tamponların sayısını söyler. Tam ekran modunda, özel bir ön arabellek gereklidir. Pencereli modda, özel bir ön arabellek gerekli değildir ve masaüstü ön arabellek olacaktır. Tüm örneklerimiz pencereli modda olduğundan, arka tampon olarak tek bir tampon da kullanıyoruz.
BufferDesc, görüntüleme alanının boyutu, yenileme hızı ve görüntüleme formatı dahil olmak üzere arka arabellek görüntüleme modunu belirtir. Arka tamponu, pencere alanımızla aynı boyuta sahip olacak şekilde ayarladık. 4-bileşenli 32-bit işaretsiz tamsayı formatı, DXGI_FORMAT_R8G8B8A8_UNORM, arka arabellek görüntüleme formatı olarak 0 ile 1 arasında normalleştirilmiş değerler de kullanıyoruz.
C# ile Program yapma
C İlk Program
C uygulamaları
C# Console uygulamaları
C# ile uygulama yapma
Sabitler
Ayrıca yenileme hızını 60 Hz olarak ayarladık. BufferUsage, arka arabellek için CPU erişim seçeneklerini söyler. Arka arabellek, gölgelendirici girişi veya oluşturma hedefi çıktısı için kullanılabilir. Bu örnekte, arabellek kullanımını oluşturma hedefi çıktısı olarak geri ayarladık. Daha sonraki örneklerde, arka arabellek kullanımını gölgelendirici girişi olarak da ayarladık. Son olarak SampleDesc’te varsayılan kenar yumuşatma olmayan örnekleyici modunu da ayarlıyoruz.
Ardından, arka arabelleği grafik ardışık düzenine bağlamak için bir oluşturma hedefi görünümü oluşturuyoruz. Bir arka arabellek, bir doku arabelleği olabilir. İşleme için bir doku arabelleğini bağlamak için bir oluşturma hedef görünümü gereklidir. Aşağıdaki kod kesiminde, yukarıda oluşturulan takas zincirinde geri tampon nesnesini elde etmek için önce GetBuffer yöntemini de çağırıyoruz.
Ardından, geri arabellek nesnesini kullanarak bir işleme hedefi oluşturmak için CreateRenderTargetView yöntemini çağırıyoruz. Son olarak, işleme hedef görünümünü işleme için grafik boru hattına bağlamak için OMSetRenderTargets’ı da çağırıyoruz.
Direct3D 10 varsayılan olarak herhangi bir görüntü alanı oluşturmaz. Örneğimizde, tüm pencere istemci alanını kullanan bir görüntü alanı kurduk. Aşağıdaki kodda, görünümün sol üst köşesini (0, 0) ve genişlik ve yüksekliği, oluşturma hedef boyutuyla aynı olacak şekilde de ayarladık.
Şimdi InitD3DDevice yöntemini bitirdik. Metodda, takas zinciri, render hedef görünümü ve Direct3D cihazı dahil olmak üzere bazı kaynaklar oluşturduk. Uygulamadan çıkmadan önce bu oluşturulan kaynakları serbest bırakmamız gerekiyor. Release görevi DestoryD3D10Device methodunda aşağıdaki gibi de yapılır.
Bu örnekte, mevcut pencereyi tek bir renkle doldurmak olan mümkün olan en basit sahneyi oluşturuyoruz. Oluşturmayı RenderScene() yönteminde uyguluyoruz. Bu sayede adımları test etme imkanı oluşmuş oluyor.
Oluşturma hedefi görünümünü siyah yapmak için önce ClearRenderTargetView yöntemini çağırıyoruz. Ardından, takas zinciri geri arabelleğini ekrana görüntülemek için takas zincirinin Present yöntemini çağırıyoruz. Bu son derece önemli bir adımdır.
Yapmamız gereken son şey, Direct3D oluşturmayı etkinleştirmek için WinMain yöntemindeki ana mesaj döngüsünü değiştirmek de gerekir.
Burada işlenmesi gereken herhangi bir mesaj olup olmadığını görmek için PeekMessage() yöntemini çağırıyoruz. Hiç mesaj kalmadığında, görüntüleme için RenderScene()’i çağırırız.
C İlk Program C uygulamaları C# Console uygulamaları C# ile Program yapma C# ile uygulama yapma Sabitler