Gönderen Konu: Directx Sorunu  (Okunma sayısı 10530 defa)

Directx Sorunu

« : 19.10.2011 23:46:18 »
Hızlı düğmeleri aç

paradox

İleti: 134

Çevrimdışı
  • ***
  • Full Member
    • Profili Görüntüle
Selam..
Directx'in RenderToSurface nanesiyle ilgili bir sorunum var..
sık kullandığım bi yapı ve belkide diğer ürünelrdede problem olmuş olabilir..
Bende normal bi şekilde gözükmesine rağmen test için gösterdiğim kişilerde aynı sorun oluştu..Sorun fonksiyon işlemini yapmıyor..yani texture basmıyor..Bende ise herşey tıkırında..
Kod: [Seç]
D3DXCreateTexture( Device,
                            640,480,
                            1,
                            D3DUSAGE_RENDERTARGET,
                            D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT,
                                                &Texture1);

D3DSURFACE_DESC desc;
    Texture1->GetSurfaceLevel( 0, &TextureSurface );
    TextureSurface->GetDesc( &desc );

     D3DXCreateRenderToSurface( Device,
                                    desc.Width,
                                    desc.Height,
                                    desc.Format,
                                    TRUE,
                                    D3DFMT_D16,
                                    &RenderToSurface );


sorun D3D format yapılarında olabilirmi acaba?..Gerçi diğer kodlardada sıkıntı olabilir ama bende olupta neden başkasında olmuyor ilginç:)..
« Son Düzenleme: 19.10.2011 23:48:52 Gönderen: paradox »

Directx Sorunu

« Yanıtla #1 : 20.10.2011 15:18:06 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
kodda herhangi bir error check yapmadan sorunu bulmak zor olabilir. kullandığın fonksiyonlardan dönen değerleri loglatman lazım. diyelim sorun D3DXCreateRenderToSurface fonksiyonundan kaynaklanıyor.
 
Kod: [Seç]
HRESULT result = D3DXCreateRenderToSurface( Device,
                                    desc.Width,
                                    desc.Height,
                                    desc.Format,
                                    TRUE,
                                    D3DFMT_D16,
                                    &RenderToSurface );
 
if(result != D3D_OK) {
     // burada hata kontrolü, loglama v.s. yap
}

bu şekilde hatayı yakalayabilirsin. yoksa tahminler üzerinden yürümez bu iş kolay kolay. örneğin yukarıdaki hata kontrolünde D3DERR_INVALIDCALL ya da E_OUTOFMEMORY gibi bir hata dönüyor olabilir.
 
Bkz: http://msdn.microsoft.com/en-us/library/windows/desktop/bb172791(v=vs.85).aspx

Directx Sorunu

« Yanıtla #2 : 20.10.2011 15:28:41 »
Hızlı düğmeleri aç

paradox

İleti: 134

Çevrimdışı
  • ***
  • Full Member
    • Profili Görüntüle
evet doğrusu hata kontrolü yaptırmak gerek ama düzensizlikden dolayı birde bu şekilde bi sorun çıkacağı aklıma gelmemişti..Tabi büyük ihtimalle sorun ummadık bi yeren çıkıcak gene:)

Directx Sorunu

« Yanıtla #3 : 22.10.2011 21:47:26 »
Hızlı düğmeleri aç

paradox

İleti: 134

Çevrimdışı
  • ***
  • Full Member
    • Profili Görüntüle
sorun kartlarla alakalı olsa gerek..abimin laptopta ilk denemede çalışmadı..seçeneklerden nvidia ayarına getirince düzeldi..Parti mekanına gelirsek bakabiliriz bi çaresine ..

Directx Sorunu

« Yanıtla #4 : 23.10.2011 12:33:26 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
@paradox: 7dx compo makinesini hedeflersen, bir biçimde o makinede çalışsa bile sonrasında demoya pouet tarzı sitelerde yorum yapanlardan birçok eleştiri alırsın "çalışmıyor" diye. madem bir uyumsuzluk olduğunu biliyorsun, çözmek için biraz çaba sarfetmeni öneririm. mesela abinin laptop'unda "çalışmadı" dediğin durumda fonksiyonlardan dönen stateleri izledin mi? bir log dosyası oluşturdun mu?
 
Bak sana debugging için şunu öneririm.
 
http://technet.microsoft.com/en-us/sysinternals/bb896647
 
bu toolu indir ve kodunun problemli olduğunu düşündüğün bölümlerini.
 
OutputDebugString(".............. is successfull/failed");

benzeri şeylerle doldur. Sonra abinin laptopunda nvidia ayarlarında değilken bak bakalım fail eden fonksiyon neymiş. Bunu tespit ettikten sonra ya google'da daha önce binlerce kez sorulmuş sorunun yanıtlarından birini bulmaya çalış ya da stackoverflow tarzı bir sitede sor, cevap al. tam hatanın yerini tespit edersen bizler de sana yardımcı olabiliriz. hata hiç beklemediğin bir yerden çıkıyor da olabilir. kullanılmadığı halde açık olan bir alpha kanalı, render target formatının her ekran kartı tarafından desteklenmemesi v.s. v.s. birçok ihtimal var.

Directx Sorunu

« Yanıtla #5 : 23.10.2011 19:55:10 »
Hızlı düğmeleri aç

paradox

İleti: 134

Çevrimdışı
  • ***
  • Full Member
    • Profili Görüntüle
compo makinesini hedeflemiyorum..mekanda yardım alabilme şansım olur diye o tarz bişey yazmışım..Sorun çözülür bi şekilde fakat fazla bi düzenleme zamanım olmuyo bide tembellikten pek bu tarz sorunlarla uğraşmak istemiyorum ama yukarda verdiğin programı bi deneyeceğim..
yardımların için teşekkürler...