v0.0.0-...-b765e5d Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Jul 7, 2024 License: BSD-3-Clause Imports: 10 Imported by: 227



Package glutil implements OpenGL utility functions.



This section is empty.


This section is empty.


func CreateProgram

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

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


type Image

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

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

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

func (img *Image) Upload()

Upload copies the host image data to the GL device.

type Images

type Images struct {
	// contains filtered or unexported fields

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

func NewImages

func NewImages(glctx gl.Context) *Images

NewImages creates an *Images.

func (*Images) NewImage

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

func (p *Images) Release()

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL