Merge branch 'master' into transparency
This commit is contained in:
commit
b5e4674b45
|
@ -4,8 +4,9 @@ All notable changes to this project will be documented in this file.
|
|||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
## [Unreleased]
|
||||
- Gamepad API?
|
||||
- Gamepad API support
|
||||
- Add `WindowConfig.TransparentFramebuffer` option to support window transparency onto the background
|
||||
- Fixed Line intersects failing on lines passing through (0, 0)
|
||||
|
||||
## [v0.10.0-alpha] 2020-05-08
|
||||
- Upgrade to GLFW 3.3! :tada:
|
||||
|
|
|
@ -172,10 +172,6 @@ better result.
|
|||
|
||||
Take a look at [CONTRIBUTING.md](CONTRIBUTING.md) for further information.
|
||||
|
||||
For any kind of discussion, feel free to use our
|
||||
[Gitter](https://gitter.im/pixellib/Lobby)
|
||||
community.
|
||||
|
||||
## License
|
||||
|
||||
[MIT](LICENSE)
|
||||
|
|
|
@ -406,12 +406,12 @@ func (l Line) IntersectRect(r Rect) Vec {
|
|||
// - the point is contained by the rectangle
|
||||
// - the point is not the corner itself
|
||||
corners := r.Vertices()
|
||||
closest := ZV
|
||||
var closest *Vec
|
||||
closestCorner := corners[0]
|
||||
for _, c := range corners {
|
||||
cc := l.Closest(c)
|
||||
if closest == ZV || (closest.Len() > cc.Len() && r.Contains(cc)) {
|
||||
closest = cc
|
||||
if closest == nil || (closest.Len() > cc.Len() && r.Contains(cc)) {
|
||||
closest = &cc
|
||||
closestCorner = c
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1002,6 +1002,18 @@ func TestLine_Closest(t *testing.T) {
|
|||
args: args{v: pixel.V(20, 20)},
|
||||
want: pixel.V(10, 10),
|
||||
},
|
||||
{
|
||||
name: "Vertical line",
|
||||
fields: fields{A: pixel.V(0, -10), B: pixel.V(0, 10)},
|
||||
args: args{v: pixel.V(-1, 0)},
|
||||
want: pixel.V(0, 0),
|
||||
},
|
||||
{
|
||||
name: "Horizontal line",
|
||||
fields: fields{A: pixel.V(-10, 0), B: pixel.V(10, 0)},
|
||||
args: args{v: pixel.V(0, -1)},
|
||||
want: pixel.V(0, 0),
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
|
@ -1297,6 +1309,12 @@ func TestLine_IntersectRect(t *testing.T) {
|
|||
args: args{r: pixel.R(20, 20, 21, 21)},
|
||||
want: pixel.ZV,
|
||||
},
|
||||
{
|
||||
name: "Line intersects at 0,0",
|
||||
fields: fields{A: pixel.V(0, -10), B: pixel.V(0, 10)},
|
||||
args: args{r: pixel.R(-1, 0, 2, 2)},
|
||||
want: pixel.V(-1, 0),
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
|
|
|
@ -128,7 +128,9 @@ func (imd *IMDraw) Draw(t pixel.Target) {
|
|||
// Push adds some points to the IM queue. All Pushed points will have the same properties except for
|
||||
// the position.
|
||||
func (imd *IMDraw) Push(pts ...pixel.Vec) {
|
||||
//Assert that Color is of type pixel.RGBA,
|
||||
if _, ok := imd.Color.(pixel.RGBA); !ok {
|
||||
//otherwise cast it
|
||||
imd.Color = pixel.ToRGBA(imd.Color)
|
||||
}
|
||||
opts := point{
|
||||
|
|
Loading…
Reference in New Issue