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

Unified Diff: third_party/go/src/golang.org/x/mobile/gl/gendebug.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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/go/src/golang.org/x/mobile/gl/doc.go ('k') | third_party/go/src/golang.org/x/mobile/gl/gl.go » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/go/src/golang.org/x/mobile/gl/gendebug.go
diff --git a/third_party/go/src/golang.org/x/mobile/gl/gendebug.go b/third_party/go/src/golang.org/x/mobile/gl/gendebug.go
deleted file mode 100644
index 9c68b78659c74ff7f0e98f50bf7404b7f74541e4..0000000000000000000000000000000000000000
--- a/third_party/go/src/golang.org/x/mobile/gl/gendebug.go
+++ /dev/null
@@ -1,320 +0,0 @@
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build ignore
-
-// The gendebug program takes gl.go and generates a version of it
-// where each function includes tracing code that writes its arguments
-// to the standard log.
-package main
-
-import (
- "bytes"
- "flag"
- "fmt"
- "go/ast"
- "go/format"
- "go/parser"
- "go/printer"
- "go/token"
- "io/ioutil"
- "log"
- "os"
- "strconv"
-)
-
-var outfile = flag.String("o", "", "result will be written to the file instead of stdout.")
-
-var fset = new(token.FileSet)
-
-func typeString(t ast.Expr) string {
- buf := new(bytes.Buffer)
- printer.Fprint(buf, fset, t)
- return buf.String()
-}
-
-func typePrinter(t string) string {
- switch t {
- case "[]float32", "[]byte":
- return "len(%d)"
- }
- return "%v"
-}
-
-func typePrinterArg(t, name string) string {
- switch t {
- case "[]float32", "[]byte":
- return "len(" + name + ")"
- }
- return name
-}
-
-func die(err error) {
- fmt.Fprintf(os.Stderr, err.Error())
- os.Exit(1)
-}
-
-func main() {
- flag.Parse()
-
- f, err := parser.ParseFile(fset, "consts.go", nil, parser.ParseComments)
- if err != nil {
- die(err)
- }
- entries := enum(f)
-
- f, err = parser.ParseFile(fset, "gl.go", nil, parser.ParseComments)
- if err != nil {
- die(err)
- }
-
- buf := new(bytes.Buffer)
-
- fmt.Fprint(buf, preamble)
-
- fmt.Fprintf(buf, "func (v Enum) String() string {\n")
- fmt.Fprintf(buf, "\tswitch v {\n")
- for _, e := range dedup(entries) {
- fmt.Fprintf(buf, "\tcase 0x%x: return %q\n", e.value, e.name)
- }
- fmt.Fprintf(buf, "\t%s\n", `default: return fmt.Sprintf("gl.Enum(0x%x)", uint32(v))`)
- fmt.Fprintf(buf, "\t}\n")
- fmt.Fprintf(buf, "}\n\n")
-
- for _, d := range f.Decls {
- // Before:
- // func StencilMask(mask uint32) {
- // C.glStencilMask(C.GLuint(mask))
- // }
- //
- // After:
- // func StencilMask(mask uint32) {
- // defer func() {
- // errstr := errDrain()
- // log.Printf("gl.StencilMask(%v) %v", mask, errstr)
- // }()
- // C.glStencilMask(C.GLuint(mask))
- // }
- fn, ok := d.(*ast.FuncDecl)
- if !ok {
- continue
- }
- if fn.Recv != nil {
- continue
- }
-
- var (
- params []string
- paramTypes []string
- results []string
- resultTypes []string
- )
-
- // Print function signature.
- fmt.Fprintf(buf, "func %s(", fn.Name.Name)
- for i, p := range fn.Type.Params.List {
- if i > 0 {
- fmt.Fprint(buf, ", ")
- }
- ty := typeString(p.Type)
- for i, n := range p.Names {
- if i > 0 {
- fmt.Fprint(buf, ", ")
- }
- fmt.Fprintf(buf, "%s ", n.Name)
- params = append(params, n.Name)
- paramTypes = append(paramTypes, ty)
- }
- fmt.Fprint(buf, ty)
- }
- fmt.Fprintf(buf, ") (")
- if fn.Type.Results != nil {
- for i, r := range fn.Type.Results.List {
- if i > 0 {
- fmt.Fprint(buf, ", ")
- }
- ty := typeString(r.Type)
- if len(r.Names) == 0 {
- name := fmt.Sprintf("r%d", i)
- fmt.Fprintf(buf, "%s ", name)
- results = append(results, name)
- resultTypes = append(resultTypes, ty)
- }
- for i, n := range r.Names {
- if i > 0 {
- fmt.Fprint(buf, ", ")
- }
- fmt.Fprintf(buf, "%s ", n.Name)
- results = append(results, n.Name)
- resultTypes = append(resultTypes, ty)
- }
- fmt.Fprint(buf, ty)
- }
- }
- fmt.Fprintf(buf, ") {\n")
-
- // Insert a defer block for tracing.
- fmt.Fprintf(buf, "defer func() {\n")
- fmt.Fprintf(buf, "\terrstr := errDrain()\n")
- switch fn.Name.Name {
- case "GetUniformLocation", "GetAttribLocation":
- fmt.Fprintf(buf, "\tr0.name = name\n")
- }
- fmt.Fprintf(buf, "\tlog.Printf(\"gl.%s(", fn.Name.Name)
- for i, p := range paramTypes {
- if i > 0 {
- fmt.Fprint(buf, ", ")
- }
- fmt.Fprint(buf, typePrinter(p))
- }
- fmt.Fprintf(buf, ") ")
- if len(resultTypes) > 1 {
- fmt.Fprint(buf, "(")
- }
- for i, r := range resultTypes {
- if i > 0 {
- fmt.Fprint(buf, ", ")
- }
- fmt.Fprint(buf, typePrinter(r))
- }
- if len(resultTypes) > 1 {
- fmt.Fprint(buf, ") ")
- }
- fmt.Fprintf(buf, "%%v\"")
- for i, p := range paramTypes {
- fmt.Fprintf(buf, ", %s", typePrinterArg(p, params[i]))
- }
- for i, r := range resultTypes {
- fmt.Fprintf(buf, ", %s", typePrinterArg(r, results[i]))
- }
- fmt.Fprintf(buf, ", errstr)\n")
- fmt.Fprintf(buf, "}()\n")
-
- // Print original body of function.
- for _, s := range fn.Body.List {
- printer.Fprint(buf, fset, s)
- fmt.Fprintf(buf, "\n")
- }
- fmt.Fprintf(buf, "}\n\n")
- }
-
- b, err := format.Source(buf.Bytes())
- if err != nil {
- os.Stdout.Write(buf.Bytes())
- die(err)
- }
-
- if *outfile == "" {
- os.Stdout.Write(b)
- return
- }
- if err := ioutil.WriteFile(*outfile, b, 0666); err != nil {
- die(err)
- }
-}
-
-const preamble = `// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Generated from gl.go using go generate. DO NOT EDIT.
-// See doc.go for details.
-
-// +build linux darwin
-// +build gldebug
-
-package gl
-
-/*
-#include <stdlib.h>
-
-#ifdef os_linux
-#include <GLES2/gl2.h>
-#endif
-#ifdef os_darwin_arm
-#include <OpenGLES/ES2/gl.h>
-#endif
-#ifdef os_darwin_amd64
-#include <OpenGL/gl3.h>
-#endif
-*/
-import "C"
-
-import (
- "fmt"
- "log"
- "unsafe"
-)
-
-func errDrain() string {
- var errs []Enum
- for {
- e := Enum(C.glGetError())
- if e == 0 {
- break
- }
- errs = append(errs, e)
- }
- if len(errs) > 0 {
- return fmt.Sprintf(" error: %v", errs)
- }
- return ""
-}
-
-`
-
-type entry struct {
- name string
- value int
-}
-
-// enum builds a list of all GL constants that make up the gl.Enum type.
-func enum(f *ast.File) []entry {
- var entries []entry
- for _, d := range f.Decls {
- gendecl, ok := d.(*ast.GenDecl)
- if !ok {
- continue
- }
- if gendecl.Tok != token.CONST {
- continue
- }
- for _, s := range gendecl.Specs {
- v, ok := s.(*ast.ValueSpec)
- if !ok {
- continue
- }
- if len(v.Names) != 1 || len(v.Values) != 1 {
- continue
- }
- val, err := strconv.ParseInt(v.Values[0].(*ast.BasicLit).Value, 0, 32)
- if err != nil {
- log.Fatalf("enum %s: %v", v.Names[0].Name, err)
- }
- entries = append(entries, entry{v.Names[0].Name, int(val)})
- }
- }
- return entries
-}
-
-func dedup(entries []entry) []entry {
- // Find all duplicates. Use "%d" as the name of any value with duplicates.
- seen := make(map[int]int)
- for _, e := range entries {
- seen[e.value]++
- }
- var dedup []entry
- for _, e := range entries {
- switch seen[e.value] {
- case 0: // skip, already here
- case 1:
- dedup = append(dedup, e)
- default:
- // value is duplicated
- dedup = append(dedup, entry{fmt.Sprintf("%d", e.value), e.value})
- seen[e.value] = 0
- }
- }
- return dedup
-}
« no previous file with comments | « third_party/go/src/golang.org/x/mobile/gl/doc.go ('k') | third_party/go/src/golang.org/x/mobile/gl/gl.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698