mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-05 09:25:38 +00:00
internal/cmd/convertshaders: support #include in shaders
Add flag to specify shader directory while here. Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
@@ -23,7 +23,11 @@ import (
|
|||||||
// multiple GPU backends (OpenGL ES, Direct3D 11...)
|
// multiple GPU backends (OpenGL ES, Direct3D 11...)
|
||||||
// from a single source.
|
// 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 {
|
type shaderArgs struct {
|
||||||
FetchColorExpr string
|
FetchColorExpr string
|
||||||
@@ -48,9 +52,13 @@ func generate() error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
absShadersDir, err = filepath.Abs(*shadersDir)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
fxc, err := exec.LookPath("fxc")
|
fxc, err := exec.LookPath("fxc")
|
||||||
fxcFound := err == nil
|
fxcFound := err == nil
|
||||||
shaders, err := filepath.Glob("shaders/*")
|
shaders, err := filepath.Glob(filepath.Join(absShadersDir, "*"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -62,6 +70,9 @@ func generate() error {
|
|||||||
out.WriteString("var (\n")
|
out.WriteString("var (\n")
|
||||||
|
|
||||||
for _, shader := range shaders {
|
for _, shader := range shaders {
|
||||||
|
if ext := filepath.Ext(shader); ext != ".vert" && ext != ".frag" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
const nvariants = 2
|
const nvariants = 2
|
||||||
var variants [nvariants]struct {
|
var variants [nvariants]struct {
|
||||||
backend.ShaderSources
|
backend.ShaderSources
|
||||||
@@ -338,6 +349,7 @@ func convertShader(tmp, glslcc, path, lang, profile string, args *shaderArgs, fl
|
|||||||
cmd := exec.Command(glslcc,
|
cmd := exec.Command(glslcc,
|
||||||
"--silent",
|
"--silent",
|
||||||
"--optimize",
|
"--optimize",
|
||||||
|
"--include-dirs", absShadersDir,
|
||||||
"--reflect",
|
"--reflect",
|
||||||
"--output", filepath.Join(tmp, "shader"),
|
"--output", filepath.Join(tmp, "shader"),
|
||||||
"--lang", lang,
|
"--lang", lang,
|
||||||
|
|||||||
Reference in New Issue
Block a user