Niin, miten opengl:llä saa piirrettyä kuvia näytölle opengl-tilassa? Siis suoraan aivan kuin 2d-tilassa. SDL kun ei voi piirtää jos opengl käytössä.
Edit: Saan siis tuolla Metabolixin SDL-pinnat OpenGl-tekstuuriksi -vinkillä kyllä tekstuuriksi.
No jos et halua polygonina piirtää, niin glDrawPixels on ratkaisu. Testaamatta väittäisin, että se toimii näin:
/* Asetetaan rasteri */ glRasterPos2f(x, y); /* voi antaa z-koordinaatinkin */ glDrawPixels(kuva->w, kuva->h, GL_RGBA, GL_UNSIGNED_BYTE, kuva->pixels); /* Tarkista kuvan formaatti ensin (vaikka sen tekstuurivinkin mukaan) */
Matriisi pitää tietenkin asettaa sopivasti, jos haluaa piirtää juuri pikselien mukaan eikä vain jotain neliöpintaa GL_QUADin tapaan. Toisaalta samaan tulokseen pitäisi kyllä päästä myös sopivilla asetuksilla ja oikein asetellulla GL_QUADilla.
Öh... Miten se matriisi pitää asettaa? En Oikein saanut toimimaan...
Hmm... Sain toimimaan niin, että se piirtää ne sinne pisteeseen x,y, tosin tässä tapauksessa 3d -alueen kohtaan... O_o
Edit: Eli siis ei näytölle, vaan sinne alueelle: Käytän gluLookAtia.
Edit2: Opettelin hiukan ja sain matriisit käsiteltyä oikein. Nyt kuitenkin seuraava ongelma: kun piirrän kuvan, niin se toimii, jos vain laitan kuvan y-arvon kuvan korkeus+y. Muuten se piirtyy liikaa vasemmalle.
glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); glOrtho (0.0f, screen.width, screen.height, 0.0f, -1.0f, 1.0f); glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); glRasterPos2f(0, 64); glDrawPixels(kuva->w, kuva->h, GL_RGBA, GL_UNSIGNED_BYTE, kuva->pixels); glMatrixMode(GL_PROJECTION); glPopMatrix(); glMatrixMode(GL_MODELVIEW); glPopMatrix();
Edit3: Eli siis y-arvo ei toimi oikein :P
Tuon y-ongelman lisäksi en vain keksi miten saisin sen formaatin oikein...
Formaatin saa oikein aivan samalla tavalla kuin tuossa tekstuurivinkissäni eli luomalla apupinnan. Lienee järkevää muuttaa koko pinta tuohon käyttökelpoisempaan formaattiin vaikka jo lataamisen yhteydessä.
Siis rasterin sijaintiinko tuo korkeus+y pitää laittaa? Kuulostaapa merkilliseltä. Saatko kuvakaappauksen tilanteesta?
Niin siis kuva näyttää rasterina 0,0 tältä: http://koti.mbnet.fi/kray/kuvia/
Eli onko joku asetus väärin tms...?
Edit: Niin siis formaattiongelma ratkaistu, mutta muuten pielessä.
Edit2: Kun laitoin glOrtho:n näin: glOrtho (0.0f, screen.width, 0.0f, screen.height, -1.0f, 1.0f); , niin tuntuisi siltä että muuten toimii, mutta kuva on väärinpäin, eli pitäisi kääntää jotenkin... Siis koko näyttötila.
Aihe on jo aika vanha, joten et voi enää vastata siihen.