Exemple #1
0
func (ctx *FrameContext) DrawContext(shader loader.Shader) DrawContext {
	r := DrawContext{
		GL:     ctx.GL,
		Camera: ctx.Camera,
		Shader: shader,
	}
	if ctx.activeShader != shader {
		shader.Use()
		ctx.activeShader = shader
	}
	if ctx.shaderCache == nil {
		ctx.shaderCache = map[loader.Shader]struct{}{shader: struct{}{}}
		ctx.bindShader(shader)
	} else if _, ok := ctx.shaderCache[shader]; !ok {
		ctx.bindShader(shader)
	}
	return r
}