Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(341)

Side by Side Diff: third_party/go/src/golang.org/x/mobile/gl/glutil/glutil.go

Issue 1275153002: Remove third_party/golang.org/x/mobile as it is no longer used with Go 1.5. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Remove golang.org/x/mobile Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2014 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 // Package glutil implements OpenGL utility functions.
6 package glutil // import "golang.org/x/mobile/gl/glutil"
7
8 import (
9 "fmt"
10
11 "golang.org/x/mobile/gl"
12 )
13
14 // CreateProgram creates, compiles, and links a gl.Program.
15 func CreateProgram(vertexSrc, fragmentSrc string) (gl.Program, error) {
16 program := gl.CreateProgram()
17 if program.Value == 0 {
18 return gl.Program{}, fmt.Errorf("glutil: no programs available")
19 }
20
21 vertexShader, err := loadShader(gl.VERTEX_SHADER, vertexSrc)
22 if err != nil {
23 return gl.Program{}, err
24 }
25 fragmentShader, err := loadShader(gl.FRAGMENT_SHADER, fragmentSrc)
26 if err != nil {
27 gl.DeleteShader(vertexShader)
28 return gl.Program{}, err
29 }
30
31 gl.AttachShader(program, vertexShader)
32 gl.AttachShader(program, fragmentShader)
33 gl.LinkProgram(program)
34
35 // Flag shaders for deletion when program is unlinked.
36 gl.DeleteShader(vertexShader)
37 gl.DeleteShader(fragmentShader)
38
39 if gl.GetProgrami(program, gl.LINK_STATUS) == 0 {
40 defer gl.DeleteProgram(program)
41 return gl.Program{}, fmt.Errorf("glutil: %s", gl.GetProgramInfoL og(program))
42 }
43 return program, nil
44 }
45
46 func loadShader(shaderType gl.Enum, src string) (gl.Shader, error) {
47 shader := gl.CreateShader(shaderType)
48 if shader.Value == 0 {
49 return gl.Shader{}, fmt.Errorf("glutil: could not create shader (type %v)", shaderType)
50 }
51 gl.ShaderSource(shader, src)
52 gl.CompileShader(shader)
53 if gl.GetShaderi(shader, gl.COMPILE_STATUS) == 0 {
54 defer gl.DeleteShader(shader)
55 return gl.Shader{}, fmt.Errorf("shader compile: %s", gl.GetShade rInfoLog(shader))
56 }
57 return shader, nil
58 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698