Questa settimana si chiude il rilascio dei software su cui lavoro in ufficio. Sono giorni ovviamente un p� febbricitanti. Eppure ero sicuro di aver finito tutto il mio lavoro la settimana scorsa e mi preparavo mentalmente ad una settimana di riposo...
Ma...
Diversi nostri clienti hanno problemi con i driver OpenGL. Questi
benedetti driver, realizzati dalle pi� prestigiose aziende del settore,
sono pieni di bachetti microscopici e non documentati (e forse neanche
noti), che pensano sia giusto (sempre per la famosa legge di Murphy)
venire fuori soltanto sulle macchine dei tuoi clienti e mai su quelli
degli sviluppatori. Cos� mi sono messo in cerca di report di ogni
genere che riguardassero incompatibilit� pi� o meno note. Sulla
Knowledge Base di Microsoft ho scoperto che i bug risolti nelle varie
versioni di Windows e nei service pack relativi a opengl sono
innumerevoli... E cos� ne ho preso nota. Poi ho preso alcune
indicazioni dalle KB per sviluppatori della ATI e della nVidia (in
particolare quest'ultima � impressionante).
Fatto tutto ci�, ho preso la nostra bella classettina che contiene
le chiamate opengl e l'ho "sistemata" in base a tutte le annotazioni
che avevo preso - alla fine si riducevano a 3-4 relativamente al nostro
codice. Ho fatto qualche test di regressione, sembrava funzionare
tutto. Ho messo le modifiche nel ramo di sviluppo principale e abbiamo
ricompilato tutto. Solo oggi per� ho lanciato per altri motivi altri
test e mi sono reso conto che si verificavano dei problemi addirittura
sul mio computer - cosa finora mai vista - legati ad OpenGL, e ho
scoperto un'altra cosa raccapricciante, dopo ore di debug e stress. Per
qualche assurdo motivo i glNormal dopo glBegin, utilizzati con i
glEdgeFlag, SOLO se si disegnano quadrilateri, mandano il driver video
in crash, ma SOLO se � successo chiss� che cosa prima... Togli gli
edgeflag o metti il glNormal PRIMA del glBegin: tutto funziona...
Per fare una similitudine, � come se tutti gli anni in cui il 3
marzo capita di marted�, il 15 agosto nevicasse all'equatore... MAH