Documentation ¶
Index ¶
- Constants
- Variables
- func CreateProgram(vertexShader, geometryShader, fragmentShader uint32) (uint32, error)
- func CreateShader(source string, shaderType uint32) (uint32, error)
- func Loop(fps int64)
- func NewTexture(file string, Target uint32) (uint32, error)
- type Camera
- type CatGl
- type PortCatGl
- type PortID
- type PortScene
- type PortSceneData
- type PortShader
- type PortShaderUpdate
- type PortUpdate
- type PortVertex
- type Shader
- type TextureShader
- type Vertex
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 )
* 纹理变量
View Source
const ( VertexSTATIC = gl.STATIC_DRAW //表示该缓存区不会被修改 VertexDyNAMIC = gl.DYNAMIC_DRAW //表示该缓存区会被周期性更改 VertexSTREAM = gl.STREAM_DRAW //表示该缓存区会被频繁更改 )
/ 顶点类
默认顶点类
? 日志 ! 2019-8-17 重写 /
Variables ¶
ImageDecode 图片解码
Functions ¶
func CreateProgram ¶
CreateProgram 编译着色器程序
func CreateShader ¶
CreateShader 创建着色器
Types ¶
type Camera ¶
type Camera struct { PortUpdate // 场景信息 PortScene Scene *PortSceneData // 摄像机参数 Up mgl32.Vec3 //? 朝向 Eye mgl32.Vec3 //? 位置 Center mgl32.Vec3 //? 视点 // 投影矩阵 Projection mgl32.Mat4 }
Camera 相机类
func (*Camera) SetProjection ¶
SetProjection 设置投影矩阵 ! fovy 视角 ! aspect 屏幕宽高比 ! zNear 近平面距离 ! zFar 远平面距离
type CatGl ¶
type CatGl struct { PortCatGl // 参数 Color [4]float32 Window *glfw.Window AspectRatio float32 //? 屏幕高宽比 Update PortUpdate CallBackUpdate func() }
CatGl gl类 ! 实现上下文管理
type PortCatGl ¶
type PortCatGl interface { Loop() Destroy() SetContext() SetCamera(PortUpdate) }
PortCatGl 主类接口
type PortSceneData ¶
type PortSceneData struct { // 队列信息 QueueShader map[PortID]PortShader //? 渲染队列 QueueVertex map[PortID]PortVertex //? 顶点队列 }
PortSceneData 场景类数据
type PortShaderUpdate ¶
type PortShaderUpdate interface {
Update(Program uint32) //* 更新顶点
}
PortShaderUpdate 着色器类更新接口
type PortVertex ¶
type PortVertex interface { PortShaderUpdate GetShader() PortID }
PortVertex 顶点类接口
type Shader ¶
type Shader struct { ID PortID PortShader ShaderID uint32 //? 着色器ID // 着色器数据 Vertex string //? 顶点着色器 Geometry string //? 几何着色器 Fragment string //? 片面着色器 }
Shader 着色器类
func SceneNewShader ¶
SceneNewShader 场景创建着色器 ! Scene 场景对象 ! vertex 顶点着色器 ! geometry 几何着色器 ! fragment 片面着色器
type TextureShader ¶
type TextureShader struct { Name *uint8 //? 参数名称 UnitID uint32 //? 纹理单元 Texture [2]uint32 //? 纹理单元 [纹理类型,纹理ID] }
TextureShader 纹理着色器对象
Source Files ¶
Click to show internal directories.
Click to hide internal directories.