South_Bridge Skrevet 18. november 2008 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?
GeirGrusom Skrevet 18. november 2008 Skrevet 18. november 2008 For å skalere bilder i OpenGL kan du ihvertfall bruke gluScaleImage.
South_Bridge Skrevet 18. november 2008 Forfatter 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?
Giddion Skrevet 18. november 2008 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
South_Bridge Skrevet 19. november 2008 Forfatter 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 :-)
GeirGrusom Skrevet 19. november 2008 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
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å