mobile: golang.org/x/mobile/exp/gl/glutil Index | Files

package glutil

import "golang.org/x/mobile/exp/gl/glutil"

Package glutil implements OpenGL utility functions.

Index

Package Files

context_x11.go doc.go glimage.go glutil.go

func CreateProgram Uses

func CreateProgram(glctx gl.Context, vertexSrc, fragmentSrc string) (gl.Program, error)

CreateProgram creates, compiles, and links a gl.Program.

type Image Uses

type Image struct {
    RGBA *image.RGBA
    // contains filtered or unexported fields
}

Image bridges between an *image.RGBA and an OpenGL texture.

The contents of the *image.RGBA can be uploaded as a texture and drawn as a 2D quad.

The number of active Images must fit in the system's OpenGL texture limit. The typical use of an Image is as a texture atlas.

func (*Image) Draw Uses

func (img *Image) Draw(sz size.Event, topLeft, topRight, bottomLeft geom.Point, srcBounds image.Rectangle)

Draw draws the srcBounds part of the image onto a parallelogram, defined by three of its corners, in the current GL framebuffer.

func (*Image) Release Uses

func (img *Image) Release()

Release invalidates the Image and removes any underlying data structures. The Image cannot be used after being deleted.

func (*Image) Upload Uses

func (img *Image) Upload()

Upload copies the host image data to the GL device.

type Images Uses

type Images struct {
    // contains filtered or unexported fields
}

Images maintains the shared state used by a set of *Image objects.

func NewImages Uses

func NewImages(glctx gl.Context) *Images

NewImages creates an *Images.

func (*Images) NewImage Uses

func (p *Images) NewImage(w, h int) *Image

NewImage creates an Image of the given size.

Both a host-memory *image.RGBA and a GL texture are created.

func (*Images) Release Uses

func (p *Images) Release()

Release releases any held OpenGL resources. All *Image objects must be released first, or this function panics.

Package glutil imports 10 packages (graph) and is imported by 20 packages. Updated 2017-11-18. Refresh now. Tools for package owners.