Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

github.com/notsatvrn/gl

Package Overview
Dependencies
Alerts
File Explorer
Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/notsatvrn/gl

  • v0.0.0-20221217184449-3acbec72819b
  • Source
  • Go
  • Socket score

Version published
Created
Source

XGL

Go Reference

XGL is a cross-platform binding to OpenGL for Go, exposing an OpenGL ES-like API.

The API is very similar to OpenGL ES, with a few important changes.

  • Addition of GetBoundFramebuffer function.
  • Functions which use pointers to arrays for returning data have versions for getting a single value.
    • For example, you can use GetShaderiv to store integer values from a parameter in an array, or GetShaderi to return only one.
    • The purpose of this is simply ease of use.
  • All Gen functions are renamed to Create.
    • For example, GenBuffers becomes CreateBuffers.
    • There are also functions for simply generating 1 of each type, such as CreateBuffer.
  • No GetVertexAttribPointerv or ShaderBinary functions.
    • GetVertexAttribPointerv requires a complicated implementation and wont be used by most programs.
    • ShaderBinary is impossible to implement for WebGL. Other platforms can support ShaderBinary, but its usage is considered a security risk anyways, and we want to provide a consistent API on all platforms. No platform-specific functions.
  • Functions which fail if an argument doesn't have a specific value don't ask the user for that argument.
    • Because, really, why?

Support

Below is a table showing the versions of XGL and the minimum required GL versions for each platform.

XGLOpenGL (Desktop)OpenGL ES (Mobile)WebGL (Browser)
2.02.12.01.0

Support for OpenGL ES 3.0 and 3.1 is planned.

OpenGL ES 3.2 is not planned, due to WebGL not supporting it yet.

Installation

go get -u github.com/notsatvrn/xgl/...
GOARCH=js go get -u -d github.com/notsatvrn/xgl/...

Usage

These bindings implement a glfw.ContextWatcher interface. Recommended usage is with github.com/notsatvrn/glfw package, which accepts a ContextWatcher in its Init, and takes on the responsibility of notifying it when context is made current or detached.

if err := glfw.Init(gl.ContextWatcher); err != nil {
	// Handle error.
}
defer glfw.Terminate()

If you're not using a ContextWatcher-aware glfw library, you must call methods of gl.ContextWatcher yourself whenever you make a context current or detached.

window.MakeContextCurrent()
gl.ContextWatcher.OnMakeCurrent(nil)

glfw.DetachCurrentContext()
gl.ContextWatcher.OnDetach()

FAQs

Package last updated on 17 Dec 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc