Newsgroup: it.comp.macintosh
Titolo: comincio a disperare...

mi rivolgo ai programmatori che seguono icm. oramai non so piu' a chi
chiedere aiuto :P sto provando a fare una piccola applicazioncina con
una sottoclasse di nsopenglview. beh non funziona un tubo di niente...
mi spiego: funziona tutto, ma appena inserisco glPerspective non si vede
piu' nulla. se tolgo quella funzione si vede tutto... non riesco a
capire che diavolo c'e' che non va, eppure guardando i vari esempi in
giro non mi pare di aver fatto nulla di sbagliato.  un tizio su un altro
newsgroup mi ha detto che devo resettare le mie matrici di
trasformazione ogni volta. ci ho provato. non cambia nulla. continuo a
non vedere nulla... bhooooooooo!
@implementation MyOpenGLView
// viene chiamata in fase di inizializzazione, dopo reshape e prima
// di drawrect
- (void) prepareOpenGL
{
        // ho provato a chiamare glMatrixMode(GL_MODELVIEW) e
        // glLoadIdentity(); ma non cambia nulla
        glShadeModel(GL_SMOOTH);
        glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
        // il depth buffer e' gia' impostato in IB
        //glEnable(GL_DEPTH_TEST); 
        //glDepthFunc(GL_LEQUAL); 
 
        glClearColor(0.0f, 0.0f, 0.0f, 0.0f); 
        glClearDepth(1.0f);
}
- (void) reshape
{
        NSRect rect = [self bounds];
        GLdouble aspect;
        glViewport(0, 0, (GLsizei) rect.size.width,
                (GLsizei) rect.size.height);
 
        glMatrixMode(GL_PROJECTION); 
        glLoadIdentity(); 
 
        aspect = rect.size.width / rect.size.height;
        gluPerspective(45.0f, aspect, 0.1f, 100.0f);
}
- (void) drawRect:(NSRect)rect
{
        // ho provato a inserire [self reshape] qui ma non cambia nulla
        glMatrixMode(GL_MODELVIEW);
        glLoadIdentity(); 
 
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);     
//      glTranslatef(-1.5f,0.0f,-6.0f);
        glTranslatef(-1.5f,0.0f,0.0f);
 
        glBegin(GL_TRIANGLES); 
        glVertex3f( 0.0f, 1.0f, 0.0f); // Top
        glVertex3f(-1.0f,-1.0f, 0.0f); // Bottom Left
        glVertex3f( 1.0f,-1.0f, 0.0f); // Bottom Right
        glEnd(); 
 
        glTranslatef(3.0f,0.0f,0.0f); 
 
        glBegin(GL_QUADS); 
        glVertex3f(-1.0f, 1.0f, 0.0f); // Top Left
        glVertex3f( 1.0f, 1.0f, 0.0f); // Top Right
        glVertex3f( 1.0f,-1.0f, 0.0f); // Bottom Right
        glVertex3f(-1.0f,-1.0f, 0.0f); // Bottom Left
        glEnd(); 
 
        // se uso flushbuffer la finestra appare bianca e diventa nera
        // solo quando la ridimensiono
        //if ([self inLiveResize])
                glFlush();
        //else
        //      [[self openGLContext] flushBuffer];
}
@end
-- 
Questa firma e' frutto della tua immaginazione.

 una sottoclasse di nsopenglview. beh non funziona un tubo di niente...
posso dire cazzo qui dentro? cazzo.
ora funziona. non ho cambiato nulla. giuro. ho appena confrontanto i
sorgenti. stesso codice che ho postato qui dentro. prima non funzionava
ora si. boh... ri rinuncio.


 effetti terapeutici di icm, direi :-)
ecco, stavo giusto pensando di raccontarvi di quel dolorino che ho al
ginocchio destro.... :P


 A volte e' ZeroLink che fa sti scherzetti ;-)
ah ecco.. m'era venuto un po' il sospetto che le cose potessero essersi
aggiustate semplicemente ricompilando, ma mi sembrava un po' strano.
pero' se il problema e' davvero zerolink tanto meglio, vuol dire che non
ho ancora le allucinazioni ;)


 toscana... per far passare quello e` bastata l'aria del sud :)
Allora siamo terapeutici :-)
Meglio così.
-- 
Antonio Capaldo
http://www.buydifferent.it
  Fino al 29/4
512 MB SODDR per portatili 75€ 1 GB a 179€
512 DDR x desktop 59€ 1 GB a 135 € Tiger a 112 €.