Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Elijen
Založen: 15. 04. 2008 Příspěvky: 7
|
Zaslal: 29. duben 2008, 10:19:01 Předmět: Visual Studio C# designer + OpenGL |
|
|
Zdravim,
projíždim NeHe tutoriály a snažím se podle nich udělat zápočtový program do školy (nutno v ?#). Vše zatím fungovalo jak má, než jsem začal používat textury.
Podle zdrojového kódu pro C# Lekce 6 - Textury jsem načetl texturu v InitGLContext() a namapoval v ji na čtverec glDraw(). Překlad a spuštění proběhne v pořádku bez warningů a výjimek ale po přidání kódu pro textury již nejde spustit Form designer - hlásí nesmyslnou chybu ("Parameter is not valid" - viz obrázek).
Když odstraním následující kód designer již jako zázrakem funguje, takže předpokládám, že je chyba někde v následujícím kódu:
kód: |
GL.glEnable(GL.GL_TEXTURE_2D);
Bitmap image = new Bitmap("data/defender.bmp");
image.RotateFlip(RotateFlipType.RotateNoneFlipY);
System.Drawing.Imaging.BitmapData bitmapdata;
Rectangle rect = new Rectangle(0, 0, image.Width, image.Height);
bitmapdata = image.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadOnly,
System.Drawing.Imaging.PixelFormat.Format24bppRgb);
GL.glGenTextures(1, textures);
GL.glBindTexture(GL.GL_TEXTURE_2D, textures[0]);
GL.glTexImage2D(GL.GL_TEXTURE_2D, 0, (int)GL.GL_RGB8, image.Width, image.Height,
0, GL.GL_BGR_EXT, GL.GL_UNSIGNED_BYTE, bitmapdata.Scan0);
GL.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MIN_FILTER, GL.GL_LINEAR); // Linear Filtering
GL.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MAG_FILTER, GL.GL_LINEAR); // Linear Filtering
image.UnlockBits(bitmapdata);
image.Dispose(); |
Prosím poraďte, kde by mohla být chyba a jak to napravit.
Předem díky za jakoukoli pomoc.
S pozdravem
Elijen |
|
Návrat nahoru |
|
|
opice
Založen: 29. 07. 2007 Příspěvky: 39
|
Zaslal: 29. duben 2008, 11:27:30 Předmět: |
|
|
Taky to nechapu, ale mam takovy dojem: ty cpes ten kod do metody InitializeComponents() ????? |
|
Návrat nahoru |
|
|
Elijen
Založen: 15. 04. 2008 Příspěvky: 7
|
Zaslal: 29. duben 2008, 12:04:24 Předmět: |
|
|
opice napsal: |
Taky to nechapu, ale mam takovy dojem: ty cpes ten kod do metody InitializeComponents() ????? |
Ano, ale přesně stejně je to dělaný v tutorialu
V metodě InitializeComponents() jsem změnil jen cestu k souboru a v glDraw() přemapoval texturu, jinak je můj kód téměř totožný. |
|
Návrat nahoru |
|
|
Augi
Založen: 28. 07. 2007 Příspěvky: 782 Bydliště: Čerčany
|
Zaslal: 29. duben 2008, 12:24:00 Předmět: |
|
|
No a četl jsi ten komentář u metody InitializeComponents? |
|
Návrat nahoru |
|
|
Elijen
Založen: 15. 04. 2008 Příspěvky: 7
|
Zaslal: 29. duben 2008, 13:27:33 Předmět: |
|
|
Augi napsal: |
No a četl jsi ten komentář u metody InitializeComponents? |
Omlouvám se, měl jsem na mysli metodu InitGLContext() ne InitializeComponents() :] |
|
Návrat nahoru |
|
|
|