2016-04-14 20 views
-1

Yani, SDL_RenderCopy() için bir sarmalayıcı yapmaya çalışıyorum ve bir nedenden dolayı, "tanımlanmamış" SDL_Texture 'kullanımı "yazan bir hata alıyorum. Tüm SDL2 kütüphanelerinin bağlantılı ve üstbilgileri var. İşte kod: SDL_Texture tarafından bulunmadı

void drawImage(Uint32 tex, float x, float y){ 
    SDL_Rect rec; 
    rec.x = x; 
    rec.y = y; 
    if(vcTextures.size() > tex){ //If the argument is in range 
     if(vcTextures[tex] != 0){ //If the index points to an image 
      rec.w = vcTextures[tex]->w; 
      rec.h = vcTextures[tex]->h; 
      SDL_RenderCopy(gvRender, vcTextures[tex], 0, &rec); 
     }; 
    }; 
}; 

vcTextures

yürütme sonunda kolay temizlik için tüm yüklü dokular adreslerini saklamak için tip vector<SDL_Texture*> taşımaktadır. Bunun gerçekleştiği tek yer burası. "SDL_Texture 'bildirgesine bakın" yazan iletiyi tıklattığımda, bana bildirimi gösterir, bu nedenle dosya türüne göre var olduğunu biliyorum.

1>f:\c++\xyg\xyg_runtime\graphics.cpp(125) : error C2027: use of undefined type 'SDL_Texture' 
1>  d:\sdl2\vc\include\sdl_render.h(127) : see declaration of 'SDL_Texture' 
1>f:\c++\xyg\xyg_runtime\graphics.cpp(125) : error C2227: left of '->w' must point to class/struct/union/generic type 
+0

Ve SDL üstbilgisi * bu * kaynak dosyada var mı? Sorunuzu, * gerçek * derleyici çıktısını metin, kopyala yapıştırılmış (yeniden yazılmamış veya düzenlenmemiş) ve tamamlandı (diğer uyarılar, hatalar veya bilgilendirici mesajlar dahil) olarak düzenleyebilir misiniz? Ve mümkünse, lütfen [Minimal, Tam ve Doğrulanabilir Örnek] (http://stackoverflow.com/help/mcve) oluşturmaya çalışın ve bize de gösterin. –

+0

Evet, bu kaynak dosyaya ekledim ve tam hata iletisini ekledim. Bir MCVE sağlamak için yepyeni bir program yazmam gerekecek, bu yüzden biraz zaman alacak. –

cevap

2

doğrudan SDL_Texture üyelerini erişmek gerekiyordu değildir:

İşte tam hata mesajı yok. Bu bir opaque type. Belgelerin, w veya h üyelerinden hiç bahsetmediğinden eminim, bu yüzden bunu yapmayı düşündüğüm yeri bilmiyorum. Doku hakkında bilgi almak isterseniz, SDL_QueryTexture'u kullanabilirsiniz.

SDL_QueryTexture(vcTextures[tex], nullptr, nullptr, &rec.w, &rec.h); 
+0

SDL_Texture için wiki sayfasında bahsedilmedi. Sonra tekrar, bir çok SDL2'nin wiki'si çok eksik. Bunun işe yarayıp yaramadığını göreceğim. –

+0

Çalıştı! Teşekkür ederim! –

İlgili konular