Gå til innhold

SDL og scaling, GL?


Anbefalte innlegg

Sitter med et prosjekt hvor jeg har noen surfaces jeg ønsker å scale. jeg har skrevet kode i SDL som går pixel by pixel som gjør at programmet suger ut all cpukraft.

 

Så jeg er å undersøker litt med andre metoder... og det ska gå med OpenGL i SDL. Noen som har peil på dette? hvis jeg har et SDL_Surface* surface: hvordan scaler jeg dette?

Lenke til kommentar
Videoannonse
Annonse
Jeg ser du har googla det, men jeg lurer fortsatt på om det er noe alla dette du leter etter: link

 

Nope beklager. Jeg har prøvd den koden der. Tingen er at jeg skal scale mens jeg spiller. hadde jeg måtte scale før spillet haddet det vært greit. men koden du har funnet er pixel by pixel og får CPUen til å jobbe konstant på 50% og du skal ikke da ha mer en 2-3 surfaces før hele prosjektet ditt lagger :-)

Lenke til kommentar
// Definer firkant
float verts[8] = {
 -.5f, -.5f,
 .5f, -.5f,
 .5f, .5f,
 -.5f, .5f };
// Lagre gammel matrisemodus (kan fjernes sammen med glPopAttrib hvis du ikke trenger det
glPushAttrib(GL_MATRIX_MODE);
 glMatrixMode(GL_MODEate(GL_TEXTURE_COORD_ARRAY);
 // Sett pekere til firkanten
 glVertexPointer(2, GL_FLOAT, 0, verts);
 glTexCoordPointer(2, GL_FLOAT, 0, verts);
 // Skaler bildet (4 ganger så stort i dette tilfellet)
 glScale(4, 4);
 // Flytt bildet dit du vil under her
 glTranslatef(1, 1);
 // Tegn firkanten
 glDrawArrays(GL_QUADS, 0, sizeof(verts) / sizeof(float));
 // Hent tilbake gammel matrise
 glPopMatrix();
 // Skru av texture coordinate array
 glDisableClientState(GL_TEXTURE_COORD_ARRAY);
 // Hent den gamle matrisemodusen
glPopAttrib();

Endret av GeirGrusom
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...