Contents 
      Previous chapter Next chapter
    
    
    
      Evaluation
    
    
      When complete, there are a number of ways that my system
      could be objectively evaluated:
    
    
      - 
        Measure the number of polygons plotted per second. This is
        a very widely cited benchmark, though how meaningful it is
        in real terms is doubtful.
      
 
      - 
        Can programs that use OpenGL be ported from other
        platforms relatively easily? It should at least be possible
        to compile and run simple graphics demos written in C.
      
 
      - 
        Is my library generally faster than the RISC OS port of 
        Mesa? This could be assessed in timed tests.
      
 
      - 
        Do fellow programmers consider the balance between speed
        and sophistication of rendering to be reasonable? (I would
        need to solicit opinions on this matter.)
      
 
      - 
        Can my library be used from BASIC? Ideally novice
        programmers should, with the aid of a tutorial, be able
        learn OpenGL and write 'toy' graphics demos.
      
 
    
    
      However, at the current stage of development (e.g. about half
      way through), none of the above points are really
      appropriate.
    
    
      In terms of the tools that I created for my own evaluation
      and debugging purposes during development, we have the
      following:
    
    
      - 
        A test harness that allows access to SWI routines and other
        module facilities (assuming that the module is statically
        linked) through APCS function definitions that can be
        safely called from test programs written in C.
      
 
      - 
        A moving starfield demo, with depth-shaded particles moving
        at different velocities towards or away from the projection
        reference point, to test perspective projection and
        handling of very large numbers of primitives.
      
 
      - 
        A test program that plots a number of
        triangles/points/lines at random positions and depths,
        defining those vertices further away in darker colours, and
        those closer to the viewer in brighter colours. This
        allowed many bugs in the painter's algorithm implementation
        to be picked up by eye.
      
 
      - 
        A test program that plots a single primitive of the type to
        be tested, whilst allowing the vertices to moved around by
        keyboard controls, and the vertex colours to be changed
        also. This allowed many bugs in the basic primitive
        rendering routines to be picked up by eye.
      
 
    
    
    
      Contents 
      Previous chapter Next chapter