From d095e3804996ddc58b9a1235331d1b8589adb7fc Mon Sep 17 00:00:00 2001 From: nighca Date: Thu, 22 Aug 2024 20:07:01 +0800 Subject: [PATCH 1/4] support getWidget --- tools/ispx/go.mod | 10 ++++--- tools/ispx/go.sum | 22 ++++++--------- tools/ispx/main.go | 3 +- .../ispx/pkg/github.com/goplus/spx/export.go | 28 ++++++++++++++++--- .../hajimehoshi/ebiten/v2/export.go | 1 + 5 files changed, 42 insertions(+), 22 deletions(-) diff --git a/tools/ispx/go.mod b/tools/ispx/go.mod index 0f9c978bb..f91378341 100644 --- a/tools/ispx/go.mod +++ b/tools/ispx/go.mod @@ -3,7 +3,7 @@ module github.com/goplus/builder/ispx go 1.21 require ( - github.com/goplus/igop v0.24.0 + github.com/goplus/igop v0.26.0 github.com/goplus/reflectx v1.2.2 github.com/goplus/spx v1.0.1-0.20240815092545-3df776b555a0 github.com/hajimehoshi/ebiten/v2 v2.7.8 @@ -19,9 +19,9 @@ require ( github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00 // indirect github.com/goplus/canvas v0.1.0 // indirect - github.com/goplus/gogen v1.15.1 // indirect - github.com/goplus/gop v1.2.5 // indirect - github.com/goplus/mod v0.13.9 // indirect + github.com/goplus/gogen v1.15.2 // indirect + github.com/goplus/gop v1.2.6 // indirect + github.com/goplus/mod v0.13.10 // indirect github.com/hajimehoshi/go-mp3 v0.3.4 // indirect github.com/jezek/xgb v1.1.1 // indirect github.com/pkg/errors v0.9.1 // indirect @@ -45,6 +45,8 @@ require ( ) replace ( + github.com/goplus/spx => ../../../spx + github.com/goplus/igop => ../../../igop github.com/hajimehoshi/oto => github.com/hajimehoshi/oto v1.0.1 github.com/srwiley/oksvg => github.com/qiniu/oksvg v0.2.0-no-charset golang.org/x/image => golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d diff --git a/tools/ispx/go.sum b/tools/ispx/go.sum index 9268c84f5..73ae948e0 100644 --- a/tools/ispx/go.sum +++ b/tools/ispx/go.sum @@ -24,22 +24,19 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/gopherjs/gopherjs v0.0.0-20180708170036-38b413be4187/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00 h1:l5lAOZEym3oK3SQ2HBHWsJUfbNBiTXJDeW2QDxw9AQ0= github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/goplus/c2go v0.7.25/go.mod h1:e9oe4jDVhGFMJLEGmPSrVkLuXbLZAEmAu0/uD6fSz5E= +github.com/goplus/c2go v0.7.26/go.mod h1:ePAStubV/ls8mmdPGQo6VfADTVd46rKuBemE4zzBDnA= github.com/goplus/canvas v0.1.0 h1:Vx3f2+U8UANvWf5/01YsQYKNbZDm1GZCjhlEBFrQkeU= github.com/goplus/canvas v0.1.0/go.mod h1:Rhcvo5qkpD9WuXFnvnXtrBSY97l6h7sXQuofrmiLNdM= -github.com/goplus/gogen v1.15.0/go.mod h1:92qEzVgv7y8JEFICWG9GvYI5IzfEkxYdsA1DbmnTkqk= -github.com/goplus/gogen v1.15.1 h1:iz/fFpOeldjwmnjLzEdNsZF2mCf+sOHJavbAvV3o7sY= -github.com/goplus/gogen v1.15.1/go.mod h1:92qEzVgv7y8JEFICWG9GvYI5IzfEkxYdsA1DbmnTkqk= -github.com/goplus/gop v1.2.5 h1:kBCcvJ7ONt3IqTUTNGb+n9JO1nwTp5STg1UUSEfvz/k= -github.com/goplus/gop v1.2.5/go.mod h1:5rLlryvlZhWLIBw1Rok8s0uvyO54vcYw/7sFLhqtNTc= -github.com/goplus/igop v0.24.0 h1:xyk344nspra5REuRxEx/9zSntmYeCp2PIlKeEBAED2Y= -github.com/goplus/igop v0.24.0/go.mod h1:YF1Xt/aVB2xWoPYqJr+mJPqUxoEXMcaUB30v7YMHUn0= -github.com/goplus/mod v0.13.9 h1:B9zZoHi2AzMltTSOFqZNVjqGlSMlhhNTWwEzVqhTQzg= -github.com/goplus/mod v0.13.9/go.mod h1:MibsLSftGmxaQq78YzUzNviyFwB9RtpMaoscufvEKH4= +github.com/goplus/gogen v1.15.2 h1:Q6XaSx/Zi5tWnjfAziYsQI6Jv6MgODRpFtOYqNkiiqM= +github.com/goplus/gogen v1.15.2/go.mod h1:92qEzVgv7y8JEFICWG9GvYI5IzfEkxYdsA1DbmnTkqk= +github.com/goplus/gop v1.2.6 h1:kog3c5Js+8EopqmI4+CwueXsqibnBwYVt5q5N7juRVY= +github.com/goplus/gop v1.2.6/go.mod h1:uREWbR1MrFaviZ4Mbx4ZCcAYDoqzO0iv1Qo6Np0Xx4E= +github.com/goplus/igop v0.26.0 h1:sxldChdVU+0a6qXdW1JrT0hYKyMQgfQLJMvQ4XvapAo= +github.com/goplus/igop v0.26.0/go.mod h1:V8Kf/b4nrw0OPPodwnOYZPCpXvU+hqzuhSAXIToT0ME= +github.com/goplus/mod v0.13.10 h1:5Om6KOvo31daN7N30kWU1vC5zhsJPM+uPbcEN/FnlzE= +github.com/goplus/mod v0.13.10/go.mod h1:HDuPZgpWiaTp3PUolFgsiX+Q77cbUWB/mikVHfYND3c= github.com/goplus/reflectx v1.2.2 h1:T1p20OIH/HcnAvQQNnDLwl6AZOjU34icsfc6migD6L8= github.com/goplus/reflectx v1.2.2/go.mod h1:wHOS9ilbB4zrecI0W1dMmkW9JMcpXV7VjALVbNU9xfM= -github.com/goplus/spx v1.0.1-0.20240815092545-3df776b555a0 h1:lBl1gTGmG5Mabz4n6F5CUCBhrBVj2fzRCipPwPQDZl4= -github.com/goplus/spx v1.0.1-0.20240815092545-3df776b555a0/go.mod h1:UNZub8iRpxDvLpjJYYpiM7r36GqweTn2SNSKN49kG90= github.com/hajimehoshi/ebiten/v2 v2.7.8 h1:QrlvF2byCzMuDsbxFReJkOCbM3O2z1H/NKQaGcA8PKk= github.com/hajimehoshi/ebiten/v2 v2.7.8/go.mod h1:Ulbq5xDmdx47P24EJ+Mb31Zps7vQq+guieG9mghQUaA= github.com/hajimehoshi/go-mp3 v0.3.2/go.mod h1:qMJj/CSDxx6CGHiZeCgbiq2DSUkbK0UbtXShQcnfyMM= @@ -64,7 +61,6 @@ github.com/qiniu/audio v0.2.1/go.mod h1:APMJRPaS4toviejZnDzzZ8wVyr12jqZhd3xfKr/q github.com/qiniu/oksvg v0.2.0-no-charset h1:KKQg81v52pd5VyaxrF891igoOO50epKfFWkryYgntnE= github.com/qiniu/oksvg v0.2.0-no-charset/go.mod h1:YCAOS1HFo2kMxfcFCjrJMeo93KGFYaBAKl7LvrAkltQ= github.com/qiniu/x v1.11.5/go.mod h1:03Ni9tj+N2h2aKnAz+6N0Xfl8FwMEDRC2PAlxekASDs= -github.com/qiniu/x v1.13.9/go.mod h1:INZ2TSWSJVWO/RuELQROERcslBwVgFG7MkTfEdaQz9E= github.com/qiniu/x v1.13.10 h1:J4Z3XugYzAq85SlyAfqlKVrbf05glMbAOh+QncsDQpE= github.com/qiniu/x v1.13.10/go.mod h1:INZ2TSWSJVWO/RuELQROERcslBwVgFG7MkTfEdaQz9E= github.com/srwiley/rasterx v0.0.0-20200120212402-85cb7272f5e9/go.mod h1:mvWM0+15UqyrFKqdRjY6LuAVJR0HOVhJlEgZ5JWtSWU= diff --git a/tools/ispx/main.go b/tools/ispx/main.go index daf335493..b325119b8 100644 --- a/tools/ispx/main.go +++ b/tools/ispx/main.go @@ -57,7 +57,6 @@ func main() { // otherwise, it produces: "fatal error: unreachable method called. linker bug?" type Gamer interface { initGame(sprites []spx.Spriter) *spx.Game - getGame() *spx.Game } gameRun := func(game spx.Gamer, resource interface{}, gameConf ...*spx.Config) { path := resource.(string) @@ -79,6 +78,8 @@ func main() { igop.RegisterExternal("github.com/goplus/spx.Gopt_Game_Run", gameRun) + igop.RegisterExternal("github.com/goplus/spx.Gopt_Game_Gopx_GetWidget[github.com/goplus/spx.Monitor]", spx.Gopt_Game_Gopx_GetWidget[spx.Monitor]) + code, err := ctx.RunFile("main.go", source, nil) if err != nil { log.Fatalln("Failed to run Go+ source:", err, " Code:", code) diff --git a/tools/ispx/pkg/github.com/goplus/spx/export.go b/tools/ispx/pkg/github.com/goplus/spx/export.go index 4854d561c..852e81e97 100644 --- a/tools/ispx/pkg/github.com/goplus/spx/export.go +++ b/tools/ispx/pkg/github.com/goplus/spx/export.go @@ -6,6 +6,8 @@ import ( q "github.com/goplus/spx" "go/constant" + "go/token" + "go/types" "reflect" "github.com/goplus/igop" @@ -64,10 +66,11 @@ func init() { "unsafe": "unsafe", }, Interfaces: map[string]reflect.Type{ - "Gamer": reflect.TypeOf((*q.Gamer)(nil)).Elem(), - "Shape": reflect.TypeOf((*q.Shape)(nil)).Elem(), - "Spriter": reflect.TypeOf((*q.Spriter)(nil)).Elem(), - "Widget": reflect.TypeOf((*q.Widget)(nil)).Elem(), + "Gamer": reflect.TypeOf((*q.Gamer)(nil)).Elem(), + "Shape": reflect.TypeOf((*q.Shape)(nil)).Elem(), + "ShapeGetter": reflect.TypeOf((*q.ShapeGetter)(nil)).Elem(), + "Spriter": reflect.TypeOf((*q.Spriter)(nil)).Elem(), + "Widget": reflect.TypeOf((*q.Widget)(nil)).Elem(), }, NamedTypes: map[string]reflect.Type{ "Camera": reflect.TypeOf((*q.Camera)(nil)).Elem(), @@ -109,6 +112,23 @@ func init() { "SchedNow": reflect.ValueOf(q.SchedNow), "SetDebug": reflect.ValueOf(q.SetDebug), }, + GenericFuncTypeConstructors: map[string]igop.GenericFuncTypeConstructor{ + "Gopt_Game_Gopx_GetWidget": func(tl *igop.TypesLoader, pkg *types.Package) *types.Func { + return types.NewFunc(token.NoPos, pkg, "Gopt_Game_Gopx_GetWidget", func() *types.Signature { + tp_1 := types.NewTypeParam(types.NewTypeName(token.NoPos, pkg, "T", nil), types.Universe.Lookup("any").Type()) + p_1 := types.NewParam(token.NoPos, pkg, "sg", func() types.Type { + if pkg.Path() == "github.com/goplus/spx" { + return pkg.Scope().Lookup("ShapeGetter").Type() + } else { + return tl.GetPackage("github.com/goplus/spx").Scope().Lookup("ShapeGetter").Type() + } + }()) + p_2 := types.NewParam(token.NoPos, pkg, "name", types.Typ[17]) + r_0 := types.NewVar(token.NoPos, pkg, "", types.NewPointer(tp_1)) + return types.NewSignatureType(nil, nil, []*types.TypeParam{tp_1}, types.NewTuple(p_1, p_2), types.NewTuple(r_0), false) + }()) + }, + }, TypedConsts: map[string]igop.TypedConst{ "AllOtherScripts": {reflect.TypeOf(q.AllOtherScripts), constant.MakeInt64(int64(q.AllOtherScripts))}, "AllSprites": {reflect.TypeOf(q.AllSprites), constant.MakeInt64(int64(q.AllSprites))}, diff --git a/tools/ispx/pkg/github.com/hajimehoshi/ebiten/v2/export.go b/tools/ispx/pkg/github.com/hajimehoshi/ebiten/v2/export.go index a6f637390..1e51e745b 100755 --- a/tools/ispx/pkg/github.com/hajimehoshi/ebiten/v2/export.go +++ b/tools/ispx/pkg/github.com/hajimehoshi/ebiten/v2/export.go @@ -209,6 +209,7 @@ func init() { "WindowSize": reflect.ValueOf(q.WindowSize), "WindowSizeLimits": reflect.ValueOf(q.WindowSizeLimits), }, + GenericFuncTypeConstructors: map[string]igop.GenericFuncTypeConstructor{}, TypedConsts: map[string]igop.TypedConst{ "AddressClampToZero": {reflect.TypeOf(q.AddressClampToZero), constant.MakeInt64(int64(q.AddressClampToZero))}, "AddressRepeat": {reflect.TypeOf(q.AddressRepeat), constant.MakeInt64(int64(q.AddressRepeat))}, From 78ba035ec1213fd35d2de2dba0a6512174e8bb7d Mon Sep 17 00:00:00 2001 From: nighca Date: Tue, 27 Aug 2024 11:33:49 +0800 Subject: [PATCH 2/4] RegisterPackagePatch --- tools/ispx/go.mod | 3 +-- tools/ispx/go.sum | 4 ++-- tools/ispx/main.go | 18 +++++++++++++++-- .../ispx/pkg/github.com/goplus/spx/export.go | 20 +------------------ .../hajimehoshi/ebiten/v2/export.go | 1 - 5 files changed, 20 insertions(+), 26 deletions(-) diff --git a/tools/ispx/go.mod b/tools/ispx/go.mod index f91378341..ceaab1390 100644 --- a/tools/ispx/go.mod +++ b/tools/ispx/go.mod @@ -3,7 +3,7 @@ module github.com/goplus/builder/ispx go 1.21 require ( - github.com/goplus/igop v0.26.0 + github.com/goplus/igop v0.27.0 github.com/goplus/reflectx v1.2.2 github.com/goplus/spx v1.0.1-0.20240815092545-3df776b555a0 github.com/hajimehoshi/ebiten/v2 v2.7.8 @@ -46,7 +46,6 @@ require ( replace ( github.com/goplus/spx => ../../../spx - github.com/goplus/igop => ../../../igop github.com/hajimehoshi/oto => github.com/hajimehoshi/oto v1.0.1 github.com/srwiley/oksvg => github.com/qiniu/oksvg v0.2.0-no-charset golang.org/x/image => golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d diff --git a/tools/ispx/go.sum b/tools/ispx/go.sum index 73ae948e0..97c070ba9 100644 --- a/tools/ispx/go.sum +++ b/tools/ispx/go.sum @@ -31,8 +31,8 @@ github.com/goplus/gogen v1.15.2 h1:Q6XaSx/Zi5tWnjfAziYsQI6Jv6MgODRpFtOYqNkiiqM= github.com/goplus/gogen v1.15.2/go.mod h1:92qEzVgv7y8JEFICWG9GvYI5IzfEkxYdsA1DbmnTkqk= github.com/goplus/gop v1.2.6 h1:kog3c5Js+8EopqmI4+CwueXsqibnBwYVt5q5N7juRVY= github.com/goplus/gop v1.2.6/go.mod h1:uREWbR1MrFaviZ4Mbx4ZCcAYDoqzO0iv1Qo6Np0Xx4E= -github.com/goplus/igop v0.26.0 h1:sxldChdVU+0a6qXdW1JrT0hYKyMQgfQLJMvQ4XvapAo= -github.com/goplus/igop v0.26.0/go.mod h1:V8Kf/b4nrw0OPPodwnOYZPCpXvU+hqzuhSAXIToT0ME= +github.com/goplus/igop v0.27.0 h1:4Wk5CIdm3FI1w6d0Y8GO2IC9sgs4wwYdpizCgRdcfYs= +github.com/goplus/igop v0.27.0/go.mod h1:V8Kf/b4nrw0OPPodwnOYZPCpXvU+hqzuhSAXIToT0ME= github.com/goplus/mod v0.13.10 h1:5Om6KOvo31daN7N30kWU1vC5zhsJPM+uPbcEN/FnlzE= github.com/goplus/mod v0.13.10/go.mod h1:HDuPZgpWiaTp3PUolFgsiX+Q77cbUWB/mikVHfYND3c= github.com/goplus/reflectx v1.2.2 h1:T1p20OIH/HcnAvQQNnDLwl6AZOjU34icsfc6migD6L8= diff --git a/tools/ispx/main.go b/tools/ispx/main.go index b325119b8..fb19f26b7 100644 --- a/tools/ispx/main.go +++ b/tools/ispx/main.go @@ -48,6 +48,22 @@ func main() { var mode igop.Mode ctx := igop.NewContext(mode) + gopbuild.RegisterPackagePatch(ctx, "github.com/goplus/spx", ` +package spx + +import ( + . "github.com/goplus/spx" +) + +func Gopt_Game_Gopx_GetWidget[T any](sg ShapeGetter, name string) *T { + widget := GetWidget_(sg, name) + if result, ok := widget.(interface{}).(*T); ok { + return result + } else { + panic("GetWidget: type mismatch") + } +} +`) source, err := gopbuild.BuildFSDir(ctx, fs, "") if err != nil { log.Fatalln("Failed to build Go+ source:", err) @@ -78,8 +94,6 @@ func main() { igop.RegisterExternal("github.com/goplus/spx.Gopt_Game_Run", gameRun) - igop.RegisterExternal("github.com/goplus/spx.Gopt_Game_Gopx_GetWidget[github.com/goplus/spx.Monitor]", spx.Gopt_Game_Gopx_GetWidget[spx.Monitor]) - code, err := ctx.RunFile("main.go", source, nil) if err != nil { log.Fatalln("Failed to run Go+ source:", err, " Code:", code) diff --git a/tools/ispx/pkg/github.com/goplus/spx/export.go b/tools/ispx/pkg/github.com/goplus/spx/export.go index 852e81e97..2e9c98524 100644 --- a/tools/ispx/pkg/github.com/goplus/spx/export.go +++ b/tools/ispx/pkg/github.com/goplus/spx/export.go @@ -6,8 +6,6 @@ import ( q "github.com/goplus/spx" "go/constant" - "go/token" - "go/types" "reflect" "github.com/goplus/igop" @@ -98,6 +96,7 @@ func init() { Funcs: map[string]reflect.Value{ "Exit__0": reflect.ValueOf(q.Exit__0), "Exit__1": reflect.ValueOf(q.Exit__1), + "GetWidget_": reflect.ValueOf(q.GetWidget_), "Gopt_Game_Main": reflect.ValueOf(q.Gopt_Game_Main), "Gopt_Game_Reload": reflect.ValueOf(q.Gopt_Game_Reload), "Gopt_Game_Run": reflect.ValueOf(q.Gopt_Game_Run), @@ -112,23 +111,6 @@ func init() { "SchedNow": reflect.ValueOf(q.SchedNow), "SetDebug": reflect.ValueOf(q.SetDebug), }, - GenericFuncTypeConstructors: map[string]igop.GenericFuncTypeConstructor{ - "Gopt_Game_Gopx_GetWidget": func(tl *igop.TypesLoader, pkg *types.Package) *types.Func { - return types.NewFunc(token.NoPos, pkg, "Gopt_Game_Gopx_GetWidget", func() *types.Signature { - tp_1 := types.NewTypeParam(types.NewTypeName(token.NoPos, pkg, "T", nil), types.Universe.Lookup("any").Type()) - p_1 := types.NewParam(token.NoPos, pkg, "sg", func() types.Type { - if pkg.Path() == "github.com/goplus/spx" { - return pkg.Scope().Lookup("ShapeGetter").Type() - } else { - return tl.GetPackage("github.com/goplus/spx").Scope().Lookup("ShapeGetter").Type() - } - }()) - p_2 := types.NewParam(token.NoPos, pkg, "name", types.Typ[17]) - r_0 := types.NewVar(token.NoPos, pkg, "", types.NewPointer(tp_1)) - return types.NewSignatureType(nil, nil, []*types.TypeParam{tp_1}, types.NewTuple(p_1, p_2), types.NewTuple(r_0), false) - }()) - }, - }, TypedConsts: map[string]igop.TypedConst{ "AllOtherScripts": {reflect.TypeOf(q.AllOtherScripts), constant.MakeInt64(int64(q.AllOtherScripts))}, "AllSprites": {reflect.TypeOf(q.AllSprites), constant.MakeInt64(int64(q.AllSprites))}, diff --git a/tools/ispx/pkg/github.com/hajimehoshi/ebiten/v2/export.go b/tools/ispx/pkg/github.com/hajimehoshi/ebiten/v2/export.go index 1e51e745b..a6f637390 100755 --- a/tools/ispx/pkg/github.com/hajimehoshi/ebiten/v2/export.go +++ b/tools/ispx/pkg/github.com/hajimehoshi/ebiten/v2/export.go @@ -209,7 +209,6 @@ func init() { "WindowSize": reflect.ValueOf(q.WindowSize), "WindowSizeLimits": reflect.ValueOf(q.WindowSizeLimits), }, - GenericFuncTypeConstructors: map[string]igop.GenericFuncTypeConstructor{}, TypedConsts: map[string]igop.TypedConst{ "AddressClampToZero": {reflect.TypeOf(q.AddressClampToZero), constant.MakeInt64(int64(q.AddressClampToZero))}, "AddressRepeat": {reflect.TypeOf(q.AddressRepeat), constant.MakeInt64(int64(q.AddressRepeat))}, From bfe27808b80727688cf74c5cd8ee22f5c5c4c824 Mon Sep 17 00:00:00 2001 From: nighca Date: Wed, 28 Aug 2024 10:08:55 +0800 Subject: [PATCH 3/4] check error of RegisterPackagePatch --- tools/ispx/main.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/ispx/main.go b/tools/ispx/main.go index fb19f26b7..5e8e120cf 100644 --- a/tools/ispx/main.go +++ b/tools/ispx/main.go @@ -48,7 +48,7 @@ func main() { var mode igop.Mode ctx := igop.NewContext(mode) - gopbuild.RegisterPackagePatch(ctx, "github.com/goplus/spx", ` + err = gopbuild.RegisterPackagePatch(ctx, "github.com/goplus/spx", ` package spx import ( @@ -64,6 +64,9 @@ func Gopt_Game_Gopx_GetWidget[T any](sg ShapeGetter, name string) *T { } } `) + if err != nil { + log.Fatalln("Failed to register package patch:", err) + } source, err := gopbuild.BuildFSDir(ctx, fs, "") if err != nil { log.Fatalln("Failed to build Go+ source:", err) From f01c0f775a4652a0038e65573b1d80b605d6210b Mon Sep 17 00:00:00 2001 From: nighca Date: Wed, 28 Aug 2024 10:27:40 +0800 Subject: [PATCH 4/4] upgrade spx --- tools/ispx/go.mod | 3 +-- tools/ispx/go.sum | 2 ++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/ispx/go.mod b/tools/ispx/go.mod index ceaab1390..b8ab3cd21 100644 --- a/tools/ispx/go.mod +++ b/tools/ispx/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/goplus/igop v0.27.0 github.com/goplus/reflectx v1.2.2 - github.com/goplus/spx v1.0.1-0.20240815092545-3df776b555a0 + github.com/goplus/spx v1.0.1-0.20240828022121-d1b083ef69a3 github.com/hajimehoshi/ebiten/v2 v2.7.8 ) @@ -45,7 +45,6 @@ require ( ) replace ( - github.com/goplus/spx => ../../../spx github.com/hajimehoshi/oto => github.com/hajimehoshi/oto v1.0.1 github.com/srwiley/oksvg => github.com/qiniu/oksvg v0.2.0-no-charset golang.org/x/image => golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d diff --git a/tools/ispx/go.sum b/tools/ispx/go.sum index 97c070ba9..1acce4cca 100644 --- a/tools/ispx/go.sum +++ b/tools/ispx/go.sum @@ -37,6 +37,8 @@ github.com/goplus/mod v0.13.10 h1:5Om6KOvo31daN7N30kWU1vC5zhsJPM+uPbcEN/FnlzE= github.com/goplus/mod v0.13.10/go.mod h1:HDuPZgpWiaTp3PUolFgsiX+Q77cbUWB/mikVHfYND3c= github.com/goplus/reflectx v1.2.2 h1:T1p20OIH/HcnAvQQNnDLwl6AZOjU34icsfc6migD6L8= github.com/goplus/reflectx v1.2.2/go.mod h1:wHOS9ilbB4zrecI0W1dMmkW9JMcpXV7VjALVbNU9xfM= +github.com/goplus/spx v1.0.1-0.20240828022121-d1b083ef69a3 h1:W5d93j+hZ+qeV9Do51Tm7JlPQkua4TG5aylTAwetWTU= +github.com/goplus/spx v1.0.1-0.20240828022121-d1b083ef69a3/go.mod h1:UNZub8iRpxDvLpjJYYpiM7r36GqweTn2SNSKN49kG90= github.com/hajimehoshi/ebiten/v2 v2.7.8 h1:QrlvF2byCzMuDsbxFReJkOCbM3O2z1H/NKQaGcA8PKk= github.com/hajimehoshi/ebiten/v2 v2.7.8/go.mod h1:Ulbq5xDmdx47P24EJ+Mb31Zps7vQq+guieG9mghQUaA= github.com/hajimehoshi/go-mp3 v0.3.2/go.mod h1:qMJj/CSDxx6CGHiZeCgbiq2DSUkbK0UbtXShQcnfyMM=