// Draw a tiger func Draw(gc draw2d.GraphicContext, filename string) { // Open the postscript src, err := os.OpenFile(filename, 0, 0) if err != nil { panic(err) } defer src.Close() bytes, err := ioutil.ReadAll(src) reader := strings.NewReader(string(bytes)) // Initialize and interpret the postscript interpreter := ps.NewInterpreter(gc) interpreter.Execute(reader) }
func display() { gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT) lastTime := time.Now() gl.LineWidth(1) gc := draw2dgl.NewGraphicContext(width, height) gc.Translate(380, 400) gc.Scale(1, -1) rotate = (rotate + 1) % 360 gc.Rotate(float64(rotate) * math.Pi / 180) gc.Translate(-380, -400) interpreter := ps.NewInterpreter(gc) reader := strings.NewReader(postscriptContent) interpreter.Execute(reader) dt := time.Now().Sub(lastTime) log.Printf("Redraw in : %f ms\n", float64(dt)*1e-6) gl.Flush() /* Single buffered, so needs a flush. */ }