Aim
The purpose of creating those applications and then porting them to both of those architectures were numerous. Firstly, it was to demonstrate the portability of third-party applications to SAGE and CGLX. Secondly, to illustrate that portability through various examples which could be used as a base for others. Lastly, to experiment and research the various pitfalls, strong and weak points of this procedure as well as those middleware's respective APIs.
OpenGL/GLUT-based image viewer
This application views jpg images by using a tiled representation of the file, projected on multiple textured quads. If required, the source code can be modified in order to open multiple files (up to the video card's total texture memory space). More extensively, this program was written with remote pixel capture and streaming in mind, although only the visualization part has been implemented. For example, Pixels could be streamed into those buffers from remote locations (use of pixel buffer objects recommended).
This application illustrates the memory state synchronization mechanism of CGLX, and as such is a simple example to get started.
OpenGL/GLUT-based object viewer
Unlike the previous one, this software is a more complex, heavier code-wise application. It can be used to visualize Wavefront's .obj files through an implementation of a Scene graph data structure and rendering logic. The code base is above most example in terms of complexity and size, and as such was a good example of what happens in more complex cases. As expected, more modifications than usual were needed - but still insignificant when compared to the application's size. However, this required a total knowledge of the application in order to fix small issues.
The source code of this application is available, as well as two example object files. The .obj file format has been extended in order to incorporate lighting informations. Use those two examples in order to replicate this extension for later uses.
