mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2025-02-10 18:13:18 +01:00
internal/shaderlister: separate File into GoFile and KageFile
Updates #3157
This commit is contained in:
parent
42125a8629
commit
5e2f2d37aa
@ -51,7 +51,8 @@ func main() {
|
|||||||
|
|
||||||
type Shader struct {
|
type Shader struct {
|
||||||
Package string
|
Package string
|
||||||
File string
|
GoFile string `json:",omitempty"`
|
||||||
|
KageFile string `json:",omitempty"`
|
||||||
Source string
|
Source string
|
||||||
SourceHash string
|
SourceHash string
|
||||||
GLSL *GLSL `json:",omitempty"`
|
GLSL *GLSL `json:",omitempty"`
|
||||||
@ -236,7 +237,8 @@ func appendShaderSources(shaders []Shader, pkg *packages.Package) ([]Shader, err
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
visitedPaths[path] = struct{}{}
|
visitedPaths[path] = struct{}{}
|
||||||
shaders, err = appendShaderFromFile(shaders, pkg.PkgPath, path)
|
goFile := pkg.Fset.Position(c.Pos()).Filename
|
||||||
|
shaders, err = appendShaderFromFile(shaders, pkg.PkgPath, goFile, path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -258,7 +260,8 @@ func appendShaderSources(shaders []Shader, pkg *packages.Package) ([]Shader, err
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
visitedPaths[path] = struct{}{}
|
visitedPaths[path] = struct{}{}
|
||||||
shaders, err = appendShaderFromFile(shaders, pkg.PkgPath, path)
|
goFile := pkg.Fset.Position(c.Pos()).Filename
|
||||||
|
shaders, err = appendShaderFromFile(shaders, pkg.PkgPath, goFile, path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -395,7 +398,7 @@ func appendShaderSources(shaders []Shader, pkg *packages.Package) ([]Shader, err
|
|||||||
|
|
||||||
shaders = append(shaders, Shader{
|
shaders = append(shaders, Shader{
|
||||||
Package: pkg.PkgPath,
|
Package: pkg.PkgPath,
|
||||||
File: pkg.Fset.Position(spec.Pos()).Filename,
|
GoFile: pkg.Fset.Position(spec.Pos()).Filename,
|
||||||
Source: constant.StringVal(val),
|
Source: constant.StringVal(val),
|
||||||
})
|
})
|
||||||
return false
|
return false
|
||||||
@ -408,15 +411,16 @@ func appendShaderSources(shaders []Shader, pkg *packages.Package) ([]Shader, err
|
|||||||
return shaders, nil
|
return shaders, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func appendShaderFromFile(shaders []Shader, pkgPath string, filePath string) ([]Shader, error) {
|
func appendShaderFromFile(shaders []Shader, pkgPath string, goFile string, kageFile string) ([]Shader, error) {
|
||||||
content, err := os.ReadFile(filePath)
|
content, err := os.ReadFile(kageFile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
shaders = append(shaders, Shader{
|
shaders = append(shaders, Shader{
|
||||||
Package: pkgPath,
|
Package: pkgPath,
|
||||||
File: filePath,
|
GoFile: goFile,
|
||||||
Source: string(content),
|
KageFile: kageFile,
|
||||||
|
Source: string(content),
|
||||||
})
|
})
|
||||||
return shaders, nil
|
return shaders, nil
|
||||||
}
|
}
|
||||||
|
@ -50,7 +50,8 @@ func TestRun(t *testing.T) {
|
|||||||
|
|
||||||
type shader struct {
|
type shader struct {
|
||||||
Package string
|
Package string
|
||||||
File string
|
GoFile string
|
||||||
|
KageFile string
|
||||||
Source string
|
Source string
|
||||||
SourceHash string
|
SourceHash string
|
||||||
}
|
}
|
||||||
@ -89,9 +90,10 @@ func TestRun(t *testing.T) {
|
|||||||
if s.shader.Package == "" {
|
if s.shader.Package == "" {
|
||||||
t.Errorf("s.Package is empty: %v", s)
|
t.Errorf("s.Package is empty: %v", s)
|
||||||
}
|
}
|
||||||
if s.shader.File == "" {
|
if s.shader.GoFile == "" {
|
||||||
t.Errorf("s.File is empty: %v", s)
|
t.Errorf("s.File is empty: %v", s)
|
||||||
}
|
}
|
||||||
|
// KageFile can be empty.
|
||||||
hash, err := graphics.CalcSourceHash([]byte(s.shader.Source))
|
hash, err := graphics.CalcSourceHash([]byte(s.shader.Source))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
Loading…
Reference in New Issue
Block a user