mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-12-26 19:58:54 +01:00
Compare commits
2 Commits
0a73cbfce4
...
f6cd2beacf
Author | SHA1 | Date | |
---|---|---|---|
|
f6cd2beacf | ||
|
98d386f249 |
@ -129,7 +129,7 @@ func (g *gameForUI) DrawFinalScreen(scale, offsetX, offsetY float64) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
DefaultDrawFinalsScreen(g.screen, g.offscreen, geoM)
|
DefaultDrawFinalScreen(g.screen, g.offscreen, geoM)
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -137,12 +137,12 @@ var (
|
|||||||
theScreenShaderOnce sync.Once
|
theScreenShaderOnce sync.Once
|
||||||
)
|
)
|
||||||
|
|
||||||
// DefaultDrawFinalsScreen is the default implementation of [FinalScreenDrawer.DrawFinalScreen],
|
// DefaultDrawFinalScreen is the default implementation of [FinalScreenDrawer.DrawFinalScreen],
|
||||||
// used when a [Game] doesn't implement [FinalScreenDrawer].
|
// used when a [Game] doesn't implement [FinalScreenDrawer].
|
||||||
//
|
//
|
||||||
// You can use DefaultDrawFinalsScreen when you need the default implementation of [FinalScreenDrawer.DrawFinalScreen]
|
// You can use DefaultDrawFinalScreen when you need the default implementation of [FinalScreenDrawer.DrawFinalScreen]
|
||||||
// in your implementation of [FinalScreenDrawer], for example.
|
// in your implementation of [FinalScreenDrawer], for example.
|
||||||
func DefaultDrawFinalsScreen(screen *Image, offscreen *Image, geoM GeoM) {
|
func DefaultDrawFinalScreen(screen *Image, offscreen *Image, geoM GeoM) {
|
||||||
theScreenShaderOnce.Do(func() {
|
theScreenShaderOnce.Do(func() {
|
||||||
s, err := newShader(builtinshader.ScreenShaderSource, "screen")
|
s, err := newShader(builtinshader.ScreenShaderSource, "screen")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -60,7 +60,7 @@ var ColorMTranslation vec4
|
|||||||
{{end}}
|
{{end}}
|
||||||
|
|
||||||
{{if eq .Address .AddressRepeat}}
|
{{if eq .Address .AddressRepeat}}
|
||||||
func adjustTexelForAddressRepeat(p vec2) vec2 {
|
func adjustSrcPosForAddressRepeat(p vec2) vec2 {
|
||||||
origin := imageSrc0Origin()
|
origin := imageSrc0Origin()
|
||||||
size := imageSrc0Size()
|
size := imageSrc0Size()
|
||||||
return mod(p - origin, size) + origin
|
return mod(p - origin, size) + origin
|
||||||
@ -74,15 +74,15 @@ func Fragment(dstPos vec4, srcPos vec2, color vec4) vec4 {
|
|||||||
{{else if eq .Address .AddressClampToZero}}
|
{{else if eq .Address .AddressClampToZero}}
|
||||||
clr := imageSrc0At(srcPos)
|
clr := imageSrc0At(srcPos)
|
||||||
{{else if eq .Address .AddressRepeat}}
|
{{else if eq .Address .AddressRepeat}}
|
||||||
clr := imageSrc0At(adjustTexelForAddressRepeat(srcPos))
|
clr := imageSrc0At(adjustSrcPosForAddressRepeat(srcPos))
|
||||||
{{end}}
|
{{end}}
|
||||||
{{else if eq .Filter .FilterLinear}}
|
{{else if eq .Filter .FilterLinear}}
|
||||||
p0 := srcPos - 1/2.0
|
p0 := srcPos - 1/2.0
|
||||||
p1 := srcPos + 1/2.0
|
p1 := srcPos + 1/2.0
|
||||||
|
|
||||||
{{if eq .Address .AddressRepeat}}
|
{{if eq .Address .AddressRepeat}}
|
||||||
p0 = adjustTexelForAddressRepeat(p0)
|
p0 = adjustSrcPosForAddressRepeat(p0)
|
||||||
p1 = adjustTexelForAddressRepeat(p1)
|
p1 = adjustSrcPosForAddressRepeat(p1)
|
||||||
{{end}}
|
{{end}}
|
||||||
|
|
||||||
{{if eq .Address .AddressUnsafe}}
|
{{if eq .Address .AddressUnsafe}}
|
||||||
|
Loading…
Reference in New Issue
Block a user