opengl

package
v0.0.0-...-50d5a6e Latest Latest
Warning

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

Go to latest
Published: Jun 3, 2023 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ShaderCache map[string]string
View Source
var ShaderNames []string

Functions

func LoadShaders

func LoadShaders() (map[string]string, error)

Loads the shaders into the cache

Types

type Camera

type Camera struct {
	Position glm.Vec3
	// contains filtered or unexported fields
}

func NewCamera

func NewCamera(position glm.Vec3, front glm.Vec3, up glm.Vec3) *Camera

func (*Camera) LookAtCursor

func (camera *Camera) LookAtCursor(x float32, y float32)

func (*Camera) SetSpeed

func (camera *Camera) SetSpeed(speed float32)

func (*Camera) StepFOV

func (camera *Camera) StepFOV(fov float32)

func (*Camera) TranslateBackward

func (camera *Camera) TranslateBackward(dt float32)

func (*Camera) TranslateDown

func (camera *Camera) TranslateDown(dt float32)

func (*Camera) TranslateForward

func (camera *Camera) TranslateForward(dt float32)

func (*Camera) TranslateLeft

func (camera *Camera) TranslateLeft(dt float32)

func (*Camera) TranslateRight

func (camera *Camera) TranslateRight(dt float32)

func (*Camera) TranslateUp

func (camera *Camera) TranslateUp(dt float32)

func (*Camera) Update

func (camera *Camera) Update(shader *Shader)

func (*Camera) UpdateFOV

func (camera *Camera) UpdateFOV(fov float32)

type IndexBuffer

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

func NewIndexBuffer

func NewIndexBuffer(data []uint32) *IndexBuffer

func (*IndexBuffer) Bind

func (ib *IndexBuffer) Bind()

func (*IndexBuffer) GetCount

func (ib *IndexBuffer) GetCount() int

func (*IndexBuffer) SetData

func (ib *IndexBuffer) SetData(data []uint32)

func (*IndexBuffer) Unbind

func (ib *IndexBuffer) Unbind()

type Renderer

type Renderer struct {
}

func NewRenderer

func NewRenderer() *Renderer

func (*Renderer) Draw

func (renderer *Renderer) Draw(va VertexArray, shader Shader)

type Shader

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

func NewShader

func NewShader(vertexPath string, fragmentPath string) *Shader

func NewShaderG

func NewShaderG(vertexPath string, fragmentPath string, geometryPath string) *Shader

func (*Shader) Bind

func (shader *Shader) Bind()

func (*Shader) CompileShader

func (shader *Shader) CompileShader(source string, shaderType uint32) uint32

func (*Shader) CreateShader

func (shader *Shader) CreateShader(vertexShader string, fragmentShader string)

func (*Shader) CreateShaderG

func (shader *Shader) CreateShaderG(vertexShader string, fragmentShader string, geometryShader string)

func (*Shader) GetUniformLocation

func (shader *Shader) GetUniformLocation(name string) int32

func (*Shader) ParseShader

func (shader *Shader) ParseShader(shaderPath string) string

func (*Shader) SetUniform1f

func (shader *Shader) SetUniform1f(name string, value float32)

func (*Shader) SetUniform1i

func (shader *Shader) SetUniform1i(name string, value int32)

func (*Shader) SetUniform2f

func (shader *Shader) SetUniform2f(name string, value float32, value2 float32)

func (*Shader) SetUniform3f

func (shader *Shader) SetUniform3f(name string, v0 float32, v1 float32, v2 float32)

func (*Shader) SetUniform4f

func (shader *Shader) SetUniform4f(name string, v0 float32, v1 float32, v2 float32, v3 float32)

func (*Shader) SetUniformBoolean

func (shader *Shader) SetUniformBoolean(name string, value bool)

TODO: write a util function that converts booleans to integer

func (*Shader) SetUniformMat4f

func (shader *Shader) SetUniformMat4f(name string, matrix mgl32.Mat4)

func (*Shader) Unbind

func (shader *Shader) Unbind()

type Texture

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

func NewTexture

func NewTexture(path string) *Texture

func NewTextureFromData

func NewTextureFromData(path string, data *image.NRGBA, deferredLoading bool) *Texture

func (*Texture) Bind

func (texture *Texture) Bind(slot uint32)

func (*Texture) GetData

func (texture *Texture) GetData() []uint8

func (*Texture) GetHeight

func (texture *Texture) GetHeight() int32

func (*Texture) GetID

func (texture *Texture) GetID() uint32

func (*Texture) GetPath

func (texture *Texture) GetPath() string

func (*Texture) GetWidth

func (texture *Texture) GetWidth() int32

func (*Texture) Unbind

func (texture *Texture) Unbind()

func (*Texture) UpdateSubImage

func (texture *Texture) UpdateSubImage(x, y, width, height int)

type VertexArray

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

func NewVertexArray

func NewVertexArray() *VertexArray

func (*VertexArray) AddBuffer

func (vao *VertexArray) AddBuffer(vb VertexBuffer, layout VertexBufferLayout)

func (*VertexArray) Bind

func (vao *VertexArray) Bind()

func (*VertexArray) Unbind

func (vao *VertexArray) Unbind()

type VertexBuffer

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

func NewVertexBuffer

func NewVertexBuffer(data []float32) *VertexBuffer

func (*VertexBuffer) Bind

func (vb *VertexBuffer) Bind()

func (*VertexBuffer) SetData

func (vb *VertexBuffer) SetData(data []float32)

func (*VertexBuffer) Unbind

func (vb *VertexBuffer) Unbind()

type VertexBufferElement

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

func NewVertexBufferElement

func NewVertexBufferElement(typ int, count int, normalized bool) *VertexBufferElement

func (*VertexBufferElement) GetTypeSize

func (vbl *VertexBufferElement) GetTypeSize() int

type VertexBufferLayout

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

func NewVertexBufferLayout

func NewVertexBufferLayout() *VertexBufferLayout

func (*VertexBufferLayout) GetElements

func (vbl *VertexBufferLayout) GetElements() []VertexBufferElement

func (*VertexBufferLayout) GetStride

func (vbl *VertexBufferLayout) GetStride() int

func (*VertexBufferLayout) Pushc

func (vbl *VertexBufferLayout) Pushc(count int)

func (*VertexBufferLayout) Pushf

func (vbl *VertexBufferLayout) Pushf(count int)

func (*VertexBufferLayout) Pushi

func (vbl *VertexBufferLayout) Pushi(count int)

Jump to

Keyboard shortcuts

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