South_Bridge Skrevet 18. november 2008 Del Skrevet 18. november 2008 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
GeirGrusom Skrevet 18. november 2008 Del Skrevet 18. november 2008 For å skalere bilder i OpenGL kan du ihvertfall bruke gluScaleImage. Lenke til kommentar
South_Bridge Skrevet 18. november 2008 Forfatter Del Skrevet 18. november 2008 For å skalere bilder i OpenGL kan du ihvertfall bruke gluScaleImage. Jeg burde kanskje ha lagt ved at jeg ikke er kjent med GL :-/ Har du noe eksempel på hvordan du ville ha scalet et SDL_Surface? Lenke til kommentar
Giddion Skrevet 18. november 2008 Del Skrevet 18. november 2008 Jeg ser du har googla det, men jeg lurer fortsatt på om det er noe alla dette du leter etter: link Lenke til kommentar
South_Bridge Skrevet 19. november 2008 Forfatter Del Skrevet 19. november 2008 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
GeirGrusom Skrevet 19. november 2008 Del Skrevet 19. november 2008 (endret) // 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 19. november 2008 av GeirGrusom Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå