From 0d573514c57d7da02402f8eff87b7fa7f0bf09a5 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Thu, 27 Feb 2020 16:06:23 +0100 Subject: [PATCH] internal/cmd/convertshaders: support #include in shaders Add flag to specify shader directory while here. Signed-off-by: Elias Naur --- internal/cmd/convertshaders/main.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/internal/cmd/convertshaders/main.go b/internal/cmd/convertshaders/main.go index e3173c2c..6df17517 100644 --- a/internal/cmd/convertshaders/main.go +++ b/internal/cmd/convertshaders/main.go @@ -23,7 +23,11 @@ import ( // multiple GPU backends (OpenGL ES, Direct3D 11...) // from a single source. -var packageName = flag.String("package", "", "specify Go package name") +var ( + packageName = flag.String("package", "", "specify Go package name") + shadersDir = flag.String("dir", "shaders", "specify shader directory") + absShadersDir string +) type shaderArgs struct { FetchColorExpr string @@ -48,9 +52,13 @@ func generate() error { if err != nil { return err } + absShadersDir, err = filepath.Abs(*shadersDir) + if err != nil { + return err + } fxc, err := exec.LookPath("fxc") fxcFound := err == nil - shaders, err := filepath.Glob("shaders/*") + shaders, err := filepath.Glob(filepath.Join(absShadersDir, "*")) if err != nil { return err } @@ -62,6 +70,9 @@ func generate() error { out.WriteString("var (\n") for _, shader := range shaders { + if ext := filepath.Ext(shader); ext != ".vert" && ext != ".frag" { + continue + } const nvariants = 2 var variants [nvariants]struct { backend.ShaderSources @@ -338,6 +349,7 @@ func convertShader(tmp, glslcc, path, lang, profile string, args *shaderArgs, fl cmd := exec.Command(glslcc, "--silent", "--optimize", + "--include-dirs", absShadersDir, "--reflect", "--output", filepath.Join(tmp, "shader"), "--lang", lang,