Closed 200sc closed 3 years ago
Merging #154 (f8ccd2a) into master (b80723a) will increase coverage by
2.81%
. The diff coverage is92.44%
.
@@ Coverage Diff @@
## master #154 +/- ##
==========================================
+ Coverage 92.88% 95.69% +2.81%
==========================================
Files 127 128 +1
Lines 4384 4206 -178
==========================================
- Hits 4072 4025 -47
+ Misses 272 149 -123
+ Partials 40 32 -8
Impacted Files | Coverage Δ | |
---|---|---|
alg/degrees.go | 100.00% <ø> (ø) |
|
alg/intgeom/point.go | 100.00% <ø> (ø) |
|
alg/stwHeap.go | 100.00% <ø> (ø) |
|
collision/geom.go | 100.00% <ø> (ø) |
|
collision/point.go | 100.00% <ø> (ø) |
|
collision/ray/castFilter.go | 95.83% <ø> (ø) |
|
collision/ray/castLimit.go | 100.00% <ø> (+21.05%) |
:arrow_up: |
collision/rtree.go | 97.46% <ø> (-0.86%) |
:arrow_down: |
collision/space.go | 100.00% <ø> (ø) |
|
fileutil/open.go | 100.00% <ø> (ø) |
|
... and 96 more |
Continue to review full report at Codecov.
Legend - Click here to learn more
Δ = absolute <relative> (impact)
,ø = not affected
,? = missing data
Powered by Codecov. Last update b80723a...f8ccd2a. Read the comment docs.
To do before release:
Ensure default font stays embedded when oak is vendored
Changelog:
overall
github.com/stretchr/testify
has been removed.oakerr
package. alg
RemainingWeights
has been renamed to CumulativeWeights
, and the old CumulativeWeights
function has been removed.alg/floatgeom
Polygon2
type.alg/range
audio
DefFont
has been renamed to DefaultFont
DefChannel
has been renamed to DefaultChannel
DefActiveChannel
has been renamed to DefaultActiveChannel
DefPlay
has been renamed to DefaultPlay
FontManager.GetDefault
to get the manager's default channel collision
DefTree
has been renamed DefaultTree
Attach
now takes a *Tree
argument, and no longer binds to priority -1PhaseCollision
now takes a single *Tree
which can be nil
instead of a variadic setNewTree
now takes no arguments and cannot error. The old NewTree
with custom node sizes has been renamed to NewCustomTree
With
would return nil
spacesentities/x/btn
Label(collision.Label)
optionevent
Empty
helper, for when a Bindable
does not care about its arguments or return valueGlobalBind
and Bind
now take string, Bindable
as their argument order, formerly Bindable, string
Bind(EventName, func(){})
read better, especially with larger functionsBindable
s now accept CID, interface{}
instead of int, interface{}
CallerMap
typeHandler
are now requiredexamples
key
State
type, encompassing key down/up/held states, which used to be global to the oak
package.mouse
Binding
helper, converting a weakly typed interface{}
payload into a mouse.Event
typeDefTree
has been renamed to DefaultTree
oakerr
render
Noisebox
has been removedScrollbox
has been removedPolygon
type now uses floatgeom.Polygon2
Font
s are now copied several times as they are passed around, to enforce that the same font is not used to draw two pieces of text at once, which can panicDrawOffset
on Renderable
s has been removed and Draw
has taken on its arguments (x and y offsets)Text
s are now drawn from the top left, like all other Renderable
s.Font
s can now be provided fallback fonts, which they will try to use to render characters that would be rendered as an undefined characterFont.Generate
can now return an errorOverlaySprites
takes a slice of pointers instead of structsShinySet
has been removedShinyOverwrite
has been renamed to OverwriteImage
ShinyDraw
has been renamed to DrawImage
Stackable
s have been changed to an interface that can be externally used, by removing private methodsStackable
s now have a Clear
methodRenderable
s instead of Stackable
sDefFont
is now DefaultFont
render/mod
gift.Resampling
is now aliases as the local Resampling
typerender/particle
Allocator
type to contain particle allocation requestsscene
(*scene.Context)
as their only argument, a new struct containing everything a scene should need to render, bind, modify the window, etcshiny
github.com/oakmound/shiny
shiny
other than to decide which driver to use, if not using the defaulttiming
FPSToDuration
has been renamed to FPSToFrameDelay
FrameDelayToFPS
window
scene
and oak.Controller
oak
Setup...
constants have been removed and folded into the Config
structConfig.EventRefreshRate
can now be properly unmarshaled from JSONConfig.IdleDrawFrameRate
, controlling how often the screen will redraw when it does not have focusNewConfig
and functional option loaders, FileConfig
and ReaderConfig
Controller
type, containing old package globals and enabling running multiple oak windows simultaneouslyController
s, in addition to default oak.<Method>
helpers, which will redirect to a default controllerGetRGBA() *image.RGBA
, enabling complex or animating backgroundsConfigOption
s, so patterns that used to setup config, then oak.Init(scene)
now will look like oak.Init(scene, func() {setup config})
event.FocusLoss
and event.FocusGain
events on appropriate window changeskey.Event
payload instead of a string
payloadRelative
event, the latter taking into account the viewport positionoakerr
, and are in progressUpdateViewSize
, to enable resizing the rectangle rendered within the client windowAdd
, preferring AddScene
DefaultShaker
HideCursor
, ShowNotification
, and SetTrayIcon
window methodsThis release will:
Resolve #138 Resolve #149 Resolve #144 Resolve #139 Resolve #116 Resolve #101
Commit addresses comments (typos) and makes no significant changes, will merge if tests pass
This release marks the first release of oak v3, an early alpha where much but not all of the engine has been overhauled.
The following packages are in a state we are happy with in oak v3, and we do not expect them to change substantially:
render
(and its subpackages)mouse
collision
shiny
(new, brought in from oakmound/shiny)alg
event
key
oakerr
physics
scene
shape
timing
The main package,
oak
, is in a mostly good place, but some components like the debug console will likely be moved elsewhere before a stable v3 release.The
joystick
package needs to be reevaluated with respect to supporting more controllers before v3 is stable.The
dlog
package will still be significantly adjusted, to emphasize it is not meant to be a one-stop-shop logging solution, but just a 'here's what the engine will log to' destination.The
audio
andentities
packages have not been sufficiently reviewed to where we can say they will not change before v3 is stable.We currently anticipate an Alpha 2 and Beta 1 release before a final Stable release.
A fully detailed changelog is still pending.