Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 9. srpen 2007, 20:59:25 Předmět: blby konstruktor |
|
|
mam triedu a konstruktor
kód: |
class TextureRes{
public:
TextureRes();//konstruktor
~TextureRes();//destrktor
GLuint LoadTex(char *path);//nahra texturu a vrati jej cislo
void SetFilter(GLuint mag,GLuint min,int mip,float ani);//ak je 0 vypne ak 1 zapne filter ak je -1 nemeni.
private:
unsigned int *textury;//ukazovatel na pole textur
unsigned int pocet,max;//pocet nahranych textur, kolko je alokovanych textur
GLuint filtre[3];//nastavenie pre filtre MAG MIN a MIPMAP filter
float max_anisotropy,anisotropy;
};
TextureRes::TextureRes(void)
{
textury = new GLuint[10];
pocet = 10;
filtre[0]=GL_LINEAR;filtre[1]=GL_NEAREST;filtre[2]=1;
glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &max_anisotropy);
printf("AF: %.0f\n",max_anisotropy);
} |
no a mam problem ze konstruktor sa nevola pri statickom vytvarani
kód: |
TextureRes textura,*ptextura;
ptextura = new TextureRes;//zavola sa konstruktor
textura.SetFilter(GL_LINEAR,GL_LINEAR,1,2);//pri statickom sa nezavola konstruktor
ptextura->SetFilter(GL_LINEAR,GL_LINEAR,1,2); |
_________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
(CZ)genius
Založen: 28. 07. 2007 Příspěvky: 85 Bydliště: Neratovice
|
Zaslal: 9. srpen 2007, 21:19:46 Předmět: |
|
|
no ja bych predpokladal ze se konstuktor zavola uz na prvnim radku ("TextureRes textura;") |
|
Návrat nahoru |
|
 |
klapauciusk
Založen: 08. 08. 2007 Příspěvky: 76
|
Zaslal: 10. srpen 2007, 12:08:26 Předmět: |
|
|
Nejsem si jistej jestli to má vliv ale nemělo by tam být:
ptextura = new TextureRes(); |
|
Návrat nahoru |
|
 |
(CZ)genius
Založen: 28. 07. 2007 Příspěvky: 85 Bydliště: Neratovice
|
Zaslal: 10. srpen 2007, 12:21:44 Předmět: |
|
|
klapauciusk napsal: |
Nejsem si jistej jestli to má vliv ale nemělo by tam být:
ptextura = new TextureRes(); |
k tomu nevidim zadnej duvod... |
|
Návrat nahoru |
|
 |
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
Zaslal: 10. srpen 2007, 13:20:47 Předmět: |
|
|
nou: zkus rozdelit ty radky
kód: |
Texture tex;
Texteru* ptex; |
jestli to kompiler spatne nezere |
|
Návrat nahoru |
|
 |
Chjoodge

Založen: 30. 07. 2007 Příspěvky: 145
|
Zaslal: 10. srpen 2007, 13:23:29 Předmět: Re: blby konstruktor |
|
|
nou napsal: |
no a mam problem ze konstruktor sa nevola pri statickom vytvarani |
http://nopaste.ceske-hry.cz/459 - vypíše 2x "Konstruktor". IMHO je chyba někde jinde, dáš ruku do ohně za to, že se ten konstruktor nevolá? |
|
Návrat nahoru |
|
 |
MD

Založen: 29. 07. 2007 Příspěvky: 437 Bydliště: Praha
|
Zaslal: 10. srpen 2007, 13:58:47 Předmět: |
|
|
Samozrejme ze se ten konstruktor vola pri ty deklaraci (prvni radek). Pokud ne tak je neco moc moc spatne  _________________ - play with objects - www.krkal.org - |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 10. srpen 2007, 15:38:09 Předmět: |
|
|
tak som zistil v com to je. s C++ len zacinam. nejak som sa s tym pohral a zistil som ze je to kvoli tomuto
kód: |
class Core{
private:
TextureRes textura;
/*dalsi balast */public:/*este vetsi :-)*/
}; |
tak to nefunguje. takze je moznost aby som mal staticky deklarovanu triedu alebo tam musim dat ukazatel na tu triedu a v konstruktory Core volat new ResourceTex _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
Zaslal: 10. srpen 2007, 15:46:21 Předmět: |
|
|
http://nopaste.ceske-hry.cz
posli cely zdrojak - at mame nad cim premyslet;
v pripade ze vytvoris to Core musi se vytvorit i Texture |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 10. srpen 2007, 16:26:51 Předmět: |
|
|
http://nopaste.ceske-hry.cz/460
tak tu to mate. iank by som este chcel vediet
malloc() = new
free() = delete
realloc() = ??  _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
Mnemonic

Založen: 28. 07. 2007 Příspěvky: 93
|
Zaslal: 10. srpen 2007, 17:00:09 Předmět: |
|
|
nou napsal: |
realloc() = ??  |
new, memcpy, delete |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 10. srpen 2007, 17:30:53 Předmět: |
|
|
to pochybujem ze by mohlo byt memcpy. asi by to aj skopirovalo ale co ked budem v konstrktore alokovat pamet?? tie ukazatele na pamet by sa mi memcpy prepisali. asi si budem musiet urobit kopirovaci konstruktor a robit to tak. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
Mnemonic

Založen: 28. 07. 2007 Příspěvky: 93
|
Zaslal: 10. srpen 2007, 18:12:18 Předmět: |
|
|
No tak ono jaksi zalezi na tom, na co chces ten "jako realloc" pouzit. Predpokladal jsem, ze chces zmenit velikost nejakyho bufferu, alokovanyho treba pres neco jako new byte[]. |
|
Návrat nahoru |
|
 |
Chjoodge

Založen: 30. 07. 2007 Příspěvky: 145
|
Zaslal: 10. srpen 2007, 18:33:25 Předmět: |
|
|
Mnemonic napsal: |
nou napsal: |
realloc() = ??  |
new, memcpy, delete |
Je tam zásadní rozdíl - memcpy nic neuvolňuje ani nealokuje. Ekvivalent realloc v tomhle smyslu neexistuje. Je potřeba naalokovat novou paměť (new), zkopírovat (memcpy) a uvolnit starou (delete). |
|
Návrat nahoru |
|
 |
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
Zaslal: 10. srpen 2007, 18:34:09 Předmět: |
|
|
Mnemonic napsal: |
nou napsal: |
realloc() = ??  |
new, memcpy, delete |
ne nutne ale - realloc vrati stejnou adresu a alokuje vic pameti pokud je dost volno za alokovanou pameti |
|
Návrat nahoru |
|
 |
|