Prvo da te pitam da li si zaboravio da postavis ortogonalnu projekciju?
Ali u svakom slucaju odgovor na tvoje pitanje je: da, postoje i drugi nacini da se uradi to sto zelis.
Moras da postavis trenutnu poziciju rastera pomocu glRasterPos*() funkcije. Ta pozicija je u principu mesto gde zelis da crtas (donji levi ugao tvoje slike). Zatim mozes da sliku koju imas u memoriji iscrtas na tu poziciju pomocu funkcije glDrawPixels().
Nemoj da zaboravis da pre svega ovoga podesis ortogonalnu projekciju kako bi koordinate koje zadajes bile u screen space-u.
Za sve detalje pogledaj u OpenGL redbook, jer ih se ja bas i ne secam zato sto to do sada nisam koristio.
Nisam 100% siguran ali ja mislim da ce rezultat koji ces dobiti koristeci glDrawPixels() biti isti kao kad koristis teksturu jer bi i tekstura morala da ti da savrsenu sliku s obzirom da je poligon na koji si je zalepio paralelan viewplane-u a projekcija ortogonalna. Sve mi se cini da si ti verovatno zaboravio da podesis pravu projekciju.
p.s. Filtering nemoj da koristis jer ti on sigurno nece pomoci da 2D slika postane cistija ;)
Q: Are there really any systems where
void main() doesn't work?
A: It has been reported that programs using void main() can crash.
Q: The book I've been using, _C Programing for the Compleat Idiot_,
always uses void main().
A: Perhaps its author counts himself among the target audience.