catgl

package module
v0.0.0-...-832e304 Latest Latest
Warning

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

Go to latest
Published: Aug 12, 2019 License: GPL-3.0 Imports: 11 Imported by: 0

README

CatGl

介绍

golang写的gl3D库

这是个坑
如果要用请谨慎
编译环境
  1. msys
  2. GCC
  3. Go
依赖环境
  1. Gl库: github.com/go-gl/gl/v3.3-core/gl
  2. 算法库: github.com/go-gl/mathgl/mgl32

Documentation

Index

Constants

View Source
const (
	// 纹理单元
	TEXTURE   = 0x1702
	TEXTURE0  = 0x84C0
	TEXTURE1  = 0x84C1
	TEXTURE10 = 0x84CA
	TEXTURE11 = 0x84CB
	TEXTURE12 = 0x84CC
	TEXTURE13 = 0x84CD
	TEXTURE14 = 0x84CE
	TEXTURE15 = 0x84CF
	TEXTURE16 = 0x84D0
	TEXTURE17 = 0x84D1
	TEXTURE18 = 0x84D2
	TEXTURE19 = 0x84D3
	TEXTURE2  = 0x84C2
	TEXTURE20 = 0x84D4
	TEXTURE21 = 0x84D5
	TEXTURE22 = 0x84D6
	TEXTURE23 = 0x84D7
	TEXTURE24 = 0x84D8
	TEXTURE25 = 0x84D9
	TEXTURE26 = 0x84DA
	TEXTURE27 = 0x84DB
	TEXTURE28 = 0x84DC
	TEXTURE29 = 0x84DD
	TEXTURE3  = 0x84C3
	TEXTURE30 = 0x84DE
	TEXTURE31 = 0x84DF
	TEXTURE4  = 0x84C4
	TEXTURE5  = 0x84C5
	TEXTURE6  = 0x84C6
	TEXTURE7  = 0x84C7
	TEXTURE8  = 0x84C8
	TEXTURE9  = 0x84C9
	// 纹理类型
	TEXTURE1D                 = 0x0DE0
	TEXTURE1DARRAY            = 0x8C18
	TEXTURE2D                 = 0x0DE1
	TEXTURE2DARRAY            = 0x8C1A
	TEXTURE2DMULTISAMPLE      = 0x9100
	TEXTURE2DMULTISAMPLEARRAY = 0x9102
	TEXTURE3D                 = 0x806F
)

* 纹理变量

Variables

View Source
var ShowGlList map[*glfw.Window]*ShowGl

ShowGlList 窗口列表

Functions

func DeleteShader

func DeleteShader(shader uint32)

DeleteShader 删除着色器

func NewProgram

func NewProgram(vertexShader, geometryShader, fragmentShader uint32) (uint32, error)

NewProgram 编译着色器程序

func NewShader

func NewShader(source string, shaderType uint32) (uint32, error)

NewShader 创建着色器

func NewTexture

func NewTexture(file string, Target uint32) (uint32, error)

NewTexture 创建材质 * file 材质文件名 * Target 纹理类型

func ShowGlLoop

func ShowGlLoop()

ShowGlLoop 创建循环

Types

type Camera

type Camera struct {
	// 窗口
	ShowGl *ShowGl
	// 坐标
	Up         mgl32.Vec3
	Eye        mgl32.Vec3
	Center     mgl32.Vec3
	Projection mgl32.Mat4
}

Camera 相机类

func (*Camera) New

func (C *Camera) New(x float32, y float32, z float32) *Camera

New 创建相机 ? 摄像机位置 x,y,z

func (*Camera) Set

func (C *Camera) Set(S *ShowGl) *Camera

Set 绑定到窗口

func (*Camera) Update

func (C *Camera) Update()

Update 更新渲染器相机

type Shader

type Shader struct {
	Vertex   string // 顶点着色器
	Geometry string // 几何着色器
	Fragment string // 片面着色器
	Program  uint32 // 着色器
	// 顶点组
	QueueVertex []*Vertex
	// contains filtered or unexported fields
}

Shader 着色器类

func (*Shader) Delete

func (S *Shader) Delete() error

Delete 销毁着色器

func (*Shader) New

func (S *Shader) New() error

New 创建着色器

func (*Shader) NewVertex

func (S *Shader) NewVertex() (V *Vertex)

NewVertex 创建顶点组

func (*Shader) Update

func (S *Shader) Update()

Update 更新着色器

type ShowGl

type ShowGl struct {
	QueueRender map[string]func() // 渲染队列
	QueueShader []*Shader         // 绑定的着色器
	// 大小
	Width       int
	Height      int
	AspectRatio float32 // 屏幕高宽比
	// contains filtered or unexported fields
}

ShowGl Gl显示类型

func ShowGlNew

func ShowGlNew(Width, Height int, Title string) (*ShowGl, error)

ShowGlNew 创建窗口

func (*ShowGl) AddRender

func (G *ShowGl) AddRender(Name string, Render func())

AddRender 添加渲染

func (*ShowGl) NewShader

func (G *ShowGl) NewShader(
	Vertex string,
	Geometry string,
	Fragment string,
) (S *Shader, err error)

NewShader 创建着色器

func (*ShowGl) SetContext

func (G *ShowGl) SetContext()

SetContext 设置上下文

type Vertex

type Vertex struct {
	VAO    uint32
	Buffer uint32
	// 显示模式
	DisplayMode uint32
	// 坐标
	Position mgl32.Mat4
	// contains filtered or unexported fields
}

Vertex 顶点类

func (*Vertex) Delete

func (V *Vertex) Delete() error

Delete 销毁

func (*Vertex) SetIndex

func (V *Vertex) SetIndex(
	indices []uint32,
)

SetIndex 设置索引缓冲

func (*Vertex) SetTexture

func (V *Vertex) SetTexture(
	file string,
	unit uint32,
	Target uint32,
) error

SetTexture 设置材质

func (*Vertex) SetVertex

func (V *Vertex) SetVertex(
	vertices []float32,
	normals []float32,
	uv []float32,
) error

SetVertex 设置顶点

func (*Vertex) Update

func (V *Vertex) Update(Program uint32)

Update 更新顶点

Jump to

Keyboard shortcuts

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