Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Anatoly
Založen: 08. 05. 2009 Příspěvky: 10
|
Zaslal: 8. květen 2009, 10:00:26 Předmět: OpenGL - načítání textur s rozlišením 128x128 a vyšší |
|
|
Zdravím
jak je z nadpisu patrno, dělá mi problém načítat textury s rozměry přesahujícími 64x64. Načtení obrázku(bmp, load přes SDL) proběhene v pořádku, nastavení parametrů taky, problém nastane při volání funkce glTexImage2D. IDE (Code:blocks) vyhodí hlášku Segmentation fault. Z debuggeru jsem zjistil, že pád nastane někde v knihovně atioglx2.dll. Pokud nechám program proběhnout bez debuggeru vypíše se do konzole
process returned 3. Někde jsem četl, že to znamená soubor nenalezen, ale to asi nebude ono, protože SDL texturu v pořádku načte.
Napadá mě, že by mohl být problém s ovladači grafiky, ale to by se nejspíše projevilo i jinde např při hraní her.
Moje železo je notebook:
AMD Turion 64 X2
1GB ram
ATI Mobility Radeon HD 2600 (256MB ram)
kód: |
//txt_man je struktura ukládájící načtené textury
if(image!=NULL)
{
txt_man->txt_width[txt_man->txt_count]=image->w;
txt_man->txt_height[txt_man->txt_count]=image->h;
glGenTextures(1,&txt_man->texture[txt_man->txt_count]);
glBindTexture(GL_TEXTURE_2D,txt_man->texture[txt_man->txt_count]);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, 3, image->w, image->h,
0, GL_RGB, GL_UNSIGNED_BYTE, &image->pixels);
txt_man->txt_count++;
}
|
předem díkes, snad na něco přijdete... [/code] |
|
Návrat nahoru |
|
|
bolejt
Založen: 02. 05. 2009 Příspěvky: 45
|
Zaslal: 8. květen 2009, 10:27:52 Předmět: |
|
|
jak vypada txt_man a jak alokujes vsechny veci?
nechal sis vubec zobrazit, co ti to nacetlo za obrazek, nebo jsi jen ve fazi nacitani a veris, ze 64x64 nacetlo v poradku? .)
prestoze nevim, jak vypada txt_man a to, co v nem hnizdi, tak mne se nezda tohle:
glTexImage2D(GL_TEXTURE_2D, 0, 3, image->w, image->h, 0, GL_RGB, GL_UNSIGNED_BYTE, &image->pixels);
protoze glTexImage2D bere jen void* a predpokladam, ze pixels je ukazatel na cosi, tak bych to opravil na tohle:
glTexImage2D(GL_TEXTURE_2D, 0, 3, image->w, image->h, 0, GL_RGB, GL_UNSIGNED_BYTE, image->pixels); _________________ Ball ball8; |
|
Návrat nahoru |
|
|
Anatoly
Založen: 08. 05. 2009 Příspěvky: 10
|
Zaslal: 8. květen 2009, 19:10:33 Předmět: |
|
|
Díkes, zdá se, že to bylo tím. Jasně, že jsem si to nechal zobrazit, menší textury se zobrazily(i když je pravda, že trochu divně).
hm zdá se, že C rozumim míň, než jsem si myslel... |
|
Návrat nahoru |
|
|
|