La compilation produit deux fichiers binaires, tom et libtom.so. L'éxécutable tom est équivalent à wish augmenté des fonctions OpenGL, mais on peut faire la même chose avec la librairie libtom.so :

Les procédures et les variables OpenGL sont définies dans le namespace ::GL. Comme on peut le voir en comparant les fichiers simple.tcl et more_simple.tcl, il est vite ennuyeux de devoir taper ::GL:: avant chaque appel à une procédure OpenGL. La première chose à faire pour éviter ça est d'importer le namespace ::GL :

Au départ, il n'existe aucun contexte courant, et l'appel à une fonction OpenGL génère une erreur :

Par défaut, la création d'un widget OpenGL initialise le contexte courant sur ce widget :

Il est possible de contrôler l'initialisation du contexte courant avec l'option -current :

Il existe d'autres options de création : -width (0), -height (0), -doublebuffer (0), -alpha (0), -direct (1), -depth (0) et -share (NULL).

Lorsqu'il existe un contexte courant, les fonctions OpenGL sont accessibles et s'appliquent au widget courant. Ainsi, pour effacer .gl1 en noir et .gl2 en blanc :

Reste à voir le résultat :