#include "libo3d" o3d::Display disp(nil, nil); // Declare "hidden" HW externs just to get coverage namespace o3d { extern _objName, _intCylGen, _objAddRef, _objParent, _intMakeBox, _intReadPNG, _intReadPPM, _objDestroy, _objInquire, _intMakeCone, _intMakeRing, _intPlaneGen, _intSetError, _dispGuiText, _dispScissor, _objPropList, _intMakeTorus, _intSphereGen, _dispCallList, _dispDrawMesh, _dispGuiLines, _dispOpenList, _dispViewport, _intMakeSphere, _intOrientData, _intSmoothMesh, _dispCloseList, _dispDrawQuads, _dispDrawStrip, _dispGuiRaster, _dispSurfAttrs, _intCreateImage, _intMakeSurfRev, _intMakeTerrain, _intModifyAlpha, _intTextureData, _dispBoundsSize, _dispGuiPolygon, _intArrayToImage, _intDestroyImage, _intMakeThinRing, _dispCallGuiList, _dispDestroyList, _dispDrawMarkers, _dispDrawPolygon, _dispGetMousePos, _dispGuiPolyline, _dispOpenGuiList, _dispCloseGuiList, _dispDrawPolyline, _dispGuiRectangle, _dispBoundsVisible, _dispCreateTexture, _dispGetVisibility, _dispSetVisibility, _dispCurrentTexture, _dispDestroyGuiList, _dispDestroyTexture, _dispPositionalLight, _dispSetInvisibility, _dispDrawIndexedTriangles; } proc main() { var procs = { o3d::_objName, o3d::_intCylGen, o3d::_objAddRef, o3d::_objParent, o3d::_intMakeBox, o3d::_intReadPNG, o3d::_intReadPPM, o3d::_objDestroy, o3d::_objInquire, o3d::_intMakeCone, o3d::_intMakeRing, o3d::_intPlaneGen, o3d::_intSetError, o3d::_dispGuiText, o3d::_dispScissor, o3d::_objPropList, o3d::_intMakeTorus, o3d::_intSphereGen, o3d::_dispCallList, o3d::_dispDrawMesh, o3d::_dispGuiLines, o3d::_dispOpenList, o3d::_dispViewport, o3d::_intMakeSphere, o3d::_intOrientData, o3d::_intSmoothMesh, o3d::_dispCloseList, o3d::_dispDrawQuads, o3d::_dispDrawStrip, o3d::_dispGuiRaster, o3d::_dispSurfAttrs, o3d::_intCreateImage, o3d::_intMakeSurfRev, o3d::_intMakeTerrain, o3d::_intModifyAlpha, o3d::_intTextureData, o3d::_dispBoundsSize, o3d::_dispGuiPolygon, o3d::_intArrayToImage, o3d::_intDestroyImage, o3d::_intMakeThinRing, o3d::_dispCallGuiList, o3d::_dispDestroyList, o3d::_dispDrawMarkers, o3d::_dispDrawPolygon, o3d::_dispGetMousePos, o3d::_dispGuiPolyline, o3d::_dispOpenGuiList, o3d::_dispCloseGuiList, o3d::_dispDrawPolyline, o3d::_dispGuiRectangle, o3d::_dispBoundsVisible, o3d::_dispCreateTexture, o3d::_dispGetVisibility, o3d::_dispSetVisibility, o3d::_dispCurrentTexture, o3d::_dispDestroyGuiList, o3d::_dispDestroyTexture, o3d::_dispPositionalLight, o3d::_dispSetInvisibility, o3d::_dispDrawIndexedTriangles, o3d::Identity, o3d::Scale, o3d::RotateX, o3d::RotateY, o3d::RotateZ, o3d::RotateAxis, o3d::MatMult, o3d::MakeMatrix, o3d::Transform, o3d::Transform4d, o3d::TransformPersp, o3d::TransformData, o3d::InvertMat, o3d::GetError, o3d::CalcWPV, o3d::FindClass, o3d::FindObject, o3d::ParseFile, o3d::ParseArray, o3d::WriteAscii }; disp.chooseVisual(o3d::VIS_DBUFF, 0); var draw = disp.createWindow("test", 100, 100, 256, 256, 0); disp.makeCurrent(draw); forall (procs[i]) { try { // These should all throw errors... procs[i](); } catch (e) { } } var mat = new PackFloat(16); o3d::MakeMatrix({1.,1.,1.,0.,0.,0.,0.,0.,0.}, mat); }