internal/ui: bug fix: a big-offscreen size could be 0

Closes #2589
This commit is contained in:
Hajime Hoshi 2023-03-03 22:34:40 +09:00
parent b278e5521f
commit 051b0c7238
2 changed files with 41 additions and 0 deletions

View File

@ -346,6 +346,10 @@ func (i *bigOffscreenImage) drawTriangles(srcs [graphics.ShaderImageCount]*Image
i.region = r
}
if i.region.Width == 0 || i.region.Height == 0 {
return
}
if i.image == nil {
i.image = NewImage(int(i.region.Width)*bigOffscreenScale, int(i.region.Height)*bigOffscreenScale, i.imageType)
}

37
vector/util_test.go Normal file
View File

@ -0,0 +1,37 @@
// Copyright 2023 The Ebitengine Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package vector_test
import (
"image/color"
"testing"
"github.com/hajimehoshi/ebiten/v2"
t "github.com/hajimehoshi/ebiten/v2/internal/testing"
"github.com/hajimehoshi/ebiten/v2/vector"
)
func TestMain(m *testing.M) {
t.MainWithRunLoop(m)
}
// Issue #2589
func TestLine0(t *testing.T) {
dst := ebiten.NewImage(16, 16)
vector.StrokeLine(dst, 0, 0, 0, 0, 2, color.White)
if got, want := dst.At(0, 0), (color.RGBA{}); got != want {
t.Errorf("got: %v, want: %v", got, want)
}
}