func (pen *Pen) lineTo(p Point) { gl.Enable(gl.BLEND) gl.Enable(gl.POINT_SMOOTH) gl.Enable(gl.LINE_SMOOTH) gl.BlendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA) gl.Color4f(0.0, 0.0, 0.0, 0.1) gl.Begin(gl.LINES) for _, s := range pen.points { if s.x == 0 && s.y == 0 { continue } if p.distanceTo(s) < 20.0 { gl.Vertex2i(int(p.x), int(p.y)) gl.Vertex2i(int(s.x), int(s.y)) } } gl.End() pen.n = (pen.n + 1) % len(pen.points) pen.points[pen.n] = p pen.moveTo(p) }
func drawQuad(x, y, w, h int, u, v, u2, v2 float32) { gl.Begin(gl.QUADS) gl.TexCoord2f(float32(u), float32(v)) gl.Vertex2i(int(x), int(y)) gl.TexCoord2f(float32(u2), float32(v)) gl.Vertex2i(int(x+w), int(y)) gl.TexCoord2f(float32(u2), float32(v2)) gl.Vertex2i(int(x+w), int(y+h)) gl.TexCoord2f(float32(u), float32(v2)) gl.Vertex2i(int(x), int(y+h)) gl.End() }
func drawSelection(p1, p2 Point) { min, max := minMaxPoints(p1, p2) gl.Color3ub(255, 0, 0) gl.Begin(gl.LINES) gl.Vertex2i(int(min.X), int(min.Y)) gl.Vertex2i(int(max.X), int(min.Y)) gl.Vertex2i(int(min.X), int(min.Y)) gl.Vertex2i(int(min.X), int(max.Y)) gl.Vertex2i(int(max.X), int(max.Y)) gl.Vertex2i(int(max.X), int(min.Y)) gl.Vertex2i(int(max.X), int(max.Y)) gl.Vertex2i(int(min.X), int(max.Y)) gl.End() gl.Color3ub(255, 255, 255) }