From 9410fc56394190e35cb63334f9c83e2ca7044c83 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 12 Mar 2022 11:02:22 -0600 Subject: [PATCH 001/146] event: overhaul api - adds type safe bindings / triggers - decreases api surface considerably - loops replaced with concurrent executions --- event/bind.go | 142 ++++++++++++++---------- event/bindingSet.go | 42 ------- event/bus.go | 216 ++++++++++++++---------------------- event/bus_test.go | 52 --------- event/caller.go | 73 +++++++++++-- event/callerMap.go | 104 ------------------ event/cid.go | 21 ---- event/default.go | 124 --------------------- event/doc.go | 2 +- event/entity.go | 53 --------- event/entity_test.go | 12 -- event/event_test.go | 249 ------------------------------------------ event/events.go | 53 +++++++++ event/handler.go | 164 +--------------------------- event/handler_test.go | 108 ------------------ event/internal.go | 56 ++++++++++ event/resolve.go | 135 ----------------------- event/resolve_test.go | 23 ---- event/response.go | 18 +-- event/strings.go | 50 --------- event/trigger.go | 105 ++++-------------- event/unbind.go | 50 --------- 22 files changed, 375 insertions(+), 1477 deletions(-) delete mode 100644 event/bindingSet.go delete mode 100644 event/bus_test.go delete mode 100644 event/callerMap.go delete mode 100644 event/cid.go delete mode 100644 event/default.go delete mode 100644 event/entity.go delete mode 100644 event/entity_test.go delete mode 100644 event/event_test.go create mode 100644 event/events.go delete mode 100644 event/handler_test.go create mode 100644 event/internal.go delete mode 100644 event/resolve.go delete mode 100644 event/resolve_test.go delete mode 100644 event/strings.go delete mode 100644 event/unbind.go diff --git a/event/bind.go b/event/bind.go index 4a0b654f..807ec4e3 100644 --- a/event/bind.go +++ b/event/bind.go @@ -1,71 +1,101 @@ package event -// Bind adds a function to the event bus tied to the given callerID -// to be called when the event name is triggered. It is equivalent to -// calling BindPriority with a zero Priority. -func (eb *Bus) Bind(name string, callerID CID, fn Bindable) { - eb.pendingMutex.Lock() - eb.binds = append(eb.binds, UnbindOption{ - Event: Event{ - Name: name, - CallerID: callerID, - }, Fn: fn}) - eb.pendingMutex.Unlock() -} +import "sync/atomic" -// PersistentBind acts like Bind, but persists the binding such that if the event -// bus is reset, the binding will still trigger. Thes bindings should likely be global -// bindings, using a CID of 0, or be tolerant to the CID bound not being present after -// such a clear. -func (eb *Bus) PersistentBind(name string, callerID CID, fn Bindable) { - eb.pendingMutex.Lock() - opt := UnbindOption{ - Event: Event{ - Name: name, - CallerID: callerID, - }, Fn: fn} - eb.binds = append(eb.binds, opt) - eb.persistentBinds = append(eb.persistentBinds, opt) - eb.pendingMutex.Unlock() -} +// Q: Why do Bind / Unbind / etc not immediately take effect? +// A: For concurrent safety, most operations on a bus lock the bus. Triggers acquire a read lock on the bus, +// as they iterate over internal bus components. Most logic within an event bus will happen from within +// a Trigger call-- when an entity is destroyed by some collision, for example, all of its bindings should +// be unregistered. If one were to call Unbind from within a + +// Q: Why not trust users to call Bind / Unbind / etc with `go`, to allow the caller to decide when to use +// concurrency? +// A: It is almost never correct to not call these functions with `go`, and it is a bad user experience for +// the engine to deadlock unexpectedly because you forgot to begin some call with a goroutine. -// ClearPersistentBindings removes all persistent bindings. It will not unbind them -// from the bus, but they will not be bound following the next bus reset. -func (eb *Bus) ClearPersistentBindings() { - eb.pendingMutex.Lock() - eb.persistentBinds = []UnbindOption{} - eb.pendingMutex.Unlock() +// A Binding, returned from calls to Bind, references the details of a binding and where that binding is +// stored within a handler. The common use case for this structure would involve a system that wanted to +// keep track of its bindings for later remote unbinding. This structure can also be used to construct +// and unbind a known reference. +type Binding struct { + Handler Handler + EventID UnsafeEventID + CallerID CallerID + BindID BindID } -// GlobalBind binds on the bus to the cid 0, a non entity. -func (eb *Bus) GlobalBind(name string, fn Bindable) { - eb.Bind(name, 0, fn) +// Unbind unbinds the callback associated with this binding from it's own event handler. If this binding +// does not belong to its handler or has already been unbound, this will do nothing. +func (b Binding) Unbind() { + b.Handler.Unbind(b) } -// Empty is a helper to convert a func() into a Bindable function signature. -func Empty(f func()) Bindable { - return func(CID, interface{}) int { - f() - return 0 +// A BindID is a unique identifier for a binding within a bus. +type BindID int64 + +// UnsafeBind registers a callback function to be called whenever the provided event is triggered +// against this bus. The binding is concurrently bound, and therefore may not be immediately +// available to be triggered. When Reset is called on a Bus, all prior bindings are unbound. This +// call is 'unsafe' because UnsafeBindables use bare interface{} types. +func (bus *Bus) UnsafeBind(eventID UnsafeEventID, callerID CallerID, fn UnsafeBindable) Binding { + bindID := BindID(atomic.AddInt64(bus.nextBindID, 1)) + go func() { + bus.mutex.Lock() + bus.getBindableList(eventID, callerID).storeBindable(fn, bindID) + bus.mutex.Unlock() + }() + return Binding{ + Handler: bus, + EventID: eventID, + CallerID: callerID, + BindID: bindID, } } -// WaitForEvent will return a single payload from the given event. This -// makes an internal binding, but that binding will clean itself up -// regardless of how this is used. This should be used in a select clause -// to ensure the signal is captured, if the signal comes and the output -// channel is not being waited on, the channel will be closed. -func (eb *Bus) WaitForEvent(name string) <-chan interface{} { - ch := make(chan interface{}) +// PersistentBind acts like UnsafeBind, but cause Bind to be called with these inputs after a Bus is Reset, i.e. +// persisting the binding through bus resets. Unbinding this will not stop it from being rebound on the next +// Bus Reset-- ClearPersistentBindings will. +func (bus *Bus) PersistentBind(eventID UnsafeEventID, callerID CallerID, fn UnsafeBindable) Binding { + binding := bus.UnsafeBind(eventID, callerID, fn) go func() { - eb.GlobalBind(name, func(c CID, i interface{}) int { - select { - case ch <- i: - default: - } - close(ch) - return UnbindSingle + bus.mutex.Lock() + bus.persistentBindings = append(bus.persistentBindings, persistentBinding{ + eventID: eventID, + callerID: callerID, + fn: fn, }) + bus.mutex.Unlock() }() - return ch + return binding +} + +// Unbind unregisters a binding from a bus concurrently. Once complete, triggers that would +// have previously caused the Bindable callback to execute will no longer do so. +func (bus *Bus) Unbind(loc Binding) { + go func() { + bus.mutex.Lock() + bus.getBindableList(loc.EventID, loc.CallerID).remove(loc.BindID) + bus.mutex.Unlock() + }() +} + +// A Bindable is a strongly typed callback function to be executed on Trigger. It must be paired +// with an event registered via RegisterEvent. +type Bindable[T any] func(CallerID, T) Response + +func Bind[T any](b Handler, ev EventID[T], c CallerID, fn Bindable[T]) Binding { + return b.UnsafeBind(ev.UnsafeEventID, c, func(c CallerID, f interface{}) Response { + tf := f.(T) + return fn(c, tf) + }) +} + +// UnsafeBindable defines the underlying signature of all bindings. +type UnsafeBindable func(CallerID, interface{}) Response + +func EmptyBinding(f func()) UnsafeBindable { + return func(ci CallerID, i interface{}) Response { + f() + return NoResponse + } } diff --git a/event/bindingSet.go b/event/bindingSet.go deleted file mode 100644 index 23dc6a5c..00000000 --- a/event/bindingSet.go +++ /dev/null @@ -1,42 +0,0 @@ -package event - -// A Mapping stores a slice of event names and bindings -type Mapping struct { - eventNames []string - binds []Bindable -} - -// A BindingSet stores sets of event mappings bound to string names. -// The use case for a BindingSet is for a character that can exist in multiple states, -// so that they can swiftly switch between the event bindings that define those -// states. -type BindingSet map[string]Mapping - -// Set makes a new EventMapping for BindingSet -func (b BindingSet) Set(setName string, mappingSets ...map[string]Bindable) BindingSet { - - numMappings := 0 - for _, m := range mappingSets { - numMappings += len(m) - - } - bindings := make([]Bindable, numMappings) - events := make([]string, numMappings) - i := 0 - for _, m := range mappingSets { - for k, v := range m { - bindings[i] = v - events[i] = k - i++ - } - } - - b[setName] = Mapping{eventNames: events, binds: bindings} - return b -} - -// RebindMapping resets the entity controlling this cid to only have the bindings -// in the passed in event mapping -func (cid CID) RebindMapping(mapping Mapping) { - cid.UnbindAllAndRebind(mapping.binds, mapping.eventNames) -} diff --git a/event/bus.go b/event/bus.go index c95f1655..ca8a59f9 100644 --- a/event/bus.go +++ b/event/bus.go @@ -1,51 +1,30 @@ package event import ( - "reflect" "sync" "time" -) - -// Bindable is a way of saying "Any function -// that takes a generic struct of data -// and returns an error can be bound". -type Bindable func(CID, interface{}) int -// BindableList just stores other relevant data -// that a list of bindables needs to -// operate efficiently -type bindableList struct { - sl []Bindable - // We keep track of where the next nil - // element in our list is, so we - // can let bindings know where they - // are by index, (we don't shift to - // fill empty spaces) and so we can - // fill that slot next when a - // new binding comes in. - nextEmpty int -} + "github.com/oakmound/oak/v3/oakerr" +) // A Bus stores bindables to be triggered by events type Bus struct { - bindingMap map[string]map[CID]*bindableList - doneCh chan struct{} - framesElapsed int - Ticker *time.Ticker - binds []UnbindOption - partUnbinds []Event - fullUnbinds []UnbindOption - unbinds []binding - unbindAllAndRebinds []UnbindAllOption - persistentBinds []UnbindOption - framerate int - refreshRate time.Duration - callerMap *CallerMap - - mutex sync.RWMutex - pendingMutex sync.Mutex + nextBindID *int64 + bindingMap map[UnsafeEventID]map[CallerID]bindableList + persistentBindings []persistentBinding + doneCh chan struct{} + framesElapsed int + ticker *time.Ticker + callerMap *CallerMap + + mutex sync.RWMutex +} - init sync.Once +// a persistentBinding is rebound every time the bus is reset. +type persistentBinding struct { + eventID UnsafeEventID + callerID CallerID + fn UnsafeBindable } // NewBus returns an empty event bus with an assigned caller map. If nil @@ -55,125 +34,88 @@ func NewBus(callerMap *CallerMap) *Bus { callerMap = DefaultCallerMap } return &Bus{ - bindingMap: make(map[string]map[CID]*bindableList), + nextBindID: new(int64), + bindingMap: make(map[UnsafeEventID]map[CallerID]bindableList), doneCh: make(chan struct{}), callerMap: callerMap, } } // SetCallerMap updates a bus to use a specific set of callers. -func (b *Bus) SetCallerMap(cm *CallerMap) { - b.callerMap = cm -} - -// An Event is an event name and an associated caller id -type Event struct { - Name string - CallerID CID -} - -// UnbindOption stores information necessary -// to unbind a bindable -type UnbindOption struct { - Event - Fn Bindable +func (bus *Bus) SetCallerMap(cm *CallerMap) { + bus.callerMap = cm } -// binding stores data necessary -// to trace back to a bindable function -// and remove it from a Bus. -type binding struct { - Event - index int -} - -// Reset empties out all transient portions of the bus. It will not stop -// an ongoing loop. -func (eb *Bus) Reset() { +// ClearPersistentBindings removes all persistent bindings. It will not unbind them +// from the bus, but they will not be bound following the next bus reset. +func (eb *Bus) ClearPersistentBindings() { eb.mutex.Lock() - eb.pendingMutex.Lock() - eb.bindingMap = make(map[string]map[CID]*bindableList) - eb.binds = []UnbindOption{} - eb.partUnbinds = []Event{} - eb.fullUnbinds = []UnbindOption{} - eb.unbinds = []binding{} - eb.unbindAllAndRebinds = []UnbindAllOption{} - for _, bindSet := range eb.persistentBinds { - list := eb.getBindableList(bindSet.Event) - list.storeBindable(bindSet.Fn) - } - eb.pendingMutex.Unlock() + eb.persistentBindings = eb.persistentBindings[:0] eb.mutex.Unlock() } -// UnbindAllOption stores information needed to unbind and rebind -type UnbindAllOption struct { - ub Event - bs []Event - bnds []Bindable -} - -// Store a bindable into a BindableList. -func (bl *bindableList) storeBindable(fn Bindable) int { - - i := bl.nextEmpty - if len(bl.sl) == i { - bl.sl = append(bl.sl, fn) - } else { - bl.sl[i] = fn - } - - // Find the next empty space - for len(bl.sl) != bl.nextEmpty && bl.sl[bl.nextEmpty] != nil { - bl.nextEmpty++ +// Reset unbinds all present, non-persistent bindings on the bus. +func (bus *Bus) Reset() { + bus.mutex.Lock() + bus.bindingMap = make(map[UnsafeEventID]map[CallerID]bindableList) + for _, pb := range bus.persistentBindings { + bus.UnsafeBind(pb.eventID, pb.callerID, pb.fn) } - - return i + bus.mutex.Unlock() } -// This scans linearly for the bindable -// This will cause an issue with closures! -// You can't unbind closures that don't have the -// same variable reference because this compares -// pointers! -// -// At all costs, this should be avoided, and -// returning UnbindSingle from the function -// itself is much safer! -func (bl *bindableList) removeBindable(fn Bindable) { - v := reflect.ValueOf(fn) - for i := 0; i < len(bl.sl); i++ { - v2 := reflect.ValueOf(bl.sl[i]) - if v2 == v { - bl.removeIndex(i) - return - } +// EnterLoop triggers Enter events at the specified rate +func (bus *Bus) EnterLoop(frameDelay time.Duration) { + // The logical loop. + // In order, it waits on receiving a signal to begin a logical frame. + // It then runs any functions bound to when a frame begins. + // It then allows a scene to perform it's loop operation. + bus.framesElapsed = 0 + if bus.ticker == nil { + bus.ticker = time.NewTicker(frameDelay) } + bus.doneCh = make(chan struct{}) + go func() { + bus.ticker.Reset(frameDelay) + frameDelayF64 := float64(frameDelay) + lastTick := time.Now() + for { + select { + case now := <-bus.ticker.C: + deltaTime := now.Sub(lastTick) + lastTick = now + <-bus.Trigger(Enter.UnsafeEventID, EnterPayload{ + FramesElapsed: bus.framesElapsed, + SinceLastFrame: deltaTime, + TickPercent: float64(deltaTime) / frameDelayF64, + }) + bus.framesElapsed++ + case <-bus.doneCh: + return + } + } + }() } -// Remove a bindable from a BindableList -func (bl *bindableList) removeBinding(b binding) { - bl.removeIndex(b.index) -} - -func (bl *bindableList) removeIndex(i int) { - if len(bl.sl) <= i { - return - } - - bl.sl[i] = nil - - if i < bl.nextEmpty { - bl.nextEmpty = i +// Stop ceases anything spawned by an ongoing UpdateLoop +func (bus *Bus) Stop() error { + if bus.ticker != nil { + bus.ticker.Stop() + bus.ticker = nil } + close(bus.doneCh) + return nil } -func (eb *Bus) getBindableList(opt Event) *bindableList { - if m := eb.bindingMap[opt.Name]; m == nil { - eb.bindingMap[opt.Name] = make(map[CID]*bindableList) - } - if m := eb.bindingMap[opt.Name][opt.CallerID]; m == nil { - eb.bindingMap[opt.Name][opt.CallerID] = new(bindableList) +// SetTick optionally updates the Logical System’s tick rate +// (while it is looping) to be frameRate. If this operation is not +// supported, it should return an error. +func (bus *Bus) SetEnterLoopRate(frameDelay time.Duration) error { + if bus.ticker == nil { + return oakerr.NotFound{ + InputName: "bus.ticker", + } } - return eb.bindingMap[opt.Name][opt.CallerID] + bus.ticker.Reset(frameDelay) + return nil } diff --git a/event/bus_test.go b/event/bus_test.go deleted file mode 100644 index bde6a6d9..00000000 --- a/event/bus_test.go +++ /dev/null @@ -1,52 +0,0 @@ -package event - -import ( - "fmt" - "testing" - "time" -) - -func TestBusStop(t *testing.T) { - b := NewBus(nil) - b.Ticker = time.NewTicker(10000 * time.Second) - phase := 0 - wait := make(chan struct{}) - var topErr error - go func() { - if err := b.Stop(); err != nil { - topErr = fmt.Errorf("stop errored: %v", err) - } - if phase != 1 { - topErr = fmt.Errorf("expected phase %v, got %v", 1, phase) - } - wait <- struct{}{} - }() - phase = 1 - - <-b.doneCh - <-wait - if topErr != nil { - t.Fatal(topErr) - } -} - -func TestBusPersistentBind(t *testing.T) { - t.Parallel() - b := NewBus(nil) - ev := "eventName" - calls := 0 - b.PersistentBind(ev, 0, func(c CID, i interface{}) int { - calls++ - return 0 - }) - b.Flush() - <-b.TriggerBack(ev, nil) - if calls != 1 { - t.Fatalf("expected binding to be called once, was called %d time(s)", calls) - } - b.Reset() - <-b.TriggerBack(ev, nil) - if calls != 2 { - t.Fatalf("expected binding to be called twice, was called %d time(s)", calls) - } -} diff --git a/event/caller.go b/event/caller.go index b7515c40..4f26e694 100644 --- a/event/caller.go +++ b/event/caller.go @@ -1,11 +1,68 @@ package event -// A Caller can bind, unbind and trigger events. -type Caller interface { - Trigger(string, interface{}) - Bind(string, Bindable) - UnbindAll() - UnbindAllAndRebind([]Bindable, []string) - E() interface{} - Parse(Entity) CID +import ( + "sync" + "sync/atomic" +) + +// A CID is a caller ID that entities use to trigger and bind functionality +type CallerID int64 + +const Global CallerID = 0 + +// A CallerMap tracks CID mappings to Entities. +// This is an alternative to passing in the entity via closure scoping, +// and allows for more general bindings as simple top level functions. +type CallerMap struct { + highestID *int64 + callersLock sync.RWMutex + callers map[CallerID]interface{} +} + +// NewCallerMap creates a caller map. A CallerMap +// is not valid for use if not created via this function. +func NewCallerMap() *CallerMap { + return &CallerMap{ + highestID: new(int64), + callers: map[CallerID]interface{}{}, + } +} + +// DefaultCallerMap is the caller map used by all event package caller +// functions. +var DefaultCallerMap = NewCallerMap() + +// NextID finds the next available caller id +// and returns it, after adding the given entity to +// the caller map. +func (cm *CallerMap) Register(e interface{}) CallerID { + nextID := atomic.AddInt64(cm.highestID, 1) + cm.callersLock.Lock() + cm.callers[CallerID(nextID)] = e + cm.callersLock.Unlock() + return CallerID(nextID) +} + +// GetEntity returns the entity corresponding to the given ID within +// the caller map. If no entity is found, it returns nil. +func (cm *CallerMap) GetEntity(id CallerID) interface{} { + cm.callersLock.RLock() + defer cm.callersLock.RUnlock() + return cm.callers[id] +} + +// HasEntity returns whether the given caller id is an initialized entity +// within the caller map. +func (cm *CallerMap) HasEntity(id CallerID) bool { + cm.callersLock.RLock() + defer cm.callersLock.RUnlock() + _, ok := cm.callers[id] + return ok +} + +// DestroyEntity removes an entity from the caller map. +func (cm *CallerMap) DestroyEntity(id CallerID) { + cm.callersLock.Lock() + delete(cm.callers, id) + cm.callersLock.Unlock() } diff --git a/event/callerMap.go b/event/callerMap.go deleted file mode 100644 index 49512f7a..00000000 --- a/event/callerMap.go +++ /dev/null @@ -1,104 +0,0 @@ -package event - -import ( - "sync" - "sync/atomic" -) - -// A CallerMap tracks CID mappings to Entities. Its intended use is -// to be a source of truth within event bindings for what entity the -// binding is triggering on: -// var cm *event.CallerMap -// func(cid event.CID, payload interface{}) int { -// ent := cm.GetEntity(cid) -// f, ok := ent.(*Foo) -// if !ok { -// // bound to an unexpected entity type! -// return event.UnbindSingle -// } -// // ... -// } -// This is an alternative to passing in the entity via closure scoping, -// and allows for more general bindings as simple top level functions. -type CallerMap struct { - highestID *int64 - callersLock sync.RWMutex - callers map[CID]Entity -} - -// NewCallerMap creates a caller map. A CallerMap -// is not valid for use if not created via this function. -func NewCallerMap() *CallerMap { - return &CallerMap{ - highestID: new(int64), - callers: map[CID]Entity{}, - } -} - -// DefaultCallerMap is the caller map used by all event package caller -// functions. -var DefaultCallerMap = NewCallerMap() - -// NextID finds the next available caller id -// and returns it, after adding the given entity to -// the caller map. -func (cm *CallerMap) NextID(e Entity) CID { - nextID := atomic.AddInt64(cm.highestID, 1) - cm.callersLock.Lock() - cm.callers[CID(nextID)] = e - cm.callersLock.Unlock() - return CID(nextID) -} - -// GetEntity returns the entity corresponding to the given ID within -// the caller map. If no entity is found, it returns nil. -func (cm *CallerMap) GetEntity(id CID) Entity { - cm.callersLock.RLock() - defer cm.callersLock.RUnlock() - return cm.callers[id] -} - -// HasEntity returns whether the given caller id is an initialized entity -// within the caller map. -func (cm *CallerMap) HasEntity(id CID) bool { - cm.callersLock.RLock() - defer cm.callersLock.RUnlock() - _, ok := cm.callers[id] - return ok -} - -// DestroyEntity removes an entity from the caller map. -func (cm *CallerMap) DestroyEntity(id CID) { - cm.callersLock.Lock() - delete(cm.callers, id) - cm.callersLock.Unlock() -} - -// NextID finds the next available caller id -// and returns it, after adding the given entity to -// the default caller map. -func NextID(e Entity) CID { - return DefaultCallerMap.NextID(e) -} - -// GetEntity returns the entity corresponding to the given ID within -// the default caller map. If no entity is found, it returns nil. -func GetEntity(id CID) Entity { - return DefaultCallerMap.GetEntity(id) -} - -// HasEntity returns whether the given caller id is an initialized entity -// within the default caller map. -func HasEntity(id CID) bool { - return DefaultCallerMap.HasEntity(id) -} - -// DestroyEntity removes an entity from the default caller map. -func DestroyEntity(id CID) { - DefaultCallerMap.DestroyEntity(id) -} - -// ResetCallerMap resets the DefaultCallerMap to be empty. -func ResetCallerMap() { - *DefaultCallerMap = *NewCallerMap() -} diff --git a/event/cid.go b/event/cid.go deleted file mode 100644 index 14a2946b..00000000 --- a/event/cid.go +++ /dev/null @@ -1,21 +0,0 @@ -package event - -// A CID is a caller ID that entities use to trigger and bind functionality -type CID int - -// E is shorthand for GetEntity(int(cid)) -func (cid CID) E() interface{} { - return GetEntity(cid) -} - -// Parse returns the given cid, or the entity's cid -// if the given cid is 0. This way, multiple entities can be -// composed together by passing 0 down to lower tiered constructors, so that -// the topmost entity is stored once and bind functions will -// bind to the topmost entity. -func (cid CID) Parse(e Entity) CID { - if cid == 0 { - return e.Init() - } - return cid -} diff --git a/event/default.go b/event/default.go deleted file mode 100644 index c9c7a277..00000000 --- a/event/default.go +++ /dev/null @@ -1,124 +0,0 @@ -package event - -// As in collision and mouse, default.go lists functions that -// only operate on DefaultBus, a package global bus. - -var ( - // DefaultBus is a bus that has additional operations for CIDs, and can - // be called via event.Call as opposed to bus.Call - DefaultBus = NewBus(DefaultCallerMap) -) - -// Trigger an event, but only for one ID, on the default bus -func (cid CID) Trigger(eventName string, data interface{}) { - go func(eventName string, data interface{}) { - DefaultBus.mutex.RLock() - if idMap, ok := DefaultBus.bindingMap[eventName]; ok { - if bs, ok := idMap[cid]; ok { - DefaultBus.triggerDefault(bs.sl, cid, eventName, data) - } - } - DefaultBus.mutex.RUnlock() - }(eventName, data) -} - -// TriggerBus triggers an event with some payload for this cid against the provided bus. -func (cid CID) TriggerBus(eventName string, data interface{}, bus Handler) chan struct{} { - return bus.TriggerCIDBack(cid, eventName, data) -} - -// Bind on a CID is shorthand for bus.Bind(name, cid, fn), on the default bus. -func (cid CID) Bind(name string, fn Bindable) { - DefaultBus.Bind(name, cid, fn) -} - -// UnbindAll removes all events with the given cid from the event bus -func (cid CID) UnbindAll() { - DefaultBus.UnbindAll(Event{ - Name: "", - CallerID: cid, - }) -} - -// UnbindAllAndRebind on a CID is equivalent to bus.UnbindAllAndRebind(..., cid) -func (cid CID) UnbindAllAndRebind(binds []Bindable, events []string) { - DefaultBus.UnbindAllAndRebind(Event{ - Name: "", - CallerID: cid, - }, binds, cid, events) -} - -// Trigger calls Trigger on the DefaultBus -func Trigger(eventName string, data interface{}) { - DefaultBus.Trigger(eventName, data) -} - -// TriggerBack calls TriggerBack on the DefaultBus -func TriggerBack(eventName string, data interface{}) chan struct{} { - return DefaultBus.TriggerBack(eventName, data) -} - -// GlobalBind calls GlobalBind on the DefaultBus -func GlobalBind(name string, fn Bindable) { - DefaultBus.GlobalBind(name, fn) -} - -// UnbindAll calls UnbindAll on the DefaultBus -func UnbindAll(opt Event) { - DefaultBus.UnbindAll(opt) -} - -// UnbindAllAndRebind calls UnbindAllAndRebind on the DefaultBus -func UnbindAllAndRebind(bo Event, binds []Bindable, cid CID, events []string) { - DefaultBus.UnbindAllAndRebind(bo, binds, cid, events) -} - -// UnbindBindable calls UnbindBindable on the DefaultBus -func UnbindBindable(opt UnbindOption) { - DefaultBus.UnbindBindable(opt) -} - -// Bind calls Bind on the DefaultBus -func Bind(name string, callerID CID, fn Bindable) { - DefaultBus.Bind(name, callerID, fn) -} - -// Flush calls Flush on the DefaultBus -func Flush() error { - return DefaultBus.Flush() -} - -// FramesElapsed calls FramesElapsed on the DefaultBus -func FramesElapsed() int { - return DefaultBus.FramesElapsed() -} - -// Reset calls Reset on the DefaultBus -func Reset() { - DefaultBus.Reset() -} - -// ResolveChanges calls ResolveChanges on the DefaultBus -func ResolveChanges() { - DefaultBus.ResolveChanges() -} - -// SetTick calls SetTick on the DefaultBus -func SetTick(framerate int) error { - return DefaultBus.SetTick(framerate) -} - -// Stop calls Stop on the DefaultBus -func Stop() error { - return DefaultBus.Stop() -} - -// Update calls Update on the DefaultBus -func Update() error { - return DefaultBus.Update() -} - -// UpdateLoop calls UpdateLoop on the DefaultBus -func UpdateLoop(framerate int, updateCh chan struct{}) error { - return DefaultBus.UpdateLoop(framerate, updateCh) -} diff --git a/event/doc.go b/event/doc.go index af897110..33069b21 100644 --- a/event/doc.go +++ b/event/doc.go @@ -1,2 +1,2 @@ -// Package event provides structures to propagate event occurences to subscribed system entities. +// Package event provides structures to propagate event occurrences to subscribed system entities. package event diff --git a/event/entity.go b/event/entity.go deleted file mode 100644 index 50345953..00000000 --- a/event/entity.go +++ /dev/null @@ -1,53 +0,0 @@ -package event - -// An Entity is an element which can be bound to, -// in that it has a CID. All Entities need to implement -// is an Init function which should call NextID(e) and -// return that id: -// func (f *Foo) Init() event.CID { -// f.CID = event.NextID(f) -// return f.CID -// } -// In a multi-window setup each window may have its own -// callerMap, in which case event.NextID should be replaced -// with a NextID call on the appropriate callerMap. -type Entity interface { - Init() CID -} - -// Q: Why does every entity need its own implementation -// of Init()? Why can't it get that method definition -// from struct embedding? -// -// A: Because the CallerMap will store whatever struct is -// passed in to NextID. In a naive implementation: -// type A struct { -// DefaultEntity -// } -// -// type DefaultEntity struct { -// event.CID -// } -// -// func (de *DefaultEntity) Init() event.CID { -// de.CID = event.NextID(de) -// return de.CID -// } -// -// func main() { -// ... -// a := &A{} -// cid := a.Init() -// ent := event.GetEntity(cid) -// _, ok := ent.(*A) -// // ok is false, ent is type *DefaultEntity -// } -// -// So to effectively do this you would need something like: -// func DefaultEntity(parent interface{}) *DefaultEntity {} -// ... where the structure would store and pass down the parent. -// This introduces empty interfaces, would make initialization -// more difficult, and would use slightly more memory. -// -// Feel free to use this idea in your own implementations, but -// this package will not provide this structure at this time. diff --git a/event/entity_test.go b/event/entity_test.go deleted file mode 100644 index 212a2aff..00000000 --- a/event/entity_test.go +++ /dev/null @@ -1,12 +0,0 @@ -package event - -import ( - "testing" -) - -func TestGetEntityFails(t *testing.T) { - entity := GetEntity(100) - if entity != nil { - t.Fatalf("expected nil entity, got %v", entity) - } -} diff --git a/event/event_test.go b/event/event_test.go deleted file mode 100644 index 1f689c98..00000000 --- a/event/event_test.go +++ /dev/null @@ -1,249 +0,0 @@ -package event - -import ( - "testing" - "time" -) - -func sleep() { - // this is effectively "sync", or wait for the previous - // goroutine job to get its job done (Trigger - // use channels for 'done' signals because we don't want - // to enable users to wait on triggers that won't actually - // happen -because they are waiting- within a call that is - // holding a lock) - time.Sleep(200 * time.Millisecond) -} - -func TestBus(t *testing.T) { - triggers := 0 - go ResolveChanges() - GlobalBind("T", Empty(func() { - triggers++ - })) - sleep() - <-TriggerBack("T", nil) - if triggers != 1 { - t.Fatalf("first trigger did not happen") - } - Trigger("T", nil) - sleep() - if triggers != 2 { - t.Fatalf("second trigger did not happen") - } -} - -func TestUnbind(t *testing.T) { - triggers := 0 - go ResolveChanges() - GlobalBind("T", func(CID, interface{}) int { - triggers++ - return UnbindSingle - }) - sleep() - <-TriggerBack("T", nil) - if triggers != 1 { - t.Fatalf("first trigger did not happen") - } - sleep() - Trigger("T", nil) - sleep() - if triggers != 1 { - t.Fatalf("second trigger after unbind happened") - } - GlobalBind("T", func(CID, interface{}) int { - triggers++ - return 0 - }) - GlobalBind("T", func(CID, interface{}) int { - triggers++ - return UnbindEvent - }) - sleep() - Trigger("T", nil) - sleep() - if triggers != 3 { - t.Fatalf("global triggers did not happen") - } - - Trigger("T", nil) - sleep() - if triggers != 3 { - t.Fatalf("global triggers happened after unbind") - } - - GlobalBind("T", func(CID, interface{}) int { - triggers++ - return 0 - }) - sleep() - Trigger("T", nil) - sleep() - if triggers != 4 { - t.Fatalf("global triggers did not happen") - } - - Reset() - - Trigger("T", nil) - sleep() - if triggers != 4 { - t.Fatalf("global triggers did not unbind after reset") - } -} - -type ent struct{} - -func (e ent) Init() CID { - return NextID(e) -} - -func TestCID(t *testing.T) { - triggers := 0 - go ResolveChanges() - cid := CID(0).Parse(ent{}) - cid.Bind("T", func(CID, interface{}) int { - triggers++ - return 0 - }) - sleep() - cid.Trigger("T", nil) - sleep() - if triggers != 1 { - t.Fatalf("first trigger did not happen") - } - - // UnbindAllAndRebind - cid.UnbindAllAndRebind([]Bindable{ - func(CID, interface{}) int { - triggers-- - return 0 - }, - }, []string{ - "T", - }) - - sleep() - cid.Trigger("T", nil) - sleep() - if triggers != 0 { - t.Fatalf("second trigger did not happen") - } - - // UnbindAll - cid.UnbindAll() - - sleep() - cid.Trigger("T", nil) - sleep() - if triggers != 0 { - t.Fatalf("second trigger did not unbind") - } - - cid.Bind("T", func(CID, interface{}) int { - panic("Should not have been triggered") - }) - - // ResetEntities, etc - ResetCallerMap() - - cid.Trigger("T", nil) - sleep() -} - -func TestEntity(t *testing.T) { - go ResolveChanges() - e := ent{} - cid := e.Init() - cid2 := cid.Parse(e) - if cid != cid2 { - t.Fatalf("expected id %v got %v", cid, cid2) - } - if _, ok := cid.E().(ent); !ok { - t.Fatalf("cid entity was not present") - } - DestroyEntity(cid) - if cid.E() != nil { - t.Fatalf("cid entity was not deleted") - } -} - -var ( - ubTriggers int -) - -func TestUnbindBindable(t *testing.T) { - go ResolveChanges() - GlobalBind("T", tBinding) - sleep() - Trigger("T", nil) - sleep() - if ubTriggers != 1 { - t.Fatalf("first trigger did not happen") - } - // Fix this syntax - UnbindBindable( - UnbindOption{ - Event: Event{ - Name: "T", - CallerID: 0, - }, - Fn: tBinding, - }, - ) - sleep() - Trigger("T", nil) - sleep() - if ubTriggers != 1 { - t.Fatalf("unbind call did not unbind trigger") - } -} - -func tBinding(CID, interface{}) int { - ubTriggers++ - return 0 -} - -func TestBindableList(t *testing.T) { - bl := new(bindableList) - bl.sl = make([]Bindable, 10) - bl.removeIndex(11) - bl.sl[2] = tBinding - bl.removeBindable(tBinding) - // Assert nothing panicked -} - -func TestUnbindAllAndRebind(t *testing.T) { - go ResolveChanges() - UnbindAllAndRebind( - Event{ - Name: "T", - CallerID: 0, - }, []Bindable{}, 0, []string{}) -} - -func TestBindingSet(t *testing.T) { - triggers := 0 - bs := BindingSet{} - bs.Set("one", map[string]Bindable{ - "T": func(CID, interface{}) int { - triggers++ - return 0 - }, - "P": func(CID, interface{}) int { - triggers *= 2 - return 0 - }, - }) - e := ent{} - cid := e.Init() - cid.RebindMapping(bs["one"]) - sleep() - cid.Trigger("T", nil) - sleep() - cid.Trigger("P", nil) - sleep() - if triggers != 2 { - t.Fatalf("triggers did not happen") - } -} diff --git a/event/events.go b/event/events.go new file mode 100644 index 00000000..e8a444bf --- /dev/null +++ b/event/events.go @@ -0,0 +1,53 @@ +package event + +import ( + "sync/atomic" + "time" + + "github.com/oakmound/oak/v3/alg/intgeom" +) + +type UnsafeEventID int64 + +type EventID[T any] struct { + UnsafeEventID +} + +var ( + nextEventID int64 +) + +const NoEvent = 0 + +func RegisterEvent[T any]() EventID[T] { + id := atomic.AddInt64(&nextEventID, 1) + return EventID[T]{ + UnsafeEventID: UnsafeEventID(id), + } +} + +type NoPayload struct{} + +// EnterPayload is the payload sent down to Enter bindings +type EnterPayload struct { + FramesElapsed int + SinceLastFrame time.Duration + TickPercent float64 +} + +var ( + // Enter: the beginning of every logical frame. + Enter = RegisterEvent[EnterPayload]() + // AnimationEnd: Triggered on animations CIDs when they loop from the last to the first frame + AnimationEnd = RegisterEvent[NoPayload]() + // ViewportUpdate: Triggered when the position of of the viewport changes + ViewportUpdate = RegisterEvent[intgeom.Point2]() + // OnStop: Triggered when the engine is stopped. + OnStop = RegisterEvent[NoPayload]() + // FocusGain: Triggered when the window gains focus + FocusGain = RegisterEvent[NoPayload]() + // FocusLoss: Triggered when the window loses focus + FocusLoss = RegisterEvent[NoPayload]() + // InputChange: triggered when the most recent input device changes (e.g. keyboard to joystick or vice versa) + InputChange = RegisterEvent[NoPayload]() +) diff --git a/event/handler.go b/event/handler.go index 6088763a..7a64fd23 100644 --- a/event/handler.go +++ b/event/handler.go @@ -1,10 +1,7 @@ package event import ( - "math" "time" - - "github.com/oakmound/oak/v3/timing" ) var ( @@ -15,162 +12,13 @@ var ( // for use in oak internally, and thus the functions that need to be replaced // by alternative event handlers. type Handler interface { - WaitForEvent(name string) <-chan interface{} - // - UpdateLoop(framerate int, updateCh chan struct{}) error - FramesElapsed() int - SetTick(framerate int) error - Update() error - Flush() error + EnterLoop(time.Duration) + SetEnterLoopRate(time.Duration) error Stop() error Reset() - SetRefreshRate(time.Duration) - // - Trigger(event string, data interface{}) - TriggerBack(event string, data interface{}) chan struct{} - TriggerCIDBack(cid CID, eventName string, data interface{}) chan struct{} - // - Pause() - Resume() - // - Bind(string, CID, Bindable) - GlobalBind(string, Bindable) - UnbindAll(Event) - UnbindAllAndRebind(Event, []Bindable, CID, []string) - UnbindBindable(UnbindOption) -} - -// A CallerMapper has an internal caller map that can be set. -type CallerMapper interface { + TriggerForCaller(cid CallerID, event UnsafeEventID, data interface{}) chan struct{} + Trigger(event UnsafeEventID, data interface{}) chan struct{} + UnsafeBind(UnsafeEventID, CallerID, UnsafeBindable) Binding + Unbind(Binding) SetCallerMap(*CallerMap) } - -// A PersistentBinder can persist bindings through bus resets -type PersistentBinder interface { - PersistentBind(string, CID, Bindable) - ClearPersistentBindings() -} - -// UpdateLoop is expected to internally call Update() -// or do something equivalent at the given frameRate, -// sending signals to the sceneCh after each Update(). -// Any flushing should be done as needed. This should -// not be called with `go`, if this requires goroutines -// it should create them itself. -// UpdateLoop is expected separately from Update() and -// Flush() because it will be more efficient for a Logical -// System to perform its own Updates outside of it’s exposed -// interface. -func (eb *Bus) UpdateLoop(framerate int, updateCh chan struct{}) error { - // The logical loop. - // In order, it waits on receiving a signal to begin a logical frame. - // It then runs any functions bound to when a frame begins. - // It then allows a scene to perform it's loop operation. - eb.framesElapsed = 0 - eb.framerate = framerate - frameDelay := timing.FPSToFrameDelay(framerate) - if eb.Ticker == nil { - eb.Ticker = time.NewTicker(frameDelay) - } - go eb.ResolveChanges() - go func() { - eb.Ticker.Reset(frameDelay) - frameDelayF64 := float64(frameDelay) - lastTick := time.Now() - for { - select { - case now := <-eb.Ticker.C: - deltaTime := now.Sub(lastTick) - lastTick = now - <-eb.TriggerBack(Enter, EnterPayload{ - FramesElapsed: eb.framesElapsed, - SinceLastFrame: deltaTime, - TickPercent: float64(deltaTime) / frameDelayF64, - }) - eb.framesElapsed++ - select { - case updateCh <- struct{}{}: - case <-eb.doneCh: - return - } - case <-eb.doneCh: - return - } - } - }() - return nil -} - -// EnterPayload is the payload sent down to Enter bindings -type EnterPayload struct { - FramesElapsed int - SinceLastFrame time.Duration - TickPercent float64 -} - -// Update updates all entities bound to this handler -func (eb *Bus) Update() error { - <-eb.TriggerBack(Enter, EnterPayload{ - FramesElapsed: eb.framesElapsed, - }) - return nil -} - -// Flush refreshes any changes to the Handler’s bindings. -func (eb *Bus) Flush() error { - if len(eb.unbindAllAndRebinds) > 0 { - eb.resolveUnbindAllAndRebinds() - } - // Specific unbinds - if len(eb.unbinds) > 0 { - eb.resolveUnbinds() - } - - // A full set of unbind settings - if len(eb.fullUnbinds) > 0 { - eb.resolveFullUnbinds() - } - - // A partial set of unbind settings - if len(eb.partUnbinds) > 0 { - eb.resolvePartialUnbinds() - } - - // Bindings - if len(eb.binds) > 0 { - eb.resolveBindings() - } - return nil -} - -// Stop ceases anything spawned by an ongoing UpdateLoop -func (eb *Bus) Stop() error { - if eb.Ticker != nil { - eb.Ticker.Stop() - } - eb.doneCh <- struct{}{} - return nil -} - -// Pause stops the event bus from running any further enter events -func (eb *Bus) Pause() { - eb.Ticker.Reset(math.MaxInt32 * time.Second) -} - -// Resume will resume emitting enter events -func (eb *Bus) Resume() { - eb.Ticker.Reset(timing.FPSToFrameDelay(eb.framerate)) -} - -// FramesElapsed returns how many frames have elapsed since UpdateLoop was last called. -func (eb *Bus) FramesElapsed() int { - return eb.framesElapsed -} - -// SetTick optionally updates the Logical System’s tick rate -// (while it is looping) to be frameRate. If this operation is not -// supported, it should return an error. -func (eb *Bus) SetTick(framerate int) error { - eb.Ticker.Reset(timing.FPSToFrameDelay(framerate)) - return nil -} diff --git a/event/handler_test.go b/event/handler_test.go deleted file mode 100644 index 9c5e0d1b..00000000 --- a/event/handler_test.go +++ /dev/null @@ -1,108 +0,0 @@ -package event - -import ( - "testing" - "time" -) - -func TestHandler(t *testing.T) { - updateCh := make(chan struct{}) - if UpdateLoop(60, updateCh) != nil { - t.Fatalf("UpdateLoop failed") - } - triggers := 0 - Bind(Enter, 0, func(CID, interface{}) int { - triggers++ - return 0 - }) - sleep() - if triggers != 1 { - t.Fatalf("expected update loop to increment triggers") - } - <-updateCh - sleep() - if triggers != 2 { - t.Fatalf("expected update loop to increment triggers") - } - if FramesElapsed() != 2 { - t.Fatalf("expected 2 update frames to have elapsed") - } - if SetTick(1) != nil { - t.Fatalf("SetTick failed") - } - <-updateCh - if Stop() != nil { - t.Fatalf("Stop failed") - } - sleep() - sleep() - select { - case <-updateCh: - t.Fatal("Handler should be closed") - default: - } - expectedTriggers := triggers + 1 - if Update() != nil { - t.Fatalf("Update failed") - } - sleep() - - if triggers != expectedTriggers { - t.Fatalf("expected update to increment triggers") - } - if Flush() != nil { - t.Fatalf("Flush failed") - } - - Flush() - sleep() - if Update() != nil { - t.Fatalf("final Update failed") - } - sleep() - sleep() - Reset() -} - -func BenchmarkHandler(b *testing.B) { - triggers := 0 - entities := 10 - go DefaultBus.ResolveChanges() - for i := 0; i < entities; i++ { - DefaultBus.GlobalBind(Enter, func(CID, interface{}) int { - triggers++ - return 0 - }) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - <-DefaultBus.TriggerBack(Enter, DefaultBus.framesElapsed) - } -} - -func TestPauseAndResume(t *testing.T) { - b := NewBus(nil) - b.ResolveChanges() - triggerCt := 0 - b.Bind("EnterFrame", 0, func(CID, interface{}) int { - triggerCt++ - return 0 - }) - ch := make(chan struct{}, 1000) - b.UpdateLoop(60, ch) - time.Sleep(1 * time.Second) - b.Pause() - time.Sleep(1 * time.Second) - oldCt := triggerCt - time.Sleep(1 * time.Second) - if oldCt != triggerCt { - t.Fatalf("pause did not stop enter frame from triggering: expected %v got %v", oldCt, triggerCt) - } - - b.Resume() - time.Sleep(1 * time.Second) - newCt := triggerCt - if newCt == oldCt { - t.Fatalf("resume did not resume enter frame triggering: expected %v got %v", oldCt, newCt) - } -} diff --git a/event/internal.go b/event/internal.go new file mode 100644 index 00000000..9d1b9a8c --- /dev/null +++ b/event/internal.go @@ -0,0 +1,56 @@ +package event + +import "sync" + +type bindableList map[BindID]UnsafeBindable + +func (bl bindableList) storeBindable(fn UnsafeBindable, bindID BindID) { + bl[bindID] = fn +} + +func (bl bindableList) remove(bindID BindID) { + delete(bl, bindID) +} + +func (eb *Bus) getBindableList(eventID UnsafeEventID, callerID CallerID) bindableList { + if m := eb.bindingMap[eventID]; m == nil { + eb.bindingMap[eventID] = make(map[CallerID]bindableList) + bl := make(bindableList) + eb.bindingMap[eventID][callerID] = bl + return bl + } + bl := eb.bindingMap[eventID][callerID] + if bl == nil { + bl := make(bindableList) + eb.bindingMap[eventID][callerID] = bl + } + return bl +} + +func (bus *Bus) trigger(binds bindableList, eventID UnsafeEventID, callerID CallerID, data interface{}) { + wg := &sync.WaitGroup{} + wg.Add(len(binds)) + for bindID, bnd := range binds { + bindID := bindID + bnd := bnd + if bnd == nil { + wg.Done() + continue + } + go func() { + if callerID == Global || bus.callerMap.HasEntity(callerID) { + response := bnd(callerID, data) + switch response { + case UnbindThis: + // Q: Why does this call bus.Unbind when it already has the event index to delete? + // A: This goroutine does not own a write lock on the bus, and should therefore + // not modify its contents. We do not have a simple way of promoting our read lock + // to a write lock. + bus.Unbind(Binding{EventID: eventID, CallerID: callerID, BindID: bindID}) + } + } + wg.Done() + }() + } + wg.Wait() +} diff --git a/event/resolve.go b/event/resolve.go deleted file mode 100644 index 847d6d82..00000000 --- a/event/resolve.go +++ /dev/null @@ -1,135 +0,0 @@ -package event - -import "time" - -// ResolveChanges is a constant loop that tracks slices of bind or unbind calls -// and resolves them individually such that they don't break the bus. -// Each section of the loop waits for the predetermined refreshrate prior to attempting to flush. -// -// If you ask "Why does this not use select over channels, share memory by communicating", -// the answer is we tried, and it was cripplingly slow. -func (eb *Bus) ResolveChanges() { - eb.init.Do(func() { - go func() { - for { - time.Sleep(eb.refreshRate) - eb.Flush() - } - }() - }) -} - -// SetRefreshRate on the event bus detailing the time to wait per attempt to ResolveChanges. -func (eb *Bus) SetRefreshRate(refreshRate time.Duration) { - eb.refreshRate = refreshRate -} - -func (eb *Bus) resolveUnbindAllAndRebinds() { - eb.mutex.Lock() - eb.pendingMutex.Lock() - for _, ubaarb := range eb.unbindAllAndRebinds { - unbind := ubaarb.ub - orderedBindables := ubaarb.bnds - orderedBindOptions := ubaarb.bs - - var namekeys []string - // If we were given a name, - // we'll just iterate with that name. - if unbind.Name != "" { - namekeys = append(namekeys, unbind.Name) - // Otherwise, iterate through all events. - } else { - for k := range eb.bindingMap { - namekeys = append(namekeys, k) - } - } - - if unbind.CallerID != 0 { - for _, k := range namekeys { - delete(eb.bindingMap[k], unbind.CallerID) - } - } else { - for _, k := range namekeys { - delete(eb.bindingMap, k) - } - } - - // Bindings - for i := 0; i < len(orderedBindables); i++ { - fn := orderedBindables[i] - opt := orderedBindOptions[i] - list := eb.getBindableList(opt) - list.storeBindable(fn) - } - } - eb.unbindAllAndRebinds = []UnbindAllOption{} - eb.pendingMutex.Unlock() - eb.mutex.Unlock() -} - -func (eb *Bus) resolveUnbinds() { - eb.mutex.Lock() - eb.pendingMutex.Lock() - for _, bnd := range eb.unbinds { - eb.getBindableList(bnd.Event).removeBinding(bnd) - } - eb.unbinds = []binding{} - eb.pendingMutex.Unlock() - eb.mutex.Unlock() -} - -func (eb *Bus) resolveFullUnbinds() { - eb.mutex.Lock() - eb.pendingMutex.Lock() - for _, opt := range eb.fullUnbinds { - eb.getBindableList(opt.Event).removeBindable(opt.Fn) - } - eb.fullUnbinds = []UnbindOption{} - eb.pendingMutex.Unlock() - eb.mutex.Unlock() -} - -func (eb *Bus) resolvePartialUnbinds() { - eb.mutex.Lock() - eb.pendingMutex.Lock() - for _, opt := range eb.partUnbinds { - var namekeys []string - - // If we were given a name, - // we'll just iterate with that name. - if opt.Name != "" { - namekeys = append(namekeys, opt.Name) - - // Otherwise, iterate through all events. - } else { - for k := range eb.bindingMap { - namekeys = append(namekeys, k) - } - } - - if opt.CallerID != 0 { - for _, k := range namekeys { - delete(eb.bindingMap[k], opt.CallerID) - } - } else { - for _, k := range namekeys { - delete(eb.bindingMap, k) - } - } - } - eb.partUnbinds = []Event{} - eb.pendingMutex.Unlock() - eb.mutex.Unlock() -} - -func (eb *Bus) resolveBindings() { - eb.mutex.Lock() - eb.pendingMutex.Lock() - for _, bindSet := range eb.binds { - list := eb.getBindableList(bindSet.Event) - list.storeBindable(bindSet.Fn) - } - eb.binds = []UnbindOption{} - eb.pendingMutex.Unlock() - eb.mutex.Unlock() -} diff --git a/event/resolve_test.go b/event/resolve_test.go deleted file mode 100644 index 58cbc97c..00000000 --- a/event/resolve_test.go +++ /dev/null @@ -1,23 +0,0 @@ -package event - -import ( - "testing" - "time" -) - -func TestResolveChangesWithRefreshRate(t *testing.T) { - b := NewBus(nil) - b.SetRefreshRate(6 * time.Second) - b.ResolveChanges() - failed := false - b.Bind("EnterFrame", 0, func(CID, interface{}) int { - failed = true - return 0 - }) - ch := make(chan struct{}, 1000) - b.UpdateLoop(60, ch) - time.Sleep(3 * time.Second) - if failed { - t.Fatal("binding was called before refresh rate should have added binding") - } -} diff --git a/event/response.go b/event/response.go index 336cd389..f3fabcff 100644 --- a/event/response.go +++ b/event/response.go @@ -1,20 +1,14 @@ package event -// Response types from bindables -// reponses are not their own type because func(event.CID, interface{}) int -// is easier to write than func(event.CID, interface{}) event.Response. This may -// yet change. +type Response uint8 + +// Response types for bindables const ( // NoResponse or 0, is returned by events that // don't want the event bus to do anything with // the event after they have been evaluated. This // is the usual behavior. - NoResponse = iota - // UnbindEvent unbinds everything for a specific - // event name from an entity at the bindable's - // priority. - UnbindEvent - // UnbindSingle just unbinds the one binding that - // it is returned from - UnbindSingle + NoResponse Response = iota + // UnbindThis unbinds the one binding that returns it. + UnbindThis ) diff --git a/event/strings.go b/event/strings.go deleted file mode 100644 index 0c4885fa..00000000 --- a/event/strings.go +++ /dev/null @@ -1,50 +0,0 @@ -package event - -// Oak uses the following built in events: -// -// - CollisionStart/Stop: when a PhaseCollision entity starts/stops touching some label. -// Payload: (collision.Label) the label the entity has started/stopped touching -// -// - MouseCollisionStart/Stop: as above, for mouse collision -// Payload: (*mouse.Event) -// -// - Mouse events: MousePress, MouseRelease, MouseScrollDown, MouseScrollUp, MouseDrag -// Payload: (*mouse.Event) details on the mouse event -// -// - KeyDown, KeyDown$a: when any key is pressed down, when key $a is pressed down. -// Payload: (key.Event) the key pressed -// -// - KeyUp, KeyUp$a: when any key is released, when key $a is released. -// Payload: (key.Event) the key released -// -// And the following: -const ( - // Enter : the beginning of every logical frame. - // Payload: (EnterPayload) details on the frame and time since last tick - Enter = "EnterFrame" - // AnimationEnd: Triggered on animations CIDs when they loop from the last to the first frame - // Payload: nil - AnimationEnd = "AnimationEnd" - // ViewportUpdate: Triggered when the position of of the viewport changes - // Payload: intgeom.Point2 - ViewportUpdate = "ViewportUpdate" - // OnStop: Triggered when the engine is stopped. - // Payload: nil - OnStop = "OnStop" - // FocusGain: Triggered when the window gains focus - // Payload: nil - FocusGain = "FocusGain" - // FocusLoss: Triggered when the window loses focus - // Payload: nil - FocusLoss = "FocusLoss" - // InputChange: triggered when the most recent input device changes (e.g. keyboard to joystick or vice versa) - // Payload: oak.InputType - InputChange = "InputChange" -) - -// -// Note all events built in to oak are CapitalizedCamelCase. Although our adding of new -// built in events is rare, we don't consider the addition of these events breaking -// changes for versioning. If a game has many events with generalized names, making -// them uncapitalizedCamelCase is perhaps the best approach to guarantee that builtin -// event names will never conflict with custom events. diff --git a/event/trigger.go b/event/trigger.go index ed283052..66322b21 100644 --- a/event/trigger.go +++ b/event/trigger.go @@ -1,101 +1,42 @@ package event -import ( - "sync" -) - -// TriggerBack is a version of Trigger which returns a channel that -// informs on when all bindables have been called and returned from -// the input event. It is dangerous to use this unless you have a -// very good idea how things will synchronize, as if a triggered -// bindable itself makes a TriggerBack call, this will cause the engine to freeze, -// as the function will never end because the first TriggerBack has control of -// the lock for the event bus, and the first TriggerBack won't give up that lock -// until the function ends. -// -// This inherently means that when you call Trigger, the event will almost -// almost never be immediately triggered but rather will be triggered sometime -// soon in the future. -// -// TriggerBack is right now used by the primary logic loop to dictate logical -// framerate, so EnterFrame events are called through TriggerBack. -func (eb *Bus) TriggerBack(eventName string, data interface{}) chan struct{} { - ch := make(chan struct{}) - go func(ch chan struct{}, eb *Bus, eventName string, data interface{}) { - eb.trigger(eventName, data) - close(ch) - }(ch, eb, eventName, data) - return ch -} - // Trigger will scan through the event bus and call all bindables found attached // to the given event, with the passed in data. -func (eb *Bus) Trigger(eventName string, data interface{}) { - go func(eb *Bus, eventName string, data interface{}) { - eb.trigger(eventName, data) - }(eb, eventName, data) -} - -// TriggerCIDBack acts like trigger back, but triggers for a specific cid only. -func (eb *Bus) TriggerCIDBack(cid CID, eventName string, data interface{}) chan struct{} { +func (bus *Bus) TriggerForCaller(callerID CallerID, eventID UnsafeEventID, data interface{}) chan struct{} { + if callerID == Global { + return bus.Trigger(eventID, data) + } ch := make(chan struct{}) go func() { - eb.mutex.RLock() - if idMap, ok := eb.bindingMap[eventName]; ok { - if bs, ok := idMap[cid]; ok { - eb.triggerDefault(bs.sl, cid, eventName, data) + bus.mutex.RLock() + if idMap, ok := bus.bindingMap[eventID]; ok { + if bs, ok := idMap[callerID]; ok { + bus.trigger(bs, eventID, callerID, data) } } - eb.mutex.RUnlock() + bus.mutex.RUnlock() close(ch) }() return ch } -func (eb *Bus) trigger(eventName string, data interface{}) { - eb.mutex.RLock() - for id, bs := range eb.bindingMap[eventName] { - if bs != nil { - eb.triggerDefault(bs.sl, id, eventName, data) +func (bus *Bus) Trigger(eventID UnsafeEventID, data interface{}) chan struct{} { + ch := make(chan struct{}) + go func() { + bus.mutex.RLock() + for callerID, bs := range bus.bindingMap[eventID] { + bus.trigger(bs, eventID, callerID, data) } - } - eb.mutex.RUnlock() + bus.mutex.RUnlock() + close(ch) + }() + return ch } -func (eb *Bus) triggerDefault(sl []Bindable, id CID, eventName string, data interface{}) { - prog := &sync.WaitGroup{} - prog.Add(len(sl)) - for i, bnd := range sl { - if bnd == nil { - prog.Done() - continue - } - go func(bnd Bindable, id CID, eventName string, data interface{}, prog *sync.WaitGroup, index int) { - eb.handleBindable(bnd, id, data, index, eventName) - prog.Done() - }(bnd, id, eventName, data, prog, i) - } - prog.Wait() +func TriggerOn[T any](b Handler, ev EventID[T], data T) chan struct{} { + return b.Trigger(ev.UnsafeEventID, data) } -func (eb *Bus) handleBindable(bnd Bindable, id CID, data interface{}, index int, eventName string) { - if id == 0 || eb.callerMap.HasEntity(id) { - response := bnd(id, data) - switch response { - case UnbindEvent: - UnbindAll(Event{ - Name: eventName, - CallerID: id, - }) - case UnbindSingle: - bnd := binding{ - Event: Event{ - Name: eventName, - CallerID: id, - }, - index: index, - } - bnd.unbind(eb) - } - } +func TriggerForCallerOn[T any](b Handler, cid CallerID, ev EventID[T], data T) chan struct{} { + return b.TriggerForCaller(cid, ev.UnsafeEventID, data) } diff --git a/event/unbind.go b/event/unbind.go deleted file mode 100644 index 636d465a..00000000 --- a/event/unbind.go +++ /dev/null @@ -1,50 +0,0 @@ -package event - -// Unbind on a binding is a rewriting of bus.Unbind(b) -func (b binding) unbind(eb *Bus) { - eb.unbind(b) -} - -func (eb *Bus) unbind(b binding) { - eb.pendingMutex.Lock() - eb.unbinds = append(eb.unbinds, b) - eb.pendingMutex.Unlock() -} - -// UnbindAllAndRebind is a way to reset the bindings on a CID efficiently, -// given a new set of equal length binding and event slices. This is equivalent -// to calling UnbindAll and then looping over Bind calls for the pairs of -// bindables and event names, but uses less mutex time. -func (eb *Bus) UnbindAllAndRebind(bo Event, binds []Bindable, cid CID, events []string) { - opts := make([]Event, len(events)) - for k, v := range events { - opts[k] = Event{ - Name: v, - CallerID: cid, - } - } - - eb.pendingMutex.Lock() - eb.unbindAllAndRebinds = append(eb.unbindAllAndRebinds, UnbindAllOption{ - ub: bo, - bs: opts, - bnds: binds, - }) - eb.pendingMutex.Unlock() -} - -// UnbindAll removes all events that match the given bindingOption from the -// default event bus -func (eb *Bus) UnbindAll(opt Event) { - eb.pendingMutex.Lock() - eb.partUnbinds = append(eb.partUnbinds, opt) - eb.pendingMutex.Unlock() -} - -// UnbindBindable is a manual way to unbind a function Bindable. Use of -// this with closures will result in undefined behavior. -func (eb *Bus) UnbindBindable(opt UnbindOption) { - eb.pendingMutex.Lock() - eb.fullUnbinds = append(eb.fullUnbinds, opt) - eb.pendingMutex.Unlock() -} From 71c28e1e5c90eb91488871c67ca667c1c6101484 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 19 Mar 2022 09:28:39 -0500 Subject: [PATCH 002/146] oak: use new event paradigms in key, mouse, joystick, and oak --- .gitignore | 5 ++- collision/space.go | 2 +- config.go | 5 --- event/bus.go | 2 +- event/caller.go | 16 +++++---- event/default.go | 12 +++++++ event/events.go | 2 -- go.mod | 2 +- init.go | 3 -- inputLoop.go | 50 ++++++++++++++------------ inputTracker.go | 43 +++++++++++++--------- joystick/joystick.go | 86 +++++++++++++++++++++++++++++--------------- key/events.go | 60 +++++++++++++++++++++++-------- mouse/bindings.go | 17 --------- mouse/event.go | 21 +++++------ mouse/events.go | 77 +++++++++++++++++++++++++++++++++++++++ mouse/mouse.go | 3 +- mouse/onCollision.go | 67 ++++++++++++++++++---------------- mouse/strings.go | 19 ---------- sceneLoop.go | 15 +++----- viewport.go | 2 +- window.go | 79 ++++++++++++++++++++-------------------- 22 files changed, 353 insertions(+), 235 deletions(-) create mode 100644 event/default.go delete mode 100644 mouse/bindings.go create mode 100644 mouse/events.go delete mode 100644 mouse/strings.go diff --git a/.gitignore b/.gitignore index 39182116..1415900b 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,7 @@ # Output of the go coverage tool, specifically when used with LiteIDE *.out -coverage.txt \ No newline at end of file +coverage.txt + +# Workspace configuration +.vscode \ No newline at end of file diff --git a/collision/space.go b/collision/space.go index 1d9c07ac..6d54da3f 100644 --- a/collision/space.go +++ b/collision/space.go @@ -23,7 +23,7 @@ type Space struct { Label Label // A CID can be used to get the exact // entity which this rectangle belongs to. - CID event.CID + CID event.CallerID // Type represents which ID space the above ID // corresponds to. Type int diff --git a/config.go b/config.go index 57c718e5..c44d9856 100644 --- a/config.go +++ b/config.go @@ -22,7 +22,6 @@ type Config struct { IdleDrawFrameRate int `json:"idleDrawFrameRate"` Language string `json:"language"` Title string `json:"title"` - EventRefreshRate Duration `json:"refreshRate"` BatchLoad bool `json:"batchLoad"` GestureSupport bool `json:"gestureSupport"` LoadBuiltinCommands bool `json:"loadBuiltinCommands"` @@ -97,7 +96,6 @@ func (c Config) setDefaults() Config { c.IdleDrawFrameRate = 60 c.Language = "English" c.Title = "Oak Window" - c.EventRefreshRate = Duration(50 * time.Millisecond) return c } @@ -222,9 +220,6 @@ func (c Config) overwriteFrom(c2 Config) Config { if c2.Title != "" { c.Title = c2.Title } - if c2.EventRefreshRate != 0 { - c.EventRefreshRate = c2.EventRefreshRate - } // Booleans can be directly overwritten-- all booleans in a Config // default to false, if they were unset they will stay false. c.BatchLoad = c2.BatchLoad diff --git a/event/bus.go b/event/bus.go index ca8a59f9..297d10a8 100644 --- a/event/bus.go +++ b/event/bus.go @@ -118,4 +118,4 @@ func (bus *Bus) SetEnterLoopRate(frameDelay time.Duration) error { } bus.ticker.Reset(frameDelay) return nil -} +} \ No newline at end of file diff --git a/event/caller.go b/event/caller.go index 4f26e694..9c4b59f0 100644 --- a/event/caller.go +++ b/event/caller.go @@ -5,12 +5,12 @@ import ( "sync/atomic" ) -// A CID is a caller ID that entities use to trigger and bind functionality +// A CallerID is a caller ID that entities use to trigger and bind functionality type CallerID int64 const Global CallerID = 0 -// A CallerMap tracks CID mappings to Entities. +// A CallerMap tracks CallerID mappings to Entities. // This is an alternative to passing in the entity via closure scoping, // and allows for more general bindings as simple top level functions. type CallerMap struct { @@ -28,10 +28,6 @@ func NewCallerMap() *CallerMap { } } -// DefaultCallerMap is the caller map used by all event package caller -// functions. -var DefaultCallerMap = NewCallerMap() - // NextID finds the next available caller id // and returns it, after adding the given entity to // the caller map. @@ -66,3 +62,11 @@ func (cm *CallerMap) DestroyEntity(id CallerID) { delete(cm.callers, id) cm.callersLock.Unlock() } + +// Reset clears the caller map to forget all registered callers. +func (cm *CallerMap) Reset() { + cm.callersLock.Lock() + *cm.highestID = 0 + cm.callers = map[CallerID]interface{}{} + cm.callersLock.Unlock() +} diff --git a/event/default.go b/event/default.go new file mode 100644 index 00000000..fdd1015f --- /dev/null +++ b/event/default.go @@ -0,0 +1,12 @@ +package event + +var DefaultBus *Bus + +// DefaultCallerMap is the caller map used by all event package caller +// functions. +var DefaultCallerMap *CallerMap + +func init() { + DefaultCallerMap = NewCallerMap() + DefaultBus = NewBus(DefaultCallerMap) +} diff --git a/event/events.go b/event/events.go index e8a444bf..45b5a886 100644 --- a/event/events.go +++ b/event/events.go @@ -48,6 +48,4 @@ var ( FocusGain = RegisterEvent[NoPayload]() // FocusLoss: Triggered when the window loses focus FocusLoss = RegisterEvent[NoPayload]() - // InputChange: triggered when the most recent input device changes (e.g. keyboard to joystick or vice versa) - InputChange = RegisterEvent[NoPayload]() ) diff --git a/go.mod b/go.mod index 46e19be6..bef1053c 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/oakmound/oak/v3 -go 1.16 +go 1.18 require ( dmitri.shuralyov.com/gpu/mtl v0.0.0-20201218220906-28db891af037 diff --git a/init.go b/init.go index f96ac657..e2ab5694 100644 --- a/init.go +++ b/init.go @@ -65,9 +65,6 @@ func (w *Window) Init(firstScene string, configOptions ...ConfigOption) error { if w.config.TrackInputChanges { trackJoystickChanges(w.eventHandler) } - if w.config.EventRefreshRate != 0 { - w.eventHandler.SetRefreshRate(time.Duration(w.config.EventRefreshRate)) - } if !w.config.SkipRNGSeed { // seed math/rand with time.Now, useful for minimal examples diff --git a/inputLoop.go b/inputLoop.go index 1f7e814b..04115818 100644 --- a/inputLoop.go +++ b/inputLoop.go @@ -21,27 +21,25 @@ func (w *Window) inputLoop() { switch e.To { case lifecycle.StageDead: dlog.Info(dlog.WindowClosed) - // OnStop needs to be sent through TriggerBack, otherwise the - // program will close before the stop events get propagated. - <-w.eventHandler.TriggerBack(event.OnStop, nil) + <-event.TriggerOn(w.eventHandler, event.OnStop, event.NoPayload{}) close(w.quitCh) return case lifecycle.StageFocused: w.inFocus = true // If you are in focused state, we don't care how you got there w.DrawTicker.Reset(timing.FPSToFrameDelay(w.DrawFrameRate)) - w.eventHandler.Trigger(event.FocusGain, nil) + event.TriggerOn(w.eventHandler, event.FocusGain, event.NoPayload{}) case lifecycle.StageVisible: // If the last state was focused, this means the app is out of focus // otherwise, we're visible for the first time if e.From > e.To { w.inFocus = false w.DrawTicker.Reset(timing.FPSToFrameDelay(w.IdleDrawFrameRate)) - w.eventHandler.Trigger(event.FocusLoss, nil) + event.TriggerOn(w.eventHandler, event.FocusLoss, event.NoPayload{}) } else { w.inFocus = true w.DrawTicker.Reset(timing.FPSToFrameDelay(w.DrawFrameRate)) - w.eventHandler.Trigger(event.FocusGain, nil) + event.TriggerOn(w.eventHandler, event.FocusGain, event.NoPayload{}) } } // Send key events @@ -76,7 +74,7 @@ func (w *Window) inputLoop() { // Mouse events all receive an x, y, and button string. case mouse.Event: button := omouse.Button(e.Button) - eventName := omouse.GetEventName(e.Direction, e.Button) + ev := omouse.GetEvent(e.Direction, e.Button) // The event triggered for mouse events has the same scaling as the // render and collision space. I.e. if the viewport is at 0, the mouse's // position is exactly the same as the position of a visible entity @@ -85,7 +83,7 @@ func (w *Window) inputLoop() { float64((((e.X - float32(w.windowRect.Min.X)) / float32(w.windowRect.Max.X-w.windowRect.Min.X)) * float32(w.ScreenWidth))), float64((((e.Y - float32(w.windowRect.Min.Y)) / float32(w.windowRect.Max.Y-w.windowRect.Min.Y)) * float32(w.ScreenHeight))), button, - eventName, + ev, ) w.TriggerMouseEvent(mevent) @@ -104,8 +102,8 @@ func (w *Window) inputLoop() { func (w *Window) TriggerKeyDown(e okey.Event) { k := e.Code.String()[4:] w.SetDown(k) - w.eventHandler.Trigger(okey.Down, e) - w.eventHandler.Trigger(okey.Down+k, e) + event.TriggerOn(w.eventHandler, okey.AnyDown, e) + event.TriggerOn(w.eventHandler, okey.Down(e.Code), e) } // TriggerKeyUp triggers a software-emulated key release. @@ -115,8 +113,8 @@ func (w *Window) TriggerKeyDown(e okey.Event) { func (w *Window) TriggerKeyUp(e okey.Event) { k := e.Code.String()[4:] w.SetUp(k) - w.eventHandler.Trigger(okey.Up, e) - w.eventHandler.Trigger(okey.Up+k, e) + event.TriggerOn(w.eventHandler, okey.AnyUp, e) + event.TriggerOn(w.eventHandler, okey.Up(e.Code), e) } // TriggerKeyHeld triggers a software-emulated key hold signal. @@ -124,9 +122,8 @@ func (w *Window) TriggerKeyUp(e okey.Event) { // From the perspective of the event handler this is indistinguishable // from a real key hold signal. func (w *Window) TriggerKeyHeld(e okey.Event) { - k := e.Code.String()[4:] - w.eventHandler.Trigger(okey.Held, e) - w.eventHandler.Trigger(okey.Held+k, e) + event.TriggerOn(w.eventHandler, okey.AnyHeld, e) + event.TriggerOn(w.eventHandler, okey.Held(e.Code), e) } // TriggerMouseEvent triggers a software-emulated mouse event. @@ -136,12 +133,21 @@ func (w *Window) TriggerKeyHeld(e okey.Event) { func (w *Window) TriggerMouseEvent(mevent omouse.Event) { w.LastMouseEvent = mevent omouse.LastEvent = mevent - w.Propagate(mevent.Event+"On", mevent) - w.eventHandler.Trigger(mevent.Event, &mevent) + on, onOk := omouse.EventOn(mevent.EventType) + if onOk { + w.Propagate(on, mevent) + } + event.TriggerOn(w.eventHandler, mevent.EventType, &mevent) + + if onOk { + rel, ok := omouse.EventRelative(on) + if ok { + relativeEvent := mevent + relativeEvent.Point2[0] += float64(w.viewPos[0]) + relativeEvent.Point2[1] += float64(w.viewPos[1]) + w.LastRelativeMouseEvent = relativeEvent - relativeEvent := mevent - relativeEvent.Point2[0] += float64(w.viewPos[0]) - relativeEvent.Point2[1] += float64(w.viewPos[1]) - w.LastRelativeMouseEvent = relativeEvent - w.Propagate(relativeEvent.Event+"OnRelative", relativeEvent) + w.Propagate(rel, relativeEvent) + } + } } diff --git a/inputTracker.go b/inputTracker.go index f8cbef27..781096a4 100644 --- a/inputTracker.go +++ b/inputTracker.go @@ -12,33 +12,39 @@ import ( ) // InputType expresses some form of input to the engine to represent a player -type InputType = int32 +type InputType int32 + +// InputChange is triggered when the most recent input device changes (e.g. keyboard to joystick or vice versa) +var InputChange = event.RegisterEvent[InputType]() + +var trackingJoystickChange = event.RegisterEvent[event.NoPayload]() // Supported Input Types const ( - InputKeyboardMouse InputType = iota - InputJoystick InputType = iota + InputKeyboard InputType = iota + InputMouse + InputJoystick ) func (w *Window) trackInputChanges() { - w.eventHandler.GlobalBind(key.Down, func(event.CID, interface{}) int { - old := atomic.SwapInt32(&w.mostRecentInput, InputKeyboardMouse) - if old != InputKeyboardMouse { - w.eventHandler.Trigger(event.InputChange, InputKeyboardMouse) + event.Bind(w.eventHandler, key.AnyDown, event.Global, func(event.CallerID, key.Event) event.Response { + old := atomic.SwapInt32(&w.mostRecentInput, int32(InputKeyboard)) + if InputType(old) != InputKeyboard { + event.TriggerOn(w.eventHandler, InputChange, InputKeyboard) } return 0 }) - w.eventHandler.GlobalBind(mouse.Press, func(event.CID, interface{}) int { - old := atomic.SwapInt32(&w.mostRecentInput, InputKeyboardMouse) - if old != InputKeyboardMouse { - w.eventHandler.Trigger(event.InputChange, InputKeyboardMouse) + event.Bind(w.eventHandler, mouse.Press, event.Global, func(event.CallerID, *mouse.Event) event.Response { + old := atomic.SwapInt32(&w.mostRecentInput, int32(InputMouse)) + if InputType(old) != InputMouse { + event.TriggerOn(w.eventHandler, InputChange, InputMouse) } return 0 }) - w.eventHandler.GlobalBind("Tracking"+joystick.Change, func(event.CID, interface{}) int { - old := atomic.SwapInt32(&w.mostRecentInput, InputJoystick) - if old != InputJoystick { - w.eventHandler.Trigger(event.InputChange, InputJoystick) + event.Bind(w.eventHandler, trackingJoystickChange, event.Global, func(event.CallerID, event.NoPayload) event.Response { + old := atomic.SwapInt32(&w.mostRecentInput, int32(InputMouse)) + if InputType(old) != InputJoystick { + event.TriggerOn(w.eventHandler, InputChange, InputJoystick) } return 0 }) @@ -48,8 +54,11 @@ type joyHandler struct { handler event.Handler } -func (jh *joyHandler) Trigger(ev string, state interface{}) { - jh.handler.Trigger("Tracking"+ev, state) +func (jh *joyHandler) Trigger(eventID event.UnsafeEventID, data interface{}) chan struct{} { + jh.handler.Trigger(trackingJoystickChange.UnsafeEventID, event.NoPayload{}) + ch := make(chan struct{}) + close(ch) + return ch } func trackJoystickChanges(handler event.Handler) { diff --git a/joystick/joystick.go b/joystick/joystick.go index 4632bb35..f2ed83ef 100644 --- a/joystick/joystick.go +++ b/joystick/joystick.go @@ -4,9 +4,11 @@ package joystick import ( "math" + "sync" "time" "github.com/oakmound/oak/v3/dlog" + "github.com/oakmound/oak/v3/event" ) type Input string @@ -30,15 +32,15 @@ const ( ) // Events. All events include a *State payload. -const ( - Change = "JoystickChange" - ButtonDown = "ButtonDown" - ButtonUp = "ButtonUp" - RtTriggerChange = "RtTriggerChange" - LtTriggerChange = "LtTriggerChange" - RtStickChange = "RtStickChange" - LtStickChange = "LtStickChange" - Disconnected = "JoystickDisconnected" +var ( + Change = event.RegisterEvent[*State]() + ButtonDown = event.RegisterEvent[*State]() + ButtonUp = event.RegisterEvent[*State]() + RtTriggerChange = event.RegisterEvent[*State]() + LtTriggerChange = event.RegisterEvent[*State]() + RtStickChange = event.RegisterEvent[*State]() + LtStickChange = event.RegisterEvent[*State]() + Disconnected = event.RegisterEvent[*State]() ) // Init calls any os functions necessary to detect joysticks @@ -49,7 +51,7 @@ func Init() error { // A Triggerer can either be an event bus or event CID, allowing // joystick triggers to be listened to globally or sent to particular entities. type Triggerer interface { - Trigger(string, interface{}) + Trigger(eventID event.UnsafeEventID, data interface{}) chan struct{} } // A Joystick represents a (usually) physical controller connected to the machine. @@ -121,7 +123,7 @@ func (lo *ListenOptions) sendFn() func(Triggerer, *State, *State) { var fn func(Triggerer, *State, *State) if lo.JoystickChanges { fn = func(h Triggerer, cur, last *State) { - h.Trigger(Change, cur) + h.Trigger(Change.UnsafeEventID, cur) } } if lo.GenericButtonPresses { @@ -134,13 +136,13 @@ func (lo *ListenOptions) sendFn() func(Triggerer, *State, *State) { for k, v := range cur.Buttons { if v != last.Buttons[k] { if v && !downTriggered { - h.Trigger(ButtonDown, cur) + h.Trigger(ButtonDown.UnsafeEventID, cur) downTriggered = true if upTriggered { return } } else if !v && !upTriggered { - h.Trigger(ButtonUp, cur) + h.Trigger(ButtonUp.UnsafeEventID, cur) upTriggered = true if downTriggered { return @@ -156,13 +158,13 @@ func (lo *ListenOptions) sendFn() func(Triggerer, *State, *State) { for k, v := range cur.Buttons { if v != last.Buttons[k] { if v && !downTriggered { - h.Trigger(ButtonDown, cur) + h.Trigger(ButtonDown.UnsafeEventID, cur) downTriggered = true if upTriggered { return } } else if !v && !upTriggered { - h.Trigger(ButtonUp, cur) + h.Trigger(ButtonUp.UnsafeEventID, cur) upTriggered = true if downTriggered { return @@ -181,9 +183,9 @@ func (lo *ListenOptions) sendFn() func(Triggerer, *State, *State) { for k, v := range cur.Buttons { if v != last.Buttons[k] { if v { - h.Trigger(k+ButtonDown, cur) + h.Trigger(Down(k).UnsafeEventID, cur) } else { - h.Trigger(k+ButtonUp, cur) + h.Trigger(Up(k).UnsafeEventID, cur) } } } @@ -193,9 +195,9 @@ func (lo *ListenOptions) sendFn() func(Triggerer, *State, *State) { for k, v := range cur.Buttons { if v != last.Buttons[k] { if v { - h.Trigger(k+ButtonDown, cur) + h.Trigger(Down(k).UnsafeEventID, cur) } else { - h.Trigger(k+ButtonUp, cur) + h.Trigger(Up(k).UnsafeEventID, cur) } } } @@ -209,22 +211,22 @@ func (lo *ListenOptions) sendFn() func(Triggerer, *State, *State) { prevFn(h, cur, last) if deltaExceedsThreshold(cur.StickLX, last.StickLX, lo.StickDeadzoneLX) || deltaExceedsThreshold(cur.StickLY, last.StickLY, lo.StickDeadzoneLY) { - h.Trigger(LtStickChange, cur) + h.Trigger(LtStickChange.UnsafeEventID, cur) } if deltaExceedsThreshold(cur.StickRX, last.StickRX, lo.StickDeadzoneRX) || deltaExceedsThreshold(cur.StickRY, last.StickRY, lo.StickDeadzoneRY) { - h.Trigger(RtStickChange, cur) + h.Trigger(RtStickChange.UnsafeEventID, cur) } } } else { fn = func(h Triggerer, cur, last *State) { if deltaExceedsThreshold(cur.StickLX, last.StickLX, lo.StickDeadzoneLX) || deltaExceedsThreshold(cur.StickLY, last.StickLY, lo.StickDeadzoneLY) { - h.Trigger(LtStickChange, cur) + h.Trigger(LtStickChange.UnsafeEventID, cur) } if deltaExceedsThreshold(cur.StickRX, last.StickRX, lo.StickDeadzoneRX) || deltaExceedsThreshold(cur.StickRY, last.StickRY, lo.StickDeadzoneRY) { - h.Trigger(RtStickChange, cur) + h.Trigger(RtStickChange.UnsafeEventID, cur) } } } @@ -235,19 +237,19 @@ func (lo *ListenOptions) sendFn() func(Triggerer, *State, *State) { fn = func(h Triggerer, cur, last *State) { prevFn(h, cur, last) if cur.TriggerL != last.TriggerL { - h.Trigger(LtTriggerChange, cur) + h.Trigger(LtTriggerChange.UnsafeEventID, cur) } if cur.TriggerR != last.TriggerR { - h.Trigger(RtTriggerChange, cur) + h.Trigger(RtTriggerChange.UnsafeEventID, cur) } } } else { fn = func(h Triggerer, cur, last *State) { if cur.TriggerL != last.TriggerL { - h.Trigger(LtTriggerChange, cur) + h.Trigger(LtTriggerChange.UnsafeEventID, cur) } if cur.TriggerR != last.TriggerR { - h.Trigger(RtTriggerChange, cur) + h.Trigger(RtTriggerChange.UnsafeEventID, cur) } } } @@ -255,6 +257,34 @@ func (lo *ListenOptions) sendFn() func(Triggerer, *State, *State) { return fn } +var upEventsLock sync.Mutex +var upEvents = map[string]event.EventID[*State]{} + +func Up(s string) event.EventID[*State] { + upEventsLock.Lock() + defer upEventsLock.Unlock() + if ev, ok := upEvents[s]; ok { + return ev + } + ev := event.RegisterEvent[*State]() + upEvents[s] = ev + return ev +} + +var downEventsLock sync.Mutex +var downEvents = map[string]event.EventID[*State]{} + +func Down(s string) event.EventID[*State] { + downEventsLock.Lock() + defer downEventsLock.Unlock() + if ev, ok := downEvents[s]; ok { + return ev + } + ev := event.RegisterEvent[*State]() + downEvents[s] = ev + return ev +} + func deltaExceedsThreshold(old, new, threshold int16) bool { return intAbs(old-new) > threshold } @@ -306,7 +336,7 @@ func (j *Joystick) Listen(opts *ListenOptions) (cancel func()) { } state, err := j.GetState() if err != nil { - j.Handler.Trigger(Disconnected, j.id) + j.Handler.Trigger(Disconnected.UnsafeEventID, j.id) dlog.Error(err) t.Stop() j.Close() diff --git a/key/events.go b/key/events.go index ec96bd36..12e2e62b 100644 --- a/key/events.go +++ b/key/events.go @@ -1,20 +1,22 @@ package key import ( + "sync" + "github.com/oakmound/oak/v3/event" "golang.org/x/mobile/event/key" ) -const ( +var ( // Down is sent when a key is pressed. It is sent both as // Down, and as Down + the key name. - Down = "KeyDown" + AnyDown = event.RegisterEvent[Event]() // Up is sent when a key is released. It is sent both as // Up, and as Up + the key name. - Up = "KeyUp" + AnyUp = event.RegisterEvent[Event]() // Held is sent when a key is held down. It is sent both as // Held, and as Held + the key name. - Held = "KeyHeld" + AnyHeld = event.RegisterEvent[Event]() ) // An Event is sent as the payload for all key bindings. @@ -23,16 +25,44 @@ type Event = key.Event // A code is a unique integer code for a given common key type Code = key.Code -// Binding will convert a function that accepts a typecast key.Event into a generic event binding -// -// Example: -// bus.Bind(key.Down, key.Binding(keyHandler)) -func Binding(fn func(event.CID, Event) int) func(event.CID, interface{}) int { - return func(cid event.CID, iface interface{}) int { - ke, ok := iface.(Event) - if !ok { - return event.UnbindSingle - } - return fn(cid, ke) +var upEventsLock sync.Mutex +var upEvents = map[Code]event.EventID[Event]{} + +func Up(code Code) event.EventID[Event] { + upEventsLock.Lock() + defer upEventsLock.Unlock() + if ev, ok := upEvents[code]; ok { + return ev + } + ev := event.RegisterEvent[Event]() + upEvents[code] = ev + return ev +} + +var downEventsLock sync.Mutex +var downEvents = map[Code]event.EventID[Event]{} + +func Down(code Code) event.EventID[Event] { + downEventsLock.Lock() + defer downEventsLock.Unlock() + if ev, ok := downEvents[code]; ok { + return ev + } + ev := event.RegisterEvent[Event]() + downEvents[code] = ev + return ev +} + +var heldEventsLock sync.Mutex +var heldEvents = map[Code]event.EventID[Event]{} + +func Held(code Code) event.EventID[Event] { + heldEventsLock.Lock() + defer heldEventsLock.Unlock() + if ev, ok := heldEvents[code]; ok { + return ev } + ev := event.RegisterEvent[Event]() + heldEvents[code] = ev + return ev } diff --git a/mouse/bindings.go b/mouse/bindings.go deleted file mode 100644 index cedfe8dd..00000000 --- a/mouse/bindings.go +++ /dev/null @@ -1,17 +0,0 @@ -package mouse - -import "github.com/oakmound/oak/v3/event" - -// Binding will convert a function that accepts a typecast *mouse.Event into a generic event binding -// -// Example: -// bus.Bind(mouse.ClickOn, mouse.Binding(clickHandler)) -func Binding(fn func(event.CID, *Event) int) func(event.CID, interface{}) int { - return func(cid event.CID, iface interface{}) int { - me, ok := iface.(*Event) - if !ok { - return event.UnbindSingle - } - return fn(cid, me) - } -} diff --git a/mouse/event.go b/mouse/event.go index c185bc7d..b17cbf06 100644 --- a/mouse/event.go +++ b/mouse/event.go @@ -3,17 +3,17 @@ package mouse import ( "github.com/oakmound/oak/v3/alg/floatgeom" "github.com/oakmound/oak/v3/collision" + "github.com/oakmound/oak/v3/event" ) var ( // LastEvent is the last triggered mouse event, // tracked for continuous mouse responsiveness on events // that don't take in a mouse event - LastEvent = NewZeroEvent(0, 0) + LastEvent = Event{} // LastPress is the last triggered mouse event, // where the mouse event was a press. - // If TrackMouseClicks is set to false then this will not be tracked - LastPress = NewZeroEvent(0, 0) + LastPress = Event{} ) // An Event is passed in through all Mouse related event bindings to @@ -22,7 +22,7 @@ var ( type Event struct { floatgeom.Point2 Button - Event string + EventType event.EventID[*Event] // Set StopPropagation on a mouse event to prevent it from triggering on // lower layers of mouse collision spaces while in flight @@ -30,19 +30,14 @@ type Event struct { } // NewEvent creates an event. -func NewEvent(x, y float64, button Button, event string) Event { +func NewEvent(x, y float64, button Button, ev event.EventID[*Event]) Event { return Event{ - Point2: floatgeom.Point2{x, y}, - Button: button, - Event: event, + Point2: floatgeom.Point2{x, y}, + Button: button, + EventType: ev, } } -// NewZeroEvent creates an event with no button or event name. -func NewZeroEvent(x, y float64) Event { - return NewEvent(x, y, ButtonNone, "") -} - // ToSpace converts a mouse event into a collision space func (e Event) ToSpace() *collision.Space { sp := collision.NewUnassignedSpace(e.X(), e.Y(), 0.1, 0.1) diff --git a/mouse/events.go b/mouse/events.go new file mode 100644 index 00000000..8ed4832f --- /dev/null +++ b/mouse/events.go @@ -0,0 +1,77 @@ +package mouse + +import "github.com/oakmound/oak/v3/event" + +var ( + // Press is triggered when a mouse key is pressed down + Press = event.RegisterEvent[*Event]() + // Release is triggered when a mouse key, pressed, is released + Release = event.RegisterEvent[*Event]() + // ScrollDown is triggered when a mouse's scroll wheel scrolls downward + ScrollDown = event.RegisterEvent[*Event]() + // ScrollUp is triggered when a mouse's scroll wheel scrolls upward + ScrollUp = event.RegisterEvent[*Event]() + // Click is triggered when a Release follows a press for the same mouse key without + // other mouse key presses intertwining. + Click = event.RegisterEvent[*Event]() + // Drag is triggered when the mouse is moved. + Drag = event.RegisterEvent[*Event]() + + // The 'On' Variants of all mouse events are triggered when a mouse event occurs on + // a specific entity in a mouse collision tree. + PressOn = event.RegisterEvent[*Event]() + ReleaseOn = event.RegisterEvent[*Event]() + ScrollDownOn = event.RegisterEvent[*Event]() + ScrollUpOn = event.RegisterEvent[*Event]() + ClickOn = event.RegisterEvent[*Event]() + DragOn = event.RegisterEvent[*Event]() + + // Relative variants are like 'On' variants, but their mouse position data is relative to + // the window's current viewport. E.g. if the viewport is at 100,100 and a click happens at + // 100,100 on the window-- Relative will report 100,100, and non-relative will report 200,200. + // TODO: re-evaluate relative vs non-relative mouse events + RelativePressOn = event.RegisterEvent[*Event]() + RelativeReleaseOn = event.RegisterEvent[*Event]() + RelativeScrollDownOn = event.RegisterEvent[*Event]() + RelativeScrollUpOn = event.RegisterEvent[*Event]() + RelativeClickOn = event.RegisterEvent[*Event]() + RelativeDragOn = event.RegisterEvent[*Event]() +) + +// EventOn converts a generic positioned mouse event into its variant indicating +// it occurred on a CallerID targetted entity +func EventOn(ev event.EventID[*Event]) (event.EventID[*Event], bool) { + switch ev { + case Press: + return PressOn, true + case Release: + return ReleaseOn, true + case ScrollDown: + return ScrollDownOn, true + case ScrollUp: + return ScrollUpOn, true + case Click: + return ClickOn, true + case Drag: + return DragOn, true + } + return event.EventID[*Event]{}, false +} + +func EventRelative(ev event.EventID[*Event]) (event.EventID[*Event], bool) { + switch ev { + case PressOn: + return RelativePressOn, true + case ReleaseOn: + return RelativeReleaseOn, true + case ScrollDownOn: + return RelativeScrollDownOn, true + case ScrollUpOn: + return RelativeScrollUpOn, true + case ClickOn: + return RelativeClickOn, true + case DragOn: + return RelativeDragOn, true + } + return event.EventID[*Event]{}, false +} diff --git a/mouse/mouse.go b/mouse/mouse.go index 7fcd47c1..5caa8498 100644 --- a/mouse/mouse.go +++ b/mouse/mouse.go @@ -1,6 +1,7 @@ package mouse import ( + "github.com/oakmound/oak/v3/event" "golang.org/x/mobile/event/mouse" ) @@ -21,7 +22,7 @@ const ( ) // GetEventName returns a string event name given some mobile/mouse information -func GetEventName(d mouse.Direction, b mouse.Button) string { +func GetEvent(d mouse.Direction, b mouse.Button) event.EventID[*Event] { switch d { case mouse.DirPress: return Press diff --git a/mouse/onCollision.go b/mouse/onCollision.go index 31af0bde..5e42cbae 100644 --- a/mouse/onCollision.go +++ b/mouse/onCollision.go @@ -11,6 +11,7 @@ import ( // enable PhaseCollision on the struct. See PhaseCollision. type CollisionPhase struct { OnCollisionS *collision.Space + CallerMap *event.CallerMap LastEvent *Event wasTouching bool @@ -27,50 +28,56 @@ type collisionPhase interface { // PhaseCollision binds to the entity behind the space's CID so that it will // receive MouseCollisionStart and MouseCollisionStop events, appropriately when // the mouse begins to hover or stops hovering over the input space. -func PhaseCollision(s *collision.Space) error { - en := s.CID.E() +func PhaseCollision(s *collision.Space, callerMap *event.CallerMap, handler event.Handler) error { + if callerMap == nil { + callerMap = event.DefaultCallerMap + } + en := callerMap.GetEntity(s.CID) if cp, ok := en.(collisionPhase); ok { oc := cp.getCollisionPhase() oc.OnCollisionS = s - s.CID.Bind(event.Enter, phaseCollisionEnter) + oc.CallerMap = callerMap + event.Bind(handler, event.Enter, s.CID, phaseCollisionEnter(callerMap, handler)) return nil } return errors.New("This space's entity does not implement collisionPhase") } // MouseCollisionStart/Stop: see collision Start/Stop, for mouse collision -// Payload: (*mouse.Event) -const ( - Start = "MouseCollisionStart" - Stop = "MouseCollisionStop" +var ( + Start = event.RegisterEvent[*Event]() + Stop = event.RegisterEvent[*Event]() ) -func phaseCollisionEnter(id event.CID, nothing interface{}) int { - e := id.E().(collisionPhase) - oc := e.getCollisionPhase() - if oc == nil || oc.OnCollisionS == nil { - return 0 - } +func phaseCollisionEnter(callerMap *event.CallerMap, handler event.Handler) func(id event.CallerID, payload event.EnterPayload) event.Response { + return func(id event.CallerID, payload event.EnterPayload) event.Response { - // TODO: think about how this can more cleanly work with multiple controllers - ev := oc.LastEvent - if ev == nil { - ev = &LastEvent - } - if ev.StopPropagation { - return 0 - } + e := callerMap.GetEntity(id).(collisionPhase) + oc := e.getCollisionPhase() + if oc == nil || oc.OnCollisionS == nil { + return 0 + } - if oc.OnCollisionS.Contains(ev.ToSpace()) { - if !oc.wasTouching { - id.Trigger(Start, ev) - oc.wasTouching = true + // TODO: think about how this can more cleanly work with multiple windows + ev := oc.LastEvent + if ev == nil { + ev = &LastEvent } - } else { - if oc.wasTouching { - id.Trigger(Stop, ev) - oc.wasTouching = false + if ev.StopPropagation { + return 0 } + + if oc.OnCollisionS.Contains(ev.ToSpace()) { + if !oc.wasTouching { + event.TriggerForCallerOn(handler, id, Start, ev) + oc.wasTouching = true + } + } else { + if oc.wasTouching { + event.TriggerForCallerOn(handler, id, Stop, ev) + oc.wasTouching = false + } + } + return 0 } - return 0 } diff --git a/mouse/strings.go b/mouse/strings.go deleted file mode 100644 index cdc1c24e..00000000 --- a/mouse/strings.go +++ /dev/null @@ -1,19 +0,0 @@ -package mouse - -// Mouse events: MousePress, MouseRelease, MouseScrollDown, MouseScrollUp, MouseDrag -// Payload: (*mouse.Event) details of the mouse event -const ( - Press = "MousePress" - Release = "MouseRelease" - ScrollDown = "MouseScrollDown" - ScrollUp = "MouseScrollUp" - Click = "MouseClick" - Drag = "MouseDrag" - // - PressOn = Press + "On" - ReleaseOn = Release + "On" - ScrollDownOn = ScrollDown + "On" - ScrollUpOn = ScrollUp + "On" - ClickOn = Click + "On" - DragOn = Drag + "On" -) diff --git a/sceneLoop.go b/sceneLoop.go index e4a31e8c..c2fe80dc 100644 --- a/sceneLoop.go +++ b/sceneLoop.go @@ -5,9 +5,9 @@ import ( "github.com/oakmound/oak/v3/alg/intgeom" "github.com/oakmound/oak/v3/dlog" - "github.com/oakmound/oak/v3/event" "github.com/oakmound/oak/v3/oakerr" "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v3/timing" ) // the oak loading scene is a reserved scene @@ -88,7 +88,7 @@ func (w *Window) sceneLoop(first string, trackingInputs bool) { dlog.Info(dlog.SceneLooping) cont := true - dlog.ErrorCheck(w.eventHandler.UpdateLoop(w.FrameRate, w.sceneCh)) + w.eventHandler.EnterLoop(timing.FPSToFrameDelay(w.FrameRate)) nextSceneOverride := "" @@ -124,15 +124,8 @@ func (w *Window) sceneLoop(first string, trackingInputs bool) { // be triggered and attempt to access an entity w.CollisionTree.Clear() w.MouseTree.Clear() - if w.CallerMap == event.DefaultCallerMap { - event.ResetCallerMap() - w.CallerMap = event.DefaultCallerMap - } else { - w.CallerMap = event.NewCallerMap() - } - if cmr, ok := w.eventHandler.(event.CallerMapper); ok { - cmr.SetCallerMap(w.CallerMap) - } + w.CallerMap.Reset() + w.eventHandler.SetCallerMap(w.CallerMap) w.DrawStack.Clear() w.DrawStack.PreDraw() diff --git a/viewport.go b/viewport.go index 0cf386f6..9df73069 100644 --- a/viewport.go +++ b/viewport.go @@ -34,7 +34,7 @@ func (w *Window) setViewport(pt intgeom.Point2) { } else { w.viewPos = pt } - w.eventHandler.Trigger(event.ViewportUpdate, w.viewPos) + event.TriggerOn(w.eventHandler, event.ViewportUpdate, w.viewPos) } // GetViewportBounds reports what bounds the viewport has been set to, if any. diff --git a/window.go b/window.go index 93c38069..06d434db 100644 --- a/window.go +++ b/window.go @@ -152,14 +152,13 @@ type Window struct { config Config - mostRecentInput InputType + mostRecentInput int32 exitError error ParentContext context.Context - TrackMouseClicks bool - startupLoading bool - useViewBounds bool + startupLoading bool + useViewBounds bool // UseAspectRatio determines whether new window changes will distort or // maintain the relative width to height ratio of the screen buffer. UseAspectRatio bool @@ -194,7 +193,6 @@ func NewWindow() *Window { c.CollisionTree = collision.DefaultTree c.CallerMap = event.DefaultCallerMap c.DrawStack = render.GlobalDrawStack - c.TrackMouseClicks = true c.commands = make(map[string]func([]string)) c.ControllerID = atomic.AddInt32(nextControllerID, 1) c.ParentContext = context.Background() @@ -202,55 +200,54 @@ func NewWindow() *Window { } // Propagate triggers direct mouse events on entities which are clicked -func (w *Window) Propagate(eventName string, me mouse.Event) { +func (w *Window) Propagate(ev event.EventID[*mouse.Event], me mouse.Event) { hits := w.MouseTree.SearchIntersect(me.ToSpace().Bounds()) sort.Slice(hits, func(i, j int) bool { return hits[i].Location.Min.Z() < hits[i].Location.Max.Z() }) for _, sp := range hits { - <-sp.CID.TriggerBus(eventName, &me, w.eventHandler) + <-event.TriggerForCallerOn(w.eventHandler, sp.CID, ev, &me) if me.StopPropagation { break } } me.StopPropagation = false - if w.TrackMouseClicks { - if eventName == mouse.PressOn+"Relative" { - w.lastRelativePress = me - } else if eventName == mouse.PressOn { - w.LastMousePress = me - } else if eventName == mouse.ReleaseOn { - if me.Button == w.LastMousePress.Button { - pressHits := w.MouseTree.SearchIntersect(w.LastMousePress.ToSpace().Bounds()) - sort.Slice(pressHits, func(i, j int) bool { - return pressHits[i].Location.Min.Z() < pressHits[i].Location.Max.Z() - }) - for _, sp1 := range pressHits { - for _, sp2 := range hits { - if sp1.CID == sp2.CID { - w.eventHandler.Trigger(mouse.Click, &me) - <-sp1.CID.TriggerBus(mouse.ClickOn, &me, w.eventHandler) - if me.StopPropagation { - return - } + if ev == mouse.RelativePressOn { + w.lastRelativePress = me + } else if ev == mouse.PressOn { + w.LastMousePress = me + } else if ev == mouse.ReleaseOn { + if me.Button == w.LastMousePress.Button { + event.TriggerOn(w.eventHandler, mouse.Click, &me) + + pressHits := w.MouseTree.SearchIntersect(w.LastMousePress.ToSpace().Bounds()) + sort.Slice(pressHits, func(i, j int) bool { + return pressHits[i].Location.Min.Z() < pressHits[i].Location.Max.Z() + }) + for _, sp1 := range pressHits { + for _, sp2 := range hits { + if sp1.CID == sp2.CID { + <-event.TriggerForCallerOn(w.eventHandler, sp1.CID, mouse.ClickOn, &me) + if me.StopPropagation { + return } } } } - } else if eventName == mouse.ReleaseOn+"Relative" { - if me.Button == w.lastRelativePress.Button { - pressHits := w.MouseTree.SearchIntersect(w.lastRelativePress.ToSpace().Bounds()) - sort.Slice(pressHits, func(i, j int) bool { - return pressHits[i].Location.Min.Z() < pressHits[i].Location.Max.Z() - }) - for _, sp1 := range pressHits { - for _, sp2 := range hits { - if sp1.CID == sp2.CID { - sp1.CID.Trigger(mouse.ClickOn+"Relative", &me) - if me.StopPropagation { - return - } + } + } else if ev == mouse.RelativeReleaseOn { + if me.Button == w.lastRelativePress.Button { + pressHits := w.MouseTree.SearchIntersect(w.lastRelativePress.ToSpace().Bounds()) + sort.Slice(pressHits, func(i, j int) bool { + return pressHits[i].Location.Min.Z() < pressHits[i].Location.Max.Z() + }) + for _, sp1 := range pressHits { + for _, sp2 := range hits { + if sp1.CID == sp2.CID { + <-event.TriggerForCallerOn(w.eventHandler, sp1.CID, mouse.RelativeClickOn, &me) + if me.StopPropagation { + return } } } @@ -345,10 +342,10 @@ func (w *Window) EventHandler() event.Handler { } // MostRecentInput returns the most recent input type (e.g keyboard/mouse or joystick) -// recognized by the window. This value will only change if the controller's Config is +// recognized by the window. This value will only change if the window is // set to TrackInputChanges func (w *Window) MostRecentInput() InputType { - return w.mostRecentInput + return InputType(w.mostRecentInput) } func (w *Window) exitWithError(err error) { From 1279c492e9a6a2a08b84ecbaae324613f9fec5a1 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 19 Mar 2022 09:29:13 -0500 Subject: [PATCH 003/146] oak: go mod tidy --- go.mod | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index bef1053c..4ed92d18 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,6 @@ require ( github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 github.com/disintegration/gift v1.2.0 - github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d // indirect github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1 github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 @@ -21,3 +20,8 @@ require ( golang.org/x/sync v0.0.0-20210220032951-036812b2e83c golang.org/x/sys v0.0.0-20220111092808-5a964db01320 ) + +require ( + github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d // indirect + golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56 // indirect +) From 94f50c91a353f5cde7c221fd3ffe7309377d1d4e Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 19 Mar 2022 10:12:20 -0500 Subject: [PATCH 004/146] oak: rename CID to CallerID globally, fix render, collision for new events --- audio/pcm/writer_js.go | 142 ++++++++++++++++++ collision/attachSpace.go | 27 ++-- collision/attachSpace_test.go | 2 +- collision/filter.go | 2 +- collision/onCollision.go | 17 +-- collision/onCollision_test.go | 6 +- collision/ray/castFilter.go | 4 +- collision/ray/castLimit.go | 2 +- collision/space.go | 8 +- debugstream/scopeHelper.go | 17 ++- debugtools/inputviz/joystick.go | 8 +- debugtools/inputviz/keyboard.go | 8 +- debugtools/inputviz/mouse.go | 14 +- debugtools/mouse.go | 3 +- entities/doodad.go | 8 +- entities/interactive.go | 4 +- entities/moving.go | 4 +- entities/reactive.go | 4 +- entities/solid.go | 4 +- entities/x/btn/box.go | 6 +- entities/x/btn/button.go | 12 +- entities/x/btn/option.go | 2 +- entities/x/btn/textBox.go | 4 +- entities/x/force/directionSpace.go | 2 +- entities/x/stat/stats.go | 4 +- event/events.go | 4 +- examples/bezier/main.go | 2 +- examples/click-propagation/main.go | 10 +- examples/clipboard/main.go | 6 +- examples/collision-demo/main.go | 8 +- examples/custom-cursor/main.go | 2 +- examples/flappy-bird/main.go | 12 +- examples/joystick-viz/main.go | 2 +- examples/multi-window/main.go | 4 +- examples/particle-demo/main.go | 2 +- examples/piano/main.go | 24 +-- .../platformer-tutorial/2-moving/moving.go | 2 +- .../platformer-tutorial/3-falling/falling.go | 2 +- .../platformer-tutorial/4-jumping/jumping.go | 2 +- .../5-correct-jumping/correct-jumping.go | 2 +- .../6-complete/complete.go | 2 +- examples/pong/main.go | 6 +- examples/radar-demo/main.go | 6 +- examples/rooms/main.go | 2 +- examples/screenopts/main.go | 4 +- examples/slide/show/slide.go | 2 +- examples/slide/show/static/basicSlide.go | 8 +- examples/sprite-demo/main.go | 6 +- .../1-start/start.go | 2 +- .../2-shooting/shooting.go | 4 +- .../3-enemies/enemies.go | 10 +- .../4-sprites/sprites.go | 10 +- .../5-viewport/viewport.go | 10 +- .../6-performance/performance.go | 10 +- examples/zooming/main.go | 2 +- inputTracker_test.go | 2 +- mouse/onCollision_test.go | 6 +- render/interfaceFeatures.go | 2 +- render/logicfps.go | 18 ++- render/particle/allocator.go | 17 ++- render/particle/allocator_test.go | 2 +- render/particle/collisonGenerator.go | 2 +- render/particle/source.go | 32 ++-- render/reverting.go | 2 +- render/sequence.go | 13 +- render/sequence_test.go | 4 +- render/switch.go | 2 +- window.go | 4 + window/window.go | 1 + window_test.go | 10 +- 70 files changed, 375 insertions(+), 224 deletions(-) create mode 100644 audio/pcm/writer_js.go diff --git a/audio/pcm/writer_js.go b/audio/pcm/writer_js.go new file mode 100644 index 00000000..f6c0974e --- /dev/null +++ b/audio/pcm/writer_js.go @@ -0,0 +1,142 @@ +//go:build js + +package pcm + +import ( + "fmt" + "math" + "sync" + "sync/atomic" + "syscall/js" + + "github.com/oakmound/oak/v3/oakerr" +) + +func initOS() error { + return nil +} + +var processorIndex int32 + +func newWriter(f Format) (Writer, error) { + if f.Bits != 32 { + return nil, oakerr.InvalidInput{ + InputName: "f.Bits", + } + } + window := js.Global() + actxConstruct := window.Get("AudioContext") + if actxConstruct.IsUndefined() || actxConstruct.IsNull() { + actxConstruct = window.Get("webkitAudioContext") + } + audioCtx := actxConstruct.New(map[string]interface{}{ + "latencyHint": "interactive", + "sampleRate": f.SampleRate, + }) + + processorName := "oakPCM" + strconv.Itoa(int(atomic.Add(&processorIndex, 1))) + window.Call("registerProcessor", processorName, "js class?") + audioCtx.Get("audioWorklet").Call("addModule", processorName) + + audioBuffer := audioCtx.Call("createBuffer", f.Channels, f.SampleRate*WriterBufferLengthInSeconds, f.SampleRate) + source := audioCtx.Call("createBufferSource") + + channelData := make([]js.Value, f.Channels) + for i := 0; i < int(f.Channels); i++ { + channelData[i] = audioBuffer.Call("getChannelData", i) + + } + + return &jsWriter{ + Format: f, + bufferSize: f.BytesPerSecond() * WriterBufferLengthInSeconds, + audioCtx: audioCtx, + buffer: audioBuffer, + channelData: channelData, + source: source, + }, nil +} + +type jsWriter struct { + sync.Mutex + Format + buffer js.Value + channelData []js.Value // Float32Array + source js.Value + audioCtx js.Value + lockedOffset uint32 + bufferSize uint32 + writeChannel int + writeOffset int + playing bool +} + +func (jsw *jsWriter) Close() error { + jsw.Lock() + defer jsw.Unlock() + + // we can't release this object? + if jsw.playing { + jsw.source.Call("stop") + } + return nil +} + +func (jsw *jsWriter) Reset() error { + jsw.Lock() + defer jsw.Unlock() + // emptyBuff := make([]byte, jsw.bufferSize) + // a, b, err := jsw.buff.LockBytes(0, jsw.bufferSize, 0) + // if err != nil { + // return err + // } + // copy(a, emptyBuff) + // if len(b) != 0 { + // copy(b, emptyBuff) + // } + // err = jsw.buff.UnlockBytes(a, b) + // jsw.Seek(0, io.SeekStart) + + //jsw.audioBuffer.Call("copyToChannel") + // make it a []float32 array somehow // then a byte array? or just convert + // from byte to float32 adaptively + return nil +} + +func (jsw *jsWriter) WritePCM(data []byte) (n int, err error) { + jsw.Lock() + defer jsw.Unlock() + + // we cannot write less than four bytes -- float32 + readAt := 0 + for len(data[readAt:]) >= 4 { + u32 := uint32(data[readAt]) + + uint32(data[readAt+1])<<8 + + uint32(data[readAt+2])<<16 + + uint32(data[readAt+3])<<24 + f32 := float32(u32) / float32(math.MaxInt32) + + jsw.channelData[jsw.writeChannel].SetIndex(jsw.writeOffset, f32) + + readAt += 4 + jsw.writeChannel++ + jsw.writeChannel %= int(jsw.Channels) + if jsw.writeChannel == 0 { + jsw.writeOffset++ + if jsw.writeOffset >= int((jsw.bufferSize/4)/uint32(jsw.Channels)) { + jsw.writeOffset = 0 + } + } + } + + jsw.source.Set("buffer", jsw.buffer) + if !jsw.playing { + fmt.Println("start playing") + jsw.playing = true + jsw.source.Set("loop", true) + jsw.source.Call("connect", jsw.audioCtx.Get("destination")) + jsw.source.Call("start") + } + + return readAt, nil +} diff --git a/collision/attachSpace.go b/collision/attachSpace.go index 7cf1612d..cf006bdf 100644 --- a/collision/attachSpace.go +++ b/collision/attachSpace.go @@ -19,6 +19,7 @@ type AttachSpace struct { aSpace **Space tree *Tree offX, offY float64 + binding event.Binding } func (as *AttachSpace) getAttachSpace() *AttachSpace { @@ -31,7 +32,8 @@ type attachSpace interface { // Attach attaches v to the given space with optional x,y offsets. See AttachSpace. func Attach(v physics.Vector, s *Space, tree *Tree, offsets ...float64) error { - if t, ok := s.CID.E().(attachSpace); ok { + en := event.DefaultCallerMap.GetEntity(s.CID) + if t, ok := en.(attachSpace); ok { as := t.getAttachSpace() as.aSpace = &s as.follow = v @@ -39,7 +41,7 @@ func Attach(v physics.Vector, s *Space, tree *Tree, offsets ...float64) error { if as.tree == nil { as.tree = DefaultTree } - s.CID.Bind(event.Enter, attachSpaceEnter) + as.binding = event.Bind(event.DefaultBus, event.Enter, s.CID, attachSpaceEnter) if len(offsets) > 0 { as.offX = offsets[0] if len(offsets) > 1 { @@ -54,30 +56,21 @@ func Attach(v physics.Vector, s *Space, tree *Tree, offsets ...float64) error { // Detach removes the attachSpaceEnter binding from an entity composed with // AttachSpace func Detach(s *Space) error { - en := s.CID.E() - if _, ok := en.(attachSpace); ok { - event.UnbindBindable( - event.UnbindOption{ - Event: event.Event{ - Name: event.Enter, - CallerID: s.CID, - }, - Fn: attachSpaceEnter, - }, - ) + en := event.DefaultCallerMap.GetEntity(s.CID) + if as, ok := en.(attachSpace); ok { + as.getAttachSpace().binding.Unbind() return nil } return errors.New("this space's entity is not composed of AttachSpace") } -func attachSpaceEnter(id event.CID, _ interface{}) int { - as := id.E().(attachSpace).getAttachSpace() +func attachSpaceEnter(id event.CallerID, _ event.EnterPayload) event.Response { + asIface := event.DefaultCallerMap.GetEntity(id) + as := asIface.(attachSpace).getAttachSpace() x, y := as.follow.X()+as.offX, as.follow.Y()+as.offY if x != (*as.aSpace).X() || y != (*as.aSpace).Y() { - // If this was a nil pointer it would have already crashed but as of release 2.2.0 - // this could error from the space to delete not existing in the rtree. as.tree.UpdateSpace(x, y, (*as.aSpace).GetW(), (*as.aSpace).GetH(), *as.aSpace) } return 0 diff --git a/collision/attachSpace_test.go b/collision/attachSpace_test.go index 99d1f613..2c81e019 100644 --- a/collision/attachSpace_test.go +++ b/collision/attachSpace_test.go @@ -12,7 +12,7 @@ type aspace struct { AttachSpace } -func (as *aspace) Init() event.CID { +func (as *aspace) Init() event.CallerID { return event.NextID(as) } diff --git a/collision/filter.go b/collision/filter.go index e7a07c3c..d0be173e 100644 --- a/collision/filter.go +++ b/collision/filter.go @@ -43,7 +43,7 @@ func Without(tossFn func(*Space) bool) Filter { } // WithoutCIDs will return no spaces with a CID in the input -func WithoutCIDs(cids ...event.CID) Filter { +func WithoutCIDs(cids ...event.CallerID) Filter { return Without(func(s *Space) bool { for _, c := range cids { if s.CID == c { diff --git a/collision/onCollision.go b/collision/onCollision.go index 784aa90c..760f9996 100644 --- a/collision/onCollision.go +++ b/collision/onCollision.go @@ -46,21 +46,20 @@ func PhaseCollisionWithBus(s *Space, tree *Tree, bus event.Handler, entities *ev if oc.tree == nil { oc.tree = DefaultTree } - bus.Bind(event.Enter, s.CID, phaseCollisionEnter(entities)) + event.Bind(bus, event.Enter, s.CID, phaseCollisionEnter(entities)) return nil } return errors.New("This space's entity does not implement collisionPhase") } // CollisionStart/Stop: when a PhaseCollision entity starts/stops touching some label. -// Payload: (Label) the label the entity has started/stopped touching -const ( - Start = "CollisionStart" - Stop = "CollisionStop" +var ( + Start = event.RegisterEvent[Label]() + Stop = event.RegisterEvent[Label]() ) -func phaseCollisionEnter(entities *event.CallerMap) func(id event.CID, nothing interface{}) int { - return func(id event.CID, nothing interface{}) int { +func phaseCollisionEnter(entities *event.CallerMap) func(id event.CallerID, nothing event.EnterPayload) event.Response { + return func(id event.CallerID, _ event.EnterPayload) event.Response { e := entities.GetEntity(id).(collisionPhase) oc := e.getCollisionPhase() @@ -72,7 +71,7 @@ func phaseCollisionEnter(entities *event.CallerMap) func(id event.CID, nothing i for _, h := range hits { l := h.Label if _, ok := oc.Touching[l]; !ok { - id.TriggerBus(Start, l, oc.bus) + event.TriggerForCallerOn(oc.bus, id, Start, l) } newTouching[l] = true } @@ -80,7 +79,7 @@ func phaseCollisionEnter(entities *event.CallerMap) func(id event.CID, nothing i // if we lost any, trigger off collision for l := range oc.Touching { if _, ok := newTouching[l]; !ok { - id.TriggerBus(Stop, l, oc.bus) + event.TriggerForCallerOn(oc.bus, id, Stop, l) } } diff --git a/collision/onCollision_test.go b/collision/onCollision_test.go index 82777fbc..9ca0ee2e 100644 --- a/collision/onCollision_test.go +++ b/collision/onCollision_test.go @@ -12,7 +12,7 @@ type cphase struct { callers *event.CallerMap } -func (cp *cphase) Init() event.CID { +func (cp *cphase) Init() event.CallerID { return cp.callers.NextID(cp) } @@ -37,11 +37,11 @@ func TestCollisionPhase(t *testing.T) { t.Fatalf("phase collision failed: %v", err) } var active bool - bus.Bind("CollisionStart", cid, func(event.CID, interface{}) int { + bus.Bind("CollisionStart", cid, func(event.CallerID, interface{}) int { active = true return 0 }) - bus.Bind("CollisionStop", cid, func(event.CID, interface{}) int { + bus.Bind("CollisionStop", cid, func(event.CallerID, interface{}) int { active = false return 0 }) diff --git a/collision/ray/castFilter.go b/collision/ray/castFilter.go index 06103520..71ba7d7b 100644 --- a/collision/ray/castFilter.go +++ b/collision/ray/castFilter.go @@ -46,7 +46,7 @@ func IgnoreLabels(ls ...collision.Label) CastOption { } // AcceptIDs is equivalent to AcceptLabels, but for CIDs. -func AcceptIDs(ids ...event.CID) CastOption { +func AcceptIDs(ids ...event.CallerID) CastOption { return AddFilter(func(s *collision.Space) bool { for _, id := range ids { if s.CID == id { @@ -58,7 +58,7 @@ func AcceptIDs(ids ...event.CID) CastOption { } // IgnoreIDs is equivalent to IgnoreLabels, but for CIDs. -func IgnoreIDs(ids ...event.CID) CastOption { +func IgnoreIDs(ids ...event.CallerID) CastOption { return AddFilter(func(s *collision.Space) bool { for _, id := range ids { if s.CID == id { diff --git a/collision/ray/castLimit.go b/collision/ray/castLimit.go index 5212958d..46bc245d 100644 --- a/collision/ray/castLimit.go +++ b/collision/ray/castLimit.go @@ -47,7 +47,7 @@ func StopAtLabel(ls ...collision.Label) CastOption { // StopAtID will cause a caster to cease casting as soon as it // hits one of the input CIDs. -func StopAtID(ids ...event.CID) CastOption { +func StopAtID(ids ...event.CallerID) CastOption { return AddLimit(func(ps []collision.Point) bool { z := ps[len(ps)-1].Zone for _, id := range ids { diff --git a/collision/space.go b/collision/space.go index 6d54da3f..c217ac48 100644 --- a/collision/space.go +++ b/collision/space.go @@ -197,7 +197,7 @@ func NewUnassignedSpace(x, y, w, h float64) *Space { } // NewSpace returns a space with an associated caller id -func NewSpace(x, y, w, h float64, cID event.CID) *Space { +func NewSpace(x, y, w, h float64, cID event.CallerID) *Space { return NewFullSpace(x, y, w, h, NilLabel, cID) } @@ -212,7 +212,7 @@ func NewLabeledSpace(x, y, w, h float64, l Label) *Space { } // NewFullSpace returns a space with both a label and a caller id -func NewFullSpace(x, y, w, h float64, l Label, cID event.CID) *Space { +func NewFullSpace(x, y, w, h float64, l Label, cID event.CallerID) *Space { rect := NewRect(x, y, w, h) return &Space{ rect, @@ -223,12 +223,12 @@ func NewFullSpace(x, y, w, h float64, l Label, cID event.CID) *Space { } // NewRect2Space returns a space with an associated caller id from a rect2 -func NewRect2Space(rect floatgeom.Rect2, cID event.CID) *Space { +func NewRect2Space(rect floatgeom.Rect2, cID event.CallerID) *Space { return NewSpace(rect.Min.X(), rect.Min.Y(), rect.W(), rect.H(), cID) } // NewRectSpace creates a colliison space with the specified 3D rectangle -func NewRectSpace(rect floatgeom.Rect3, l Label, cID event.CID) *Space { +func NewRectSpace(rect floatgeom.Rect3, l Label, cID event.CallerID) *Space { return &Space{ rect, l, diff --git a/debugstream/scopeHelper.go b/debugstream/scopeHelper.go index b3e4183e..0d1b176b 100644 --- a/debugstream/scopeHelper.go +++ b/debugstream/scopeHelper.go @@ -69,14 +69,13 @@ const explainMouseDetails = "the mext mouse click on the given window will print func mouseCommands(w window.Window) func([]string) string { return func(tokenString []string) string { - w.EventHandler().GlobalBind("MouseRelease", mouseDetails(w)) + event.Bind(w.EventHandler(), mouse.Release, event.Global, mouseDetails(w)) return "" } } -func mouseDetails(w window.Window) func(event.CID, interface{}) int { - return func(nothing event.CID, mevent interface{}) int { - me := mevent.(mouse.Event) +func mouseDetails(w window.Window) func(event.CallerID, *mouse.Event) event.Response { + return func(nothing event.CallerID, me *mouse.Event) event.Response { viewPos := w.Viewport() x := int(me.X()) + viewPos[0] y := int(me.Y()) + viewPos[1] @@ -86,17 +85,19 @@ func mouseDetails(w window.Window) func(event.CID, interface{}) int { if len(results) == 0 { results = mouse.Hits(loc) } + cm := w.GetCallerMap() + if len(results) > 0 { - i := int(results[0].CID) - if i > 0 && event.HasEntity(event.CID(i)) { - e := event.GetEntity(event.CID(i)) + i := results[0].CID + if i > 0 && cm.HasEntity(i) { + e := cm.GetEntity(i) fmt.Printf("%+v\n", e) } else { fmt.Println("No entity ", i) } } - return event.UnbindSingle + return event.UnbindThis } } diff --git a/debugtools/inputviz/joystick.go b/debugtools/inputviz/joystick.go index ba61d6a3..9834c873 100644 --- a/debugtools/inputviz/joystick.go +++ b/debugtools/inputviz/joystick.go @@ -47,7 +47,7 @@ type Joystick struct { BaseLayer int ctx *scene.Context - event.CID + event.CallerID joy *joystick.Joystick rs map[string]render.Modifiable lastState *joystick.State @@ -57,7 +57,7 @@ type Joystick struct { cancel func() } -func (j *Joystick) Init() event.CID { +func (j *Joystick) Init() event.CallerID { j.CID = j.ctx.CallerMap.NextID(j) return j.CID } @@ -234,7 +234,7 @@ func (j *Joystick) RenderAndListen(ctx *scene.Context, joy *joystick.Joystick, l } func (j *Joystick) CheckedIDBind(ev string, f func(*Joystick, uint32)) { - j.Bind(ev, func(id event.CID, jid interface{}) int { + j.Bind(ev, func(id event.CallerID, jid interface{}) int { joy, ok := event.GetEntity(id).(*Joystick) if !ok { return 0 @@ -249,7 +249,7 @@ func (j *Joystick) CheckedIDBind(ev string, f func(*Joystick, uint32)) { } func (j *Joystick) CheckedBind(ev string, f func(*Joystick, *joystick.State)) { - j.Bind(ev, func(id event.CID, state interface{}) int { + j.Bind(ev, func(id event.CallerID, state interface{}) int { joy, ok := event.GetEntity(id).(*Joystick) if !ok { return 0 diff --git a/debugtools/inputviz/keyboard.go b/debugtools/inputviz/keyboard.go index 6f21712e..840cdbb8 100644 --- a/debugtools/inputviz/keyboard.go +++ b/debugtools/inputviz/keyboard.go @@ -148,13 +148,13 @@ type Keyboard struct { RenderCharacters bool Font *render.Font - event.CID + event.CallerID ctx *scene.Context rs map[string]*render.Switch } -func (k *Keyboard) Init() event.CID { +func (k *Keyboard) Init() event.CallerID { k.CID = k.ctx.CallerMap.NextID(k) return k.CID } @@ -220,7 +220,7 @@ func (k *Keyboard) RenderAndListen(ctx *scene.Context, layer int) error { } } - k.Bind(key.Down, key.Binding(func(id event.CID, ev key.Event) int { + k.Bind(key.Down, key.Binding(func(id event.CallerID, ev key.Event) int { kb, _ := k.ctx.CallerMap.GetEntity(id).(*Keyboard) btn := ev.Code.String()[4:] if kb.rs[btn] == nil { @@ -229,7 +229,7 @@ func (k *Keyboard) RenderAndListen(ctx *scene.Context, layer int) error { kb.rs[btn].Set("pressed") return 0 })) - k.Bind(key.Up, key.Binding(func(id event.CID, ev key.Event) int { + k.Bind(key.Up, key.Binding(func(id event.CallerID, ev key.Event) int { kb, _ := k.ctx.CallerMap.GetEntity(id).(*Keyboard) btn := ev.Code.String()[4:] if kb.rs[btn] == nil { diff --git a/debugtools/inputviz/mouse.go b/debugtools/inputviz/mouse.go index 3356a7a0..12964e6d 100644 --- a/debugtools/inputviz/mouse.go +++ b/debugtools/inputviz/mouse.go @@ -17,7 +17,7 @@ type Mouse struct { Rect floatgeom.Rect2 BaseLayer int - event.CID + event.CallerID ctx *scene.Context rs map[mouse.Button]*render.Switch @@ -29,7 +29,7 @@ type Mouse struct { stateInc map[mouse.Button]int } -func (m *Mouse) Init() event.CID { +func (m *Mouse) Init() event.CallerID { m.CID = m.ctx.CallerMap.NextID(m) return m.CID } @@ -98,7 +98,7 @@ func (m *Mouse) RenderAndListen(ctx *scene.Context, layer int) error { ctx.DrawStack.Draw(m.posText, m.BaseLayer, layer+2) } - m.Bind(mouse.Press, mouse.Binding(func(id event.CID, ev *mouse.Event) int { + m.Bind(mouse.Press, mouse.Binding(func(id event.CallerID, ev *mouse.Event) int { m, _ := m.ctx.CallerMap.GetEntity(id).(*Mouse) m.rs[ev.Button].Set("pressed") m.stateIncLock.Lock() @@ -106,7 +106,7 @@ func (m *Mouse) RenderAndListen(ctx *scene.Context, layer int) error { m.stateIncLock.Unlock() return 0 })) - m.Bind(mouse.Release, mouse.Binding(func(id event.CID, ev *mouse.Event) int { + m.Bind(mouse.Release, mouse.Binding(func(id event.CallerID, ev *mouse.Event) int { m, _ := m.ctx.CallerMap.GetEntity(id).(*Mouse) m.rs[ev.Button].Set("released") m.stateIncLock.Lock() @@ -114,7 +114,7 @@ func (m *Mouse) RenderAndListen(ctx *scene.Context, layer int) error { m.stateIncLock.Unlock() return 0 })) - m.Bind(mouse.ScrollDown, mouse.Binding(func(id event.CID, e *mouse.Event) int { + m.Bind(mouse.ScrollDown, mouse.Binding(func(id event.CallerID, e *mouse.Event) int { m, _ := m.ctx.CallerMap.GetEntity(id).(*Mouse) m.rs[mouse.ButtonMiddle].Set("scrolldown") m.stateIncLock.Lock() @@ -130,7 +130,7 @@ func (m *Mouse) RenderAndListen(ctx *scene.Context, layer int) error { }) return 0 })) - m.Bind(mouse.ScrollUp, mouse.Binding(func(id event.CID, e *mouse.Event) int { + m.Bind(mouse.ScrollUp, mouse.Binding(func(id event.CallerID, e *mouse.Event) int { m, _ := m.ctx.CallerMap.GetEntity(id).(*Mouse) m.rs[mouse.ButtonMiddle].Set("scrollup") m.stateIncLock.Lock() @@ -146,7 +146,7 @@ func (m *Mouse) RenderAndListen(ctx *scene.Context, layer int) error { }) return 0 })) - m.Bind(mouse.Drag, mouse.Binding(func(id event.CID, e *mouse.Event) int { + m.Bind(mouse.Drag, mouse.Binding(func(id event.CallerID, e *mouse.Event) int { m, _ := m.ctx.CallerMap.GetEntity(id).(*Mouse) m.lastMousePos.Point2 = e.Point2 return 0 diff --git a/debugtools/mouse.go b/debugtools/mouse.go index 8aebcac2..348ec851 100644 --- a/debugtools/mouse.go +++ b/debugtools/mouse.go @@ -10,8 +10,7 @@ import ( // DebugMouseRelease will print the position and button pressed of the mouse when the mouse is released, if the given // key is held down at the time. If no key is given, it will always be printed func DebugMouseRelease(ctx *scene.Context, k string) { - ctx.EventHandler.GlobalBind(mouse.Release, func(_ event.CID, ev interface{}) int { - mev, _ := ev.(*mouse.Event) + event.Bind(ctx.EventHandler, mouse.Release, event.Global, func(_ event.CallerID, mev *mouse.Event) event.Response { if k == "" || ctx.KeyState.IsDown(k) { dlog.Info(mev) } diff --git a/entities/doodad.go b/entities/doodad.go index 47c4beff..55b2bb51 100644 --- a/entities/doodad.go +++ b/entities/doodad.go @@ -8,7 +8,7 @@ import ( // A Doodad is an entity composed of a position, a renderable, and a CallerID. type Doodad struct { Point - event.CID + event.CallerID R render.Renderable } @@ -17,7 +17,7 @@ type Doodad struct { // any other CID will assume that the struct containing this doodad has // already been initialized to the passed in CID. // This applies to ALL NewX functions in entities which take in a CID. -func NewDoodad(x, y float64, r render.Renderable, cid event.CID) *Doodad { +func NewDoodad(x, y float64, r render.Renderable, cid event.CallerID) *Doodad { if r != nil { r.SetPos(x, y) } @@ -29,14 +29,14 @@ func NewDoodad(x, y float64, r render.Renderable, cid event.CID) *Doodad { } // Init satisfies event.Entity -func (d *Doodad) Init() event.CID { +func (d *Doodad) Init() event.CallerID { d.CID = event.NextID(d) return d.CID } // GetID returns this Doodad's CID // Consider: are these getters needed? -func (d *Doodad) GetID() event.CID { +func (d *Doodad) GetID() event.CallerID { return d.CID } diff --git a/entities/interactive.go b/entities/interactive.go index ffee9d0b..12f3a450 100644 --- a/entities/interactive.go +++ b/entities/interactive.go @@ -15,7 +15,7 @@ type Interactive struct { // NewInteractive returns a new Interactive func NewInteractive(x, y, w, h float64, r render.Renderable, tree *collision.Tree, - cid event.CID, friction float64) *Interactive { + cid event.CallerID, friction float64) *Interactive { i := Interactive{} cid = cid.Parse(&i) @@ -29,7 +29,7 @@ func NewInteractive(x, y, w, h float64, r render.Renderable, tree *collision.Tre } // Init satisfies event.Entity -func (iv *Interactive) Init() event.CID { +func (iv *Interactive) Init() event.CallerID { cID := event.NextID(iv) iv.CID = cID return cID diff --git a/entities/moving.go b/entities/moving.go index da37e3af..fe4968a0 100644 --- a/entities/moving.go +++ b/entities/moving.go @@ -14,7 +14,7 @@ type Moving struct { } // NewMoving returns a new Moving -func NewMoving(x, y, w, h float64, r render.Renderable, tree *collision.Tree, cid event.CID, friction float64) *Moving { +func NewMoving(x, y, w, h float64, r render.Renderable, tree *collision.Tree, cid event.CallerID, friction float64) *Moving { m := Moving{} cid = cid.Parse(&m) m.Solid = *NewSolid(x, y, w, h, r, tree, cid) @@ -27,7 +27,7 @@ func NewMoving(x, y, w, h float64, r render.Renderable, tree *collision.Tree, ci } // Init satisfies event.Entity -func (m *Moving) Init() event.CID { +func (m *Moving) Init() event.CallerID { m.CID = event.NextID(m) return m.CID } diff --git a/entities/reactive.go b/entities/reactive.go index 4acfa644..8cea369f 100644 --- a/entities/reactive.go +++ b/entities/reactive.go @@ -17,7 +17,7 @@ type Reactive struct { // NewReactive returns a new Reactive struct. The added space will // be added to the input tree, or DefTree if none is given. -func NewReactive(x, y, w, h float64, r render.Renderable, tree *collision.Tree, cid event.CID) *Reactive { +func NewReactive(x, y, w, h float64, r render.Renderable, tree *collision.Tree, cid event.CallerID) *Reactive { rct := Reactive{} cid = cid.Parse(&rct) rct.Doodad = *NewDoodad(x, y, r, cid) @@ -73,7 +73,7 @@ func (r *Reactive) GetReactiveSpace() *collision.ReactiveSpace { // Overwrites // Init satisfies event.Entity -func (r *Reactive) Init() event.CID { +func (r *Reactive) Init() event.CallerID { r.CID = event.NextID(r) return r.CID } diff --git a/entities/solid.go b/entities/solid.go index 01b7e0d2..ee104334 100644 --- a/entities/solid.go +++ b/entities/solid.go @@ -17,7 +17,7 @@ type Solid struct { // NewSolid returns an initialized Solid that is not drawn and whose space // belongs to the given collision tree. If nil is given as the tree, it will // belong to collision.DefTree -func NewSolid(x, y, w, h float64, r render.Renderable, tree *collision.Tree, cid event.CID) *Solid { +func NewSolid(x, y, w, h float64, r render.Renderable, tree *collision.Tree, cid event.CallerID) *Solid { s := Solid{} cid = cid.Parse(&s) s.Doodad = *NewDoodad(x, y, r, cid) @@ -99,7 +99,7 @@ func (s *Solid) HitLabel(classtype collision.Label) *collision.Space { // Overwrites // Init satisfies event.Entity -func (s *Solid) Init() event.CID { +func (s *Solid) Init() event.CallerID { s.CID = event.NextID(s) return s.CID } diff --git a/entities/x/btn/box.go b/entities/x/btn/box.go index 54b3be7b..0ddab483 100644 --- a/entities/x/btn/box.go +++ b/entities/x/btn/box.go @@ -15,7 +15,7 @@ type Box struct { } // NewBox creates a new Box -func NewBox(cid event.CID, x, y, w, h float64, r render.Renderable, layers ...int) *Box { +func NewBox(cid event.CallerID, x, y, w, h float64, r render.Renderable, layers ...int) *Box { b := Box{} cid = cid.Parse(&b) b.Solid = *entities.NewSolid(x, y, w, h, r, mouse.DefaultTree, cid) @@ -27,7 +27,7 @@ func NewBox(cid event.CID, x, y, w, h float64, r render.Renderable, layers ...in } // Init intializes the Box -func (b *Box) Init() event.CID { +func (b *Box) Init() event.CallerID { b.CID = event.NextID(b) return b.CID } @@ -57,4 +57,4 @@ func (b *Box) Destroy() { b.UnbindAll() b.R.Undraw() mouse.Remove(b.GetSpace()) -} \ No newline at end of file +} diff --git a/entities/x/btn/button.go b/entities/x/btn/button.go index 132de378..9fbffb8a 100644 --- a/entities/x/btn/button.go +++ b/entities/x/btn/button.go @@ -28,7 +28,7 @@ type Generator struct { R1 render.Modifiable R2 render.Modifiable RS []render.Modifiable - Cid event.CID + Cid event.CallerID Font *render.Font Layers []int Text string @@ -184,7 +184,7 @@ func (g Generator) generate(parent *Generator) Btn { filteredK := "Filtered" + k g.Bindings[filteredK] = g.Bindings[k] g.Bindings[k] = []event.Bindable{ - func(id event.CID, button interface{}) int { + func(id event.CallerID, button interface{}) int { btn := id.E().(Btn) mEvent, ok := button.(*mouse.Event) // If the passed event is not a mouse event dont filter on location. @@ -239,8 +239,8 @@ type switcher interface { } // toggleFxn sets up the mouseclick binding for toggle buttons created for goreport cyclo decrease -func toggleFxn(g Generator) func(id event.CID, nothing interface{}) int { - return func(id event.CID, nothing interface{}) int { +func toggleFxn(g Generator) func(id event.CallerID, nothing interface{}) int { + return func(id event.CallerID, nothing interface{}) int { btn := event.GetEntity(id).(Btn) if btn.GetRenderable().(switcher).Get() == "on" { if g.Group != nil && g.Group.active == btn { @@ -267,8 +267,8 @@ func toggleFxn(g Generator) func(id event.CID, nothing interface{}) int { } // listFxn sets up the mouseclick binding for list buttons created for goreport cyclo reduction -func listFxn(g Generator) func(id event.CID, button interface{}) int { - return func(id event.CID, button interface{}) int { +func listFxn(g Generator) func(id event.CallerID, button interface{}) int { + return func(id event.CallerID, button interface{}) int { btn := event.GetEntity(id).(Btn) i := *g.ListChoice mEvent := button.(*mouse.Event) diff --git a/entities/x/btn/option.go b/entities/x/btn/option.go index b5b1b3cd..fbb4fbcd 100644 --- a/entities/x/btn/option.go +++ b/entities/x/btn/option.go @@ -64,7 +64,7 @@ func Offset(x, y float64) Option { } //CID sets the starting CID of the button to be generated -func CID(c event.CID) Option { +func CID(c event.CallerID) Option { return func(g Generator) Generator { g.Cid = c return g diff --git a/entities/x/btn/textBox.go b/entities/x/btn/textBox.go index cbe4f442..071637db 100644 --- a/entities/x/btn/textBox.go +++ b/entities/x/btn/textBox.go @@ -14,13 +14,13 @@ type TextBox struct { } // Init creates the CID -func (b *TextBox) Init() event.CID { +func (b *TextBox) Init() event.CallerID { b.CID = event.NextID(b) return b.CID } // NewTextBox creates a textbox -func NewTextBox(cid event.CID, x, y, w, h, txtX, txtY float64, +func NewTextBox(cid event.CallerID, x, y, w, h, txtX, txtY float64, f *render.Font, r render.Renderable, layers ...int) *TextBox { if f == nil { diff --git a/entities/x/force/directionSpace.go b/entities/x/force/directionSpace.go index 83014cee..b7d4cc8e 100644 --- a/entities/x/force/directionSpace.go +++ b/entities/x/force/directionSpace.go @@ -13,7 +13,7 @@ type DirectionSpace struct { } // Init initializes the DirectionSpace as an entity -func (ds *DirectionSpace) Init() event.CID { +func (ds *DirectionSpace) Init() event.CallerID { return event.NextID(ds) } diff --git a/entities/x/stat/stats.go b/entities/x/stat/stats.go index f7fe8358..d0c09a03 100644 --- a/entities/x/stat/stats.go +++ b/entities/x/stat/stats.go @@ -23,7 +23,7 @@ func TimedOff(eventName string) event.Bindable { // TimedBind returns a binding that will trigger toggling on or off the given event func TimedBind(eventName string, on bool) event.Bindable { - return func(event.CID, interface{}) int { + return func(event.CallerID, interface{}) int { event.Trigger(eventName, timedStat{eventName, on}) return 0 } @@ -31,7 +31,7 @@ func TimedBind(eventName string, on bool) event.Bindable { // Bind returns a binding that will increment the given event by 'inc' func Bind(eventName string, inc int) event.Bindable { - return func(event.CID, interface{}) int { + return func(event.CallerID, interface{}) int { event.Trigger(eventName, stat{eventName, inc}) return 0 } diff --git a/event/events.go b/event/events.go index 45b5a886..83515072 100644 --- a/event/events.go +++ b/event/events.go @@ -26,7 +26,7 @@ func RegisterEvent[T any]() EventID[T] { } } -type NoPayload struct{} +type NoPayload = struct{} // EnterPayload is the payload sent down to Enter bindings type EnterPayload struct { @@ -38,8 +38,6 @@ type EnterPayload struct { var ( // Enter: the beginning of every logical frame. Enter = RegisterEvent[EnterPayload]() - // AnimationEnd: Triggered on animations CIDs when they loop from the last to the first frame - AnimationEnd = RegisterEvent[NoPayload]() // ViewportUpdate: Triggered when the position of of the viewport changes ViewportUpdate = RegisterEvent[intgeom.Point2]() // OnStop: Triggered when the engine is stopped. diff --git a/examples/bezier/main.go b/examples/bezier/main.go index f7b3b18a..fd78d848 100644 --- a/examples/bezier/main.go +++ b/examples/bezier/main.go @@ -55,7 +55,7 @@ func main() { oak.AddScene("bezier", scene.Scene{Start: func(*scene.Context) { mouseFloats := []float64{} - event.GlobalBind(mouse.Press, func(_ event.CID, mouseEvent interface{}) int { + event.GlobalBind(mouse.Press, func(_ event.CallerID, mouseEvent interface{}) int { me := mouseEvent.(*mouse.Event) // Left click to add a point to the curve if me.Button == mouse.ButtonLeft { diff --git a/examples/click-propagation/main.go b/examples/click-propagation/main.go index c56e6fc0..ba3304bc 100644 --- a/examples/click-propagation/main.go +++ b/examples/click-propagation/main.go @@ -34,13 +34,13 @@ func main() { } type hoverButton struct { - id event.CID + id event.CallerID mouse.CollisionPhase *changingColorBox } -func (hb *hoverButton) Init() event.CID { +func (hb *hoverButton) Init() event.CallerID { hb.id = event.NextID(hb) return hb.id } @@ -57,7 +57,7 @@ func newHoverButton(x, y, w, h float64, clr color.RGBA, layer int) { mouse.PhaseCollision(sp) render.Draw(hb.changingColorBox, 0, layer) - hb.id.Bind(mouse.ClickOn, func(c event.CID, i interface{}) int { + hb.id.Bind(mouse.ClickOn, func(c event.CallerID, i interface{}) int { hb := event.GetEntity(c).(*hoverButton) me := i.(*mouse.Event) fmt.Println(c, me.Point2) @@ -65,7 +65,7 @@ func newHoverButton(x, y, w, h float64, clr color.RGBA, layer int) { me.StopPropagation = true return 0 }) - hb.id.Bind(mouse.Start, func(c event.CID, i interface{}) int { + hb.id.Bind(mouse.Start, func(c event.CallerID, i interface{}) int { fmt.Println("start") hb := event.GetEntity(c).(*hoverButton) me := i.(*mouse.Event) @@ -73,7 +73,7 @@ func newHoverButton(x, y, w, h float64, clr color.RGBA, layer int) { me.StopPropagation = true return 0 }) - hb.id.Bind(mouse.Stop, func(c event.CID, i interface{}) int { + hb.id.Bind(mouse.Stop, func(c event.CallerID, i interface{}) int { fmt.Println("stop") hb := event.GetEntity(c).(*hoverButton) me := i.(*mouse.Event) diff --git a/examples/clipboard/main.go b/examples/clipboard/main.go index 76fc8e5c..da8db2f3 100644 --- a/examples/clipboard/main.go +++ b/examples/clipboard/main.go @@ -33,7 +33,7 @@ func newClipboardCopyText(text string, x, y float64) { btn.Pos(x, y), btn.Height(20), btn.FitText(20), - btn.Click(func(event.CID, interface{}) int { + btn.Click(func(event.CallerID, interface{}) int { err := clipboard.WriteAll(text) if err != nil { fmt.Println(err) @@ -52,7 +52,7 @@ func newClipboardPaster(placeholder string, x, y float64) { btn.Pos(x, y), btn.Height(20), btn.FitText(20), - btn.Binding(key.Down+key.V, func(_ event.CID, payload interface{}) int { + btn.Binding(key.Down+key.V, func(_ event.CallerID, payload interface{}) int { kv := payload.(key.Event) if kv.Modifiers&gokey.ModControl == gokey.ModControl { got, err := clipboard.ReadAll() @@ -64,7 +64,7 @@ func newClipboardPaster(placeholder string, x, y float64) { } return 0 }), - btn.Click(func(event.CID, interface{}) int { + btn.Click(func(event.CallerID, interface{}) int { got, err := clipboard.ReadAll() if err != nil { fmt.Println(err) diff --git a/examples/collision-demo/main.go b/examples/collision-demo/main.go index 41210b75..5b5e5843 100644 --- a/examples/collision-demo/main.go +++ b/examples/collision-demo/main.go @@ -26,7 +26,7 @@ func main() { collision.Attach(act.Vector, act.Space, nil, 0, 0) - act.Bind(event.Enter, func(event.CID, interface{}) int { + act.Bind(event.Enter, func(event.CallerID, interface{}) int { if act.ShouldUpdate { act.ShouldUpdate = false act.R.Undraw() @@ -56,7 +56,7 @@ func main() { render.Draw(act.R, 0, 1) collision.PhaseCollision(act.Space, nil) - act.Bind(collision.Start, func(id event.CID, label interface{}) int { + act.Bind(collision.Start, func(id event.CallerID, label interface{}) int { l := label.(collision.Label) switch l { case RED: @@ -75,7 +75,7 @@ func main() { } return 0 }) - act.Bind(collision.Stop, func(id event.CID, label interface{}) int { + act.Bind(collision.Stop, func(id event.CallerID, label interface{}) int { l := label.(collision.Label) switch l { case RED: @@ -136,7 +136,7 @@ type AttachCollisionTest struct { nextR render.Renderable } -func (act *AttachCollisionTest) Init() event.CID { +func (act *AttachCollisionTest) Init() event.CallerID { return event.NextID(act) } diff --git a/examples/custom-cursor/main.go b/examples/custom-cursor/main.go index 863e0ae7..e46e292d 100644 --- a/examples/custom-cursor/main.go +++ b/examples/custom-cursor/main.go @@ -37,7 +37,7 @@ func main() { ) ctx.DrawStack.Draw(box) - ctx.EventHandler.GlobalBind(mouse.Drag, func(_ event.CID, me interface{}) int { + ctx.EventHandler.GlobalBind(mouse.Drag, func(_ event.CallerID, me interface{}) int { mouseEvent := me.(*mouse.Event) box.SetPos(mouseEvent.X(), mouseEvent.Y()) return 0 diff --git a/examples/flappy-bird/main.go b/examples/flappy-bird/main.go index 6f6adbb3..ec363dfe 100644 --- a/examples/flappy-bird/main.go +++ b/examples/flappy-bird/main.go @@ -70,7 +70,7 @@ type Flappy struct { } // Init satisfies the event.Entity interface -func (f *Flappy) Init() event.CID { +func (f *Flappy) Init() event.CallerID { return event.NextID(f) } @@ -87,7 +87,7 @@ func newFlappy(x, y float64) *Flappy { f.R.SetLayer(1) render.Draw(f.R, 0) - f.Bind(event.Enter, func(event.CID, interface{}) int { + f.Bind(event.Enter, func(event.CallerID, interface{}) int { f.ShiftPos(f.Delta.X(), f.Delta.Y()) f.Add(f.Delta) if f.Delta.Y() > 10 { @@ -109,11 +109,11 @@ func newFlappy(x, y float64) *Flappy { } return 0 }) - f.Bind(mouse.Press, func(event.CID, interface{}) int { + f.Bind(mouse.Press, func(event.CallerID, interface{}) int { f.Delta.ShiftY(-4) return 0 }) - f.Bind(key.Down+key.W, func(event.CID, interface{}) int { + f.Bind(key.Down+key.W, func(event.CallerID, interface{}) int { f.Delta.ShiftY(-4) return 0 }) @@ -127,7 +127,7 @@ type Pillar struct { } // Init satisfies the event.Entity interface -func (p *Pillar) Init() event.CID { +func (p *Pillar) Init() event.CallerID { return event.NextID(p) } @@ -159,7 +159,7 @@ func newPillarPair() { newPillar(641, pos+span, 480-(pos+span), false) } -func enterPillar(id event.CID, nothing interface{}) int { +func enterPillar(id event.CallerID, nothing interface{}) int { p := event.GetEntity(id).(*Pillar) p.ShiftX(-2) if p.X()+p.W < 0 { diff --git a/examples/joystick-viz/main.go b/examples/joystick-viz/main.go index 946da118..a0a1c40a 100644 --- a/examples/joystick-viz/main.go +++ b/examples/joystick-viz/main.go @@ -22,7 +22,7 @@ func main() { *latestInput = "Latest Input: Keyboard+Mouse" ctx.DrawStack.Draw(render.NewStrPtrText(latestInput, 10, 460), 4) ctx.DrawStack.Draw(render.NewText("Space to Vibrate", 10, 440), 4) - ctx.EventHandler.GlobalBind(event.InputChange, func(_ event.CID, payload interface{}) int { + ctx.EventHandler.GlobalBind(event.InputChange, func(_ event.CallerID, payload interface{}) int { input := payload.(oak.InputType) switch input { case oak.InputJoystick: diff --git a/examples/multi-window/main.go b/examples/multi-window/main.go index e07cfa15..28e123f8 100644 --- a/examples/multi-window/main.go +++ b/examples/multi-window/main.go @@ -26,7 +26,7 @@ func main() { ctx.DrawStack.Draw(cb, 0) dFPS := render.NewDrawFPS(0.1, nil, 600, 10) ctx.DrawStack.Draw(dFPS, 1) - ctx.EventHandler.GlobalBind(mouse.Press, mouse.Binding(func(_ event.CID, me *mouse.Event) int { + ctx.EventHandler.GlobalBind(mouse.Press, mouse.Binding(func(_ event.CallerID, me *mouse.Event) int { cb.SetPos(me.X(), me.Y()) return 0 })) @@ -55,7 +55,7 @@ func main() { ctx.DrawStack.Draw(cb, 0) dFPS := render.NewDrawFPS(0.1, nil, 600, 10) ctx.DrawStack.Draw(dFPS, 1) - ctx.EventHandler.GlobalBind(mouse.Press, mouse.Binding(func(_ event.CID, me *mouse.Event) int { + ctx.EventHandler.GlobalBind(mouse.Press, mouse.Binding(func(_ event.CallerID, me *mouse.Event) int { cb.SetPos(me.X(), me.Y()) return 0 })) diff --git a/examples/particle-demo/main.go b/examples/particle-demo/main.go index 7112d4b1..ab91c43c 100644 --- a/examples/particle-demo/main.go +++ b/examples/particle-demo/main.go @@ -56,7 +56,7 @@ func parseShape(args []string) shape.Shape { func main() { debugstream.AddCommand(debugstream.Command{Name: "followMouse", Operation: func(args []string) string { - event.GlobalBind(event.Enter, func(event.CID, interface{}) int { + event.GlobalBind(event.Enter, func(event.CallerID, interface{}) int { // It'd be interesting to attach to the mouse position src.SetPos(float64(mouse.LastEvent.X()), float64(mouse.LastEvent.Y())) return 0 diff --git a/examples/piano/main.go b/examples/piano/main.go index f2bbae6f..b9bd2c1f 100644 --- a/examples/piano/main.go +++ b/examples/piano/main.go @@ -93,7 +93,7 @@ func newKey(note synth.Pitch, c keyColor, k string) *entities.Solid { s.Space.Label = labelWhiteKey } mouse.UpdateSpace(s.X(), s.Y(), s.W, s.H, s.Space) - s.Bind(key.Down+k, func(c event.CID, i interface{}) int { + s.Bind(key.Down+k, func(c event.CallerID, i interface{}) int { if oak.IsDown(key.LeftShift) || oak.IsDown(key.RightShift) { return 0 } @@ -101,7 +101,7 @@ func newKey(note synth.Pitch, c keyColor, k string) *entities.Solid { sw.Set("down") return 0 }) - s.Bind(key.Up+k, func(c event.CID, i interface{}) int { + s.Bind(key.Up+k, func(c event.CallerID, i interface{}) int { if oak.IsDown(key.LeftShift) || oak.IsDown(key.RightShift) { return 0 } @@ -109,14 +109,14 @@ func newKey(note synth.Pitch, c keyColor, k string) *entities.Solid { sw.Set("up") return 0 }) - s.Bind(mouse.PressOn, func(c event.CID, i interface{}) int { + s.Bind(mouse.PressOn, func(c event.CallerID, i interface{}) int { playPitch(note) me := i.(*mouse.Event) me.StopPropagation = true sw.Set("down") return 0 }) - s.Bind(mouse.Release, func(c event.CID, i interface{}) int { + s.Bind(mouse.Release, func(c event.CallerID, i interface{}) int { releasePitch(note) sw.Set("up") return 0 @@ -223,25 +223,25 @@ func main() { i++ } // Consider: Adding volume control - event.GlobalBind(key.Down+key.S, func(c event.CID, i interface{}) int { + event.GlobalBind(key.Down+key.S, func(c event.CallerID, i interface{}) int { if oak.IsDown(key.LeftShift) || oak.IsDown(key.RightShift) { synthKind = src.SinPCM } return 0 }) - event.GlobalBind(key.Down+key.W, func(c event.CID, i interface{}) int { + event.GlobalBind(key.Down+key.W, func(c event.CallerID, i interface{}) int { if oak.IsDown(key.LeftShift) || oak.IsDown(key.RightShift) { synthKind = src.SawPCM } return 0 }) - event.GlobalBind(key.Down+key.T, func(c event.CID, i interface{}) int { + event.GlobalBind(key.Down+key.T, func(c event.CallerID, i interface{}) int { if oak.IsDown(key.LeftShift) || oak.IsDown(key.RightShift) { synthKind = src.TrianglePCM } return 0 }) - event.GlobalBind(key.Down+key.P, func(c event.CID, i interface{}) int { + event.GlobalBind(key.Down+key.P, func(c event.CallerID, i interface{}) int { if oak.IsDown(key.LeftShift) || oak.IsDown(key.RightShift) { synthKind = src.PulsePCM(2) } @@ -252,7 +252,7 @@ func main() { render.Draw(help1) render.Draw(help2) - event.GlobalBind(mouse.ScrollDown, func(c event.CID, i interface{}) int { + event.GlobalBind(mouse.ScrollDown, func(c event.CallerID, i interface{}) int { mag := globalMagnification - 0.05 if mag < 1 { mag = 1 @@ -260,7 +260,7 @@ func main() { globalMagnification = mag return 0 }) - event.GlobalBind(mouse.ScrollUp, func(c event.CID, i interface{}) int { + event.GlobalBind(mouse.ScrollUp, func(c event.CallerID, i interface{}) int { globalMagnification += 0.05 return 0 }) @@ -275,7 +275,7 @@ func main() { } type pcmMonitor struct { - event.CID + event.CallerID render.LayeredPoint pcm.Writer pcm.Format @@ -297,7 +297,7 @@ func newPCMMonitor(w pcm.Writer) *pcmMonitor { return pm } -func (pm *pcmMonitor) Init() event.CID { +func (pm *pcmMonitor) Init() event.CallerID { pm.CID = event.NextID(pm) return pm.CID } diff --git a/examples/platformer-tutorial/2-moving/moving.go b/examples/platformer-tutorial/2-moving/moving.go index f50cfd82..0ab7b1e2 100644 --- a/examples/platformer-tutorial/2-moving/moving.go +++ b/examples/platformer-tutorial/2-moving/moving.go @@ -25,7 +25,7 @@ func main() { char.Speed = physics.NewVector(3, 3) - char.Bind(event.Enter, func(id event.CID, nothing interface{}) int { + char.Bind(event.Enter, func(id event.CallerID, nothing interface{}) int { char := event.GetEntity(id).(*entities.Moving) // Move left and right with A and D if oak.IsDown(key.A) { diff --git a/examples/platformer-tutorial/3-falling/falling.go b/examples/platformer-tutorial/3-falling/falling.go index cad71106..9f3c9b66 100644 --- a/examples/platformer-tutorial/3-falling/falling.go +++ b/examples/platformer-tutorial/3-falling/falling.go @@ -36,7 +36,7 @@ func main() { fallSpeed := .1 - char.Bind(event.Enter, func(id event.CID, nothing interface{}) int { + char.Bind(event.Enter, func(id event.CallerID, nothing interface{}) int { char := event.GetEntity(id).(*entities.Moving) // Move left and right with A and D if oak.IsDown(key.A) { diff --git a/examples/platformer-tutorial/4-jumping/jumping.go b/examples/platformer-tutorial/4-jumping/jumping.go index ea83252a..1f89019b 100644 --- a/examples/platformer-tutorial/4-jumping/jumping.go +++ b/examples/platformer-tutorial/4-jumping/jumping.go @@ -36,7 +36,7 @@ func main() { fallSpeed := .1 - char.Bind(event.Enter, func(id event.CID, nothing interface{}) int { + char.Bind(event.Enter, func(id event.CallerID, nothing interface{}) int { char := event.GetEntity(id).(*entities.Moving) // Move left and right with A and D if oak.IsDown(key.A) { diff --git a/examples/platformer-tutorial/5-correct-jumping/correct-jumping.go b/examples/platformer-tutorial/5-correct-jumping/correct-jumping.go index 6691f3db..60fc9ce1 100644 --- a/examples/platformer-tutorial/5-correct-jumping/correct-jumping.go +++ b/examples/platformer-tutorial/5-correct-jumping/correct-jumping.go @@ -36,7 +36,7 @@ func main() { fallSpeed := .1 - char.Bind(event.Enter, func(id event.CID, nothing interface{}) int { + char.Bind(event.Enter, func(id event.CallerID, nothing interface{}) int { char := event.GetEntity(id).(*entities.Moving) // Move left and right with A and D if oak.IsDown(key.A) { diff --git a/examples/platformer-tutorial/6-complete/complete.go b/examples/platformer-tutorial/6-complete/complete.go index 5decabf7..7b481368 100644 --- a/examples/platformer-tutorial/6-complete/complete.go +++ b/examples/platformer-tutorial/6-complete/complete.go @@ -38,7 +38,7 @@ func main() { fallSpeed := .2 - char.Bind(event.Enter, func(id event.CID, nothing interface{}) int { + char.Bind(event.Enter, func(id event.CallerID, nothing interface{}) int { char := event.GetEntity(id).(*entities.Moving) // Move left and right with A and D diff --git a/examples/pong/main.go b/examples/pong/main.go index ec8efbeb..7ce8154e 100644 --- a/examples/pong/main.go +++ b/examples/pong/main.go @@ -41,7 +41,7 @@ func main() { func newBall(x, y float64) { b := entities.NewMoving(x, y, 10, 10, render.NewColorBoxR(10, 10, color.RGBA{255, 255, 255, 255}), nil, 0, 0) render.Draw(b.R, 2) - b.Bind(event.Enter, func(id event.CID, nothing interface{}) int { + b.Bind(event.Enter, func(id event.CallerID, nothing interface{}) int { if b.Delta.X() == 0 && b.Delta.Y() == 0 { b.Delta.SetY((rand.Float64() - 0.5) * 4) b.Delta.SetX((rand.Float64() - 0.5) * 16) @@ -82,8 +82,8 @@ func newPaddle(x, y float64, player int) { } } -func enterPaddle(up, down string) func(event.CID, interface{}) int { - return func(id event.CID, nothing interface{}) int { +func enterPaddle(up, down string) func(event.CallerID, interface{}) int { + return func(id event.CallerID, nothing interface{}) int { p := id.E().(*entities.Moving) p.Delta.SetY(0) if oak.IsDown(up) { diff --git a/examples/radar-demo/main.go b/examples/radar-demo/main.go index 235fa48b..201a961f 100644 --- a/examples/radar-demo/main.go +++ b/examples/radar-demo/main.go @@ -37,7 +37,7 @@ func main() { oak.SetViewportBounds(intgeom.NewRect2(0, 0, xLimit, yLimit)) moveRect := floatgeom.NewRect2(0, 0, xLimit, yLimit) - char.Bind(event.Enter, func(event.CID, interface{}) int { + char.Bind(event.Enter, func(event.CallerID, interface{}) int { move.WASD(char) move.Limit(char, moveRect) move.CenterScreenOn(char) @@ -87,7 +87,7 @@ type enemyOnRadar struct { *entities.Moving } -func (eor *enemyOnRadar) Init() event.CID { +func (eor *enemyOnRadar) Init() event.CallerID { return event.NextID(eor) } func newEnemyOnRadar(x, y float64) *enemyOnRadar { @@ -98,7 +98,7 @@ func newEnemyOnRadar(x, y float64) *enemyOnRadar { return eor } -func standardEnemyMove(id event.CID, nothing interface{}) int { +func standardEnemyMove(id event.CallerID, nothing interface{}) int { eor := event.GetEntity(id).(*enemyOnRadar) if eor.X() < 0 { eor.Delta.SetPos(math.Abs(eor.Speed.X()), (eor.Speed.Y())) diff --git a/examples/rooms/main.go b/examples/rooms/main.go index 181e3c56..91e02fa5 100644 --- a/examples/rooms/main.go +++ b/examples/rooms/main.go @@ -49,7 +49,7 @@ func main() { var transitioning bool var totalTransitionDelta intgeom.Point2 var transitionDelta intgeom.Point2 - char.Bind(event.Enter, func(event.CID, interface{}) int { + char.Bind(event.Enter, func(event.CallerID, interface{}) int { dir, ok := isOffScreen(ctx, char) if !transitioning && ok { transitioning = true diff --git a/examples/screenopts/main.go b/examples/screenopts/main.go index d1b0b9bd..a0398b03 100644 --- a/examples/screenopts/main.go +++ b/examples/screenopts/main.go @@ -23,7 +23,7 @@ func main() { borderless := borderlessAtStart fullscreen := fullscreenAtStart - event.GlobalBind(key.Down+key.F, func(event.CID, interface{}) int { + event.GlobalBind(key.Down+key.F, func(event.CallerID, interface{}) int { fullscreen = !fullscreen err := oak.SetFullScreen(fullscreen) if err != nil { @@ -32,7 +32,7 @@ func main() { } return 0 }) - event.GlobalBind(key.Down+key.B, func(event.CID, interface{}) int { + event.GlobalBind(key.Down+key.B, func(event.CallerID, interface{}) int { borderless = !borderless err := oak.SetBorderless(borderless) if err != nil { diff --git a/examples/slide/show/slide.go b/examples/slide/show/slide.go index acf4fa7c..90d9af17 100644 --- a/examples/slide/show/slide.go +++ b/examples/slide/show/slide.go @@ -102,7 +102,7 @@ func Start(width, height int, slides ...Slide) { float64(ctx.Window.Height()-50), ), ) - event.GlobalBind("KeyDownSpacebar", func(event.CID, interface{}) int { + event.GlobalBind("KeyDownSpacebar", func(event.CallerID, interface{}) int { reset = true return 0 }) diff --git a/examples/slide/show/static/basicSlide.go b/examples/slide/show/static/basicSlide.go index b0a4e803..29c930ba 100644 --- a/examples/slide/show/static/basicSlide.go +++ b/examples/slide/show/static/basicSlide.go @@ -23,22 +23,22 @@ type Slide struct { func (ss *Slide) Init() { oak.SetFullScreen(true) render.Draw(ss.Rs, 0) - event.GlobalBind("KeyUp"+ss.ContinueKey, func(event.CID, interface{}) int { + event.GlobalBind("KeyUp"+ss.ContinueKey, func(event.CallerID, interface{}) int { fmt.Println("continue key pressed") ss.cont = true return 0 }) - event.GlobalBind("KeyUp"+ss.PrevKey, func(event.CID, interface{}) int { + event.GlobalBind("KeyUp"+ss.PrevKey, func(event.CallerID, interface{}) int { fmt.Println("prev key pressed") ss.prev = true return 0 }) - event.GlobalBind("KeyUpEscape", func(event.CID, interface{}) int { + event.GlobalBind("KeyUpEscape", func(event.CallerID, interface{}) int { os.Exit(0) return 0 }) if ss.OnClick != nil { - event.GlobalBind("MousePress", func(event.CID, interface{}) int { + event.GlobalBind("MousePress", func(event.CallerID, interface{}) int { ss.OnClick() return 0 }) diff --git a/examples/sprite-demo/main.go b/examples/sprite-demo/main.go index a427072e..20d7eb89 100644 --- a/examples/sprite-demo/main.go +++ b/examples/sprite-demo/main.go @@ -37,7 +37,7 @@ func main() { render.Draw(layerTxt, 0) NewGopher(layer) layer++ - event.GlobalBind(event.Enter, func(event.CID, interface{}) int { + event.GlobalBind(event.Enter, func(event.CallerID, interface{}) int { if oak.IsDown("K") { NewGopher(layer) layer++ @@ -77,7 +77,7 @@ type Gopher struct { } // Init sets up a gophers CID -func (g *Gopher) Init() event.CID { +func (g *Gopher) Init() event.CallerID { return event.NextID(g) } @@ -98,7 +98,7 @@ func NewGopher(layer int) { render.Draw(goph.R, 0) } -func gophEnter(cid event.CID, nothing interface{}) int { +func gophEnter(cid event.CallerID, nothing interface{}) int { goph := event.GetEntity(cid).(*Gopher) // Compare against this version of rotation diff --git a/examples/top-down-shooter-tutorial/1-start/start.go b/examples/top-down-shooter-tutorial/1-start/start.go index 8a1d6671..46a7a6ec 100644 --- a/examples/top-down-shooter-tutorial/1-start/start.go +++ b/examples/top-down-shooter-tutorial/1-start/start.go @@ -33,7 +33,7 @@ func main() { char.Speed = physics.NewVector(5, 5) render.Draw(char.R) - char.Bind(event.Enter, func(id event.CID, _ interface{}) int { + char.Bind(event.Enter, func(id event.CallerID, _ interface{}) int { char := event.GetEntity(id).(*entities.Moving) char.Delta.Zero() if oak.IsDown(key.W) { diff --git a/examples/top-down-shooter-tutorial/2-shooting/shooting.go b/examples/top-down-shooter-tutorial/2-shooting/shooting.go index 4d1e4493..9c9d484f 100644 --- a/examples/top-down-shooter-tutorial/2-shooting/shooting.go +++ b/examples/top-down-shooter-tutorial/2-shooting/shooting.go @@ -35,7 +35,7 @@ func main() { char.Speed = physics.NewVector(5, 5) render.Draw(char.R) - char.Bind(event.Enter, func(id event.CID, _ interface{}) int { + char.Bind(event.Enter, func(id event.CallerID, _ interface{}) int { char := event.GetEntity(id).(*entities.Moving) char.Delta.Zero() if oak.IsDown(key.W) { @@ -59,7 +59,7 @@ func main() { return 0 }) - char.Bind(mouse.Press, func(id event.CID, me interface{}) int { + char.Bind(mouse.Press, func(id event.CallerID, me interface{}) int { char := event.GetEntity(id).(*entities.Moving) mevent := me.(*mouse.Event) ctx.DrawForTime( diff --git a/examples/top-down-shooter-tutorial/3-enemies/enemies.go b/examples/top-down-shooter-tutorial/3-enemies/enemies.go index 65ce4577..723c1cb2 100644 --- a/examples/top-down-shooter-tutorial/3-enemies/enemies.go +++ b/examples/top-down-shooter-tutorial/3-enemies/enemies.go @@ -45,7 +45,7 @@ func main() { playerPos = char.Point.Vector render.Draw(char.R) - char.Bind(event.Enter, func(id event.CID, _ interface{}) int { + char.Bind(event.Enter, func(id event.CallerID, _ interface{}) int { char := event.GetEntity(id).(*entities.Moving) char.Delta.Zero() if oak.IsDown(key.W) { @@ -69,7 +69,7 @@ func main() { return 0 }) - char.Bind(mouse.Press, func(id event.CID, me interface{}) int { + char.Bind(mouse.Press, func(id event.CallerID, me interface{}) int { char := event.GetEntity(id).(*entities.Moving) mevent := me.(*mouse.Event) x := char.X() + char.W/2 @@ -86,7 +86,7 @@ func main() { return 0 }) - event.GlobalBind(event.Enter, func(_ event.CID, frames interface{}) int { + event.GlobalBind(event.Enter, func(_ event.CallerID, frames interface{}) int { enterPayload := frames.(event.EnterPayload) if enterPayload.FramesElapsed%EnemyRefresh == 0 { go NewEnemy(ctx) @@ -118,7 +118,7 @@ func NewEnemy(ctx *scene.Context) { enemy.UpdateLabel(Enemy) - enemy.Bind(event.Enter, func(id event.CID, _ interface{}) int { + enemy.Bind(event.Enter, func(id event.CallerID, _ interface{}) int { enemy := event.GetEntity(id).(*entities.Solid) // move towards the player x, y := enemy.GetPos() @@ -129,7 +129,7 @@ func NewEnemy(ctx *scene.Context) { return 0 }) - enemy.Bind("Destroy", func(id event.CID, _ interface{}) int { + enemy.Bind("Destroy", func(id event.CallerID, _ interface{}) int { enemy := event.GetEntity(id).(*entities.Solid) enemy.Destroy() return 0 diff --git a/examples/top-down-shooter-tutorial/4-sprites/sprites.go b/examples/top-down-shooter-tutorial/4-sprites/sprites.go index 26cbd871..0fd5b783 100644 --- a/examples/top-down-shooter-tutorial/4-sprites/sprites.go +++ b/examples/top-down-shooter-tutorial/4-sprites/sprites.go @@ -67,7 +67,7 @@ func main() { playerPos = char.Point.Vector render.Draw(char.R, 2) - char.Bind(event.Enter, func(id event.CID, _ interface{}) int { + char.Bind(event.Enter, func(id event.CallerID, _ interface{}) int { char := event.GetEntity(id).(*entities.Moving) char.Delta.Zero() if oak.IsDown(key.W) { @@ -103,7 +103,7 @@ func main() { return 0 }) - char.Bind(mouse.Press, func(id event.CID, me interface{}) int { + char.Bind(mouse.Press, func(id event.CallerID, me interface{}) int { char := event.GetEntity(id).(*entities.Moving) mevent := me.(*mouse.Event) x := char.X() + char.W/2 @@ -121,7 +121,7 @@ func main() { }) // Create enemies periodically - event.GlobalBind(event.Enter, func(_ event.CID, frames interface{}) int { + event.GlobalBind(event.Enter, func(_ event.CallerID, frames interface{}) int { enterPayload := frames.(event.EnterPayload) if enterPayload.FramesElapsed%EnemyRefresh == 0 { go NewEnemy(ctx) @@ -178,7 +178,7 @@ func NewEnemy(ctx *scene.Context) { enemy.UpdateLabel(Enemy) - enemy.Bind(event.Enter, func(id event.CID, _ interface{}) int { + enemy.Bind(event.Enter, func(id event.CallerID, _ interface{}) int { enemy := event.GetEntity(id).(*entities.Solid) // move towards the player x, y := enemy.GetPos() @@ -201,7 +201,7 @@ func NewEnemy(ctx *scene.Context) { return 0 }) - enemy.Bind("Destroy", func(id event.CID, _ interface{}) int { + enemy.Bind("Destroy", func(id event.CallerID, _ interface{}) int { enemy := event.GetEntity(id).(*entities.Solid) enemy.Destroy() return 0 diff --git a/examples/top-down-shooter-tutorial/5-viewport/viewport.go b/examples/top-down-shooter-tutorial/5-viewport/viewport.go index f3ceab38..5adae2db 100644 --- a/examples/top-down-shooter-tutorial/5-viewport/viewport.go +++ b/examples/top-down-shooter-tutorial/5-viewport/viewport.go @@ -75,7 +75,7 @@ func main() { playerPos = char.Point.Vector render.Draw(char.R, 2) - char.Bind(event.Enter, func(id event.CID, _ interface{}) int { + char.Bind(event.Enter, func(id event.CallerID, _ interface{}) int { char := event.GetEntity(id).(*entities.Moving) char.Delta.Zero() if oak.IsDown(key.W) { @@ -126,7 +126,7 @@ func main() { return 0 }) - char.Bind(mouse.Press, func(id event.CID, me interface{}) int { + char.Bind(mouse.Press, func(id event.CallerID, me interface{}) int { char := event.GetEntity(id).(*entities.Moving) mevent := me.(*mouse.Event) x := char.X() + char.W/2 @@ -147,7 +147,7 @@ func main() { }) // Create enemies periodically - event.GlobalBind(event.Enter, func(_ event.CID, frames interface{}) int { + event.GlobalBind(event.Enter, func(_ event.CallerID, frames interface{}) int { enterPayload := frames.(event.EnterPayload) if enterPayload.FramesElapsed%EnemyRefresh == 0 { go NewEnemy() @@ -200,7 +200,7 @@ func NewEnemy() { enemy.UpdateLabel(Enemy) - enemy.Bind(event.Enter, func(id event.CID, _ interface{}) int { + enemy.Bind(event.Enter, func(id event.CallerID, _ interface{}) int { enemy := event.GetEntity(id).(*entities.Solid) // move towards the player x, y := enemy.GetPos() @@ -223,7 +223,7 @@ func NewEnemy() { return 0 }) - enemy.Bind("Destroy", func(id event.CID, _ interface{}) int { + enemy.Bind("Destroy", func(id event.CallerID, _ interface{}) int { enemy := event.GetEntity(id).(*entities.Solid) enemy.Destroy() return 0 diff --git a/examples/top-down-shooter-tutorial/6-performance/performance.go b/examples/top-down-shooter-tutorial/6-performance/performance.go index 7cfaead4..112b89cc 100644 --- a/examples/top-down-shooter-tutorial/6-performance/performance.go +++ b/examples/top-down-shooter-tutorial/6-performance/performance.go @@ -81,7 +81,7 @@ func main() { float64(ctx.Window.Height()) / 2, } - char.Bind(event.Enter, func(id event.CID, payload interface{}) int { + char.Bind(event.Enter, func(id event.CallerID, payload interface{}) int { char := event.GetEntity(id).(*entities.Moving) enterPayload := payload.(event.EnterPayload) @@ -137,7 +137,7 @@ func main() { return 0 }) - char.Bind(mouse.Press, func(id event.CID, me interface{}) int { + char.Bind(mouse.Press, func(id event.CallerID, me interface{}) int { char := event.GetEntity(id).(*entities.Moving) mevent := me.(*mouse.Event) x := char.X() + char.W/2 @@ -158,7 +158,7 @@ func main() { }) // Create enemies periodically - event.GlobalBind(event.Enter, func(_ event.CID, frames interface{}) int { + event.GlobalBind(event.Enter, func(_ event.CallerID, frames interface{}) int { enterPayload := frames.(event.EnterPayload) if enterPayload.FramesElapsed%EnemyRefresh == 0 { go NewEnemy() @@ -222,7 +222,7 @@ func NewEnemy() { enemy.UpdateLabel(Enemy) - enemy.Bind(event.Enter, func(id event.CID, payload interface{}) int { + enemy.Bind(event.Enter, func(id event.CallerID, payload interface{}) int { enemy := event.GetEntity(id).(*entities.Solid) enterPayload := payload.(event.EnterPayload) // move towards the player @@ -246,7 +246,7 @@ func NewEnemy() { return 0 }) - enemy.Bind("Destroy", func(id event.CID, _ interface{}) int { + enemy.Bind("Destroy", func(id event.CallerID, _ interface{}) int { enemy := event.GetEntity(id).(*entities.Solid) enemy.Destroy() return 0 diff --git a/examples/zooming/main.go b/examples/zooming/main.go index c48ee22d..c166aaed 100644 --- a/examples/zooming/main.go +++ b/examples/zooming/main.go @@ -39,7 +39,7 @@ func main() { render.Draw(zoomer) // To illustrate zooming allow for arrow keys to control the main zoomable renderable. - event.GlobalBind(event.Enter, func(i event.CID, _ interface{}) int { + event.GlobalBind(event.Enter, func(i event.CallerID, _ interface{}) int { if oak.IsDown(key.UpArrow) { zoomOutFactorY *= .98 } diff --git a/inputTracker_test.go b/inputTracker_test.go index b8730c6c..3d84181e 100644 --- a/inputTracker_test.go +++ b/inputTracker_test.go @@ -23,7 +23,7 @@ func TestTrackInputChanges(t *testing.T) { expectedType := new(InputType) *expectedType = InputKeyboardMouse failed := false - c1.eventHandler.GlobalBind(event.InputChange, func(_ event.CID, payload interface{}) int { + c1.eventHandler.GlobalBind(event.InputChange, func(_ event.CallerID, payload interface{}) int { mode := payload.(InputType) if mode != *expectedType { failed = true diff --git a/mouse/onCollision_test.go b/mouse/onCollision_test.go index fbff918d..3041da8e 100644 --- a/mouse/onCollision_test.go +++ b/mouse/onCollision_test.go @@ -13,7 +13,7 @@ type cphase struct { CollisionPhase } -func (cp *cphase) Init() event.CID { +func (cp *cphase) Init() event.CallerID { return event.NextID(cp) } @@ -32,11 +32,11 @@ func TestCollisionPhase(t *testing.T) { t.Fatalf("phase collision errored") } var active bool - cid.Bind("MouseCollisionStart", func(event.CID, interface{}) int { + cid.Bind("MouseCollisionStart", func(event.CallerID, interface{}) int { active = true return 0 }) - cid.Bind("MouseCollisionStop", func(event.CID, interface{}) int { + cid.Bind("MouseCollisionStop", func(event.CallerID, interface{}) int { active = false return 0 }) diff --git a/render/interfaceFeatures.go b/render/interfaceFeatures.go index 14bdb756..1b8a8dfc 100644 --- a/render/interfaceFeatures.go +++ b/render/interfaceFeatures.go @@ -11,7 +11,7 @@ type NonStatic interface { // Triggerable types can have an ID set so when their animations finish, // they trigger AnimationEnd on that ID. type Triggerable interface { - SetTriggerID(event.CID) + SetTriggerID(event.CallerID) } type updates interface { diff --git a/render/logicfps.go b/render/logicfps.go index 8c06d81a..3df01103 100644 --- a/render/logicfps.go +++ b/render/logicfps.go @@ -10,7 +10,7 @@ import ( // LogicFPS is a Stackable that will draw the logical fps onto the screen when a part // of the draw stack. type LogicFPS struct { - event.CID + event.CallerID *Text fps int lastTime time.Time @@ -18,9 +18,10 @@ type LogicFPS struct { } // Init satisfies event.Entity -func (lf *LogicFPS) Init() event.CID { - id := event.NextID(lf) - lf.CID = id +func (lf *LogicFPS) Init() event.CallerID { + // TODO: not default caller map + id := event.DefaultCallerMap.Register(lf) + lf.CallerID = id return id } @@ -39,13 +40,16 @@ func NewLogicFPS(smoothing float64, font *Font, x, y float64) *LogicFPS { } lf.Text = font.NewIntText(&lf.fps, x, y) lf.Init() - lf.Bind(event.Enter, logicFPSBind) + // TODO: not default bus + event.Bind(event.DefaultBus, event.Enter, lf.CallerID, logicFPSBind) return lf } -func logicFPSBind(id event.CID, nothing interface{}) int { - lf := event.GetEntity(id).(*LogicFPS) +func logicFPSBind(id event.CallerID, _ event.EnterPayload) event.Response { + // TODO v4: should bindings give you an interface instead of a callerID, so bindings don't need to + // know what caller map to look up the caller from? + lf := event.DefaultCallerMap.GetEntity(id).(*LogicFPS) t := time.Now() lf.fps = int((timing.FPS(lf.lastTime, t) * lf.Smoothing) + (float64(lf.fps) * (1 - lf.Smoothing))) lf.lastTime = t diff --git a/render/particle/allocator.go b/render/particle/allocator.go index 1d6f80e9..83706c5d 100644 --- a/render/particle/allocator.go +++ b/render/particle/allocator.go @@ -10,24 +10,24 @@ const ( // An Allocator can allocate ids for particles type Allocator struct { - particleBlocks map[int]event.CID + particleBlocks map[int]event.CallerID nextOpenCh chan int freeCh chan int - allocCh chan event.CID + allocCh chan event.CallerID requestCh chan int - responseCh chan event.CID + responseCh chan event.CallerID stopCh chan struct{} } // NewAllocator creates a new allocator func NewAllocator() *Allocator { return &Allocator{ - particleBlocks: make(map[int]event.CID), + particleBlocks: make(map[int]event.CallerID), nextOpenCh: make(chan int), freeCh: make(chan int), - allocCh: make(chan event.CID), + allocCh: make(chan event.CallerID), requestCh: make(chan int), - responseCh: make(chan event.CID), + responseCh: make(chan event.CallerID), stopCh: make(chan struct{}), } } @@ -82,7 +82,7 @@ func (a *Allocator) freereceive(i int) int { } // Allocate requests a new block in the particle space for the given cid -func (a *Allocator) Allocate(id event.CID) int { +func (a *Allocator) Allocate(id event.CallerID) int { nextOpen := <-a.nextOpenCh a.allocCh <- id return nextOpen @@ -97,7 +97,8 @@ func (a *Allocator) Deallocate(block int) { func (a *Allocator) LookupSource(id int) *Source { a.requestCh <- id owner := <-a.responseCh - return event.GetEntity(owner).(*Source) + // TODO: not default? + return event.DefaultCallerMap.GetEntity(owner).(*Source) } // Lookup requests a specific particle in the particle space diff --git a/render/particle/allocator_test.go b/render/particle/allocator_test.go index e11c945f..0e616c3a 100644 --- a/render/particle/allocator_test.go +++ b/render/particle/allocator_test.go @@ -10,7 +10,7 @@ func TestAllocate(t *testing.T) { a := NewAllocator() go a.Run() for i := 0; i < 100; i++ { - if a.Allocate(event.CID(i)) != i { + if a.Allocate(event.CallerID(i)) != i { t.Fatalf("expected allocation of id %d to match id", i) } } diff --git a/render/particle/collisonGenerator.go b/render/particle/collisonGenerator.go index 983e30de..f4d269f5 100644 --- a/render/particle/collisonGenerator.go +++ b/render/particle/collisonGenerator.go @@ -49,7 +49,7 @@ func (cg *CollisionGenerator) GenerateParticle(bp *baseParticle) Particle { pos := p.GetPos() return &CollisionParticle{ p, - collision.NewReactiveSpace(collision.NewFullSpace(pos.X(), pos.Y(), w, h, 0, event.CID(bp.pID)), cg.HitMap), + collision.NewReactiveSpace(collision.NewFullSpace(pos.X(), pos.Y(), w, h, 0, event.CallerID(bp.pID)), cg.HitMap), } } diff --git a/render/particle/source.go b/render/particle/source.go index e1abe60d..722480d7 100644 --- a/render/particle/source.go +++ b/render/particle/source.go @@ -19,9 +19,11 @@ type Source struct { Generator Generator *Allocator + rotateBinding event.Binding + particles [blockSize]Particle nextPID int - CID event.CID + CID event.CallerID pIDBlock int stackLevel int EndFunc func() @@ -42,11 +44,12 @@ func NewSource(g Generator, stackLevel int) *Source { } // Init allows a source to be considered as an entity, and initializes it -func (ps *Source) Init() event.CID { - CID := event.NextID(ps) +func (ps *Source) Init() event.CallerID { + CID := event.DefaultCallerMap.Register(ps) ps.stopRotateAt = time.Now().Add( time.Duration(ps.Generator.GetBaseGenerator().Duration.Poll()) * time.Millisecond) - CID.Bind(event.Enter, rotateParticles) + + ps.rotateBinding = event.Bind(event.DefaultBus, event.Enter, CID, rotateParticles) ps.CID = CID ps.pIDBlock = ps.Allocate(ps.CID) return CID @@ -176,8 +179,8 @@ func (ps *Source) addParticles() { // rotateParticles updates particles over time as long // as a Source is active. -func rotateParticles(id event.CID, payload interface{}) int { - ps := id.E().(*Source) +func rotateParticles(id event.CallerID, _ event.EnterPayload) event.Response { + ps := event.DefaultCallerMap.GetEntity(id).(*Source) if ps.stopped { return 0 } @@ -197,33 +200,36 @@ func rotateParticles(id event.CID, payload interface{}) int { // clearParticles is used after a Source has been stopped // to continue moving old particles for as long as they exist. -func clearParticles(id event.CID, nothing interface{}) int { - if ps, ok := id.E().(*Source); ok { +func clearParticles(id event.CallerID, _ event.EnterPayload) event.Response { + iface := event.DefaultCallerMap.GetEntity(id) + if ps, ok := iface.(*Source); ok { if !ps.paused { if ps.cycleParticles() { } else { if ps.EndFunc != nil { ps.EndFunc() } - event.DestroyEntity(id) + // TODO: not default + event.DefaultCallerMap.DestroyEntity(id) ps.Deallocate(ps.pIDBlock) - return event.UnbindEvent + return event.UnbindThis } } return 0 } - return event.UnbindEvent + return event.UnbindThis } // Stop manually stops a Source, if its duration is infinite -// or if it should be stopped before expriring naturally. +// or if it should be stopped before expiring naturally. func (ps *Source) Stop() { if ps == nil { return } ps.stopped = true - ps.CID.UnbindAllAndRebind([]event.Bindable{clearParticles}, []string{event.Enter}) + ps.rotateBinding.Unbind() + event.Bind(event.DefaultBus, event.Enter, ps.CID, clearParticles) } // Pause on a Source just stops the repetition diff --git a/render/reverting.go b/render/reverting.go index c93d3823..bafa6d68 100644 --- a/render/reverting.go +++ b/render/reverting.go @@ -119,7 +119,7 @@ func (rv *Reverting) update() { } // SetTriggerID sets the ID AnimationEnd will trigger on for animating subtypes. -func (rv *Reverting) SetTriggerID(cid event.CID) { +func (rv *Reverting) SetTriggerID(cid event.CallerID) { if t, ok := rv.Modifiable.(Triggerable); ok { t.SetTriggerID(cid) } diff --git a/render/sequence.go b/render/sequence.go index d1a9bc9f..ef8731b5 100644 --- a/render/sequence.go +++ b/render/sequence.go @@ -20,7 +20,7 @@ type Sequence struct { lastChange time.Time sheetPos int frameTime int64 - cID event.CID + event.CallerID } // NewSequence returns a new sequence from the input modifiables, playing at @@ -68,18 +68,21 @@ func (sq *Sequence) Copy() Modifiable { return newSq } +var AnimationEnd = event.RegisterEvent[event.NoPayload]() + // SetTriggerID sets the ID that AnimationEnd will be triggered on when this // sequence loops over from its last frame to its first -func (sq *Sequence) SetTriggerID(id event.CID) { - sq.cID = id +func (sq *Sequence) SetTriggerID(id event.CallerID) { + sq.CallerID = id } func (sq *Sequence) update() { if sq.playing && time.Since(sq.lastChange).Nanoseconds() > sq.frameTime { sq.lastChange = time.Now() sq.sheetPos = (sq.sheetPos + 1) % len(sq.rs) - if sq.sheetPos == (len(sq.rs)-1) && sq.cID != 0 { - sq.cID.Trigger(event.AnimationEnd, nil) + if sq.sheetPos == (len(sq.rs)-1) && sq.CallerID != 0 { + // TODO: not default bus + event.TriggerForCallerOn(event.DefaultBus, sq.CallerID, AnimationEnd, event.NoPayload{}) } } } diff --git a/render/sequence_test.go b/render/sequence_test.go index 1a0c4ae4..aff13747 100644 --- a/render/sequence_test.go +++ b/render/sequence_test.go @@ -14,7 +14,7 @@ import ( type Dummy struct{} -func (d Dummy) Init() event.CID { +func (d Dummy) Init() event.CallerID { return event.NextID(d) } @@ -26,7 +26,7 @@ func TestSequenceTrigger(t *testing.T) { cid := Dummy{}.Init() sq.SetTriggerID(cid) triggerCh := make(chan struct{}) - cid.Bind(event.AnimationEnd, func(event.CID, interface{}) int { + cid.Bind(event.AnimationEnd, func(event.CallerID, interface{}) int { // This is a bad idea in real code, this will lock up // unbindings because the function that triggered this owns // the lock on the event bus until this function exits. diff --git a/render/switch.go b/render/switch.go index 9387205f..e493bc8a 100644 --- a/render/switch.go +++ b/render/switch.go @@ -187,7 +187,7 @@ func (c *Switch) IsStatic() bool { // Todo: standardize this with the other interface Set functions so that it // also only acts on the current subRenderable, or the other way around, or // somehow offer both options -func (c *Switch) SetTriggerID(cid event.CID) { +func (c *Switch) SetTriggerID(cid event.CallerID) { c.lock.RLock() for _, r := range c.subRenderables { if t, ok := r.(Triggerable); ok { diff --git a/window.go b/window.go index 06d434db..ce83ad81 100644 --- a/window.go +++ b/window.go @@ -357,3 +357,7 @@ func (w *Window) debugConsole(input io.Reader, output io.Writer) { debugstream.AttachToStream(w.ParentContext, input, output) debugstream.AddDefaultsForScope(w.ControllerID, w) } + +func (w *Window) GetCallerMap() *event.CallerMap { + return w.CallerMap +} diff --git a/window/window.go b/window/window.go index 8d13bae4..926df662 100644 --- a/window/window.go +++ b/window/window.go @@ -32,4 +32,5 @@ type Window interface { Quit() EventHandler() event.Handler + GetCallerMap() *event.CallerMap } diff --git a/window_test.go b/window_test.go index 23c15f79..44ea689f 100644 --- a/window_test.go +++ b/window_test.go @@ -14,7 +14,7 @@ func TestMouseClicks(t *testing.T) { sp := collision.NewFullSpace(0, 0, 100, 100, 1, 0) var triggered bool go event.ResolveChanges() - event.GlobalBind(mouse.Click, func(event.CID, interface{}) int { + event.GlobalBind(mouse.Click, func(event.CallerID, interface{}) int { triggered = true return 0 }) @@ -33,7 +33,7 @@ func TestMouseClicksRelative(t *testing.T) { sp := collision.NewFullSpace(0, 0, 100, 100, 1, 0) var triggered bool go c1.eventHandler.(*event.Bus).ResolveChanges() - c1.eventHandler.GlobalBind(mouse.ClickOn+"Relative", func(event.CID, interface{}) int { + c1.eventHandler.GlobalBind(mouse.ClickOn+"Relative", func(event.CallerID, interface{}) int { triggered = true return 0 }) @@ -49,7 +49,7 @@ func TestMouseClicksRelative(t *testing.T) { type ent struct{} -func (e ent) Init() event.CID { +func (e ent) Init() event.CallerID { return 0 } @@ -57,9 +57,9 @@ func TestPropagate(t *testing.T) { c1 := NewWindow() go event.ResolveChanges() var triggered bool - cid := event.CID(0).Parse(ent{}) + cid := event.CallerID(0).Parse(ent{}) s := collision.NewSpace(10, 10, 10, 10, cid) - s.CID.Bind("MouseDownOn", func(event.CID, interface{}) int { + s.CID.Bind("MouseDownOn", func(event.CallerID, interface{}) int { triggered = true return 0 }) From 2708f5cadf3216c810d8a3c117b79ea44a159638 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 19 Mar 2022 11:22:26 -0500 Subject: [PATCH 005/146] audio/pcm: drop writer js --- audio/pcm/writer_js.go | 142 ----------------------------------------- 1 file changed, 142 deletions(-) delete mode 100644 audio/pcm/writer_js.go diff --git a/audio/pcm/writer_js.go b/audio/pcm/writer_js.go deleted file mode 100644 index f6c0974e..00000000 --- a/audio/pcm/writer_js.go +++ /dev/null @@ -1,142 +0,0 @@ -//go:build js - -package pcm - -import ( - "fmt" - "math" - "sync" - "sync/atomic" - "syscall/js" - - "github.com/oakmound/oak/v3/oakerr" -) - -func initOS() error { - return nil -} - -var processorIndex int32 - -func newWriter(f Format) (Writer, error) { - if f.Bits != 32 { - return nil, oakerr.InvalidInput{ - InputName: "f.Bits", - } - } - window := js.Global() - actxConstruct := window.Get("AudioContext") - if actxConstruct.IsUndefined() || actxConstruct.IsNull() { - actxConstruct = window.Get("webkitAudioContext") - } - audioCtx := actxConstruct.New(map[string]interface{}{ - "latencyHint": "interactive", - "sampleRate": f.SampleRate, - }) - - processorName := "oakPCM" + strconv.Itoa(int(atomic.Add(&processorIndex, 1))) - window.Call("registerProcessor", processorName, "js class?") - audioCtx.Get("audioWorklet").Call("addModule", processorName) - - audioBuffer := audioCtx.Call("createBuffer", f.Channels, f.SampleRate*WriterBufferLengthInSeconds, f.SampleRate) - source := audioCtx.Call("createBufferSource") - - channelData := make([]js.Value, f.Channels) - for i := 0; i < int(f.Channels); i++ { - channelData[i] = audioBuffer.Call("getChannelData", i) - - } - - return &jsWriter{ - Format: f, - bufferSize: f.BytesPerSecond() * WriterBufferLengthInSeconds, - audioCtx: audioCtx, - buffer: audioBuffer, - channelData: channelData, - source: source, - }, nil -} - -type jsWriter struct { - sync.Mutex - Format - buffer js.Value - channelData []js.Value // Float32Array - source js.Value - audioCtx js.Value - lockedOffset uint32 - bufferSize uint32 - writeChannel int - writeOffset int - playing bool -} - -func (jsw *jsWriter) Close() error { - jsw.Lock() - defer jsw.Unlock() - - // we can't release this object? - if jsw.playing { - jsw.source.Call("stop") - } - return nil -} - -func (jsw *jsWriter) Reset() error { - jsw.Lock() - defer jsw.Unlock() - // emptyBuff := make([]byte, jsw.bufferSize) - // a, b, err := jsw.buff.LockBytes(0, jsw.bufferSize, 0) - // if err != nil { - // return err - // } - // copy(a, emptyBuff) - // if len(b) != 0 { - // copy(b, emptyBuff) - // } - // err = jsw.buff.UnlockBytes(a, b) - // jsw.Seek(0, io.SeekStart) - - //jsw.audioBuffer.Call("copyToChannel") - // make it a []float32 array somehow // then a byte array? or just convert - // from byte to float32 adaptively - return nil -} - -func (jsw *jsWriter) WritePCM(data []byte) (n int, err error) { - jsw.Lock() - defer jsw.Unlock() - - // we cannot write less than four bytes -- float32 - readAt := 0 - for len(data[readAt:]) >= 4 { - u32 := uint32(data[readAt]) + - uint32(data[readAt+1])<<8 + - uint32(data[readAt+2])<<16 + - uint32(data[readAt+3])<<24 - f32 := float32(u32) / float32(math.MaxInt32) - - jsw.channelData[jsw.writeChannel].SetIndex(jsw.writeOffset, f32) - - readAt += 4 - jsw.writeChannel++ - jsw.writeChannel %= int(jsw.Channels) - if jsw.writeChannel == 0 { - jsw.writeOffset++ - if jsw.writeOffset >= int((jsw.bufferSize/4)/uint32(jsw.Channels)) { - jsw.writeOffset = 0 - } - } - } - - jsw.source.Set("buffer", jsw.buffer) - if !jsw.playing { - fmt.Println("start playing") - jsw.playing = true - jsw.source.Set("loop", true) - jsw.source.Call("connect", jsw.audioCtx.Get("destination")) - jsw.source.Call("start") - } - - return readAt, nil -} From 7eefe21a03deeb2e359b1205a8f0ed8062d682c8 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Mon, 21 Mar 2022 20:34:39 -0500 Subject: [PATCH 006/146] event: move two three event type system: 1. unsafeBind(id,handler,interface{}), 2. globalBind(typedPayload) 3. bind(typedCaller,typedPayload) This migrates all packages but examples, entities, and joystickviz --- collision/attachSpace.go | 13 +++++--- collision/onCollision.go | 44 ++++++++++++------------- debugstream/scopeHelper.go | 6 ++-- debugtools/inputviz/keyboard.go | 25 +++++++------- debugtools/inputviz/mouse.go | 44 ++++++++++++------------- debugtools/mouse.go | 2 +- event/bind.go | 25 ++++++++++---- event/bus.go | 6 +++- event/caller.go | 14 +++++--- event/handler.go | 1 + event/internal.go | 2 +- inputTracker.go | 6 ++-- mouse/onCollision.go | 54 +++++++++++++++--------------- render/logicfps.go | 17 +++------- render/particle/source.go | 58 ++++++++++++++------------------- 15 files changed, 163 insertions(+), 154 deletions(-) diff --git a/collision/attachSpace.go b/collision/attachSpace.go index cf006bdf..42ab743e 100644 --- a/collision/attachSpace.go +++ b/collision/attachSpace.go @@ -26,7 +26,14 @@ func (as *AttachSpace) getAttachSpace() *AttachSpace { return as } +func (as *AttachSpace) CID() event.CallerID { + return (*as.aSpace).CID +} + +var _ attachSpace = &AttachSpace{} + type attachSpace interface { + event.Caller getAttachSpace() *AttachSpace } @@ -41,7 +48,7 @@ func Attach(v physics.Vector, s *Space, tree *Tree, offsets ...float64) error { if as.tree == nil { as.tree = DefaultTree } - as.binding = event.Bind(event.DefaultBus, event.Enter, s.CID, attachSpaceEnter) + as.binding = event.Bind(event.DefaultBus, event.Enter, t, attachSpaceEnter) if len(offsets) > 0 { as.offX = offsets[0] if len(offsets) > 1 { @@ -64,13 +71,11 @@ func Detach(s *Space) error { return errors.New("this space's entity is not composed of AttachSpace") } -func attachSpaceEnter(id event.CallerID, _ event.EnterPayload) event.Response { - asIface := event.DefaultCallerMap.GetEntity(id) +func attachSpaceEnter(asIface attachSpace, _ event.EnterPayload) event.Response { as := asIface.(attachSpace).getAttachSpace() x, y := as.follow.X()+as.offX, as.follow.Y()+as.offY if x != (*as.aSpace).X() || y != (*as.aSpace).Y() { - as.tree.UpdateSpace(x, y, (*as.aSpace).GetW(), (*as.aSpace).GetH(), *as.aSpace) } return 0 diff --git a/collision/onCollision.go b/collision/onCollision.go index 760f9996..67337a73 100644 --- a/collision/onCollision.go +++ b/collision/onCollision.go @@ -46,7 +46,7 @@ func PhaseCollisionWithBus(s *Space, tree *Tree, bus event.Handler, entities *ev if oc.tree == nil { oc.tree = DefaultTree } - event.Bind(bus, event.Enter, s.CID, phaseCollisionEnter(entities)) + bus.UnsafeBind(event.Enter.UnsafeEventID, s.CID, phaseCollisionEnter) return nil } return errors.New("This space's entity does not implement collisionPhase") @@ -58,33 +58,31 @@ var ( Stop = event.RegisterEvent[Label]() ) -func phaseCollisionEnter(entities *event.CallerMap) func(id event.CallerID, nothing event.EnterPayload) event.Response { - return func(id event.CallerID, _ event.EnterPayload) event.Response { - e := entities.GetEntity(id).(collisionPhase) - oc := e.getCollisionPhase() +func phaseCollisionEnter(id event.CallerID, handler event.Handler, _ interface{}) event.Response { + e := handler.GetCallerMap().GetEntity(id).(collisionPhase) + oc := e.getCollisionPhase() - // check hits - hits := oc.tree.Hits(oc.OnCollisionS) - newTouching := map[Label]bool{} + // check hits + hits := oc.tree.Hits(oc.OnCollisionS) + newTouching := map[Label]bool{} - // if any are new, trigger on collision - for _, h := range hits { - l := h.Label - if _, ok := oc.Touching[l]; !ok { - event.TriggerForCallerOn(oc.bus, id, Start, l) - } - newTouching[l] = true + // if any are new, trigger on collision + for _, h := range hits { + l := h.Label + if _, ok := oc.Touching[l]; !ok { + event.TriggerForCallerOn(oc.bus, id, Start, l) } + newTouching[l] = true + } - // if we lost any, trigger off collision - for l := range oc.Touching { - if _, ok := newTouching[l]; !ok { - event.TriggerForCallerOn(oc.bus, id, Stop, l) - } + // if we lost any, trigger off collision + for l := range oc.Touching { + if _, ok := newTouching[l]; !ok { + event.TriggerForCallerOn(handler, id, Stop, l) } + } - oc.Touching = newTouching + oc.Touching = newTouching - return 0 - } + return 0 } diff --git a/debugstream/scopeHelper.go b/debugstream/scopeHelper.go index 0d1b176b..7104b0b6 100644 --- a/debugstream/scopeHelper.go +++ b/debugstream/scopeHelper.go @@ -69,13 +69,13 @@ const explainMouseDetails = "the mext mouse click on the given window will print func mouseCommands(w window.Window) func([]string) string { return func(tokenString []string) string { - event.Bind(w.EventHandler(), mouse.Release, event.Global, mouseDetails(w)) + event.GlobalBind(w.EventHandler(), mouse.Release, mouseDetails(w)) return "" } } -func mouseDetails(w window.Window) func(event.CallerID, *mouse.Event) event.Response { - return func(nothing event.CallerID, me *mouse.Event) event.Response { +func mouseDetails(w window.Window) func(*mouse.Event) event.Response { + return func(me *mouse.Event) event.Response { viewPos := w.Viewport() x := int(me.X()) + viewPos[0] y := int(me.Y()) + viewPos[1] diff --git a/debugtools/inputviz/keyboard.go b/debugtools/inputviz/keyboard.go index 840cdbb8..4a905ac1 100644 --- a/debugtools/inputviz/keyboard.go +++ b/debugtools/inputviz/keyboard.go @@ -152,16 +152,17 @@ type Keyboard struct { ctx *scene.Context rs map[string]*render.Switch + + bindings []event.Binding } -func (k *Keyboard) Init() event.CallerID { - k.CID = k.ctx.CallerMap.NextID(k) - return k.CID +func (k *Keyboard) CID() event.CallerID { + return k.CallerID } func (k *Keyboard) RenderAndListen(ctx *scene.Context, layer int) error { k.ctx = ctx - k.Init() + k.CallerID = k.ctx.CallerMap.Register(k) if k.Rect.W() == 0 || k.Rect.H() == 0 { k.Rect.Max = k.Rect.Min.Add(floatgeom.Point2{320, 180}) @@ -220,30 +221,30 @@ func (k *Keyboard) RenderAndListen(ctx *scene.Context, layer int) error { } } - k.Bind(key.Down, key.Binding(func(id event.CallerID, ev key.Event) int { - kb, _ := k.ctx.CallerMap.GetEntity(id).(*Keyboard) + b1 := event.Bind(ctx.EventHandler, key.AnyDown, k, func(kb *Keyboard, ev key.Event) event.Response { btn := ev.Code.String()[4:] if kb.rs[btn] == nil { return 0 } kb.rs[btn].Set("pressed") return 0 - })) - k.Bind(key.Up, key.Binding(func(id event.CallerID, ev key.Event) int { - kb, _ := k.ctx.CallerMap.GetEntity(id).(*Keyboard) + }) + b2 := event.Bind(ctx.EventHandler, key.AnyUp, k, func(kb *Keyboard, ev key.Event) event.Response { btn := ev.Code.String()[4:] if kb.rs[btn] == nil { return 0 } kb.rs[btn].Set("released") return 0 - })) - + }) + k.bindings = []event.Binding{b1, b2} return nil } func (k *Keyboard) Destroy() { - k.UnbindAll() + for _, b := range k.bindings { + b.Unbind() + } for _, r := range k.rs { r.Undraw() } diff --git a/debugtools/inputviz/mouse.go b/debugtools/inputviz/mouse.go index 12964e6d..c07fcf2b 100644 --- a/debugtools/inputviz/mouse.go +++ b/debugtools/inputviz/mouse.go @@ -27,16 +27,18 @@ type Mouse struct { stateIncLock sync.RWMutex stateInc map[mouse.Button]int + + bindings []event.Binding } -func (m *Mouse) Init() event.CallerID { - m.CID = m.ctx.CallerMap.NextID(m) - return m.CID +func (m *Mouse) CID() event.CallerID { + return m.CallerID } func (m *Mouse) RenderAndListen(ctx *scene.Context, layer int) error { m.ctx = ctx - m.Init() + handler := ctx.EventHandler + m.CallerID = handler.GetCallerMap().Register(m) if m.Rect.W() == 0 || m.Rect.H() == 0 { m.Rect.Max = m.Rect.Min.Add(floatgeom.Point2{60, 100}) @@ -98,24 +100,21 @@ func (m *Mouse) RenderAndListen(ctx *scene.Context, layer int) error { ctx.DrawStack.Draw(m.posText, m.BaseLayer, layer+2) } - m.Bind(mouse.Press, mouse.Binding(func(id event.CallerID, ev *mouse.Event) int { - m, _ := m.ctx.CallerMap.GetEntity(id).(*Mouse) + b1 := event.Bind(handler, mouse.Press, m, func(m *Mouse, ev *mouse.Event) event.Response { m.rs[ev.Button].Set("pressed") m.stateIncLock.Lock() m.stateInc[ev.Button]++ m.stateIncLock.Unlock() return 0 - })) - m.Bind(mouse.Release, mouse.Binding(func(id event.CallerID, ev *mouse.Event) int { - m, _ := m.ctx.CallerMap.GetEntity(id).(*Mouse) + }) + b2 := event.Bind(handler, mouse.Release, m, func(m *Mouse, ev *mouse.Event) event.Response { m.rs[ev.Button].Set("released") m.stateIncLock.Lock() m.stateInc[ev.Button]++ m.stateIncLock.Unlock() return 0 - })) - m.Bind(mouse.ScrollDown, mouse.Binding(func(id event.CallerID, e *mouse.Event) int { - m, _ := m.ctx.CallerMap.GetEntity(id).(*Mouse) + }) + b3 := event.Bind(handler, mouse.ScrollDown, m, func(m *Mouse, ev *mouse.Event) event.Response { m.rs[mouse.ButtonMiddle].Set("scrolldown") m.stateIncLock.Lock() m.stateInc[mouse.ButtonMiddle]++ @@ -129,9 +128,8 @@ func (m *Mouse) RenderAndListen(ctx *scene.Context, layer int) error { m.stateIncLock.Unlock() }) return 0 - })) - m.Bind(mouse.ScrollUp, mouse.Binding(func(id event.CallerID, e *mouse.Event) int { - m, _ := m.ctx.CallerMap.GetEntity(id).(*Mouse) + }) + b4 := event.Bind(handler, mouse.ScrollUp, m, func(m *Mouse, ev *mouse.Event) event.Response { m.rs[mouse.ButtonMiddle].Set("scrollup") m.stateIncLock.Lock() m.stateInc[mouse.ButtonMiddle]++ @@ -145,13 +143,12 @@ func (m *Mouse) RenderAndListen(ctx *scene.Context, layer int) error { m.stateIncLock.Unlock() }) return 0 - })) - m.Bind(mouse.Drag, mouse.Binding(func(id event.CallerID, e *mouse.Event) int { - m, _ := m.ctx.CallerMap.GetEntity(id).(*Mouse) - m.lastMousePos.Point2 = e.Point2 + }) + b5 := event.Bind(handler, mouse.Drag, m, func(m *Mouse, ev *mouse.Event) event.Response { + m.lastMousePos.Point2 = ev.Point2 return 0 - })) - + }) + m.bindings = []event.Binding{b1, b2, b3, b4, b5} return nil } @@ -164,7 +161,10 @@ func (ps *posStringer) String() string { } func (m *Mouse) Destroy() { - m.UnbindAll() + // TODO: this is a lot of code to write to track and unbind all of an entity's bindings + for _, b := range m.bindings { + b.Unbind() + } for _, r := range m.rs { r.Undraw() } diff --git a/debugtools/mouse.go b/debugtools/mouse.go index 348ec851..7cd74b66 100644 --- a/debugtools/mouse.go +++ b/debugtools/mouse.go @@ -10,7 +10,7 @@ import ( // DebugMouseRelease will print the position and button pressed of the mouse when the mouse is released, if the given // key is held down at the time. If no key is given, it will always be printed func DebugMouseRelease(ctx *scene.Context, k string) { - event.Bind(ctx.EventHandler, mouse.Release, event.Global, func(_ event.CallerID, mev *mouse.Event) event.Response { + event.GlobalBind(ctx.EventHandler, mouse.Release, func(mev *mouse.Event) event.Response { if k == "" || ctx.KeyState.IsDown(k) { dlog.Info(mev) } diff --git a/event/bind.go b/event/bind.go index 807ec4e3..f1f692c9 100644 --- a/event/bind.go +++ b/event/bind.go @@ -81,20 +81,31 @@ func (bus *Bus) Unbind(loc Binding) { // A Bindable is a strongly typed callback function to be executed on Trigger. It must be paired // with an event registered via RegisterEvent. -type Bindable[T any] func(CallerID, T) Response +type Bindable[Payload any, C any] func(C, Payload) Response -func Bind[T any](b Handler, ev EventID[T], c CallerID, fn Bindable[T]) Binding { - return b.UnsafeBind(ev.UnsafeEventID, c, func(c CallerID, f interface{}) Response { - tf := f.(T) - return fn(c, tf) +func Bind[Payload any, C Caller](b Handler, ev EventID[Payload], c C, fn Bindable[Payload, C]) Binding { + return b.UnsafeBind(ev.UnsafeEventID, c.CID(), func(c CallerID, h Handler, payload interface{}) Response { + typedPayload := payload.(Payload) + ent := h.GetCallerMap().GetEntity(c) + typedEntity := ent.(C) + return fn(typedEntity, typedPayload) + }) +} + +type GlobalBindable[Payload any] func(Payload) Response + +func GlobalBind[Payload any](b Handler, ev EventID[Payload], fn GlobalBindable[Payload]) Binding { + return b.UnsafeBind(ev.UnsafeEventID, Global, func(c CallerID, h Handler, payload interface{}) Response { + typedPayload := payload.(Payload) + return fn(typedPayload) }) } // UnsafeBindable defines the underlying signature of all bindings. -type UnsafeBindable func(CallerID, interface{}) Response +type UnsafeBindable func(CallerID, Handler, interface{}) Response func EmptyBinding(f func()) UnsafeBindable { - return func(ci CallerID, i interface{}) Response { + return func(CallerID, Handler, interface{}) Response { f() return NoResponse } diff --git a/event/bus.go b/event/bus.go index 297d10a8..4dabda9c 100644 --- a/event/bus.go +++ b/event/bus.go @@ -118,4 +118,8 @@ func (bus *Bus) SetEnterLoopRate(frameDelay time.Duration) error { } bus.ticker.Reset(frameDelay) return nil -} \ No newline at end of file +} + +func (b *Bus) GetCallerMap() *CallerMap { + return b.callerMap +} diff --git a/event/caller.go b/event/caller.go index 9c4b59f0..c7869acc 100644 --- a/event/caller.go +++ b/event/caller.go @@ -10,13 +10,17 @@ type CallerID int64 const Global CallerID = 0 +type Caller interface { + CID() CallerID +} + // A CallerMap tracks CallerID mappings to Entities. // This is an alternative to passing in the entity via closure scoping, // and allows for more general bindings as simple top level functions. type CallerMap struct { highestID *int64 callersLock sync.RWMutex - callers map[CallerID]interface{} + callers map[CallerID]Caller } // NewCallerMap creates a caller map. A CallerMap @@ -24,14 +28,14 @@ type CallerMap struct { func NewCallerMap() *CallerMap { return &CallerMap{ highestID: new(int64), - callers: map[CallerID]interface{}{}, + callers: map[CallerID]Caller{}, } } // NextID finds the next available caller id // and returns it, after adding the given entity to // the caller map. -func (cm *CallerMap) Register(e interface{}) CallerID { +func (cm *CallerMap) Register(e Caller) CallerID { nextID := atomic.AddInt64(cm.highestID, 1) cm.callersLock.Lock() cm.callers[CallerID(nextID)] = e @@ -41,7 +45,7 @@ func (cm *CallerMap) Register(e interface{}) CallerID { // GetEntity returns the entity corresponding to the given ID within // the caller map. If no entity is found, it returns nil. -func (cm *CallerMap) GetEntity(id CallerID) interface{} { +func (cm *CallerMap) GetEntity(id CallerID) Caller { cm.callersLock.RLock() defer cm.callersLock.RUnlock() return cm.callers[id] @@ -67,6 +71,6 @@ func (cm *CallerMap) DestroyEntity(id CallerID) { func (cm *CallerMap) Reset() { cm.callersLock.Lock() *cm.highestID = 0 - cm.callers = map[CallerID]interface{}{} + cm.callers = map[CallerID]Caller{} cm.callersLock.Unlock() } diff --git a/event/handler.go b/event/handler.go index 7a64fd23..06f670d3 100644 --- a/event/handler.go +++ b/event/handler.go @@ -21,4 +21,5 @@ type Handler interface { UnsafeBind(UnsafeEventID, CallerID, UnsafeBindable) Binding Unbind(Binding) SetCallerMap(*CallerMap) + GetCallerMap() *CallerMap } diff --git a/event/internal.go b/event/internal.go index 9d1b9a8c..ba6d0ac0 100644 --- a/event/internal.go +++ b/event/internal.go @@ -39,7 +39,7 @@ func (bus *Bus) trigger(binds bindableList, eventID UnsafeEventID, callerID Call } go func() { if callerID == Global || bus.callerMap.HasEntity(callerID) { - response := bnd(callerID, data) + response := bnd(callerID, bus, data) switch response { case UnbindThis: // Q: Why does this call bus.Unbind when it already has the event index to delete? diff --git a/inputTracker.go b/inputTracker.go index 781096a4..0bf6b4c2 100644 --- a/inputTracker.go +++ b/inputTracker.go @@ -27,21 +27,21 @@ const ( ) func (w *Window) trackInputChanges() { - event.Bind(w.eventHandler, key.AnyDown, event.Global, func(event.CallerID, key.Event) event.Response { + event.GlobalBind(w.eventHandler, key.AnyDown, func(key.Event) event.Response { old := atomic.SwapInt32(&w.mostRecentInput, int32(InputKeyboard)) if InputType(old) != InputKeyboard { event.TriggerOn(w.eventHandler, InputChange, InputKeyboard) } return 0 }) - event.Bind(w.eventHandler, mouse.Press, event.Global, func(event.CallerID, *mouse.Event) event.Response { + event.GlobalBind(w.eventHandler, mouse.Press, func(*mouse.Event) event.Response { old := atomic.SwapInt32(&w.mostRecentInput, int32(InputMouse)) if InputType(old) != InputMouse { event.TriggerOn(w.eventHandler, InputChange, InputMouse) } return 0 }) - event.Bind(w.eventHandler, trackingJoystickChange, event.Global, func(event.CallerID, event.NoPayload) event.Response { + event.GlobalBind(w.eventHandler, trackingJoystickChange, func(event.NoPayload) event.Response { old := atomic.SwapInt32(&w.mostRecentInput, int32(InputMouse)) if InputType(old) != InputJoystick { event.TriggerOn(w.eventHandler, InputChange, InputJoystick) diff --git a/mouse/onCollision.go b/mouse/onCollision.go index 5e42cbae..be5803e1 100644 --- a/mouse/onCollision.go +++ b/mouse/onCollision.go @@ -37,7 +37,7 @@ func PhaseCollision(s *collision.Space, callerMap *event.CallerMap, handler even oc := cp.getCollisionPhase() oc.OnCollisionS = s oc.CallerMap = callerMap - event.Bind(handler, event.Enter, s.CID, phaseCollisionEnter(callerMap, handler)) + handler.UnsafeBind(event.Enter.UnsafeEventID, s.CID, phaseCollisionEnter) return nil } return errors.New("This space's entity does not implement collisionPhase") @@ -49,35 +49,35 @@ var ( Stop = event.RegisterEvent[*Event]() ) -func phaseCollisionEnter(callerMap *event.CallerMap, handler event.Handler) func(id event.CallerID, payload event.EnterPayload) event.Response { - return func(id event.CallerID, payload event.EnterPayload) event.Response { +func phaseCollisionEnter(id event.CallerID, handler event.Handler, _ interface{}) event.Response { + e, ok := handler.GetCallerMap().GetEntity(id).(collisionPhase) + if !ok { + return event.UnbindThis + } + oc := e.getCollisionPhase() + if oc == nil || oc.OnCollisionS == nil { + return 0 + } - e := callerMap.GetEntity(id).(collisionPhase) - oc := e.getCollisionPhase() - if oc == nil || oc.OnCollisionS == nil { - return 0 - } + // TODO: think about how this can more cleanly work with multiple windows + ev := oc.LastEvent + if ev == nil { + ev = &LastEvent + } + if ev.StopPropagation { + return 0 + } - // TODO: think about how this can more cleanly work with multiple windows - ev := oc.LastEvent - if ev == nil { - ev = &LastEvent + if oc.OnCollisionS.Contains(ev.ToSpace()) { + if !oc.wasTouching { + event.TriggerForCallerOn(handler, id, Start, ev) + oc.wasTouching = true } - if ev.StopPropagation { - return 0 + } else { + if oc.wasTouching { + event.TriggerForCallerOn(handler, id, Stop, ev) + oc.wasTouching = false } - - if oc.OnCollisionS.Contains(ev.ToSpace()) { - if !oc.wasTouching { - event.TriggerForCallerOn(handler, id, Start, ev) - oc.wasTouching = true - } - } else { - if oc.wasTouching { - event.TriggerForCallerOn(handler, id, Stop, ev) - oc.wasTouching = false - } - } - return 0 } + return 0 } diff --git a/render/logicfps.go b/render/logicfps.go index 3df01103..edce75c1 100644 --- a/render/logicfps.go +++ b/render/logicfps.go @@ -17,12 +17,8 @@ type LogicFPS struct { Smoothing float64 } -// Init satisfies event.Entity -func (lf *LogicFPS) Init() event.CallerID { - // TODO: not default caller map - id := event.DefaultCallerMap.Register(lf) - lf.CallerID = id - return id +func (lf LogicFPS) CID() event.CallerID { + return lf.CallerID } // NewLogicFPS returns a LogicFPS, which will render a counter of how fast it receives event.Enter events. @@ -39,17 +35,14 @@ func NewLogicFPS(smoothing float64, font *Font, x, y float64) *LogicFPS { lastTime: time.Now(), } lf.Text = font.NewIntText(&lf.fps, x, y) - lf.Init() + lf.CallerID = event.DefaultCallerMap.Register(lf) // TODO: not default bus - event.Bind(event.DefaultBus, event.Enter, lf.CallerID, logicFPSBind) + event.Bind(event.DefaultBus, event.Enter, lf, logicFPSBind) return lf } -func logicFPSBind(id event.CallerID, _ event.EnterPayload) event.Response { - // TODO v4: should bindings give you an interface instead of a callerID, so bindings don't need to - // know what caller map to look up the caller from? - lf := event.DefaultCallerMap.GetEntity(id).(*LogicFPS) +func logicFPSBind(lf *LogicFPS, _ event.EnterPayload) event.Response { t := time.Now() lf.fps = int((timing.FPS(lf.lastTime, t) * lf.Smoothing) + (float64(lf.fps) * (1 - lf.Smoothing))) lf.lastTime = t diff --git a/render/particle/source.go b/render/particle/source.go index 722480d7..6dab9391 100644 --- a/render/particle/source.go +++ b/render/particle/source.go @@ -21,9 +21,9 @@ type Source struct { rotateBinding event.Binding - particles [blockSize]Particle - nextPID int - CID event.CallerID + particles [blockSize]Particle + nextPID int + event.CallerID pIDBlock int stackLevel int EndFunc func() @@ -39,20 +39,18 @@ func NewSource(g Generator, stackLevel int) *Source { ps.Generator = g ps.stackLevel = stackLevel ps.Allocator = DefaultAllocator - ps.Init() - return ps -} - -// Init allows a source to be considered as an entity, and initializes it -func (ps *Source) Init() event.CallerID { - CID := event.DefaultCallerMap.Register(ps) + cid := event.DefaultCallerMap.Register(ps) ps.stopRotateAt = time.Now().Add( time.Duration(ps.Generator.GetBaseGenerator().Duration.Poll()) * time.Millisecond) - ps.rotateBinding = event.Bind(event.DefaultBus, event.Enter, CID, rotateParticles) - ps.CID = CID - ps.pIDBlock = ps.Allocate(ps.CID) - return CID + ps.rotateBinding = event.Bind(event.DefaultBus, event.Enter, ps, rotateParticles) + ps.CallerID = cid + ps.pIDBlock = ps.Allocate(ps.CallerID) + return ps +} + +func (ps *Source) CID() event.CallerID { + return ps.CallerID } func (ps *Source) cycleParticles() bool { @@ -179,8 +177,7 @@ func (ps *Source) addParticles() { // rotateParticles updates particles over time as long // as a Source is active. -func rotateParticles(id event.CallerID, _ event.EnterPayload) event.Response { - ps := event.DefaultCallerMap.GetEntity(id).(*Source) +func rotateParticles(ps *Source, _ event.EnterPayload) event.Response { if ps.stopped { return 0 } @@ -200,25 +197,20 @@ func rotateParticles(id event.CallerID, _ event.EnterPayload) event.Response { // clearParticles is used after a Source has been stopped // to continue moving old particles for as long as they exist. -func clearParticles(id event.CallerID, _ event.EnterPayload) event.Response { - iface := event.DefaultCallerMap.GetEntity(id) - if ps, ok := iface.(*Source); ok { - if !ps.paused { - if ps.cycleParticles() { - } else { - if ps.EndFunc != nil { - ps.EndFunc() - } - // TODO: not default - event.DefaultCallerMap.DestroyEntity(id) - ps.Deallocate(ps.pIDBlock) - return event.UnbindThis +func clearParticles(ps *Source, _ event.EnterPayload) event.Response { + if !ps.paused { + if ps.cycleParticles() { + } else { + if ps.EndFunc != nil { + ps.EndFunc() } + // TODO: not default + event.DefaultCallerMap.DestroyEntity(ps.CID()) + ps.Deallocate(ps.pIDBlock) + return event.UnbindThis } - - return 0 } - return event.UnbindThis + return 0 } // Stop manually stops a Source, if its duration is infinite @@ -229,7 +221,7 @@ func (ps *Source) Stop() { } ps.stopped = true ps.rotateBinding.Unbind() - event.Bind(event.DefaultBus, event.Enter, ps.CID, clearParticles) + event.Bind(event.DefaultBus, event.Enter, ps, clearParticles) } // Pause on a Source just stops the repetition From 64f205281fb7462b89a28f4f8af38f09d33da899 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Mon, 21 Mar 2022 20:57:29 -0500 Subject: [PATCH 007/146] scene: remove loop - adjusts the loading scene to not use a loop. - keyboard-viz example working --- debugtools/inputviz/joystick.go | 62 ++++++++++++--------------------- examples/keyboard-viz/main.go | 3 ++ init.go | 9 +---- joystick/joystick.go | 5 +-- loading.go | 2 +- scene/map.go | 3 -- scene/scene.go | 16 --------- sceneLoop.go | 15 +++++--- window.go | 9 +---- 9 files changed, 41 insertions(+), 83 deletions(-) diff --git a/debugtools/inputviz/joystick.go b/debugtools/inputviz/joystick.go index 9834c873..f8fea3b3 100644 --- a/debugtools/inputviz/joystick.go +++ b/debugtools/inputviz/joystick.go @@ -9,6 +9,8 @@ import ( "math" "time" + mkey "golang.org/x/mobile/event/key" + "github.com/oakmound/oak/v3/alg/floatgeom" "github.com/oakmound/oak/v3/dlog" "github.com/oakmound/oak/v3/event" @@ -55,11 +57,12 @@ type Joystick struct { lStickCenter floatgeom.Point2 rStickCenter floatgeom.Point2 cancel func() + + bindings []event.Binding } -func (j *Joystick) Init() event.CallerID { - j.CID = j.ctx.CallerMap.NextID(j) - return j.CID +func (j *Joystick) CID() event.CallerID { + return j.CallerID } func (j *Joystick) RenderAndListen(ctx *scene.Context, joy *joystick.Joystick, layer int) error { @@ -76,7 +79,7 @@ func (j *Joystick) RenderAndListen(ctx *scene.Context, joy *joystick.Joystick, l j.rs = make(map[string]render.Modifiable) j.lastState = &joystick.State{} j.ctx = ctx - j.Init() + j.CallerID = ctx.CallerMap.Register(j) j.rs["Outline"] = outline j.rs["LtStick"] = render.NewCircle(color.RGBA{255, 255, 255, 255}, 15, 12) j.rs["RtStick"] = render.NewCircle(color.RGBA{255, 255, 255, 255}, 15, 12) @@ -180,19 +183,22 @@ func (j *Joystick) RenderAndListen(ctx *scene.Context, joy *joystick.Joystick, l joystick.InputRightShoulder, } - j.CheckedIDBind(joystick.Disconnected, func(rend *Joystick, _ uint32) { + b1 := event.Bind(ctx.EventHandler, joystick.Disconnected, j, func(rend *Joystick, _ uint32) event.Response { j.Destroy() + return 0 }) - j.CheckedBind(key.Down+key.Spacebar, func(rend *Joystick, st *joystick.State) { + // TODO: it is bad that you need to import two 'key' packages + b2 := event.Bind(ctx.EventHandler, key.Down(mkey.CodeSpacebar), j, func(j *Joystick, _ key.Event) event.Response { j.joy.Vibrate(math.MaxUint16, math.MaxUint16) go func() { time.Sleep(1 * time.Second) j.joy.Vibrate(0, 0) }() + return 0 }) - j.CheckedBind(joystick.Change, func(rend *Joystick, st *joystick.State) { + b3 := event.Bind(ctx.EventHandler, joystick.Change, j, func(j *Joystick, st *joystick.State) event.Response { for _, inputB := range bts { b := string(inputB) r := j.rs[b] @@ -211,60 +217,36 @@ func (j *Joystick) RenderAndListen(ctx *scene.Context, joy *joystick.Joystick, l tgr = "RtTrigger" x = j.rs[tgr].X() j.rs[tgr].SetPos(x, j.triggerY+float64(st.TriggerR/16)) + return 0 }) - j.CheckedBind(joystick.LtStickChange, func(rend *Joystick, st *joystick.State) { + b4 := event.Bind(ctx.EventHandler, joystick.LtStickChange, j, func(j *Joystick, st *joystick.State) event.Response { pos := j.lStickCenter pos = pos.Add(floatgeom.Point2{ float64(st.StickLX / 2048), -float64(st.StickLY / 2048), }) j.rs["LtStick"].SetPos(pos.X(), pos.Y()) + return 0 }) - j.CheckedBind(joystick.RtStickChange, func(rend *Joystick, st *joystick.State) { + b5 := event.Bind(ctx.EventHandler, joystick.RtStickChange, j, func(j *Joystick, st *joystick.State) event.Response { pos := j.rStickCenter pos = pos.Add(floatgeom.Point2{ float64(st.StickRX / 2048), -float64(st.StickRY / 2048), }) j.rs["RtStick"].SetPos(pos.X(), pos.Y()) - }) - return nil -} - -func (j *Joystick) CheckedIDBind(ev string, f func(*Joystick, uint32)) { - j.Bind(ev, func(id event.CallerID, jid interface{}) int { - joy, ok := event.GetEntity(id).(*Joystick) - if !ok { - return 0 - } - n, ok := jid.(uint32) - if !ok { - return 0 - } - f(joy, n) - return 0 - }) -} - -func (j *Joystick) CheckedBind(ev string, f func(*Joystick, *joystick.State)) { - j.Bind(ev, func(id event.CallerID, state interface{}) int { - joy, ok := event.GetEntity(id).(*Joystick) - if !ok { - return 0 - } - st, ok := state.(*joystick.State) - if !ok { - return 0 - } - f(joy, st) return 0 }) + j.bindings = []event.Binding{b1, b2, b3, b4, b5} + return nil } func (j *Joystick) Destroy() { - j.UnbindAll() + for _, b := range j.bindings { + b.Unbind() + } for _, r := range j.rs { r.Undraw() } diff --git a/examples/keyboard-viz/main.go b/examples/keyboard-viz/main.go index ce10b8cc..4ba204f7 100644 --- a/examples/keyboard-viz/main.go +++ b/examples/keyboard-viz/main.go @@ -8,6 +8,7 @@ import ( "github.com/oakmound/oak/v3" "github.com/oakmound/oak/v3/alg/floatgeom" "github.com/oakmound/oak/v3/debugtools/inputviz" + "github.com/oakmound/oak/v3/dlog" "github.com/oakmound/oak/v3/render" "github.com/oakmound/oak/v3/scene" ) @@ -15,6 +16,7 @@ import ( func main() { oak.AddScene("keyviz", scene.Scene{ Start: func(ctx *scene.Context) { + fmt.Println("start") fnt, _ := render.DefFontGenerator.RegenerateWith(func(fg render.FontGenerator) render.FontGenerator { fg.Color = image.NewUniform(color.RGBA{0, 0, 0, 255}) fg.Size = 13 @@ -30,6 +32,7 @@ func main() { }, }) err := oak.Init("keyviz", func(c oak.Config) (oak.Config, error) { + c.Debug.Level = dlog.VERBOSE.String() c.Screen.Width = 800 c.Screen.Height = 300 return c, nil diff --git a/init.go b/init.go index e2ab5694..d7aa2291 100644 --- a/init.go +++ b/init.go @@ -74,14 +74,7 @@ func (w *Window) Init(firstScene string, configOptions ...ConfigOption) error { overrideInit(w) - go w.sceneLoop(firstScene, w.config.TrackInputChanges) - if w.config.BatchLoad { - w.startupLoading = true - go func() { - w.loadAssets(w.config.Assets.ImagePath, w.config.Assets.AudioPath) - w.endLoad() - }() - } + go w.sceneLoop(firstScene, w.config.TrackInputChanges, w.config.BatchLoad) if w.config.EnableDebugConsole { go w.debugConsole(os.Stdin, os.Stdout) } diff --git a/joystick/joystick.go b/joystick/joystick.go index f2ed83ef..1500dc15 100644 --- a/joystick/joystick.go +++ b/joystick/joystick.go @@ -31,7 +31,7 @@ const ( InputRightStick Input = "RightStick" ) -// Events. All events include a *State payload. +// Events. All events but Disconnected include a *State payload. var ( Change = event.RegisterEvent[*State]() ButtonDown = event.RegisterEvent[*State]() @@ -40,7 +40,8 @@ var ( LtTriggerChange = event.RegisterEvent[*State]() RtStickChange = event.RegisterEvent[*State]() LtStickChange = event.RegisterEvent[*State]() - Disconnected = event.RegisterEvent[*State]() + // Disconnected includes the ID of the joystick that disconnected. + Disconnected = event.RegisterEvent[uint32]() ) // Init calls any os functions necessary to detect joysticks diff --git a/loading.go b/loading.go index 7293da61..70c68e8c 100644 --- a/loading.go +++ b/loading.go @@ -38,7 +38,7 @@ func (w *Window) loadAssets(imageDir, audioDir string) { func (w *Window) endLoad() { dlog.Verb("Done Loading") - w.startupLoading = false + w.NextScene() } // SetFS updates all calls oak or oak's subpackages will make to read from the given filesystem. diff --git a/scene/map.go b/scene/map.go index 6687d260..deaa77e8 100644 --- a/scene/map.go +++ b/scene/map.go @@ -48,9 +48,6 @@ func (m *Map) AddScene(name string, s Scene) error { if s.Start == nil { s.Start = func(*Context) {} } - if s.Loop == nil { - s.Loop = func() bool { return true } - } if s.End == nil { s.End = GoTo(name) } diff --git a/scene/scene.go b/scene/scene.go index 2e7d7420..5f5cf641 100644 --- a/scene/scene.go +++ b/scene/scene.go @@ -12,9 +12,6 @@ type Scene struct { // what scene came before this one and a direct reference to clean data structures // for event handling and rendering Start func(ctx *Context) - // If Loop returns true, the scene will continue - // If Loop returns false, End will be called to determine the next scene - Loop func() (cont bool) // End is a function returning the next scene and a SceneResult of // input settings for the next scene. End func() (nextScene string, result *Result) @@ -27,19 +24,6 @@ type Result struct { Transition } -// BooleanLoop returns a Loop function that will end a scene as soon as the -// input boolean is false, resetting it to true in the process for the -// next scene -func BooleanLoop(b *bool) func() (cont bool) { - return func() bool { - if !(*b) { - *b = true - return false - } - return true - } -} - // GoTo returns an End function that, without any other customization possible, // will change to the input next scene. func GoTo(nextScene string) func() (nextScene string, result *Result) { diff --git a/sceneLoop.go b/sceneLoop.go index c2fe80dc..5b07452f 100644 --- a/sceneLoop.go +++ b/sceneLoop.go @@ -14,10 +14,17 @@ import ( // for preloading assets const oakLoadingScene = "oak:loading" -func (w *Window) sceneLoop(first string, trackingInputs bool) { +func (w *Window) sceneLoop(first string, trackingInputs, batchLoad bool) { w.SceneMap.AddScene(oakLoadingScene, scene.Scene{ - Loop: func() bool { - return w.startupLoading + Start: func(ctx *scene.Context) { + if batchLoad { + go func() { + w.loadAssets(w.config.Assets.ImagePath, w.config.Assets.AudioPath) + w.endLoad() + }() + } else { + go w.endLoad() + } }, End: func() (string, *scene.Result) { return w.firstScene, &scene.Result{ @@ -98,8 +105,6 @@ func (w *Window) sceneLoop(first string, trackingInputs bool) { case <-w.quitCh: cancel() return - case <-w.sceneCh: - cont = scen.Loop() case nextSceneOverride = <-w.skipSceneCh: cont = false } diff --git a/window.go b/window.go index ce83ad81..9f109d07 100644 --- a/window.go +++ b/window.go @@ -43,11 +43,6 @@ type Window struct { // TODO: most of these channels are not closed cleanly transitionCh chan struct{} - // The Scene channel receives a signal - // when a scene's .loop() function should - // be called. - sceneCh chan struct{} - // The skip scene channel receives a debug // signal to forcibly go to the next // scene. @@ -157,8 +152,7 @@ type Window struct { exitError error ParentContext context.Context - startupLoading bool - useViewBounds bool + useViewBounds bool // UseAspectRatio determines whether new window changes will distort or // maintain the relative width to height ratio of the screen buffer. UseAspectRatio bool @@ -175,7 +169,6 @@ func NewWindow() *Window { c := &Window{ State: key.NewState(), transitionCh: make(chan struct{}), - sceneCh: make(chan struct{}), skipSceneCh: make(chan string), quitCh: make(chan struct{}), drawCh: make(chan struct{}), From f5d5052cdeebb3b14b263954198de02f767d9724 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Tue, 22 Mar 2022 06:44:01 -0500 Subject: [PATCH 008/146] entities: convert to event v4 --- entities/doodad.go | 42 +++++++++++------------------------------ entities/interactive.go | 19 ++++++++++--------- entities/moving.go | 18 ++++++++++-------- entities/reactive.go | 18 ++++++++++-------- entities/solid.go | 22 +++++++++++---------- 5 files changed, 53 insertions(+), 66 deletions(-) diff --git a/entities/doodad.go b/entities/doodad.go index 55b2bb51..bef8722a 100644 --- a/entities/doodad.go +++ b/entities/doodad.go @@ -21,39 +21,19 @@ func NewDoodad(x, y float64, r render.Renderable, cid event.CallerID) *Doodad { if r != nil { r.SetPos(x, y) } - d := Doodad{} + d := &Doodad{} d.Point = *NewPoint(x, y) d.R = r - d.CID = cid.Parse(&d) - return &d -} - -// Init satisfies event.Entity -func (d *Doodad) Init() event.CallerID { - d.CID = event.NextID(d) - return d.CID -} - -// GetID returns this Doodad's CID -// Consider: are these getters needed? -func (d *Doodad) GetID() event.CallerID { - return d.CID -} - -// GetRenderable returns this Doodad's Renderable -func (d *Doodad) GetRenderable() render.Renderable { - return d.R + if cid == 0 { + d.CallerID = event.DefaultCallerMap.Register(d) + } else { + d.CallerID = cid + } + return d } -// SetRenderable sets this Doodad's renderable, drawing it. -// Todo:this automatic drawing doesn't really work with our -// two tiers of draw layers -func (d *Doodad) SetRenderable(r render.Renderable) { - if d.R != nil { - d.R.Undraw() - } - d.R = r - render.Draw(d.R, d.R.GetLayer()) +func (d *Doodad) CID() event.CallerID { + return d.CallerID } // Destroy cleans up the events, renderable and @@ -62,8 +42,8 @@ func (d *Doodad) Destroy() { if d.R != nil { d.R.Undraw() } - d.CID.UnbindAll() - event.DestroyEntity(d.CID) + event.DefaultBus.UnbindAllFrom(d.CallerID) + event.DefaultCallerMap.DestroyEntity(d.CallerID) } // Overwrites diff --git a/entities/interactive.go b/entities/interactive.go index 12f3a450..1a24c77c 100644 --- a/entities/interactive.go +++ b/entities/interactive.go @@ -17,20 +17,21 @@ type Interactive struct { func NewInteractive(x, y, w, h float64, r render.Renderable, tree *collision.Tree, cid event.CallerID, friction float64) *Interactive { - i := Interactive{} - cid = cid.Parse(&i) - i.Reactive = *NewReactive(x, y, w, h, r, tree, cid) + i := &Interactive{} + if cid == 0 { + i.CallerID = event.DefaultCallerMap.Register(i) + } else { + i.CallerID = cid + } + i.Reactive = *NewReactive(x, y, w, h, r, tree, i.CallerID) i.vMoving = vMoving{ Delta: physics.NewVector(0, 0), Speed: physics.NewVector(0, 0), Friction: friction, } - return &i + return i } -// Init satisfies event.Entity -func (iv *Interactive) Init() event.CallerID { - cID := event.NextID(iv) - iv.CID = cID - return cID +func (i *Interactive) CID() event.CallerID { + return i.CallerID } diff --git a/entities/moving.go b/entities/moving.go index fe4968a0..62b3a575 100644 --- a/entities/moving.go +++ b/entities/moving.go @@ -15,21 +15,23 @@ type Moving struct { // NewMoving returns a new Moving func NewMoving(x, y, w, h float64, r render.Renderable, tree *collision.Tree, cid event.CallerID, friction float64) *Moving { - m := Moving{} - cid = cid.Parse(&m) - m.Solid = *NewSolid(x, y, w, h, r, tree, cid) + m := &Moving{} + if cid == 0 { + m.CallerID = event.DefaultCallerMap.Register(m) + } else { + m.CallerID = cid + } + m.Solid = *NewSolid(x, y, w, h, r, tree, m.CallerID) m.vMoving = vMoving{ Delta: physics.NewVector(0, 0), Speed: physics.NewVector(0, 0), Friction: friction, } - return &m + return m } -// Init satisfies event.Entity -func (m *Moving) Init() event.CallerID { - m.CID = event.NextID(m) - return m.CID +func (m *Moving) CID() event.CallerID { + return m.CallerID } // ShiftVector probably shouldn't be on moving but it lets you diff --git a/entities/reactive.go b/entities/reactive.go index 8cea369f..d6f0a85f 100644 --- a/entities/reactive.go +++ b/entities/reactive.go @@ -18,9 +18,13 @@ type Reactive struct { // NewReactive returns a new Reactive struct. The added space will // be added to the input tree, or DefTree if none is given. func NewReactive(x, y, w, h float64, r render.Renderable, tree *collision.Tree, cid event.CallerID) *Reactive { - rct := Reactive{} - cid = cid.Parse(&rct) - rct.Doodad = *NewDoodad(x, y, r, cid) + rct := &Reactive{} + if cid == 0 { + rct.CallerID = event.DefaultCallerMap.Register(rct) + } else { + rct.CallerID = cid + } + rct.Doodad = *NewDoodad(x, y, r, rct.CallerID) rct.W = w rct.H = h rct.RSpace = collision.NewReactiveSpace(collision.NewSpace(x, y, w, h, cid), map[collision.Label]collision.OnHit{}) @@ -30,7 +34,7 @@ func NewReactive(x, y, w, h float64, r render.Renderable, tree *collision.Tree, rct.RSpace.Tree = tree rct.Tree = tree rct.Tree.Add(rct.RSpace.Space) - return &rct + return rct } // SetDim sets the dimensions of this reactive's space and it's logical dimensions @@ -72,10 +76,8 @@ func (r *Reactive) GetReactiveSpace() *collision.ReactiveSpace { // Overwrites -// Init satisfies event.Entity -func (r *Reactive) Init() event.CallerID { - r.CID = event.NextID(r) - return r.CID +func (r *Reactive) CID() event.CallerID { + return r.CallerID } // ShiftPos acts like SetPos if given r.X()+x, r.Y()+y diff --git a/entities/solid.go b/entities/solid.go index ee104334..934ce90b 100644 --- a/entities/solid.go +++ b/entities/solid.go @@ -18,9 +18,13 @@ type Solid struct { // belongs to the given collision tree. If nil is given as the tree, it will // belong to collision.DefTree func NewSolid(x, y, w, h float64, r render.Renderable, tree *collision.Tree, cid event.CallerID) *Solid { - s := Solid{} - cid = cid.Parse(&s) - s.Doodad = *NewDoodad(x, y, r, cid) + s := &Solid{} + if cid == 0 { + s.CallerID = event.DefaultCallerMap.Register(s) + } else { + s.CallerID = cid + } + s.Doodad = *NewDoodad(x, y, r, s.CallerID) s.W = w s.H = h if tree == nil { @@ -29,7 +33,11 @@ func NewSolid(x, y, w, h float64, r render.Renderable, tree *collision.Tree, cid s.Tree = tree s.Space = collision.NewSpace(x, y, w, h, cid) s.Tree.Add(s.Space) - return &s + return s +} + +func (s *Solid) CID() event.CallerID { + return s.CallerID } // SetDim sets the logical dimensions of the solid and the real @@ -98,12 +106,6 @@ func (s *Solid) HitLabel(classtype collision.Label) *collision.Space { // Overwrites -// Init satisfies event.Entity -func (s *Solid) Init() event.CallerID { - s.CID = event.NextID(s) - return s.CID -} - // SetPos sets the position of the collision space, the logical position, // and the renderable position of the solid. func (s *Solid) SetPos(x float64, y float64) { From e5facb652565c93d5bb4771c329314f51f09c143 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Tue, 22 Mar 2022 06:49:08 -0500 Subject: [PATCH 009/146] event: add unbind all helper, fix ticker and bindable list logic --- event/bind.go | 10 ++++++++++ event/bus.go | 4 ++-- event/handler.go | 1 + event/internal.go | 2 +- examples/pong/main.go | 23 +++++++++++------------ 5 files changed, 25 insertions(+), 15 deletions(-) diff --git a/event/bind.go b/event/bind.go index f1f692c9..55c88723 100644 --- a/event/bind.go +++ b/event/bind.go @@ -110,3 +110,13 @@ func EmptyBinding(f func()) UnsafeBindable { return NoResponse } } + +func (bus *Bus) UnbindAllFrom(c CallerID) { + go func() { + bus.mutex.Lock() + for _, callerMap := range bus.bindingMap { + delete(callerMap, c) + } + bus.mutex.Unlock() + }() +} diff --git a/event/bus.go b/event/bus.go index 4dabda9c..e99ef700 100644 --- a/event/bus.go +++ b/event/bus.go @@ -73,10 +73,11 @@ func (bus *Bus) EnterLoop(frameDelay time.Duration) { bus.framesElapsed = 0 if bus.ticker == nil { bus.ticker = time.NewTicker(frameDelay) + } else { + bus.ticker.Reset(frameDelay) } bus.doneCh = make(chan struct{}) go func() { - bus.ticker.Reset(frameDelay) frameDelayF64 := float64(frameDelay) lastTick := time.Now() for { @@ -101,7 +102,6 @@ func (bus *Bus) EnterLoop(frameDelay time.Duration) { func (bus *Bus) Stop() error { if bus.ticker != nil { bus.ticker.Stop() - bus.ticker = nil } close(bus.doneCh) return nil diff --git a/event/handler.go b/event/handler.go index 06f670d3..c5a13613 100644 --- a/event/handler.go +++ b/event/handler.go @@ -20,6 +20,7 @@ type Handler interface { Trigger(event UnsafeEventID, data interface{}) chan struct{} UnsafeBind(UnsafeEventID, CallerID, UnsafeBindable) Binding Unbind(Binding) + UnbindAllFrom(CallerID) SetCallerMap(*CallerMap) GetCallerMap() *CallerMap } diff --git a/event/internal.go b/event/internal.go index ba6d0ac0..a27fcbb3 100644 --- a/event/internal.go +++ b/event/internal.go @@ -21,7 +21,7 @@ func (eb *Bus) getBindableList(eventID UnsafeEventID, callerID CallerID) bindabl } bl := eb.bindingMap[eventID][callerID] if bl == nil { - bl := make(bindableList) + bl = make(bindableList) eb.bindingMap[eventID][callerID] = bl } return bl diff --git a/examples/pong/main.go b/examples/pong/main.go index 7ce8154e..24dea2a3 100644 --- a/examples/pong/main.go +++ b/examples/pong/main.go @@ -25,10 +25,10 @@ const ( func main() { oak.AddScene("pong", - scene.Scene{Start: func(*scene.Context) { - newPaddle(20, 200, 1) - newPaddle(600, 200, 2) - newBall(320, 240) + scene.Scene{Start: func(ctx *scene.Context) { + newPaddle(ctx, 20, 200, 1) + newPaddle(ctx, 600, 200, 2) + newBall(ctx, 320, 240) render.Draw(render.DefaultFont().NewIntText(&score2, 200, 20), 3) render.Draw(render.DefaultFont().NewIntText(&score1, 400, 20), 3) }}) @@ -38,10 +38,10 @@ func main() { }) } -func newBall(x, y float64) { +func newBall(ctx *scene.Context, x, y float64) { b := entities.NewMoving(x, y, 10, 10, render.NewColorBoxR(10, 10, color.RGBA{255, 255, 255, 255}), nil, 0, 0) render.Draw(b.R, 2) - b.Bind(event.Enter, func(id event.CallerID, nothing interface{}) int { + event.GlobalBind(ctx.EventHandler, event.Enter, func(_ event.EnterPayload) event.Response { if b.Delta.X() == 0 && b.Delta.Y() == 0 { b.Delta.SetY((rand.Float64() - 0.5) * 4) b.Delta.SetX((rand.Float64() - 0.5) * 16) @@ -70,21 +70,20 @@ func newBall(x, y float64) { }) } -func newPaddle(x, y float64, player int) { +func newPaddle(ctx *scene.Context, x, y float64, player int) { p := entities.NewMoving(x, y, 20, 100, render.NewColorBoxR(20, 100, color.RGBA{255, 255, 255, 255}), nil, 0, 0) p.Speed.SetY(8) render.Draw(p.R, 1) p.Space.UpdateLabel(hitPaddle) if player == 1 { - p.Bind(event.Enter, enterPaddle(key.UpArrow, key.DownArrow)) + event.Bind(ctx.EventHandler, event.Enter, p, enterPaddle(key.UpArrow, key.DownArrow)) } else { - p.Bind(event.Enter, enterPaddle(key.W, key.S)) + event.Bind(ctx.EventHandler, event.Enter, p, enterPaddle(key.W, key.S)) } } -func enterPaddle(up, down string) func(event.CallerID, interface{}) int { - return func(id event.CallerID, nothing interface{}) int { - p := id.E().(*entities.Moving) +func enterPaddle(up, down string) func(*entities.Moving, event.EnterPayload) event.Response { + return func(p *entities.Moving, _ event.EnterPayload) event.Response { p.Delta.SetY(0) if oak.IsDown(up) { p.Delta.SetY(-p.Speed.Y()) From 38bef9dfbb36904ad062c1215e04a2a19f14e193 Mon Sep 17 00:00:00 2001 From: implausiblyfun Date: Sat, 26 Mar 2022 09:08:31 -0400 Subject: [PATCH 010/146] examples: Update a few examples without dependencies to have the new binding system --- examples/bezier/main.go | 30 ++++++++++++++-------------- examples/click-propagation/main.go | 32 ++++++++++++------------------ examples/collision-demo/main.go | 19 +++++++++--------- 3 files changed, 38 insertions(+), 43 deletions(-) diff --git a/examples/bezier/main.go b/examples/bezier/main.go index fd78d848..92a65afe 100644 --- a/examples/bezier/main.go +++ b/examples/bezier/main.go @@ -53,23 +53,23 @@ func main() { return "" }}) - oak.AddScene("bezier", scene.Scene{Start: func(*scene.Context) { + oak.AddScene("bezier", scene.Scene{Start: func(ctx *scene.Context) { mouseFloats := []float64{} - event.GlobalBind(mouse.Press, func(_ event.CallerID, mouseEvent interface{}) int { - me := mouseEvent.(*mouse.Event) - // Left click to add a point to the curve - if me.Button == mouse.ButtonLeft { - mouseFloats = append(mouseFloats, float64(me.X()), float64(me.Y())) - renderCurve(mouseFloats) - // Perform any other click to reset the drawn curve - } else { - mouseFloats = []float64{} - if cmp != nil { - cmp.Undraw() + event.GlobalBind(ctx.EventHandler, + mouse.Press, func(me *mouse.Event) event.Response { + // Left click to add a point to the curve + if me.Button == mouse.ButtonLeft { + mouseFloats = append(mouseFloats, float64(me.X()), float64(me.Y())) + renderCurve(mouseFloats) + // Perform any other click to reset the drawn curve + } else { + mouseFloats = []float64{} + if cmp != nil { + cmp.Undraw() + } } - } - return 0 - }) + return 0 + }) }}) oak.Init("bezier", func(c oak.Config) (oak.Config, error) { c.EnableDebugConsole = true diff --git a/examples/click-propagation/main.go b/examples/click-propagation/main.go index ba3304bc..2cf97753 100644 --- a/examples/click-propagation/main.go +++ b/examples/click-propagation/main.go @@ -26,7 +26,7 @@ func main() { for x := 20.0; x < 400; x += 20 { z++ y -= 20 - newHoverButton(x, y, 35, 35, color.RGBA{200, 200, 200, 200}, z) + newHoverButton(ctx, x, y, 35, 35, color.RGBA{200, 200, 200, 200}, z) } }, }) @@ -40,44 +40,38 @@ type hoverButton struct { *changingColorBox } -func (hb *hoverButton) Init() event.CallerID { - hb.id = event.NextID(hb) +func (hb *hoverButton) CID() event.CallerID { return hb.id } -func newHoverButton(x, y, w, h float64, clr color.RGBA, layer int) { +func newHoverButton(ctx *scene.Context, x, y, w, h float64, clr color.RGBA, layer int) { hb := &hoverButton{} - hb.Init() + hb.id = ctx.CallerMap.Register(hb) hb.changingColorBox = newChangingColorBox(x, y, int(w), int(h), clr) sp := collision.NewSpace(x, y, w, h, hb.id) sp.SetZLayer(float64(layer)) mouse.Add(sp) - mouse.PhaseCollision(sp) + mouse.PhaseCollision(sp, ctx.EventHandler.GetCallerMap(), ctx.EventHandler) render.Draw(hb.changingColorBox, 0, layer) - hb.id.Bind(mouse.ClickOn, func(c event.CallerID, i interface{}) int { - hb := event.GetEntity(c).(*hoverButton) - me := i.(*mouse.Event) - fmt.Println(c, me.Point2) - hb.changingColorBox.c = color.RGBA{128, 128, 128, 128} + + event.Bind(ctx.EventHandler, mouse.Click, hb, func(box *hoverButton, me *mouse.Event) event.Response { + fmt.Println(box, me.Point2) + box.changingColorBox.c = color.RGBA{128, 128, 128, 128} me.StopPropagation = true return 0 }) - hb.id.Bind(mouse.Start, func(c event.CallerID, i interface{}) int { + event.Bind(ctx.EventHandler, mouse.Start, hb, func(box *hoverButton, me *mouse.Event) event.Response { fmt.Println("start") - hb := event.GetEntity(c).(*hoverButton) - me := i.(*mouse.Event) - hb.changingColorBox.c = color.RGBA{50, 50, 50, 50} + box.changingColorBox.c = color.RGBA{50, 50, 50, 50} me.StopPropagation = true return 0 }) - hb.id.Bind(mouse.Stop, func(c event.CallerID, i interface{}) int { + event.Bind(ctx.EventHandler, mouse.Stop, hb, func(box *hoverButton, me *mouse.Event) event.Response { fmt.Println("stop") - hb := event.GetEntity(c).(*hoverButton) - me := i.(*mouse.Event) - hb.changingColorBox.c = clr + box.changingColorBox.c = clr me.StopPropagation = true return 0 }) diff --git a/examples/collision-demo/main.go b/examples/collision-demo/main.go index 5b5e5843..4d32722e 100644 --- a/examples/collision-demo/main.go +++ b/examples/collision-demo/main.go @@ -20,13 +20,13 @@ const ( ) func main() { - oak.AddScene("demo", scene.Scene{Start: func(*scene.Context) { + oak.AddScene("demo", scene.Scene{Start: func(ctx *scene.Context) { act := &AttachCollisionTest{} - act.Solid = entities.NewSolid(50, 50, 50, 50, render.NewColorBox(50, 50, color.RGBA{0, 0, 0, 255}), nil, act.Init()) + act.Solid = entities.NewSolid(50, 50, 50, 50, render.NewColorBox(50, 50, color.RGBA{0, 0, 0, 255}), nil, ctx.CallerMap.Register(act)) collision.Attach(act.Vector, act.Space, nil, 0, 0) - act.Bind(event.Enter, func(event.CallerID, interface{}) int { + event.Bind(ctx.EventHandler, event.Enter, act, func(act *AttachCollisionTest, ev event.EnterPayload) event.Response { if act.ShouldUpdate { act.ShouldUpdate = false act.R.Undraw() @@ -56,8 +56,8 @@ func main() { render.Draw(act.R, 0, 1) collision.PhaseCollision(act.Space, nil) - act.Bind(collision.Start, func(id event.CallerID, label interface{}) int { - l := label.(collision.Label) + + event.Bind(ctx.EventHandler, collision.Start, act, func(act *AttachCollisionTest, l collision.Label) event.Response { switch l { case RED: act.r += 125 @@ -75,8 +75,7 @@ func main() { } return 0 }) - act.Bind(collision.Stop, func(id event.CallerID, label interface{}) int { - l := label.(collision.Label) + event.Bind(ctx.EventHandler, collision.Stop, act, func(act *AttachCollisionTest, l collision.Label) event.Response { switch l { case RED: act.r -= 125 @@ -136,10 +135,12 @@ type AttachCollisionTest struct { nextR render.Renderable } -func (act *AttachCollisionTest) Init() event.CallerID { - return event.NextID(act) +// CID returns the event.CallerID so that this can be bound to. +func (act *AttachCollisionTest) CID() event.CallerID { + return act.CallerID } +// UpdateR with the rgb set on the act. func (act *AttachCollisionTest) UpdateR() { act.nextR = render.NewColorBox(50, 50, color.RGBA{uint8(act.r), uint8(act.g), uint8(act.b), 255}) act.nextR.SetPos(act.X(), act.Y()) From 480e791f1a9e0f939f323429d6a5d076310ebf12 Mon Sep 17 00:00:00 2001 From: implausiblyfun Date: Sat, 26 Mar 2022 12:08:27 -0400 Subject: [PATCH 011/146] event: Update Bindable signature for better error messages --- event/bind.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/event/bind.go b/event/bind.go index 55c88723..9a9c9854 100644 --- a/event/bind.go +++ b/event/bind.go @@ -81,9 +81,9 @@ func (bus *Bus) Unbind(loc Binding) { // A Bindable is a strongly typed callback function to be executed on Trigger. It must be paired // with an event registered via RegisterEvent. -type Bindable[Payload any, C any] func(C, Payload) Response +type Bindable[C any, Payload any] func(C, Payload) Response -func Bind[Payload any, C Caller](b Handler, ev EventID[Payload], c C, fn Bindable[Payload, C]) Binding { +func Bind[C Caller, Payload any](b Handler, ev EventID[Payload], c C, fn Bindable[C, Payload]) Binding { return b.UnsafeBind(ev.UnsafeEventID, c.CID(), func(c CallerID, h Handler, payload interface{}) Response { typedPayload := payload.(Payload) ent := h.GetCallerMap().GetEntity(c) From 02e311e229939921044a19364ef1405db9bf9b5e Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 26 Mar 2022 16:35:26 -0500 Subject: [PATCH 012/146] oak: fix main package tests for event package changes --- collision/attachSpace_test.go | 1 - collision/onCollision_test.go | 1 - config.go | 34 +------------ config_test.go | 62 +---------------------- event/bind.go | 18 ++++--- event/caller.go | 7 ++- inputTracker_test.go | 17 +++---- mouse/onCollision_test.go | 1 - render/sequence_test.go | 1 - testdata/default.config | 3 +- window_test.go | 94 ++++++++++++++++++++--------------- 11 files changed, 83 insertions(+), 156 deletions(-) diff --git a/collision/attachSpace_test.go b/collision/attachSpace_test.go index 2c81e019..d46fbca6 100644 --- a/collision/attachSpace_test.go +++ b/collision/attachSpace_test.go @@ -18,7 +18,6 @@ func (as *aspace) Init() event.CallerID { func TestAttachSpace(t *testing.T) { Clear() - go event.ResolveChanges() go func() { for { <-time.After(5 * time.Millisecond) diff --git a/collision/onCollision_test.go b/collision/onCollision_test.go index 9ca0ee2e..6c3de14b 100644 --- a/collision/onCollision_test.go +++ b/collision/onCollision_test.go @@ -19,7 +19,6 @@ func (cp *cphase) Init() event.CallerID { func TestCollisionPhase(t *testing.T) { callers := event.NewCallerMap() bus := event.NewBus(callers) - go bus.ResolveChanges() go func() { for { <-time.After(5 * time.Millisecond) diff --git a/config.go b/config.go index 5a47ed32..6e0a14b3 100644 --- a/config.go +++ b/config.go @@ -2,9 +2,7 @@ package oak import ( "encoding/json" - "errors" "io" - "time" "github.com/oakmound/oak/v3/fileutil" "github.com/oakmound/oak/v3/shiny/driver" @@ -31,37 +29,7 @@ type Config struct { Borderless bool `json:"borderless"` Fullscreen bool `json:"fullscreen"` SkipRNGSeed bool `json:"skip_rng_seed"` - UnlimitedDrawFrameRate bool `json:"unlimitedDrawFrameRate` -} - -// A Duration is a wrapper around time.Duration that allows for easier json formatting. -type Duration time.Duration - -// MarshalJSON writes a duration as json. -func (d Duration) MarshalJSON() ([]byte, error) { - return json.Marshal(time.Duration(d).String()) -} - -// UnmarshalJSON extracts a duration from a json byte slice. -func (d *Duration) UnmarshalJSON(b []byte) error { - var v interface{} - if err := json.Unmarshal(b, &v); err != nil { - return err - } - switch value := v.(type) { - case float64: - *d = Duration(time.Duration(value)) - return nil - case string: - tmp, err := time.ParseDuration(value) - if err != nil { - return err - } - *d = Duration(tmp) - return nil - default: - return errors.New("invalid duration type") - } + UnlimitedDrawFrameRate bool `json:"unlimitedDrawFrameRate"` } // NewConfig creates a config from a set of transformation options. diff --git a/config_test.go b/config_test.go index 0bbf9a92..bff8501c 100644 --- a/config_test.go +++ b/config_test.go @@ -5,7 +5,6 @@ import ( "os" "path/filepath" "testing" - "time" ) func TestDefaultConfigFileMatchesEmptyConfig(t *testing.T) { @@ -47,7 +46,6 @@ func configEquals(c1, c2 Config) bool { IdleDrawFrameRate int `json:"idleDrawFrameRate"` Language string `json:"language"` Title string `json:"title"` - EventRefreshRate Duration `json:"refreshRate"` BatchLoad bool `json:"batchLoad"` GestureSupport bool `json:"gestureSupport"` LoadBuiltinCommands bool `json:"loadBuiltinCommands"` @@ -57,7 +55,7 @@ func configEquals(c1, c2 Config) bool { Borderless bool `json:"borderless"` Fullscreen bool `json:"fullscreen"` SkipRNGSeed bool `json:"skip_rng_seed"` - UnlimitedDrawFrameRate bool `json:"unlimitedDrawFrameRate` + UnlimitedDrawFrameRate bool `json:"unlimitedDrawFrameRate"` } cc1 := comparableConfig{ Assets: c1.Assets, @@ -69,7 +67,6 @@ func configEquals(c1, c2 Config) bool { IdleDrawFrameRate: c1.IdleDrawFrameRate, Language: c1.Language, Title: c1.Title, - EventRefreshRate: c1.EventRefreshRate, BatchLoad: c1.BatchLoad, GestureSupport: c1.GestureSupport, LoadBuiltinCommands: c1.LoadBuiltinCommands, @@ -91,7 +88,6 @@ func configEquals(c1, c2 Config) bool { IdleDrawFrameRate: c2.IdleDrawFrameRate, Language: c2.Language, Title: c2.Title, - EventRefreshRate: c2.EventRefreshRate, BatchLoad: c2.BatchLoad, GestureSupport: c2.GestureSupport, LoadBuiltinCommands: c2.LoadBuiltinCommands, @@ -144,59 +140,3 @@ func TestReaderConfigBadJSON(t *testing.T) { // This error is an stdlib error, not ours, so we don't care // about its type } - -func TestDuration_HappyPath(t *testing.T) { - d := Duration(time.Second) - marshalled, err := d.MarshalJSON() - if err != nil { - t.Fatalf("marshal duration failed: %v", err) - } - d2 := new(Duration) - err = d2.UnmarshalJSON(marshalled) - if err != nil { - t.Fatalf("unmarshal failed: %v", err) - } - marshalled2, err := d2.MarshalJSON() - if err != nil { - t.Fatalf("marshal duration 2 failed: %v", err) - } - if !bytes.Equal(marshalled, marshalled2) { - t.Fatalf("marshals not equal: %v vs %v", string(marshalled), string(marshalled2)) - } -} - -func TestDuration_UnmarshalJSON_Float(t *testing.T) { - f := []byte("10.0") - d2 := new(Duration) - err := d2.UnmarshalJSON(f) - if err != nil { - t.Fatalf("unmarshal failed: %v", err) - } -} - -func TestDuration_UnmarshalJSON_Boolean(t *testing.T) { - f := []byte("false") - d2 := new(Duration) - err := d2.UnmarshalJSON(f) - if err == nil { - t.Fatalf("expected failure in unmarshal") - } -} - -func TestDuration_UnmarshalJSON_BadString(t *testing.T) { - f := []byte("\"10mmmm\"") - d2 := new(Duration) - err := d2.UnmarshalJSON(f) - if err == nil { - t.Fatalf("expected failure in unmarshal") - } -} - -func TestDuration_UnmarshalJSON_BadJSON(t *testing.T) { - f := []byte("\"1mm") - d2 := new(Duration) - err := d2.UnmarshalJSON(f) - if err == nil { - t.Fatalf("expected failure in unmarshal") - } -} diff --git a/event/bind.go b/event/bind.go index 55c88723..6e1da0c3 100644 --- a/event/bind.go +++ b/event/bind.go @@ -22,6 +22,9 @@ type Binding struct { EventID UnsafeEventID CallerID CallerID BindID BindID + // Bound is closed once the binding has been applied. Wait on this condition carefully; bindings + // will not take effect while an event is being triggered (e.g. in a even callback's returning thread) + Bound <-chan struct{} } // Unbind unbinds the callback associated with this binding from it's own event handler. If this binding @@ -39,16 +42,19 @@ type BindID int64 // call is 'unsafe' because UnsafeBindables use bare interface{} types. func (bus *Bus) UnsafeBind(eventID UnsafeEventID, callerID CallerID, fn UnsafeBindable) Binding { bindID := BindID(atomic.AddInt64(bus.nextBindID, 1)) + ch := make(chan struct{}) go func() { bus.mutex.Lock() bus.getBindableList(eventID, callerID).storeBindable(fn, bindID) bus.mutex.Unlock() + close(ch) }() return Binding{ Handler: bus, EventID: eventID, CallerID: callerID, BindID: bindID, + Bound: ch, } } @@ -81,12 +87,12 @@ func (bus *Bus) Unbind(loc Binding) { // A Bindable is a strongly typed callback function to be executed on Trigger. It must be paired // with an event registered via RegisterEvent. -type Bindable[Payload any, C any] func(C, Payload) Response +type Bindable[C any, Payload any] func(C, Payload) Response -func Bind[Payload any, C Caller](b Handler, ev EventID[Payload], c C, fn Bindable[Payload, C]) Binding { - return b.UnsafeBind(ev.UnsafeEventID, c.CID(), func(c CallerID, h Handler, payload interface{}) Response { +func Bind[C Caller, Payload any](h Handler, ev EventID[Payload], caller C, fn Bindable[C, Payload]) Binding { + return h.UnsafeBind(ev.UnsafeEventID, caller.CID(), func(cid CallerID, h Handler, payload interface{}) Response { typedPayload := payload.(Payload) - ent := h.GetCallerMap().GetEntity(c) + ent := h.GetCallerMap().GetEntity(cid) typedEntity := ent.(C) return fn(typedEntity, typedPayload) }) @@ -94,8 +100,8 @@ func Bind[Payload any, C Caller](b Handler, ev EventID[Payload], c C, fn Bindabl type GlobalBindable[Payload any] func(Payload) Response -func GlobalBind[Payload any](b Handler, ev EventID[Payload], fn GlobalBindable[Payload]) Binding { - return b.UnsafeBind(ev.UnsafeEventID, Global, func(c CallerID, h Handler, payload interface{}) Response { +func GlobalBind[Payload any](h Handler, ev EventID[Payload], fn GlobalBindable[Payload]) Binding { + return h.UnsafeBind(ev.UnsafeEventID, Global, func(cid CallerID, h Handler, payload interface{}) Response { typedPayload := payload.(Payload) return fn(typedPayload) }) diff --git a/event/caller.go b/event/caller.go index c7869acc..09ca69bd 100644 --- a/event/caller.go +++ b/event/caller.go @@ -5,9 +5,14 @@ import ( "sync/atomic" ) -// A CallerID is a caller ID that entities use to trigger and bind functionality +// A CallerID is a caller ID that Callers use to bind themselves to receive callback +// signals when given events are triggered type CallerID int64 +func (c CallerID) CID() CallerID { + return c +} + const Global CallerID = 0 type Caller interface { diff --git a/inputTracker_test.go b/inputTracker_test.go index 3d84181e..322374e9 100644 --- a/inputTracker_test.go +++ b/inputTracker_test.go @@ -5,7 +5,6 @@ import ( "time" "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/joystick" "github.com/oakmound/oak/v3/key" "github.com/oakmound/oak/v3/mouse" "github.com/oakmound/oak/v3/scene" @@ -13,7 +12,7 @@ import ( func TestTrackInputChanges(t *testing.T) { c1 := NewWindow() - c1.SetLogicHandler(event.NewBus(nil)) + c1.SetLogicHandler(event.NewBus(event.NewCallerMap())) c1.AddScene("1", scene.Scene{}) go c1.Init("1", func(c Config) (Config, error) { c.TrackInputChanges = true @@ -21,10 +20,9 @@ func TestTrackInputChanges(t *testing.T) { }) time.Sleep(2 * time.Second) expectedType := new(InputType) - *expectedType = InputKeyboardMouse + *expectedType = InputKeyboard failed := false - c1.eventHandler.GlobalBind(event.InputChange, func(_ event.CallerID, payload interface{}) int { - mode := payload.(InputType) + event.GlobalBind(c1.eventHandler, InputChange, func(mode InputType) event.Response { if mode != *expectedType { failed = true } @@ -36,18 +34,19 @@ func TestTrackInputChanges(t *testing.T) { t.Fatalf("keyboard change failed") } *expectedType = InputJoystick - c1.eventHandler.Trigger("Tracking"+joystick.Change, &joystick.State{}) + event.TriggerOn(c1.eventHandler, trackingJoystickChange, struct{}{}) time.Sleep(2 * time.Second) if failed { t.Fatalf("joystick change failed") } - *expectedType = InputKeyboardMouse - c1.TriggerMouseEvent(mouse.Event{Event: mouse.Press}) + *expectedType = InputMouse + c1.TriggerMouseEvent(mouse.Event{EventType: mouse.Press}) time.Sleep(2 * time.Second) if failed { t.Fatalf("mouse change failed") } - c1.mostRecentInput = InputJoystick + *expectedType = InputKeyboard + c1.mostRecentInput = int32(InputJoystick) c1.TriggerKeyDown(key.Event{}) time.Sleep(2 * time.Second) if failed { diff --git a/mouse/onCollision_test.go b/mouse/onCollision_test.go index 3041da8e..5afedb90 100644 --- a/mouse/onCollision_test.go +++ b/mouse/onCollision_test.go @@ -18,7 +18,6 @@ func (cp *cphase) Init() event.CallerID { } func TestCollisionPhase(t *testing.T) { - go event.ResolveChanges() go func() { for { <-time.After(5 * time.Millisecond) diff --git a/render/sequence_test.go b/render/sequence_test.go index aff13747..aaf13778 100644 --- a/render/sequence_test.go +++ b/render/sequence_test.go @@ -22,7 +22,6 @@ func TestSequenceTrigger(t *testing.T) { sq := NewSequence(5, NewColorBox(10, 10, color.RGBA{255, 0, 0, 255}), NewColorBox(10, 10, color.RGBA{0, 255, 0, 255})) - go event.ResolveChanges() cid := Dummy{}.Init() sq.SetTriggerID(cid) triggerCh := make(chan struct{}) diff --git a/testdata/default.config b/testdata/default.config index bdab51fe..61b8427d 100644 --- a/testdata/default.config +++ b/testdata/default.config @@ -22,6 +22,5 @@ "language": "English", "title": "Oak Window", "batchLoad": false, - "gestureSupport": false, - "refreshRate": "50ms" + "gestureSupport": false } \ No newline at end of file diff --git a/window_test.go b/window_test.go index 44ea689f..cdd02d7b 100644 --- a/window_test.go +++ b/window_test.go @@ -11,69 +11,83 @@ import ( func TestMouseClicks(t *testing.T) { c1 := NewWindow() - sp := collision.NewFullSpace(0, 0, 100, 100, 1, 0) - var triggered bool - go event.ResolveChanges() - event.GlobalBind(mouse.Click, func(event.CallerID, interface{}) int { - triggered = true + c1.MouseTree = collision.NewTree() + ch := make(chan struct{}) + c1.eventHandler = event.NewBus(event.NewCallerMap()) + bnd := event.GlobalBind(c1.eventHandler, mouse.Click, func(_ *mouse.Event) event.Response { + close(ch) return 0 }) - time.Sleep(2 * time.Second) - mouse.DefaultTree.Add(sp) + select { + case <-time.After(2 * time.Second): + t.Fatalf("click binding never bound") + case <-bnd.Bound: + } + sp := collision.NewFullSpace(0, 0, 100, 100, 1, 0) + c1.MouseTree.Add(sp) c1.Propagate(mouse.PressOn, mouse.NewEvent(5, 5, mouse.ButtonLeft, mouse.PressOn)) c1.Propagate(mouse.ReleaseOn, mouse.NewEvent(5, 5, mouse.ButtonLeft, mouse.ReleaseOn)) - time.Sleep(2 * time.Second) - if !triggered { + select { + case <-time.After(2 * time.Second): t.Fatalf("propagation failed to trigger click binding") + case <-ch: } } func TestMouseClicksRelative(t *testing.T) { c1 := NewWindow() - sp := collision.NewFullSpace(0, 0, 100, 100, 1, 0) - var triggered bool - go c1.eventHandler.(*event.Bus).ResolveChanges() - c1.eventHandler.GlobalBind(mouse.ClickOn+"Relative", func(event.CallerID, interface{}) int { - triggered = true + c1.MouseTree = collision.NewTree() + ch := make(chan struct{}) + c1.eventHandler = event.NewBus(event.NewCallerMap()) + bnd := event.GlobalBind(c1.eventHandler, mouse.RelativeClickOn, func(_ *mouse.Event) event.Response { + close(ch) return 0 }) - time.Sleep(2 * time.Second) + select { + case <-time.After(2 * time.Second): + t.Fatalf("click binding never bound") + case <-bnd.Bound: + } + sp := collision.NewFullSpace(0, 0, 100, 100, 1, 0) c1.MouseTree.Add(sp) - c1.Propagate(mouse.PressOn+"Relative", mouse.NewEvent(5, 5, mouse.ButtonLeft, mouse.PressOn)) - c1.Propagate(mouse.ReleaseOn+"Relative", mouse.NewEvent(5, 5, mouse.ButtonLeft, mouse.ReleaseOn)) - time.Sleep(3 * time.Second) - if !triggered { + defer c1.MouseTree.Clear() + c1.Propagate(mouse.RelativePressOn, mouse.NewEvent(5, 5, mouse.ButtonLeft, mouse.PressOn)) + c1.Propagate(mouse.RelativeReleaseOn, mouse.NewEvent(5, 5, mouse.ButtonLeft, mouse.ReleaseOn)) + select { + case <-time.After(2 * time.Second): t.Fatalf("propagation failed to trigger click binding") + case <-ch: } } -type ent struct{} - -func (e ent) Init() event.CallerID { - return 0 +type ent struct { + event.CallerID } func TestPropagate(t *testing.T) { c1 := NewWindow() - go event.ResolveChanges() - var triggered bool - cid := event.CallerID(0).Parse(ent{}) - s := collision.NewSpace(10, 10, 10, 10, cid) - s.CID.Bind("MouseDownOn", func(event.CallerID, interface{}) int { - triggered = true + c1.eventHandler = event.NewBus(event.NewCallerMap()) + + thisEnt := ent{} + thisEnt.CallerID = c1.eventHandler.GetCallerMap().Register(thisEnt) + ch := make(chan struct{}) + s := collision.NewSpace(10, 10, 10, 10, thisEnt.CallerID) + event.Bind(c1.eventHandler, mouse.PressOn, thisEnt, func(ent, *mouse.Event) event.Response { + close(ch) return 0 }) - mouse.Add(s) - time.Sleep(200 * time.Millisecond) - c1.Propagate("MouseUpOn", mouse.NewEvent(15, 15, mouse.ButtonLeft, "MouseUp")) - time.Sleep(200 * time.Millisecond) - if triggered { - t.Fatalf("mouse up triggered binding") + c1.MouseTree = collision.NewTree() + c1.MouseTree.Add(s) + c1.Propagate(mouse.ReleaseOn, mouse.NewEvent(15, 15, mouse.ButtonLeft, mouse.Release)) + select { + case <-ch: + t.Fatalf("release propagation triggered press binding") + case <-time.After(1 * time.Second): } - time.Sleep(200 * time.Millisecond) - c1.Propagate("MouseDownOn", mouse.NewEvent(15, 15, mouse.ButtonLeft, "MouseDown")) - time.Sleep(200 * time.Millisecond) - if !triggered { - t.Fatalf("mouse down failed to trigger binding") + c1.Propagate(mouse.PressOn, mouse.NewEvent(15, 15, mouse.ButtonLeft, mouse.Press)) + select { + case <-time.After(2 * time.Second): + t.Fatalf("propagation failed to trigger press binding") + case <-ch: } } From 751ef094ed486785c81ff424db1499a19c4ba835 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 26 Mar 2022 17:12:06 -0500 Subject: [PATCH 013/146] shiny/driver: move driver level window manipulation to concrete types This still needs work on every non-windows driver, as well as adjustment in window.Window to only include those things all default drivers have. --- default.go | 2 +- drawLoop.go | 4 +- examples/screenopts/main.go | 17 +++- inputLoop.go | 2 +- inputLoop_test.go | 6 +- lifecycle.go | 10 +-- screenOpts.go | 135 ------------------------------- screenOpts_test.go | 22 ----- shiny/driver/driver_windows.go | 2 + shiny/driver/windriver/screen.go | 4 +- shiny/driver/windriver/window.go | 77 +++++++++++++----- window.go | 16 ++-- 12 files changed, 99 insertions(+), 198 deletions(-) delete mode 100644 screenOpts.go delete mode 100644 screenOpts_test.go diff --git a/default.go b/default.go index 75384bbe..4f43ca73 100644 --- a/default.go +++ b/default.go @@ -175,7 +175,7 @@ func HideCursor() error { } // GetCursorPosition calls GetCursorPosition on the default window. -func GetCursorPosition() (x, y float64, err error) { +func GetCursorPosition() (x, y float64) { initDefaultWindow() return defaultWindow.GetCursorPosition() } diff --git a/drawLoop.go b/drawLoop.go index e251763d..c76d49c9 100644 --- a/drawLoop.go +++ b/drawLoop.go @@ -117,8 +117,8 @@ func (w *Window) drawLoop() { func (w *Window) publish() { w.prePublish(w, w.windowTextures[w.bufferIdx]) w.windowTextures[w.bufferIdx].Upload(zeroPoint, w.winBuffers[w.bufferIdx], w.winBuffers[w.bufferIdx].Bounds()) - w.windowControl.Scale(w.windowRect, w.windowTextures[w.bufferIdx], w.windowTextures[w.bufferIdx].Bounds(), draw.Src) - w.windowControl.Publish() + w.Window.Scale(w.windowRect, w.windowTextures[w.bufferIdx], w.windowTextures[w.bufferIdx].Bounds(), draw.Src) + w.Window.Publish() // every frame, swap buffers. This enables drivers which might hold on to the rgba buffers we publish as if they // were immutable. w.bufferIdx = (w.bufferIdx + 1) % bufferCount diff --git a/examples/screenopts/main.go b/examples/screenopts/main.go index d1b0b9bd..b4294a5f 100644 --- a/examples/screenopts/main.go +++ b/examples/screenopts/main.go @@ -13,18 +13,21 @@ import ( const ( borderlessAtStart = false fullscreenAtStart = false + topMostAtStart = false ) func main() { oak.AddScene("demo", scene.Scene{Start: func(*scene.Context) { - txt := render.NewText("Press F to toggle fullscreen. Press B to toggle borderless.", 50, 50) + txt := render.NewText("Press F to toggle fullscreen. Press B to toggle borderless. Press T to toggle topmost", 50, 50) render.Draw(txt) borderless := borderlessAtStart fullscreen := fullscreenAtStart + topMost := topMostAtStart event.GlobalBind(key.Down+key.F, func(event.CID, interface{}) int { fullscreen = !fullscreen + fmt.Println("Setting fullscreen:", fullscreen) err := oak.SetFullScreen(fullscreen) if err != nil { fullscreen = !fullscreen @@ -34,6 +37,7 @@ func main() { }) event.GlobalBind(key.Down+key.B, func(event.CID, interface{}) int { borderless = !borderless + fmt.Println("Setting borderless:", borderless) err := oak.SetBorderless(borderless) if err != nil { borderless = !borderless @@ -41,10 +45,21 @@ func main() { } return 0 }) + event.GlobalBind(key.Down+key.T, func(event.CID, interface{}) int { + topMost = !topMost + fmt.Println("Setting top most:", topMost) + err := oak.SetTopMost(topMost) + if err != nil { + topMost = !topMost + fmt.Println(err) + } + return 0 + }) }}) oak.Init("demo", func(c oak.Config) (oak.Config, error) { + c.TopMost = topMostAtStart // Both cannot be true at once! c.Borderless = borderlessAtStart c.Fullscreen = fullscreenAtStart diff --git a/inputLoop.go b/inputLoop.go index 1f7e814b..e19af5fe 100644 --- a/inputLoop.go +++ b/inputLoop.go @@ -15,7 +15,7 @@ import ( func (w *Window) inputLoop() { for { - switch e := w.windowControl.NextEvent().(type) { + switch e := w.Window.NextEvent().(type) { // We only currently respond to death lifecycle events. case lifecycle.Event: switch e.To { diff --git a/inputLoop_test.go b/inputLoop_test.go index cc2093f4..8ef6703b 100644 --- a/inputLoop_test.go +++ b/inputLoop_test.go @@ -12,15 +12,15 @@ import ( func TestInputLoop(t *testing.T) { c1 := blankScene(t) c1.SetLogicHandler(event.NewBus(nil)) - c1.windowControl.Send(okey.Event{ + c1.Window.Send(okey.Event{ Direction: key.DirPress, Code: key.Code0, }) - c1.windowControl.Send(okey.Event{ + c1.Window.Send(okey.Event{ Direction: key.DirNone, Code: key.Code0, }) - c1.windowControl.Send(okey.Event{ + c1.Window.Send(okey.Event{ Direction: key.DirRelease, Code: key.Code0, }) diff --git a/lifecycle.go b/lifecycle.go index 795a0860..8e66654e 100644 --- a/lifecycle.go +++ b/lifecycle.go @@ -37,7 +37,7 @@ func (w *Window) lifecycleLoop(s screen.Screen) { go w.inputLoop() <-w.quitCh - w.windowControl.Release() + w.Window.Release() } // Quit sends a signal to the window to close itself, closing the window and @@ -45,10 +45,10 @@ func (w *Window) lifecycleLoop(s screen.Screen) { // it must not be called again. func (w *Window) Quit() { // We could have hit this before the window was created - if w.windowControl == nil { + if w.Window == nil { close(w.quitCh) } else { - w.windowControl.Send(lifecycle.Event{To: lifecycle.StageDead}) + w.Window.Send(lifecycle.Event{To: lifecycle.StageDead}) } if w.config.EnableDebugConsole { debugstream.DefaultCommands.RemoveScope(w.ControllerID) @@ -62,7 +62,7 @@ func (w *Window) newWindow(x, y int32, width, height int) error { if err != nil { return err } - w.windowControl = wC + w.Window = wC return w.ChangeWindow(width, height) } @@ -83,7 +83,7 @@ func (w *Window) ChangeWindow(width, height int) error { buff, err := w.screenControl.NewImage(image.Point{width, height}) if err == nil { draw.Draw(buff.RGBA(), buff.Bounds(), w.bkgFn(), zeroPoint, draw.Src) - w.windowControl.Upload(zeroPoint, buff, buff.Bounds()) + w.Window.Upload(zeroPoint, buff, buff.Bounds()) } else { return err } diff --git a/screenOpts.go b/screenOpts.go deleted file mode 100644 index 9e76788e..00000000 --- a/screenOpts.go +++ /dev/null @@ -1,135 +0,0 @@ -package oak - -import "github.com/oakmound/oak/v3/oakerr" - -type fullScreenable interface { - SetFullScreen(bool) error -} - -// SetFullScreen attempts to set the local oak window to be full screen. -// If the window does not support this functionality, it will report as such. -func (w *Window) SetFullScreen(on bool) error { - if fs, ok := w.windowControl.(fullScreenable); ok { - return fs.SetFullScreen(on) - } - return oakerr.UnsupportedPlatform{ - Operation: "SetFullScreen", - } -} - -type movableWindow interface { - MoveWindow(x, y, w, h int32) error -} - -// MoveWindow sets the position of a window to be x,y and it's dimensions to w,h -// If the window does not support being positioned, it will report as such. -func (w *Window) MoveWindow(x, y, wd, h int) error { - if mw, ok := w.windowControl.(movableWindow); ok { - return mw.MoveWindow(int32(x), int32(y), int32(wd), int32(h)) - } - return oakerr.UnsupportedPlatform{ - Operation: "MoveWindow", - } -} - -type borderlesser interface { - SetBorderless(bool) error -} - -// SetBorderless attempts to set the local oak window to have no border. -// If the window does not support this functionaltiy, it will report as such. -func (w *Window) SetBorderless(on bool) error { - if bs, ok := w.windowControl.(borderlesser); ok { - return bs.SetBorderless(on) - } - return oakerr.UnsupportedPlatform{ - Operation: "SetBorderless", - } -} - -type topMoster interface { - SetTopMost(bool) error -} - -// SetTopMost attempts to set the local oak window to stay on top of other windows. -// If the window does not support this functionality, it will report as such. -func (w *Window) SetTopMost(on bool) error { - if tm, ok := w.windowControl.(topMoster); ok { - return tm.SetTopMost(on) - } - return oakerr.UnsupportedPlatform{ - Operation: "SetTopMost", - } -} - -type titler interface { - SetTitle(string) error -} - -// SetTitle sets this window's title. -func (w *Window) SetTitle(title string) error { - if t, ok := w.windowControl.(titler); ok { - return t.SetTitle(title) - } - return oakerr.UnsupportedPlatform{ - Operation: "SetTitle", - } -} - -type trayIconer interface { - SetTrayIcon(string) error -} - -// SetTrayIcon sets a application tray icon for this program. -func (w *Window) SetTrayIcon(icon string) error { - if t, ok := w.windowControl.(trayIconer); ok { - return t.SetTrayIcon(icon) - } - return oakerr.UnsupportedPlatform{ - Operation: "SetTrayIcon", - } -} - -type trayNotifier interface { - ShowNotification(title, msg string, icon bool) error -} - -// ShowNotification shows a text notification, optionally using a previously set -// tray icon. -func (w *Window) ShowNotification(title, msg string, icon bool) error { - if t, ok := w.windowControl.(trayNotifier); ok { - return t.ShowNotification(title, msg, icon) - } - return oakerr.UnsupportedPlatform{ - Operation: "ShowNotification", - } -} - -type cursorHider interface { - HideCursor() error -} - -// HideCursor disables showing the cursor when it is over this window. -func (w *Window) HideCursor() error { - if t, ok := w.windowControl.(cursorHider); ok { - return t.HideCursor() - } - return oakerr.UnsupportedPlatform{ - Operation: "HideCursor", - } -} - -type getCursorPositioner interface { - GetCursorPosition() (x, y float64) -} - -// GetCursorPosition returns the cusor position relative to the top left corner of this window. -func (w *Window) GetCursorPosition() (x, y float64, err error) { - if wp, ok := w.windowControl.(getCursorPositioner); ok { - x, y := wp.GetCursorPosition() - return x, y, nil - } - return 0, 0, oakerr.UnsupportedPlatform{ - Operation: "GetCursorPosition", - } -} diff --git a/screenOpts_test.go b/screenOpts_test.go deleted file mode 100644 index be8dca28..00000000 --- a/screenOpts_test.go +++ /dev/null @@ -1,22 +0,0 @@ -package oak - -import "testing" - -func TestScreenOpts(t *testing.T) { - // What these functions do (and error presence) depends on the operating - // system / build tags, which we can't configure at test time without - // making a new driver just for this test. - c1 := blankScene(t) - c1.SetFullScreen(true) - c1.SetFullScreen(false) - c1.MoveWindow(10, 10, 20, 20) - c1.SetBorderless(true) - c1.SetBorderless(false) - c1.SetTopMost(true) - c1.SetTopMost(false) - c1.SetTitle("testScreenOpts") - c1.SetTrayIcon("icon.ico") - c1.ShowNotification("testnotification", "testmessge", true) - c1.ShowNotification("testnotification", "testmessge", false) - c1.HideCursor() -} diff --git a/shiny/driver/driver_windows.go b/shiny/driver/driver_windows.go index 15cd3e5e..19d1ad27 100644 --- a/shiny/driver/driver_windows.go +++ b/shiny/driver/driver_windows.go @@ -20,3 +20,5 @@ func monitorSize() (int, int) { // GetSystemMetrics syscall return 0, 0 } + +type Window = windriver.Window diff --git a/shiny/driver/windriver/screen.go b/shiny/driver/windriver/screen.go index e4be68be..4f9ca956 100644 --- a/shiny/driver/windriver/screen.go +++ b/shiny/driver/windriver/screen.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build windows // +build windows package windriver @@ -61,7 +62,7 @@ func (s *screenImpl) NewTexture(size image.Point) (screen.Texture, error) { } func (s *screenImpl) NewWindow(opts screen.WindowGenerator) (screen.Window, error) { - w := &windowImpl{} + w := &Window{} var err error w.hwnd, err = win32.NewWindow(s.screenHWND, opts) @@ -69,6 +70,7 @@ func (s *screenImpl) NewWindow(opts screen.WindowGenerator) (screen.Window, erro w.exStyle = win32.WS_EX_WINDOWEDGE if opts.TopMost { w.exStyle |= win32.WS_EX_TOPMOST + w.topMost = true } if err != nil { diff --git a/shiny/driver/windriver/window.go b/shiny/driver/windriver/window.go index 0062213a..6f0cbdad 100644 --- a/shiny/driver/windriver/window.go +++ b/shiny/driver/windriver/window.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build windows // +build windows package windriver @@ -34,12 +35,14 @@ import ( var ( windowLock sync.RWMutex - allWindows = make(map[win32.HWND]*windowImpl) + allWindows = make(map[win32.HWND]*Window) ) -type windowImpl struct { +type Window struct { hwnd win32.HWND + changeLock sync.RWMutex + event.Deque sz size.Event @@ -50,6 +53,7 @@ type windowImpl struct { fullscreen bool borderless bool maximized bool + topMost bool windowRect *win32.RECT clientRect *win32.RECT @@ -59,7 +63,7 @@ type windowImpl struct { trayGUID *win32.GUID } -func (w *windowImpl) Release() { +func (w *Window) Release() { if w.trayGUID != nil { iconData := win32.NOTIFYICONDATA{} iconData.CbSize = uint32(unsafe.Sizeof(iconData)) @@ -71,7 +75,7 @@ func (w *windowImpl) Release() { win32.Release(win32.HWND(w.hwnd)) } -func (w *windowImpl) Upload(dp image.Point, src screen.Image, sr image.Rectangle) { +func (w *Window) Upload(dp image.Point, src screen.Image, sr image.Rectangle) { src.(*bufferImpl).preUpload() defer src.(*bufferImpl).postUpload() @@ -83,7 +87,7 @@ func (w *windowImpl) Upload(dp image.Point, src screen.Image, sr image.Rectangle }) } -func (w *windowImpl) Fill(dr image.Rectangle, src color.Color, op draw.Op) { +func (w *Window) Fill(dr image.Rectangle, src color.Color, op draw.Op) { w.execCmd(&cmd{ id: cmdFill, dr: dr, @@ -92,7 +96,7 @@ func (w *windowImpl) Fill(dr image.Rectangle, src color.Color, op draw.Op) { }) } -func (w *windowImpl) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectangle, op draw.Op) { +func (w *Window) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectangle, op draw.Op) { if op != draw.Src && op != draw.Over { // TODO: return @@ -106,7 +110,7 @@ func (w *windowImpl) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectang }) } -func (w *windowImpl) DrawUniform(src2dst f64.Aff3, src color.Color, sr image.Rectangle, op draw.Op) { +func (w *Window) DrawUniform(src2dst f64.Aff3, src color.Color, sr image.Rectangle, op draw.Op) { if op != draw.Src && op != draw.Over { return } @@ -119,12 +123,12 @@ func (w *windowImpl) DrawUniform(src2dst f64.Aff3, src color.Color, sr image.Rec }) } -func (w *windowImpl) SetTitle(title string) error { +func (w *Window) SetTitle(title string) error { win32.SetWindowText(w.hwnd, title) return nil } -func (w *windowImpl) SetBorderless(borderless bool) error { +func (w *Window) SetBorderless(borderless bool) error { // Don't set borderless if currently fullscreen. if !w.fullscreen && borderless != w.borderless { if !w.borderless { @@ -169,7 +173,7 @@ func (w *windowImpl) SetBorderless(borderless bool) error { return nil } -func (w *windowImpl) SetFullScreen(fullscreen bool) error { +func (w *Window) SetFullScreen(fullscreen bool) error { if w.borderless { return errors.New("cannot combine borderless and fullscreen") } @@ -232,7 +236,7 @@ func (w *windowImpl) SetFullScreen(fullscreen bool) error { } // HideCursor turns the OS cursor into a 1x1 transparent image. -func (w *windowImpl) HideCursor() error { +func (w *Window) HideCursor() error { emptyCursor := win32.GetEmptyCursor() success := win32.SetClassLongPtr(w.hwnd, win32.GCLP_HCURSOR, uintptr(emptyCursor)) if !success { @@ -241,7 +245,7 @@ func (w *windowImpl) HideCursor() error { return nil } -func (w *windowImpl) SetTrayIcon(iconPath string) error { +func (w *Window) SetTrayIcon(iconPath string) error { if w.trayGUID == nil { if err := w.createTrayItem(); err != nil { return err @@ -269,7 +273,7 @@ func (w *windowImpl) SetTrayIcon(iconPath string) error { return nil } -func (w *windowImpl) ShowNotification(title, msg string, icon bool) error { +func (w *Window) ShowNotification(title, msg string, icon bool) error { if w.trayGUID == nil { if err := w.createTrayItem(); err != nil { return err @@ -292,7 +296,7 @@ func (w *windowImpl) ShowNotification(title, msg string, icon bool) error { return nil } -func (w *windowImpl) createTrayItem() error { +func (w *Window) createTrayItem() error { w.trayGUID = new(win32.GUID) *w.trayGUID = win32.MakeGUID(w.guid) iconData := win32.NOTIFYICONDATA{} @@ -307,8 +311,8 @@ func (w *windowImpl) createTrayItem() error { return nil } -func (w *windowImpl) MoveWindow(x, y, wd, ht int32) error { - return win32.MoveWindow(w.hwnd, x, y, wd, ht, true) +func (w *Window) MoveWindow(x, y, wd, ht int) error { + return win32.MoveWindow(w.hwnd, int32(x), int32(y), int32(wd), int32(ht), true) } func drawWindow(dc win32.HDC, src2dst f64.Aff3, src interface{}, sr image.Rectangle, op draw.Op) (retErr error) { @@ -377,16 +381,16 @@ func drawWindow(dc win32.HDC, src2dst f64.Aff3, src interface{}, sr image.Rectan return fmt.Errorf("unsupported type %T", src) } -func (w *windowImpl) Copy(dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) { +func (w *Window) Copy(dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) { drawer.Copy(w, dp, src, sr, op) } -func (w *windowImpl) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) { +func (w *Window) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) { drawer.Scale(w, dr, src, sr, op) } -func (w *windowImpl) Publish() screen.PublishResult { - // TODO +func (w *Window) Publish() screen.PublishResult { + // NOP return screen.PublishResult{} } @@ -462,7 +466,7 @@ const ( // msgCmd is the stored value for our handleCmd function for syscalls. var msgCmd = win32.AddWindowMsg(handleCmd) -func (w *windowImpl) execCmd(c *cmd) { +func (w *Window) execCmd(c *cmd) { win32.SendMessage(win32.HWND(w.hwnd), msgCmd, 0, uintptr(unsafe.Pointer(c))) if c.err != nil { panic(fmt.Sprintf("execCmd faild for cmd.id=%d: %v", c.id, c.err)) // TODO handle errors @@ -495,8 +499,37 @@ func handleCmd(hwnd win32.HWND, uMsg uint32, wParam, lParam uintptr) { } } -func (w *windowImpl) GetCursorPosition() (x, y float64) { +func (w *Window) GetCursorPosition() (x, y float64) { + w.changeLock.RLock() + defer w.changeLock.RUnlock() + w.windowRect, _ = win32.GetWindowRect(w.hwnd) xint, yint, _ := win32.GetCursorPos() return float64(xint) - float64(w.windowRect.Left), float64(yint) - float64(w.windowRect.Top) } + +func (w *Window) SetTopMost(topMost bool) error { + w.changeLock.Lock() + defer w.changeLock.Unlock() + + if w.topMost == topMost { + return nil + } + + // Note: although you can change a window's ex style to include EX_TOPMOST + // this will not work after window creation. The following is what you need to + // do instead. + + var ok bool + if topMost { + ok = win32.SetWindowPos(w.hwnd, win32.HWND_TOPMOST, 0, 0, 0, 0, win32.SWP_NOMOVE|win32.SWP_NOSIZE) + } else { + ok = win32.SetWindowPos(w.hwnd, win32.HWND_NOTOPMOST, 0, 0, 0, 0, win32.SWP_NOMOVE|win32.SWP_NOSIZE) + } + if !ok { + // TODO: extract and parse os error + return fmt.Errorf("failed to set top most") + } + w.topMost = topMost + return nil +} diff --git a/window.go b/window.go index 93c38069..2f49d2de 100644 --- a/window.go +++ b/window.go @@ -23,8 +23,9 @@ import ( var _ window.Window = &Window{} -func (w *Window) windowController(s screen.Screen, x, y int32, width, height int) (screen.Window, error) { - return s.NewWindow(screen.NewWindowGenerator( +func (w *Window) windowController(s screen.Screen, x, y int32, width, height int) (*driver.Window, error) { + // TODO v4: can we update this interface to return our concrete driver.Window? + dwin, err := s.NewWindow(screen.NewWindowGenerator( screen.Dimensions(width, height), screen.Title(w.config.Title), screen.Position(x, y), @@ -32,6 +33,7 @@ func (w *Window) windowController(s screen.Screen, x, y int32, width, height int screen.Borderless(w.config.Borderless), screen.TopMost(w.config.TopMost), )) + return dwin.(*driver.Window), err } // the number of rgba buffers oak's draw loop swaps between @@ -40,6 +42,10 @@ const bufferCount = 2 type Window struct { key.State + // the driver.Window embedded in this window exposes at compile time the OS level + // options one has to manipulate this. + *driver.Window + // TODO: most of these channels are not closed cleanly transitionCh chan struct{} @@ -84,9 +90,9 @@ type Window struct { // The window buffer represents the subsection of the world which is available to // be shown in a window. - winBuffers [bufferCount]screen.Image - screenControl screen.Screen - windowControl screen.Window + winBuffers [bufferCount]screen.Image + screenControl screen.Screen + windowTextures [bufferCount]screen.Texture bufferIdx uint8 From 7d75b183e524886e3f97d9f6832715ebf153b087 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 26 Mar 2022 17:43:35 -0500 Subject: [PATCH 014/146] collision: update tests for new event api --- collision/attachSpace.go | 14 +++++++++--- collision/attachSpace_test.go | 22 +++++++++---------- collision/onCollision.go | 13 +++++++----- collision/onCollision_test.go | 40 ++++++++++++++++------------------- 4 files changed, 48 insertions(+), 41 deletions(-) diff --git a/collision/attachSpace.go b/collision/attachSpace.go index 42ab743e..e1a7a9e3 100644 --- a/collision/attachSpace.go +++ b/collision/attachSpace.go @@ -39,7 +39,11 @@ type attachSpace interface { // Attach attaches v to the given space with optional x,y offsets. See AttachSpace. func Attach(v physics.Vector, s *Space, tree *Tree, offsets ...float64) error { - en := event.DefaultCallerMap.GetEntity(s.CID) + return AttachWithBus(v, s, tree, event.DefaultBus, offsets...) +} + +func AttachWithBus(v physics.Vector, s *Space, tree *Tree, bus event.Handler, offsets ...float64) error { + en := bus.GetCallerMap().GetEntity(s.CID) if t, ok := en.(attachSpace); ok { as := t.getAttachSpace() as.aSpace = &s @@ -48,7 +52,7 @@ func Attach(v physics.Vector, s *Space, tree *Tree, offsets ...float64) error { if as.tree == nil { as.tree = DefaultTree } - as.binding = event.Bind(event.DefaultBus, event.Enter, t, attachSpaceEnter) + as.binding = event.Bind(bus, event.Enter, t, attachSpaceEnter) if len(offsets) > 0 { as.offX = offsets[0] if len(offsets) > 1 { @@ -63,7 +67,11 @@ func Attach(v physics.Vector, s *Space, tree *Tree, offsets ...float64) error { // Detach removes the attachSpaceEnter binding from an entity composed with // AttachSpace func Detach(s *Space) error { - en := event.DefaultCallerMap.GetEntity(s.CID) + return DetachWithBus(s, event.DefaultBus) +} + +func DetachWithBus(s *Space, bus event.Handler) error { + en := bus.GetCallerMap().GetEntity(s.CID) if as, ok := en.(attachSpace); ok { as.getAttachSpace().binding.Unbind() return nil diff --git a/collision/attachSpace_test.go b/collision/attachSpace_test.go index d46fbca6..34eeb965 100644 --- a/collision/attachSpace_test.go +++ b/collision/attachSpace_test.go @@ -1,6 +1,7 @@ package collision import ( + "fmt" "testing" "time" @@ -12,23 +13,22 @@ type aspace struct { AttachSpace } -func (as *aspace) Init() event.CallerID { - return event.NextID(as) -} - func TestAttachSpace(t *testing.T) { Clear() + b := event.NewBus(event.NewCallerMap()) go func() { for { <-time.After(5 * time.Millisecond) - <-event.TriggerBack(event.Enter, nil) + <-event.TriggerOn(b, event.Enter, event.EnterPayload{}) } }() - as := aspace{} + as := &aspace{} + cid := b.GetCallerMap().Register(as) v := physics.NewVector(0, 0) - s := NewSpace(100, 100, 10, 10, as.Init()) + s := NewSpace(100, 100, 10, 10, cid) Add(s) - err := Attach(v, s, nil, 4, 4) + fmt.Println(s.CID) + err := AttachWithBus(v, s, nil, b, 4, 4) if err != nil { t.Fatalf("attach failed: %v", err) } @@ -41,7 +41,7 @@ func TestAttachSpace(t *testing.T) { t.Fatalf("expected attached space to have y of 9, was %v", s.Y()) } - err = Detach(s) + err = DetachWithBus(s, b) if err != nil { t.Fatalf("detach failed: %v", err) } @@ -59,10 +59,10 @@ func TestAttachSpace(t *testing.T) { s = NewUnassignedSpace(0, 0, 1, 1) err = Attach(v, s, nil) if err == nil { - t.Fatalf("unassinged space attach should have failed: %v", err) + t.Fatalf("unassigned space attach should have failed: %v", err) } err = Detach(s) if err == nil { - t.Fatalf("unassinged space detach should have failed: %v", err) + t.Fatalf("unassigned space detach should have failed: %v", err) } } diff --git a/collision/onCollision.go b/collision/onCollision.go index 67337a73..8c82aacc 100644 --- a/collision/onCollision.go +++ b/collision/onCollision.go @@ -22,6 +22,10 @@ func (cp *Phase) getCollisionPhase() *Phase { return cp } +func (cp *Phase) CID() event.CallerID { + return cp.OnCollisionS.CID +} + type collisionPhase interface { getCollisionPhase() *Phase } @@ -31,13 +35,12 @@ type collisionPhase interface { // entities begin to collide or stop colliding with the space. // If tree is nil, it uses DefTree func PhaseCollision(s *Space, tree *Tree) error { - return PhaseCollisionWithBus(s, tree, event.DefaultBus, event.DefaultCallerMap) + return PhaseCollisionWithBus(s, tree, event.DefaultBus) } -// PhaseCollisionWithBus allows for a non-default bus and non-default entity mapping -// in a phase collision binding. -func PhaseCollisionWithBus(s *Space, tree *Tree, bus event.Handler, entities *event.CallerMap) error { - en := entities.GetEntity(s.CID) +// PhaseCollisionWithBus allows for a non-default bus in a phase collision binding. +func PhaseCollisionWithBus(s *Space, tree *Tree, bus event.Handler) error { + en := bus.GetCallerMap().GetEntity(s.CID) if cp, ok := en.(collisionPhase); ok { oc := cp.getCollisionPhase() oc.OnCollisionS = s diff --git a/collision/onCollision_test.go b/collision/onCollision_test.go index 6c3de14b..110036d5 100644 --- a/collision/onCollision_test.go +++ b/collision/onCollision_test.go @@ -12,54 +12,50 @@ type cphase struct { callers *event.CallerMap } -func (cp *cphase) Init() event.CallerID { - return cp.callers.NextID(cp) -} - func TestCollisionPhase(t *testing.T) { - callers := event.NewCallerMap() - bus := event.NewBus(callers) + b := event.NewBus(event.NewCallerMap()) go func() { for { <-time.After(5 * time.Millisecond) - <-bus.TriggerBack(event.Enter, nil) + <-event.TriggerOn(b, event.Enter, event.EnterPayload{}) } }() - cp := cphase{ - callers: callers, - } - cid := cp.Init() + cp := &cphase{} + cid := b.GetCallerMap().Register(cp) s := NewSpace(10, 10, 10, 10, cid) tree := NewTree() - err := PhaseCollisionWithBus(s, tree, bus, callers) + err := PhaseCollisionWithBus(s, tree, b) if err != nil { t.Fatalf("phase collision failed: %v", err) } - var active bool - bus.Bind("CollisionStart", cid, func(event.CallerID, interface{}) int { - active = true + activeCh := make(chan bool, 5) + b1 := event.Bind(b, Start, cp, func(_ *cphase, _ Label) event.Response { + activeCh <- true return 0 }) - bus.Bind("CollisionStop", cid, func(event.CallerID, interface{}) int { - active = false + b2 := event.Bind(b, Stop, cp, func(_ *cphase, _ Label) event.Response { + activeCh <- false return 0 }) - + <-b1.Bound + <-b2.Bound s2 := NewLabeledSpace(15, 15, 10, 10, 5) tree.Add(s2) - time.Sleep(200 * time.Millisecond) - if !active { + if active := <-activeCh; !active { t.Fatalf("collision should be active") } tree.Remove(s2) time.Sleep(200 * time.Millisecond) - if active { + if active := <-activeCh; active { t.Fatalf("collision should be inactive") } +} +func TestPhaseCollision_Unembedded(t *testing.T) { + t.Parallel() s3 := NewSpace(10, 10, 10, 10, 5) - err = PhaseCollision(s3, nil) + err := PhaseCollision(s3, nil) if err == nil { t.Fatalf("phase collision should have failed") } From 82ac45749bc3003b405993c21fe8bd2a4e79f302 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 26 Mar 2022 17:46:56 -0500 Subject: [PATCH 015/146] scene: update tests for new event api --- scene/map_test.go | 3 --- scene/scene_test.go | 15 --------------- 2 files changed, 18 deletions(-) diff --git a/scene/map_test.go b/scene/map_test.go index 91e4c424..3678c1b0 100644 --- a/scene/map_test.go +++ b/scene/map_test.go @@ -77,9 +77,6 @@ func TestAddScene(t *testing.T) { t.Fatalf("getting test scene failed") } - if !test1.Loop() { - t.Fatalf("test loop failed") - } eStr, _ := test1.End() if eStr != "test1" { t.Fatalf("looping test end did not return test1, got %v", eStr) diff --git a/scene/scene_test.go b/scene/scene_test.go index 5d4946c7..683f240e 100644 --- a/scene/scene_test.go +++ b/scene/scene_test.go @@ -5,21 +5,6 @@ import ( "testing" ) -func TestBooleanLoop(t *testing.T) { - v := true - l := BooleanLoop(&v) - if !l() { - t.Fatalf("boolean loop should loop when true") - } - v = false - if l() { - t.Fatalf("boolean loop should not loop when false") - } - if !l() { - t.Fatalf("boolean loop should resume looping after returning false") - } -} - func randString() string { length := rand.Intn(100) data := make([]byte, length) From c97375964867700a8c334565686340ae22cba761 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 26 Mar 2022 17:52:41 -0500 Subject: [PATCH 016/146] render: correct tests for new event api --- render/logicfps_test.go | 4 +++- render/particle/allocator_test.go | 2 +- render/particle/source_test.go | 15 ++------------- render/reverting_test.go | 2 +- render/sequence_test.go | 23 ++++++----------------- 5 files changed, 13 insertions(+), 33 deletions(-) diff --git a/render/logicfps_test.go b/render/logicfps_test.go index c6c86e6a..62e908fa 100644 --- a/render/logicfps_test.go +++ b/render/logicfps_test.go @@ -3,12 +3,14 @@ package render import ( "image" "testing" + + "github.com/oakmound/oak/v3/event" ) func TestLogicFPS(t *testing.T) { lfps := NewLogicFPS(0, nil, 0, 0) lfps.Draw(image.NewRGBA(image.Rect(0, 0, 100, 100)), 10, 10) - logicFPSBind(lfps.CID, nil) + logicFPSBind(lfps, event.EnterPayload{}) if lfps.fps == 0 { t.Fatalf("fps not set by binding") } diff --git a/render/particle/allocator_test.go b/render/particle/allocator_test.go index 0e616c3a..31c73f59 100644 --- a/render/particle/allocator_test.go +++ b/render/particle/allocator_test.go @@ -33,7 +33,7 @@ func TestAllocatorLookup(t *testing.T) { go a.Run() src := NewSource(NewColorGenerator(), 0) - cid := src.CID + cid := src.CID() pidBlock := a.Allocate(cid) src2 := a.LookupSource(pidBlock * blockSize) if src != src2 { diff --git a/render/particle/source_test.go b/render/particle/source_test.go index c70c1f76..b9bb440f 100644 --- a/render/particle/source_test.go +++ b/render/particle/source_test.go @@ -48,9 +48,9 @@ func TestSource(t *testing.T) { } for i := 0; i < 1000; i++ { - rotateParticles(src.CID, nil) + rotateParticles(src, event.EnterPayload{}) } - for clearParticles(src.CID, nil) != event.UnbindEvent { + for clearParticles(src, event.EnterPayload{}) != event.UnbindThis { } if !ended { @@ -87,14 +87,3 @@ func TestSource(t *testing.T) { var src2 *Source src2.Stop() } - -func TestClearParticles(t *testing.T) { - t.Parallel() - t.Run("BadTypeBinding", func(t *testing.T) { - t.Parallel() - result := clearParticles(10000, nil) - if result != event.UnbindEvent { - t.Fatalf("expected UnbindEvent result, got %v", result) - } - }) -} diff --git a/render/reverting_test.go b/render/reverting_test.go index d4d324e1..49cae688 100644 --- a/render/reverting_test.go +++ b/render/reverting_test.go @@ -157,7 +157,7 @@ func TestRevertingCascadeFns(t *testing.T) { t.Fatalf("reverting unpause did not resume underlying sequence") } rv.SetTriggerID(1) - if sq.cID != 1 { + if sq.CallerID != 1 { t.Fatalf("reverting cID did not set underlying squence cID") } rv.update() diff --git a/render/sequence_test.go b/render/sequence_test.go index aaf13778..ceb16cc7 100644 --- a/render/sequence_test.go +++ b/render/sequence_test.go @@ -12,30 +12,19 @@ import ( "github.com/oakmound/oak/v3/render/mod" ) -type Dummy struct{} - -func (d Dummy) Init() event.CallerID { - return event.NextID(d) +type Dummy struct { + event.CallerID } func TestSequenceTrigger(t *testing.T) { sq := NewSequence(5, NewColorBox(10, 10, color.RGBA{255, 0, 0, 255}), NewColorBox(10, 10, color.RGBA{0, 255, 0, 255})) - cid := Dummy{}.Init() - sq.SetTriggerID(cid) + d := Dummy{} + d.CallerID = event.DefaultCallerMap.Register(d) + sq.SetTriggerID(d.CallerID) triggerCh := make(chan struct{}) - cid.Bind(event.AnimationEnd, func(event.CallerID, interface{}) int { - // This is a bad idea in real code, this will lock up - // unbindings because the function that triggered this owns - // the lock on the event bus until this function exits. - // It is for this reason that all triggers, bindings, - // and unbindings do nothing when they are called, just put - // off work to be done-- to make sure no one is expecting a - // result from one of those functions, from within a triggered - // function, causing a deadlock. - // - // For this test this is the easiest way to do this though + event.Bind(event.DefaultBus, AnimationEnd, d, func(_ Dummy, _ event.NoPayload) event.Response { triggerCh <- struct{}{} return 0 }) From daa0deded19f8d2fc7d333357946ce626805abe2 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 26 Mar 2022 18:02:50 -0500 Subject: [PATCH 017/146] mouse: correct tests for new event api --- mouse/event_test.go | 2 +- mouse/mouse_test.go | 20 +++++++-------- mouse/onCollision.go | 13 +++++----- mouse/onCollision_test.go | 51 +++++++++++++++++++++------------------ 4 files changed, 46 insertions(+), 40 deletions(-) diff --git a/mouse/event_test.go b/mouse/event_test.go index 145bfcd7..e77c2f37 100644 --- a/mouse/event_test.go +++ b/mouse/event_test.go @@ -7,7 +7,7 @@ import ( ) func TestEventConversions(t *testing.T) { - me := NewZeroEvent(1.0, 1.0) + me := NewEvent(1.0, 1.0, ButtonLeft, Drag) s := me.ToSpace() Add(collision.NewUnassignedSpace(1.0, 1.0, .1, .1)) if len(Hits(s)) == 0 { diff --git a/mouse/mouse_test.go b/mouse/mouse_test.go index 8d04a33e..ac0686d3 100644 --- a/mouse/mouse_test.go +++ b/mouse/mouse_test.go @@ -7,19 +7,19 @@ import ( ) func TestEventNameIdentity(t *testing.T) { - if GetEventName(mouse.DirPress, 0) != "MousePress" { - t.Fatalf("event name mismatch for event %v, expected %v", mouse.DirPress, "MousePress") + if GetEvent(mouse.DirPress, 0) != Press { + t.Fatalf("event mismatch for event %v, expected %v", mouse.DirPress, "MousePress") } - if GetEventName(mouse.DirRelease, 0) != "MouseRelease" { - t.Fatalf("event name mismatch for event %v, expected %v", mouse.DirRelease, "MouseRelease") + if GetEvent(mouse.DirRelease, 0) != Release { + t.Fatalf("event mismatch for event %v, expected %v", mouse.DirRelease, "MouseRelease") } - if GetEventName(mouse.DirNone, -2) != "MouseScrollDown" { - t.Fatalf("event name mismatch for event %v, expected %v", mouse.DirNone, "MouseScrollDown") + if GetEvent(mouse.DirNone, -2) != ScrollDown { + t.Fatalf("event mismatch for event %v, expected %v", mouse.DirNone, "MouseScrollDown") } - if GetEventName(mouse.DirNone, -1) != "MouseScrollUp" { - t.Fatalf("event name mismatch for event %v, expected %v", mouse.DirNone, "MouseScrollUp") + if GetEvent(mouse.DirNone, -1) != ScrollUp { + t.Fatalf("event mismatch for event %v, expected %v", mouse.DirNone, "MouseScrollUp") } - if GetEventName(mouse.DirNone, 0) != "MouseDrag" { - t.Fatalf("event name mismatch for event %v, expected %v", mouse.DirNone, "MouseDrag") + if GetEvent(mouse.DirNone, 0) != Drag { + t.Fatalf("event mismatch for event %v, expected %v", mouse.DirNone, "MouseDrag") } } diff --git a/mouse/onCollision.go b/mouse/onCollision.go index be5803e1..1190a1b3 100644 --- a/mouse/onCollision.go +++ b/mouse/onCollision.go @@ -21,6 +21,10 @@ func (cp *CollisionPhase) getCollisionPhase() *CollisionPhase { return cp } +func (cp *CollisionPhase) CID() event.CallerID { + return cp.OnCollisionS.CID +} + type collisionPhase interface { getCollisionPhase() *CollisionPhase } @@ -28,15 +32,12 @@ type collisionPhase interface { // PhaseCollision binds to the entity behind the space's CID so that it will // receive MouseCollisionStart and MouseCollisionStop events, appropriately when // the mouse begins to hover or stops hovering over the input space. -func PhaseCollision(s *collision.Space, callerMap *event.CallerMap, handler event.Handler) error { - if callerMap == nil { - callerMap = event.DefaultCallerMap - } - en := callerMap.GetEntity(s.CID) +func PhaseCollision(s *collision.Space, handler event.Handler) error { + en := handler.GetCallerMap().GetEntity(s.CID) if cp, ok := en.(collisionPhase); ok { oc := cp.getCollisionPhase() oc.OnCollisionS = s - oc.CallerMap = callerMap + oc.CallerMap = handler.GetCallerMap() handler.UnsafeBind(event.Enter.UnsafeEventID, s.CID, phaseCollisionEnter) return nil } diff --git a/mouse/onCollision_test.go b/mouse/onCollision_test.go index 5afedb90..12fe61a5 100644 --- a/mouse/onCollision_test.go +++ b/mouse/onCollision_test.go @@ -11,51 +11,56 @@ import ( type cphase struct { CollisionPhase -} - -func (cp *cphase) Init() event.CallerID { - return event.NextID(cp) + callers *event.CallerMap } func TestCollisionPhase(t *testing.T) { + b := event.NewBus(event.NewCallerMap()) go func() { for { <-time.After(5 * time.Millisecond) - <-event.TriggerBack(event.Enter, nil) + <-event.TriggerOn(b, event.Enter, event.EnterPayload{}) } }() - cp := cphase{} - cid := cp.Init() + cp := &cphase{} + cid := b.GetCallerMap().Register(cp) s := collision.NewSpace(10, 10, 10, 10, cid) - if PhaseCollision(s) != nil { - t.Fatalf("phase collision errored") + err := PhaseCollision(s, b) + if err != nil { + t.Fatalf("phase collision failed: %v", err) } - var active bool - cid.Bind("MouseCollisionStart", func(event.CallerID, interface{}) int { - active = true + activeCh := make(chan bool, 5) + b1 := event.Bind(b, Start, cp, func(_ *cphase, _ *Event) event.Response { + activeCh <- true return 0 }) - cid.Bind("MouseCollisionStop", func(event.CallerID, interface{}) int { - active = false + b2 := event.Bind(b, Stop, cp, func(_ *cphase, _ *Event) event.Response { + activeCh <- false return 0 }) - time.Sleep(200 * time.Millisecond) + <-b1.Bound + <-b2.Bound LastEvent = Event{ Point2: floatgeom.Point2{10, 10}, } - time.Sleep(200 * time.Millisecond) - if !active { - t.Fatalf("phase collision did not trigger") + if active := <-activeCh; !active { + t.Fatalf("collision should be active") } + LastEvent = Event{ Point2: floatgeom.Point2{21, 21}, } time.Sleep(200 * time.Millisecond) - if active { - t.Fatalf("phase collision triggered innapropriately") + if active := <-activeCh; active { + t.Fatalf("collision should be inactive") } - s = collision.NewSpace(10, 10, 10, 10, 5) - if PhaseCollision(s) == nil { - t.Fatalf("phase collision did not error on invalid space") +} + +func TestPhaseCollision_Unembedded(t *testing.T) { + t.Parallel() + s3 := collision.NewSpace(10, 10, 10, 10, 5) + err := PhaseCollision(s3, event.DefaultBus) + if err == nil { + t.Fatalf("phase collision should have failed") } } From f983f31a529dca5a3ceaf8ab0cbd725cd5f7c3da Mon Sep 17 00:00:00 2001 From: implausiblyfun Date: Sat, 26 Mar 2022 19:06:52 -0400 Subject: [PATCH 018/146] scene: Embed Eventhandler to allow for some embedded calls --- debugtools/inputviz/joystick.go | 10 +++++----- debugtools/inputviz/keyboard.go | 4 ++-- debugtools/inputviz/mouse.go | 2 +- debugtools/mouse.go | 2 +- examples/bezier/main.go | 2 +- examples/click-propagation/main.go | 10 +++++----- examples/collision-demo/main.go | 6 +++--- examples/custom-cursor/main.go | 2 +- examples/joystick-viz/main.go | 2 +- examples/multi-window/main.go | 4 ++-- examples/pong/main.go | 6 +++--- scene/context.go | 9 +++++---- sceneLoop.go | 2 +- 13 files changed, 31 insertions(+), 30 deletions(-) diff --git a/debugtools/inputviz/joystick.go b/debugtools/inputviz/joystick.go index f8fea3b3..1b9bf7ba 100644 --- a/debugtools/inputviz/joystick.go +++ b/debugtools/inputviz/joystick.go @@ -183,13 +183,13 @@ func (j *Joystick) RenderAndListen(ctx *scene.Context, joy *joystick.Joystick, l joystick.InputRightShoulder, } - b1 := event.Bind(ctx.EventHandler, joystick.Disconnected, j, func(rend *Joystick, _ uint32) event.Response { + b1 := event.Bind(ctx.Handler, joystick.Disconnected, j, func(rend *Joystick, _ uint32) event.Response { j.Destroy() return 0 }) // TODO: it is bad that you need to import two 'key' packages - b2 := event.Bind(ctx.EventHandler, key.Down(mkey.CodeSpacebar), j, func(j *Joystick, _ key.Event) event.Response { + b2 := event.Bind(ctx.Handler, key.Down(mkey.CodeSpacebar), j, func(j *Joystick, _ key.Event) event.Response { j.joy.Vibrate(math.MaxUint16, math.MaxUint16) go func() { time.Sleep(1 * time.Second) @@ -198,7 +198,7 @@ func (j *Joystick) RenderAndListen(ctx *scene.Context, joy *joystick.Joystick, l return 0 }) - b3 := event.Bind(ctx.EventHandler, joystick.Change, j, func(j *Joystick, st *joystick.State) event.Response { + b3 := event.Bind(ctx.Handler, joystick.Change, j, func(j *Joystick, st *joystick.State) event.Response { for _, inputB := range bts { b := string(inputB) r := j.rs[b] @@ -220,7 +220,7 @@ func (j *Joystick) RenderAndListen(ctx *scene.Context, joy *joystick.Joystick, l return 0 }) - b4 := event.Bind(ctx.EventHandler, joystick.LtStickChange, j, func(j *Joystick, st *joystick.State) event.Response { + b4 := event.Bind(ctx.Handler, joystick.LtStickChange, j, func(j *Joystick, st *joystick.State) event.Response { pos := j.lStickCenter pos = pos.Add(floatgeom.Point2{ float64(st.StickLX / 2048), @@ -230,7 +230,7 @@ func (j *Joystick) RenderAndListen(ctx *scene.Context, joy *joystick.Joystick, l return 0 }) - b5 := event.Bind(ctx.EventHandler, joystick.RtStickChange, j, func(j *Joystick, st *joystick.State) event.Response { + b5 := event.Bind(ctx.Handler, joystick.RtStickChange, j, func(j *Joystick, st *joystick.State) event.Response { pos := j.rStickCenter pos = pos.Add(floatgeom.Point2{ float64(st.StickRX / 2048), diff --git a/debugtools/inputviz/keyboard.go b/debugtools/inputviz/keyboard.go index 4a905ac1..bccc0407 100644 --- a/debugtools/inputviz/keyboard.go +++ b/debugtools/inputviz/keyboard.go @@ -221,7 +221,7 @@ func (k *Keyboard) RenderAndListen(ctx *scene.Context, layer int) error { } } - b1 := event.Bind(ctx.EventHandler, key.AnyDown, k, func(kb *Keyboard, ev key.Event) event.Response { + b1 := event.Bind(ctx.Handler, key.AnyDown, k, func(kb *Keyboard, ev key.Event) event.Response { btn := ev.Code.String()[4:] if kb.rs[btn] == nil { return 0 @@ -229,7 +229,7 @@ func (k *Keyboard) RenderAndListen(ctx *scene.Context, layer int) error { kb.rs[btn].Set("pressed") return 0 }) - b2 := event.Bind(ctx.EventHandler, key.AnyUp, k, func(kb *Keyboard, ev key.Event) event.Response { + b2 := event.Bind(ctx.Handler, key.AnyUp, k, func(kb *Keyboard, ev key.Event) event.Response { btn := ev.Code.String()[4:] if kb.rs[btn] == nil { return 0 diff --git a/debugtools/inputviz/mouse.go b/debugtools/inputviz/mouse.go index c07fcf2b..c64f4df7 100644 --- a/debugtools/inputviz/mouse.go +++ b/debugtools/inputviz/mouse.go @@ -37,7 +37,7 @@ func (m *Mouse) CID() event.CallerID { func (m *Mouse) RenderAndListen(ctx *scene.Context, layer int) error { m.ctx = ctx - handler := ctx.EventHandler + handler := ctx.Handler m.CallerID = handler.GetCallerMap().Register(m) if m.Rect.W() == 0 || m.Rect.H() == 0 { diff --git a/debugtools/mouse.go b/debugtools/mouse.go index 7cd74b66..adc7752d 100644 --- a/debugtools/mouse.go +++ b/debugtools/mouse.go @@ -10,7 +10,7 @@ import ( // DebugMouseRelease will print the position and button pressed of the mouse when the mouse is released, if the given // key is held down at the time. If no key is given, it will always be printed func DebugMouseRelease(ctx *scene.Context, k string) { - event.GlobalBind(ctx.EventHandler, mouse.Release, func(mev *mouse.Event) event.Response { + event.GlobalBind(ctx.Handler, mouse.Release, func(mev *mouse.Event) event.Response { if k == "" || ctx.KeyState.IsDown(k) { dlog.Info(mev) } diff --git a/examples/bezier/main.go b/examples/bezier/main.go index 92a65afe..cfd6a905 100644 --- a/examples/bezier/main.go +++ b/examples/bezier/main.go @@ -55,7 +55,7 @@ func main() { oak.AddScene("bezier", scene.Scene{Start: func(ctx *scene.Context) { mouseFloats := []float64{} - event.GlobalBind(ctx.EventHandler, + event.GlobalBind(ctx.Handler, mouse.Press, func(me *mouse.Event) event.Response { // Left click to add a point to the curve if me.Button == mouse.ButtonLeft { diff --git a/examples/click-propagation/main.go b/examples/click-propagation/main.go index 2cf97753..022abf70 100644 --- a/examples/click-propagation/main.go +++ b/examples/click-propagation/main.go @@ -46,30 +46,30 @@ func (hb *hoverButton) CID() event.CallerID { func newHoverButton(ctx *scene.Context, x, y, w, h float64, clr color.RGBA, layer int) { hb := &hoverButton{} - hb.id = ctx.CallerMap.Register(hb) + hb.id = ctx.Register(hb) hb.changingColorBox = newChangingColorBox(x, y, int(w), int(h), clr) sp := collision.NewSpace(x, y, w, h, hb.id) sp.SetZLayer(float64(layer)) mouse.Add(sp) - mouse.PhaseCollision(sp, ctx.EventHandler.GetCallerMap(), ctx.EventHandler) + mouse.PhaseCollision(sp, ctx.GetCallerMap(), ctx.Handler) render.Draw(hb.changingColorBox, 0, layer) - event.Bind(ctx.EventHandler, mouse.Click, hb, func(box *hoverButton, me *mouse.Event) event.Response { + event.Bind(ctx.Handler, mouse.Click, hb, func(box *hoverButton, me *mouse.Event) event.Response { fmt.Println(box, me.Point2) box.changingColorBox.c = color.RGBA{128, 128, 128, 128} me.StopPropagation = true return 0 }) - event.Bind(ctx.EventHandler, mouse.Start, hb, func(box *hoverButton, me *mouse.Event) event.Response { + event.Bind(ctx.Handler, mouse.Start, hb, func(box *hoverButton, me *mouse.Event) event.Response { fmt.Println("start") box.changingColorBox.c = color.RGBA{50, 50, 50, 50} me.StopPropagation = true return 0 }) - event.Bind(ctx.EventHandler, mouse.Stop, hb, func(box *hoverButton, me *mouse.Event) event.Response { + event.Bind(ctx.Handler, mouse.Stop, hb, func(box *hoverButton, me *mouse.Event) event.Response { fmt.Println("stop") box.changingColorBox.c = clr me.StopPropagation = true diff --git a/examples/collision-demo/main.go b/examples/collision-demo/main.go index 4d32722e..a3c9528e 100644 --- a/examples/collision-demo/main.go +++ b/examples/collision-demo/main.go @@ -26,7 +26,7 @@ func main() { collision.Attach(act.Vector, act.Space, nil, 0, 0) - event.Bind(ctx.EventHandler, event.Enter, act, func(act *AttachCollisionTest, ev event.EnterPayload) event.Response { + event.Bind(ctx.Handler, event.Enter, act, func(act *AttachCollisionTest, ev event.EnterPayload) event.Response { if act.ShouldUpdate { act.ShouldUpdate = false act.R.Undraw() @@ -57,7 +57,7 @@ func main() { collision.PhaseCollision(act.Space, nil) - event.Bind(ctx.EventHandler, collision.Start, act, func(act *AttachCollisionTest, l collision.Label) event.Response { + event.Bind(ctx.Handler, collision.Start, act, func(act *AttachCollisionTest, l collision.Label) event.Response { switch l { case RED: act.r += 125 @@ -75,7 +75,7 @@ func main() { } return 0 }) - event.Bind(ctx.EventHandler, collision.Stop, act, func(act *AttachCollisionTest, l collision.Label) event.Response { + event.Bind(ctx.Handler, collision.Stop, act, func(act *AttachCollisionTest, l collision.Label) event.Response { switch l { case RED: act.r -= 125 diff --git a/examples/custom-cursor/main.go b/examples/custom-cursor/main.go index e46e292d..898fbed4 100644 --- a/examples/custom-cursor/main.go +++ b/examples/custom-cursor/main.go @@ -37,7 +37,7 @@ func main() { ) ctx.DrawStack.Draw(box) - ctx.EventHandler.GlobalBind(mouse.Drag, func(_ event.CallerID, me interface{}) int { + ctx.Handler.GlobalBind(mouse.Drag, func(_ event.CallerID, me interface{}) int { mouseEvent := me.(*mouse.Event) box.SetPos(mouseEvent.X(), mouseEvent.Y()) return 0 diff --git a/examples/joystick-viz/main.go b/examples/joystick-viz/main.go index a0a1c40a..6980aa92 100644 --- a/examples/joystick-viz/main.go +++ b/examples/joystick-viz/main.go @@ -22,7 +22,7 @@ func main() { *latestInput = "Latest Input: Keyboard+Mouse" ctx.DrawStack.Draw(render.NewStrPtrText(latestInput, 10, 460), 4) ctx.DrawStack.Draw(render.NewText("Space to Vibrate", 10, 440), 4) - ctx.EventHandler.GlobalBind(event.InputChange, func(_ event.CallerID, payload interface{}) int { + ctx.Handler.GlobalBind(event.InputChange, func(_ event.CallerID, payload interface{}) int { input := payload.(oak.InputType) switch input { case oak.InputJoystick: diff --git a/examples/multi-window/main.go b/examples/multi-window/main.go index 28e123f8..4407c8cd 100644 --- a/examples/multi-window/main.go +++ b/examples/multi-window/main.go @@ -26,7 +26,7 @@ func main() { ctx.DrawStack.Draw(cb, 0) dFPS := render.NewDrawFPS(0.1, nil, 600, 10) ctx.DrawStack.Draw(dFPS, 1) - ctx.EventHandler.GlobalBind(mouse.Press, mouse.Binding(func(_ event.CallerID, me *mouse.Event) int { + ctx.Handler.GlobalBind(mouse.Press, mouse.Binding(func(_ event.CallerID, me *mouse.Event) int { cb.SetPos(me.X(), me.Y()) return 0 })) @@ -55,7 +55,7 @@ func main() { ctx.DrawStack.Draw(cb, 0) dFPS := render.NewDrawFPS(0.1, nil, 600, 10) ctx.DrawStack.Draw(dFPS, 1) - ctx.EventHandler.GlobalBind(mouse.Press, mouse.Binding(func(_ event.CallerID, me *mouse.Event) int { + ctx.Handler.GlobalBind(mouse.Press, mouse.Binding(func(_ event.CallerID, me *mouse.Event) int { cb.SetPos(me.X(), me.Y()) return 0 })) diff --git a/examples/pong/main.go b/examples/pong/main.go index 24dea2a3..9a8d577a 100644 --- a/examples/pong/main.go +++ b/examples/pong/main.go @@ -41,7 +41,7 @@ func main() { func newBall(ctx *scene.Context, x, y float64) { b := entities.NewMoving(x, y, 10, 10, render.NewColorBoxR(10, 10, color.RGBA{255, 255, 255, 255}), nil, 0, 0) render.Draw(b.R, 2) - event.GlobalBind(ctx.EventHandler, event.Enter, func(_ event.EnterPayload) event.Response { + event.GlobalBind(ctx.Handler, event.Enter, func(_ event.EnterPayload) event.Response { if b.Delta.X() == 0 && b.Delta.Y() == 0 { b.Delta.SetY((rand.Float64() - 0.5) * 4) b.Delta.SetX((rand.Float64() - 0.5) * 16) @@ -76,9 +76,9 @@ func newPaddle(ctx *scene.Context, x, y float64, player int) { render.Draw(p.R, 1) p.Space.UpdateLabel(hitPaddle) if player == 1 { - event.Bind(ctx.EventHandler, event.Enter, p, enterPaddle(key.UpArrow, key.DownArrow)) + event.Bind(ctx.Handler, event.Enter, p, enterPaddle(key.UpArrow, key.DownArrow)) } else { - event.Bind(ctx.EventHandler, event.Enter, p, enterPaddle(key.W, key.S)) + event.Bind(ctx.Handler, event.Enter, p, enterPaddle(key.W, key.S)) } } diff --git a/scene/context.go b/scene/context.go index 4121b2b9..79e28aee 100644 --- a/scene/context.go +++ b/scene/context.go @@ -15,18 +15,19 @@ import ( // and a reference to the OS window itself. When a scene ends, modifications made // to these structures will be reset, excluding window modifications. // TODO oak v4: consider embedding these system objects on the context to change -// ctx.DrawStack.Draw to ctx.Draw and ctx.EventHandler.Bind to ctx.Bind +// ctx.DrawStack.Draw to ctx.Draw and ctx.Handler.Bind to ctx.Bind type Context struct { // This context will be canceled when the scene ends context.Context + *event.CallerMap + event.Handler PreviousScene string SceneInput interface{} Window window.Window - DrawStack *render.DrawStack - EventHandler event.Handler - CallerMap *event.CallerMap + DrawStack *render.DrawStack + MouseTree *collision.Tree CollisionTree *collision.Tree KeyState *key.State diff --git a/sceneLoop.go b/sceneLoop.go index 5b07452f..096199b1 100644 --- a/sceneLoop.go +++ b/sceneLoop.go @@ -74,7 +74,7 @@ func (w *Window) sceneLoop(first string, trackingInputs, batchLoad bool) { PreviousScene: prevScene, SceneInput: result.NextSceneInput, DrawStack: w.DrawStack, - EventHandler: w.eventHandler, + Handler: w.eventHandler, CallerMap: w.CallerMap, MouseTree: w.MouseTree, CollisionTree: w.CollisionTree, From 66021490f490d32baa5a339ab5991c1b1dab303b Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 26 Mar 2022 18:20:26 -0500 Subject: [PATCH 019/146] event: rename CallerMap.Reset to Clear, enabling embedding via scene.Context --- debugtools/inputviz/joystick.go | 10 +++++----- debugtools/inputviz/keyboard.go | 4 ++-- debugtools/inputviz/mouse.go | 13 ++++++------- debugtools/mouse.go | 2 +- event/caller.go | 4 ++-- examples/bezier/main.go | 2 +- examples/click-propagation/main.go | 6 +++--- examples/collision-demo/main.go | 6 +++--- examples/pong/main.go | 6 +++--- sceneLoop.go | 2 +- 10 files changed, 27 insertions(+), 28 deletions(-) diff --git a/debugtools/inputviz/joystick.go b/debugtools/inputviz/joystick.go index 1b9bf7ba..c2fcb46b 100644 --- a/debugtools/inputviz/joystick.go +++ b/debugtools/inputviz/joystick.go @@ -183,13 +183,13 @@ func (j *Joystick) RenderAndListen(ctx *scene.Context, joy *joystick.Joystick, l joystick.InputRightShoulder, } - b1 := event.Bind(ctx.Handler, joystick.Disconnected, j, func(rend *Joystick, _ uint32) event.Response { + b1 := event.Bind(ctx, joystick.Disconnected, j, func(rend *Joystick, _ uint32) event.Response { j.Destroy() return 0 }) // TODO: it is bad that you need to import two 'key' packages - b2 := event.Bind(ctx.Handler, key.Down(mkey.CodeSpacebar), j, func(j *Joystick, _ key.Event) event.Response { + b2 := event.Bind(ctx, key.Down(mkey.CodeSpacebar), j, func(j *Joystick, _ key.Event) event.Response { j.joy.Vibrate(math.MaxUint16, math.MaxUint16) go func() { time.Sleep(1 * time.Second) @@ -198,7 +198,7 @@ func (j *Joystick) RenderAndListen(ctx *scene.Context, joy *joystick.Joystick, l return 0 }) - b3 := event.Bind(ctx.Handler, joystick.Change, j, func(j *Joystick, st *joystick.State) event.Response { + b3 := event.Bind(ctx, joystick.Change, j, func(j *Joystick, st *joystick.State) event.Response { for _, inputB := range bts { b := string(inputB) r := j.rs[b] @@ -220,7 +220,7 @@ func (j *Joystick) RenderAndListen(ctx *scene.Context, joy *joystick.Joystick, l return 0 }) - b4 := event.Bind(ctx.Handler, joystick.LtStickChange, j, func(j *Joystick, st *joystick.State) event.Response { + b4 := event.Bind(ctx, joystick.LtStickChange, j, func(j *Joystick, st *joystick.State) event.Response { pos := j.lStickCenter pos = pos.Add(floatgeom.Point2{ float64(st.StickLX / 2048), @@ -230,7 +230,7 @@ func (j *Joystick) RenderAndListen(ctx *scene.Context, joy *joystick.Joystick, l return 0 }) - b5 := event.Bind(ctx.Handler, joystick.RtStickChange, j, func(j *Joystick, st *joystick.State) event.Response { + b5 := event.Bind(ctx, joystick.RtStickChange, j, func(j *Joystick, st *joystick.State) event.Response { pos := j.rStickCenter pos = pos.Add(floatgeom.Point2{ float64(st.StickRX / 2048), diff --git a/debugtools/inputviz/keyboard.go b/debugtools/inputviz/keyboard.go index bccc0407..52b24f46 100644 --- a/debugtools/inputviz/keyboard.go +++ b/debugtools/inputviz/keyboard.go @@ -221,7 +221,7 @@ func (k *Keyboard) RenderAndListen(ctx *scene.Context, layer int) error { } } - b1 := event.Bind(ctx.Handler, key.AnyDown, k, func(kb *Keyboard, ev key.Event) event.Response { + b1 := event.Bind(ctx, key.AnyDown, k, func(kb *Keyboard, ev key.Event) event.Response { btn := ev.Code.String()[4:] if kb.rs[btn] == nil { return 0 @@ -229,7 +229,7 @@ func (k *Keyboard) RenderAndListen(ctx *scene.Context, layer int) error { kb.rs[btn].Set("pressed") return 0 }) - b2 := event.Bind(ctx.Handler, key.AnyUp, k, func(kb *Keyboard, ev key.Event) event.Response { + b2 := event.Bind(ctx, key.AnyUp, k, func(kb *Keyboard, ev key.Event) event.Response { btn := ev.Code.String()[4:] if kb.rs[btn] == nil { return 0 diff --git a/debugtools/inputviz/mouse.go b/debugtools/inputviz/mouse.go index c64f4df7..b0d2323c 100644 --- a/debugtools/inputviz/mouse.go +++ b/debugtools/inputviz/mouse.go @@ -37,8 +37,7 @@ func (m *Mouse) CID() event.CallerID { func (m *Mouse) RenderAndListen(ctx *scene.Context, layer int) error { m.ctx = ctx - handler := ctx.Handler - m.CallerID = handler.GetCallerMap().Register(m) + m.CallerID = ctx.Handler.GetCallerMap().Register(m) if m.Rect.W() == 0 || m.Rect.H() == 0 { m.Rect.Max = m.Rect.Min.Add(floatgeom.Point2{60, 100}) @@ -100,21 +99,21 @@ func (m *Mouse) RenderAndListen(ctx *scene.Context, layer int) error { ctx.DrawStack.Draw(m.posText, m.BaseLayer, layer+2) } - b1 := event.Bind(handler, mouse.Press, m, func(m *Mouse, ev *mouse.Event) event.Response { + b1 := event.Bind(ctx, mouse.Press, m, func(m *Mouse, ev *mouse.Event) event.Response { m.rs[ev.Button].Set("pressed") m.stateIncLock.Lock() m.stateInc[ev.Button]++ m.stateIncLock.Unlock() return 0 }) - b2 := event.Bind(handler, mouse.Release, m, func(m *Mouse, ev *mouse.Event) event.Response { + b2 := event.Bind(ctx, mouse.Release, m, func(m *Mouse, ev *mouse.Event) event.Response { m.rs[ev.Button].Set("released") m.stateIncLock.Lock() m.stateInc[ev.Button]++ m.stateIncLock.Unlock() return 0 }) - b3 := event.Bind(handler, mouse.ScrollDown, m, func(m *Mouse, ev *mouse.Event) event.Response { + b3 := event.Bind(ctx, mouse.ScrollDown, m, func(m *Mouse, ev *mouse.Event) event.Response { m.rs[mouse.ButtonMiddle].Set("scrolldown") m.stateIncLock.Lock() m.stateInc[mouse.ButtonMiddle]++ @@ -129,7 +128,7 @@ func (m *Mouse) RenderAndListen(ctx *scene.Context, layer int) error { }) return 0 }) - b4 := event.Bind(handler, mouse.ScrollUp, m, func(m *Mouse, ev *mouse.Event) event.Response { + b4 := event.Bind(ctx, mouse.ScrollUp, m, func(m *Mouse, ev *mouse.Event) event.Response { m.rs[mouse.ButtonMiddle].Set("scrollup") m.stateIncLock.Lock() m.stateInc[mouse.ButtonMiddle]++ @@ -144,7 +143,7 @@ func (m *Mouse) RenderAndListen(ctx *scene.Context, layer int) error { }) return 0 }) - b5 := event.Bind(handler, mouse.Drag, m, func(m *Mouse, ev *mouse.Event) event.Response { + b5 := event.Bind(ctx, mouse.Drag, m, func(m *Mouse, ev *mouse.Event) event.Response { m.lastMousePos.Point2 = ev.Point2 return 0 }) diff --git a/debugtools/mouse.go b/debugtools/mouse.go index adc7752d..5b692c7f 100644 --- a/debugtools/mouse.go +++ b/debugtools/mouse.go @@ -10,7 +10,7 @@ import ( // DebugMouseRelease will print the position and button pressed of the mouse when the mouse is released, if the given // key is held down at the time. If no key is given, it will always be printed func DebugMouseRelease(ctx *scene.Context, k string) { - event.GlobalBind(ctx.Handler, mouse.Release, func(mev *mouse.Event) event.Response { + event.GlobalBind(ctx, mouse.Release, func(mev *mouse.Event) event.Response { if k == "" || ctx.KeyState.IsDown(k) { dlog.Info(mev) } diff --git a/event/caller.go b/event/caller.go index 09ca69bd..b9b9bc31 100644 --- a/event/caller.go +++ b/event/caller.go @@ -72,8 +72,8 @@ func (cm *CallerMap) DestroyEntity(id CallerID) { cm.callersLock.Unlock() } -// Reset clears the caller map to forget all registered callers. -func (cm *CallerMap) Reset() { +// Clear clears the caller map to forget all registered callers. +func (cm *CallerMap) Clear() { cm.callersLock.Lock() *cm.highestID = 0 cm.callers = map[CallerID]Caller{} diff --git a/examples/bezier/main.go b/examples/bezier/main.go index cfd6a905..eca12490 100644 --- a/examples/bezier/main.go +++ b/examples/bezier/main.go @@ -55,7 +55,7 @@ func main() { oak.AddScene("bezier", scene.Scene{Start: func(ctx *scene.Context) { mouseFloats := []float64{} - event.GlobalBind(ctx.Handler, + event.GlobalBind(ctx, mouse.Press, func(me *mouse.Event) event.Response { // Left click to add a point to the curve if me.Button == mouse.ButtonLeft { diff --git a/examples/click-propagation/main.go b/examples/click-propagation/main.go index 022abf70..72f591c1 100644 --- a/examples/click-propagation/main.go +++ b/examples/click-propagation/main.go @@ -57,19 +57,19 @@ func newHoverButton(ctx *scene.Context, x, y, w, h float64, clr color.RGBA, laye render.Draw(hb.changingColorBox, 0, layer) - event.Bind(ctx.Handler, mouse.Click, hb, func(box *hoverButton, me *mouse.Event) event.Response { + event.Bind(ctx, mouse.Click, hb, func(box *hoverButton, me *mouse.Event) event.Response { fmt.Println(box, me.Point2) box.changingColorBox.c = color.RGBA{128, 128, 128, 128} me.StopPropagation = true return 0 }) - event.Bind(ctx.Handler, mouse.Start, hb, func(box *hoverButton, me *mouse.Event) event.Response { + event.Bind(ctx, mouse.Start, hb, func(box *hoverButton, me *mouse.Event) event.Response { fmt.Println("start") box.changingColorBox.c = color.RGBA{50, 50, 50, 50} me.StopPropagation = true return 0 }) - event.Bind(ctx.Handler, mouse.Stop, hb, func(box *hoverButton, me *mouse.Event) event.Response { + event.Bind(ctx, mouse.Stop, hb, func(box *hoverButton, me *mouse.Event) event.Response { fmt.Println("stop") box.changingColorBox.c = clr me.StopPropagation = true diff --git a/examples/collision-demo/main.go b/examples/collision-demo/main.go index a3c9528e..571727a3 100644 --- a/examples/collision-demo/main.go +++ b/examples/collision-demo/main.go @@ -26,7 +26,7 @@ func main() { collision.Attach(act.Vector, act.Space, nil, 0, 0) - event.Bind(ctx.Handler, event.Enter, act, func(act *AttachCollisionTest, ev event.EnterPayload) event.Response { + event.Bind(ctx, event.Enter, act, func(act *AttachCollisionTest, ev event.EnterPayload) event.Response { if act.ShouldUpdate { act.ShouldUpdate = false act.R.Undraw() @@ -57,7 +57,7 @@ func main() { collision.PhaseCollision(act.Space, nil) - event.Bind(ctx.Handler, collision.Start, act, func(act *AttachCollisionTest, l collision.Label) event.Response { + event.Bind(ctx, collision.Start, act, func(act *AttachCollisionTest, l collision.Label) event.Response { switch l { case RED: act.r += 125 @@ -75,7 +75,7 @@ func main() { } return 0 }) - event.Bind(ctx.Handler, collision.Stop, act, func(act *AttachCollisionTest, l collision.Label) event.Response { + event.Bind(ctx, collision.Stop, act, func(act *AttachCollisionTest, l collision.Label) event.Response { switch l { case RED: act.r -= 125 diff --git a/examples/pong/main.go b/examples/pong/main.go index 9a8d577a..3dba7009 100644 --- a/examples/pong/main.go +++ b/examples/pong/main.go @@ -41,7 +41,7 @@ func main() { func newBall(ctx *scene.Context, x, y float64) { b := entities.NewMoving(x, y, 10, 10, render.NewColorBoxR(10, 10, color.RGBA{255, 255, 255, 255}), nil, 0, 0) render.Draw(b.R, 2) - event.GlobalBind(ctx.Handler, event.Enter, func(_ event.EnterPayload) event.Response { + event.GlobalBind(ctx, event.Enter, func(_ event.EnterPayload) event.Response { if b.Delta.X() == 0 && b.Delta.Y() == 0 { b.Delta.SetY((rand.Float64() - 0.5) * 4) b.Delta.SetX((rand.Float64() - 0.5) * 16) @@ -76,9 +76,9 @@ func newPaddle(ctx *scene.Context, x, y float64, player int) { render.Draw(p.R, 1) p.Space.UpdateLabel(hitPaddle) if player == 1 { - event.Bind(ctx.Handler, event.Enter, p, enterPaddle(key.UpArrow, key.DownArrow)) + event.Bind(ctx, event.Enter, p, enterPaddle(key.UpArrow, key.DownArrow)) } else { - event.Bind(ctx.Handler, event.Enter, p, enterPaddle(key.W, key.S)) + event.Bind(ctx, event.Enter, p, enterPaddle(key.W, key.S)) } } diff --git a/sceneLoop.go b/sceneLoop.go index 096199b1..359d17cb 100644 --- a/sceneLoop.go +++ b/sceneLoop.go @@ -129,7 +129,7 @@ func (w *Window) sceneLoop(first string, trackingInputs, batchLoad bool) { // be triggered and attempt to access an entity w.CollisionTree.Clear() w.MouseTree.Clear() - w.CallerMap.Reset() + w.CallerMap.Clear() w.eventHandler.SetCallerMap(w.CallerMap) w.DrawStack.Clear() w.DrawStack.PreDraw() From 747702d54661d7a0a038cd741966c6d57df74dca Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Mon, 28 Mar 2022 17:23:31 -0500 Subject: [PATCH 020/146] entities/x: adjust to compile with event api v4 --- entities/x/btn/box.go | 18 +++-- entities/x/btn/button.go | 121 +++++++++++++++-------------- entities/x/btn/option.go | 9 ++- entities/x/btn/textBox.go | 12 +-- entities/x/force/directionSpace.go | 9 ++- entities/x/stat/default.go | 26 ++++--- entities/x/stat/statistic.go | 8 +- entities/x/stat/stats.go | 60 +++++++++----- 8 files changed, 142 insertions(+), 121 deletions(-) diff --git a/entities/x/btn/box.go b/entities/x/btn/box.go index 0ddab483..b5a3606b 100644 --- a/entities/x/btn/box.go +++ b/entities/x/btn/box.go @@ -14,10 +14,17 @@ type Box struct { metadata map[string]string } +func (b Box) CID() event.CallerID { + return b.Solid.CID() +} + // NewBox creates a new Box func NewBox(cid event.CallerID, x, y, w, h float64, r render.Renderable, layers ...int) *Box { b := Box{} - cid = cid.Parse(&b) + if cid == 0 { + // TODO: not default + cid = event.DefaultCallerMap.Register(b) + } b.Solid = *entities.NewSolid(x, y, w, h, r, mouse.DefaultTree, cid) if b.R != nil && len(layers) > 0 { render.Draw(b.R, layers...) @@ -26,12 +33,6 @@ func NewBox(cid event.CallerID, x, y, w, h float64, r render.Renderable, layers return &b } -// Init intializes the Box -func (b *Box) Init() event.CallerID { - b.CID = event.NextID(b) - return b.CID -} - // GetRenderable returns the box's renderable func (b *Box) GetRenderable() render.Renderable { return b.R @@ -54,7 +55,8 @@ func (b *Box) Metadata(k string) (v string, ok bool) { } func (b *Box) Destroy() { - b.UnbindAll() + // TODO: not default + event.DefaultBus.UnbindAllFrom(b.CallerID) b.R.Undraw() mouse.Remove(b.GetSpace()) } diff --git a/entities/x/btn/button.go b/entities/x/btn/button.go index 9fbffb8a..00407564 100644 --- a/entities/x/btn/button.go +++ b/entities/x/btn/button.go @@ -4,7 +4,6 @@ import ( "fmt" "image/color" "strconv" - "strings" "github.com/oakmound/oak/v3/collision" "github.com/oakmound/oak/v3/dlog" @@ -35,7 +34,7 @@ type Generator struct { TextPtr *string TextStringer fmt.Stringer Children []Generator - Bindings map[string][]event.Bindable + Bindings []func(caller Btn) event.Binding Trigger string Toggle *bool ListChoice *int @@ -66,7 +65,6 @@ func defGenerator() Generator { Font: nil, Layers: []int{0}, Text: "Button", - Bindings: make(map[string][]event.Bindable), Trigger: "MouseClickOn", Toggle: nil, @@ -98,7 +96,10 @@ func (g Generator) generate(parent *Generator) Btn { "on": g.R1, "off": g.R2, }) - g.Bindings["MouseClickOn"] = append(g.Bindings["MouseClickOn"], toggleFxn(g)) + g.Bindings = append(g.Bindings, func(caller Btn) event.Binding { + // TODO not default + return event.Bind(event.DefaultBus, mouse.ClickOn, caller, toggleFxn(g)) + }) case g.ListChoice != nil: start := "list" + strconv.Itoa(*g.ListChoice) @@ -109,9 +110,13 @@ func (g Generator) generate(parent *Generator) Btn { } mp["list"+strconv.Itoa(i)] = r } + box = render.NewSwitch(start, mp) - g.Bindings["MouseClickOn"] = append(g.Bindings["MouseClickOn"], listFxn(g)) + g.Bindings = append(g.Bindings, func(caller Btn) event.Binding { + // TODO not default + return event.Bind(event.DefaultBus, mouse.ClickOn, caller, listFxn(g)) + }) case g.R != nil: box = g.R case g.ProgressFunc != nil: @@ -159,56 +164,56 @@ func (g Generator) generate(parent *Generator) Btn { btn = bx } + // TODO: this is impossible with how we've done generics + // Update underlying mousecollision binding to only respect clicks in the shape. // If a finer control is needed then it may make sense to use this as a starting off point // instead of expanding this section. - if g.Shape != nil { + // if g.Shape != nil { + // // extract keys prior to loop as the map will be permuted by the following operations + // keys := make([]string, 0, len(g.Bindings)) + // for k := range g.Bindings { + // // We only really care about mouse events. + // // In some ways this is dangerous of an implementer has defined events that start with mouse... + // // but in that case they might not use g.Shape anyways. + // if !strings.HasPrefix(k, "Mouse") { + // continue + // } + // keys = append(keys, k) + // } + // for _, k := range keys { + // curBind := g.Bindings[k] + // if curBind == nil { + // continue + // } + // // This could cause issues with name collisions but its unlikely and documentation should help make it even more unlikely. + // filteredK := "Filtered" + k + // g.Bindings[filteredK] = g.Bindings[k] + // g.Bindings[k] = []event.Bindable{ + // func(id event.CallerID, button interface{}) int { + // btn := id.E().(Btn) + // mEvent, ok := button.(*mouse.Event) + // // If the passed event is not a mouse event dont filter on location. + // // Main current use case is for nil events passed via simulated clicks. + // if !ok { + // btn.Trigger(filteredK, button) + // } + // bSpace := btn.GetSpace().Bounds() + // if g.Shape.In(int(mEvent.X()-bSpace.Min.X()), int(mEvent.Y()-bSpace.Min.Y()), int(bSpace.W()), int(bSpace.H())) { + // btn.Trigger(filteredK, mEvent) + // } + // return 0 + // }, + // } + // } + // } - // extract keys prior to loop as the map will be permuted by the following operations - keys := make([]string, 0, len(g.Bindings)) - for k := range g.Bindings { - // We only really care about mouse events. - // In some ways this is dangerous of an implementer has defined events that start with mouse... - // but in that case they might not use g.Shape anyways. - if !strings.HasPrefix(k, "Mouse") { - continue - } - keys = append(keys, k) - } - for _, k := range keys { - curBind := g.Bindings[k] - if curBind == nil { - continue - } - // This could cause issues with name collisions but its unlikely and documentation should help make it even more unlikely. - filteredK := "Filtered" + k - g.Bindings[filteredK] = g.Bindings[k] - g.Bindings[k] = []event.Bindable{ - func(id event.CallerID, button interface{}) int { - btn := id.E().(Btn) - mEvent, ok := button.(*mouse.Event) - // If the passed event is not a mouse event dont filter on location. - // Main current use case is for nil events passed via simulated clicks. - if !ok { - btn.Trigger(filteredK, button) - } - bSpace := btn.GetSpace().Bounds() - if g.Shape.In(int(mEvent.X()-bSpace.Min.X()), int(mEvent.Y()-bSpace.Min.Y()), int(bSpace.W()), int(bSpace.H())) { - btn.Trigger(filteredK, mEvent) - } - return 0 - }, - } - } + for _, binding := range g.Bindings { + binding(btn) } - for k, v := range g.Bindings { - for _, b := range v { - btn.Bind(k, b) - } - } - - err := mouse.PhaseCollision(btn.GetSpace()) + // TODO: not default + err := mouse.PhaseCollision(btn.GetSpace(), event.DefaultBus) dlog.ErrorCheck(err) if g.Group != nil { @@ -239,9 +244,8 @@ type switcher interface { } // toggleFxn sets up the mouseclick binding for toggle buttons created for goreport cyclo decrease -func toggleFxn(g Generator) func(id event.CallerID, nothing interface{}) int { - return func(id event.CallerID, nothing interface{}) int { - btn := event.GetEntity(id).(Btn) +func toggleFxn(g Generator) func(btn Btn, payload *mouse.Event) event.Response { + return func(btn Btn, payload *mouse.Event) event.Response { if btn.GetRenderable().(switcher).Get() == "on" { if g.Group != nil && g.Group.active == btn { g.Group.active = nil @@ -253,7 +257,7 @@ func toggleFxn(g Generator) func(id event.CallerID, nothing interface{}) int { g.Group.active = btn for _, b := range g.Group.members { if b.GetRenderable().(switcher).Get() == "on" { - b.Trigger("MouseClickOn", nil) + event.TriggerForCallerOn(event.DefaultBus, b.CID(), mouse.ClickOn, payload) } } } @@ -267,19 +271,16 @@ func toggleFxn(g Generator) func(id event.CallerID, nothing interface{}) int { } // listFxn sets up the mouseclick binding for list buttons created for goreport cyclo reduction -func listFxn(g Generator) func(id event.CallerID, button interface{}) int { - return func(id event.CallerID, button interface{}) int { - btn := event.GetEntity(id).(Btn) +func listFxn(g Generator) func(btn Btn, payload *mouse.Event) event.Response { + return func(btn Btn, payload *mouse.Event) event.Response { i := *g.ListChoice - mEvent := button.(*mouse.Event) - - if mEvent.Button == mouse.ButtonLeft { + if payload.Button == mouse.ButtonLeft { i++ if i == len(g.RS) { i = 0 } - } else if mEvent.Button == mouse.ButtonRight { + } else if payload.Button == mouse.ButtonRight { i-- if i < 0 { i += len(g.RS) diff --git a/entities/x/btn/option.go b/entities/x/btn/option.go index fbb4fbcd..28e7ca87 100644 --- a/entities/x/btn/option.go +++ b/entities/x/btn/option.go @@ -151,15 +151,18 @@ func ToggleList(chosen *int, rs ...render.Modifiable) Option { // Binding appends a function to be called when a specific event // is triggered. -func Binding(s string, bnd event.Bindable) Option { +func Binding[Payload any](ev event.EventID[Payload], bnd event.Bindable[Btn, Payload]) Option { return func(g Generator) Generator { - g.Bindings[s] = append(g.Bindings[s], bnd) + g.Bindings = append(g.Bindings, func(caller Btn) event.Binding { + // TODO: not default + return event.Bind(event.DefaultBus, ev, caller, bnd) + }) return g } } // Click appends a function to be called when the button is clicked on. -func Click(bnd event.Bindable) Option { +func Click(bnd event.Bindable[Btn, *mouse.Event]) Option { return Binding(mouse.ClickOn, bnd) } diff --git a/entities/x/btn/textBox.go b/entities/x/btn/textBox.go index 071637db..68ac4a5e 100644 --- a/entities/x/btn/textBox.go +++ b/entities/x/btn/textBox.go @@ -13,12 +13,6 @@ type TextBox struct { *render.Text } -// Init creates the CID -func (b *TextBox) Init() event.CallerID { - b.CID = event.NextID(b) - return b.CID -} - // NewTextBox creates a textbox func NewTextBox(cid event.CallerID, x, y, w, h, txtX, txtY float64, f *render.Font, r render.Renderable, layers ...int) *TextBox { @@ -28,9 +22,9 @@ func NewTextBox(cid event.CallerID, x, y, w, h, txtX, txtY float64, } b := new(TextBox) - - cid = cid.Parse(b) - + if cid == 0 { + cid = event.DefaultCallerMap.Register(b) + } b.Box = *NewBox(cid, x, y, w, h, r, layers...) b.Text = f.NewText("Init", 0, 0) b.Text.Attach(b.Box.Vector, txtX, txtY) diff --git a/entities/x/force/directionSpace.go b/entities/x/force/directionSpace.go index b7d4cc8e..345b1d70 100644 --- a/entities/x/force/directionSpace.go +++ b/entities/x/force/directionSpace.go @@ -10,11 +10,11 @@ import ( type DirectionSpace struct { *collision.Space physics.ForceVector + event.CallerID } -// Init initializes the DirectionSpace as an entity -func (ds *DirectionSpace) Init() event.CallerID { - return event.NextID(ds) +func (ds DirectionSpace) CID() event.CallerID { + return ds.CallerID } // NewDirectionSpace creates a DirectionSpace and initializes it as an entity. @@ -23,6 +23,7 @@ func NewDirectionSpace(s *collision.Space, v physics.ForceVector) *DirectionSpac Space: s, ForceVector: v, } - s.CID = ds.Init() + // TODO: not default + s.CID = event.DefaultCallerMap.Register(ds) return ds } diff --git a/entities/x/stat/default.go b/entities/x/stat/default.go index cd519ffd..aa6b3aec 100644 --- a/entities/x/stat/default.go +++ b/entities/x/stat/default.go @@ -1,5 +1,7 @@ package stat +import "github.com/oakmound/oak/v3/event" + var ( // DefStatistics is a base set of statistics used by package-level calls // When using multiple statistics, avoid using overlapping event names @@ -7,39 +9,39 @@ var ( ) // Inc triggers an event, incrementing the given statistic by one -func Inc(eventName string) { - DefStatistics.Inc(eventName) +func Inc(ev statEvent) { + DefStatistics.Inc(ev) } // Trigger triggers the given event with a given increment to update a statistic -func Trigger(eventName string, inc int) { - DefStatistics.Trigger(eventName, inc) +func Trigger(ev statEvent, inc int) { + DefStatistics.Trigger(ev, inc) } // TriggerOn triggers the given event, toggling it on -func TriggerOn(eventName string) { - DefStatistics.TriggerOn(eventName) +func TriggerOn(ev timedStatEvent) { + DefStatistics.TriggerOn(ev) } // TriggerOff triggers the given event, toggling it off -func TriggerOff(eventName string) { - DefStatistics.TriggerOff(eventName) +func TriggerOff(ev timedStatEvent) { + DefStatistics.TriggerOff(ev) } // TriggerTimed triggers the given event, toggling it on or off -func TriggerTimed(eventName string, on bool) { - DefStatistics.TriggerTimed(eventName, on) +func TriggerTimed(ev timedStatEvent, on bool) { + DefStatistics.TriggerTimed(ev, on) } // TrackStats records a stat event to the Statistics map and creates the statistic if it does not already exist -func TrackStats(no int, data interface{}) int { +func TrackStats(no int, data interface{}) event.Response { return DefStatistics.TrackStats(no, data) } // TrackTimeStats acts like TrackStats, but tracks durations of events. If the // event has not started, it logs a start time, and then when the event ends // it will log the delta since the start. -func TrackTimeStats(no int, data interface{}) int { +func TrackTimeStats(no int, data interface{}) event.Response { return DefStatistics.TrackTimeStats(no, data) } diff --git a/entities/x/stat/statistic.go b/entities/x/stat/statistic.go index 970fa494..eb222f2b 100644 --- a/entities/x/stat/statistic.go +++ b/entities/x/stat/statistic.go @@ -70,11 +70,11 @@ func (st *Statistics) trackStats(name string, val int) { } // TrackStats records a stat event to the Statistics map and creates the statistic if it does not already exist -func (st *Statistics) TrackStats(no int, data interface{}) int { +func (st *Statistics) TrackStats(no int, data interface{}) event.Response { stat, ok := data.(stat) if !ok { dlog.Error("TrackStats called with a non-stat payload") - return event.UnbindEvent + return event.UnbindThis } st.trackStats(stat.name, stat.inc) return 0 @@ -83,11 +83,11 @@ func (st *Statistics) TrackStats(no int, data interface{}) int { // TrackTimeStats acts like TrackStats, but tracks durations of events. If the // event has not started, it logs a start time, and then when the event ends // it will log the delta since the start. -func (st *Statistics) TrackTimeStats(no int, data interface{}) int { +func (st *Statistics) TrackTimeStats(no int, data interface{}) event.Response { timed, ok := data.(timedStat) if !ok { dlog.Error("TrackTimeStats called with a non-timedStat payload") - return event.UnbindEvent + return event.UnbindThis } if timed.on { //Turning on a thing to time track st.statTimeLock.Lock() diff --git a/entities/x/stat/stats.go b/entities/x/stat/stats.go index d0c09a03..6710c681 100644 --- a/entities/x/stat/stats.go +++ b/entities/x/stat/stats.go @@ -1,63 +1,81 @@ package stat -import "github.com/oakmound/oak/v3/event" +import ( + "fmt" + + "github.com/oakmound/oak/v3/event" +) + +// TODO: these functions are useless unless the types are exported, and +// if the types are exported the api is bad + +type timedStatEvent struct { + event event.EventID[timedStat] + fmt.Stringer +} type timedStat struct { name string on bool } + +type statEvent struct { + event event.EventID[stat] + fmt.Stringer +} + type stat struct { name string inc int } // TimedOn returns a binding that will trigger toggling on the given event -func TimedOn(eventName string) event.Bindable { - return TimedBind(eventName, true) +func TimedOn(ev timedStatEvent) event.UnsafeBindable { + return TimedBind(ev, true) } // TimedOff returns a binding that will trigger toggling off the given event -func TimedOff(eventName string) event.Bindable { - return TimedBind(eventName, false) +func TimedOff(ev timedStatEvent) event.UnsafeBindable { + return TimedBind(ev, false) } // TimedBind returns a binding that will trigger toggling on or off the given event -func TimedBind(eventName string, on bool) event.Bindable { - return func(event.CallerID, interface{}) int { - event.Trigger(eventName, timedStat{eventName, on}) +func TimedBind(ev timedStatEvent, on bool) event.UnsafeBindable { + return func(event.CallerID, event.Handler, interface{}) event.Response { + event.TriggerOn(event.DefaultBus, ev.event, timedStat{ev.String(), on}) return 0 } } // Bind returns a binding that will increment the given event by 'inc' -func Bind(eventName string, inc int) event.Bindable { - return func(event.CallerID, interface{}) int { - event.Trigger(eventName, stat{eventName, inc}) +func Bind(ev statEvent, inc int) event.UnsafeBindable { + return func(event.CallerID, event.Handler, interface{}) event.Response { + event.TriggerOn(event.DefaultBus, ev.event, stat{ev.String(), inc}) return 0 } } // Inc triggers an event, incrementing the given statistic by one -func (st *Statistics) Inc(eventName string) { - st.Trigger(eventName, 1) +func (st *Statistics) Inc(ev statEvent) { + st.Trigger(ev, 1) } // Trigger triggers the given event with a given increment to update a statistic -func (st *Statistics) Trigger(eventName string, inc int) { - event.Trigger(eventName, stat{eventName, inc}) +func (st *Statistics) Trigger(ev statEvent, inc int) { + event.TriggerOn(event.DefaultBus, ev.event, stat{ev.String(), inc}) } // TriggerOn triggers the given event, toggling it on -func (st *Statistics) TriggerOn(eventName string) { - st.TriggerTimed(eventName, true) +func (st *Statistics) TriggerOn(ev timedStatEvent) { + st.TriggerTimed(ev, true) } // TriggerOff triggers the given event, toggling it off -func (st *Statistics) TriggerOff(eventName string) { - st.TriggerTimed(eventName, false) +func (st *Statistics) TriggerOff(ev timedStatEvent) { + st.TriggerTimed(ev, false) } // TriggerTimed triggers the given event, toggling it on or off -func (st *Statistics) TriggerTimed(eventName string, on bool) { - event.Trigger(eventName, timedStat{eventName, on}) +func (st *Statistics) TriggerTimed(ev timedStatEvent, on bool) { + event.TriggerOn(event.DefaultBus, ev.event, timedStat{ev.String(), on}) } From d8f60a026365e215f2d86f2e04ae3f15116b9581 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Mon, 28 Mar 2022 20:34:19 -0500 Subject: [PATCH 021/146] event: adjust docs --- event/bind.go | 10 +++++++++- event/bus.go | 6 ++++-- event/caller.go | 3 +++ event/default.go | 7 +++++-- event/events.go | 7 +++++-- event/handler.go | 1 - event/trigger.go | 7 +++++-- 7 files changed, 31 insertions(+), 10 deletions(-) diff --git a/event/bind.go b/event/bind.go index 6e1da0c3..ce26e2a6 100644 --- a/event/bind.go +++ b/event/bind.go @@ -6,7 +6,8 @@ import "sync/atomic" // A: For concurrent safety, most operations on a bus lock the bus. Triggers acquire a read lock on the bus, // as they iterate over internal bus components. Most logic within an event bus will happen from within // a Trigger call-- when an entity is destroyed by some collision, for example, all of its bindings should -// be unregistered. If one were to call Unbind from within a +// be unregistered. If one were to call Unbind from within a call to Trigger, the trigger would never release +// its lock-- so the unbind would never be able to take the lock-- so the bus would be unrecoverably stuck. // Q: Why not trust users to call Bind / Unbind / etc with `go`, to allow the caller to decide when to use // concurrency? @@ -89,6 +90,9 @@ func (bus *Bus) Unbind(loc Binding) { // with an event registered via RegisterEvent. type Bindable[C any, Payload any] func(C, Payload) Response +// Bind will cause the function fn to be called whenever the event ev is triggered on the given event handler. The function +// will be called with the provided caller as its first argument, and will also be called when the provided event is specifically +// triggered on the caller's ID. func Bind[C Caller, Payload any](h Handler, ev EventID[Payload], caller C, fn Bindable[C, Payload]) Binding { return h.UnsafeBind(ev.UnsafeEventID, caller.CID(), func(cid CallerID, h Handler, payload interface{}) Response { typedPayload := payload.(Payload) @@ -98,8 +102,10 @@ func Bind[C Caller, Payload any](h Handler, ev EventID[Payload], caller C, fn Bi }) } +// A GlobalBindable is a bindable that is not bound to a specific caller. type GlobalBindable[Payload any] func(Payload) Response +// GlobalBind will cause the function fn to be called whenever the event ev is triggered on the given event handler. func GlobalBind[Payload any](h Handler, ev EventID[Payload], fn GlobalBindable[Payload]) Binding { return h.UnsafeBind(ev.UnsafeEventID, Global, func(cid CallerID, h Handler, payload interface{}) Response { typedPayload := payload.(Payload) @@ -110,6 +116,7 @@ func GlobalBind[Payload any](h Handler, ev EventID[Payload], fn GlobalBindable[P // UnsafeBindable defines the underlying signature of all bindings. type UnsafeBindable func(CallerID, Handler, interface{}) Response +// EmptyBinding is shorthand for an UnsafeBindable that does not accept or return anything. func EmptyBinding(f func()) UnsafeBindable { return func(CallerID, Handler, interface{}) Response { f() @@ -117,6 +124,7 @@ func EmptyBinding(f func()) UnsafeBindable { } } +// UnbindAllFrom unbinds all bindings currently bound to the provided caller via ID. func (bus *Bus) UnbindAllFrom(c CallerID) { go func() { bus.mutex.Lock() diff --git a/event/bus.go b/event/bus.go index e99ef700..91ad7101 100644 --- a/event/bus.go +++ b/event/bus.go @@ -7,7 +7,7 @@ import ( "github.com/oakmound/oak/v3/oakerr" ) -// A Bus stores bindables to be triggered by events +// A Bus stores bindables to be triggered by events. type Bus struct { nextBindID *int64 bindingMap map[UnsafeEventID]map[CallerID]bindableList @@ -98,7 +98,8 @@ func (bus *Bus) EnterLoop(frameDelay time.Duration) { }() } -// Stop ceases anything spawned by an ongoing UpdateLoop +// Stop ceases anything spawned by an ongoing EnterLoop. It will panic if called without EnterLoop being called first, +// or if called twice without an EnterLoop between the two calls. func (bus *Bus) Stop() error { if bus.ticker != nil { bus.ticker.Stop() @@ -120,6 +121,7 @@ func (bus *Bus) SetEnterLoopRate(frameDelay time.Duration) error { return nil } +// GetCallerMap returns this bus's caller map. func (b *Bus) GetCallerMap() *CallerMap { return b.callerMap } diff --git a/event/caller.go b/event/caller.go index b9b9bc31..1be9ac64 100644 --- a/event/caller.go +++ b/event/caller.go @@ -13,6 +13,9 @@ func (c CallerID) CID() CallerID { return c } +// Global is the CallerID associated with global bindings. A caller must not be assigned +// this ID. Global may be used to manually create bindings scoped to no callers, but the GlobalBind function +// should be preferred when possible for type safety. const Global CallerID = 0 type Caller interface { diff --git a/event/default.go b/event/default.go index fdd1015f..9f82cd56 100644 --- a/event/default.go +++ b/event/default.go @@ -1,9 +1,12 @@ package event +// DefaultBus is a global Bus. It uses the DefaultCallerMap internally. It should not be used unless your program is only +// using a single Bus. Preferably multi-bus programs would create their own buses and caller maps specific to each bus's +// use. var DefaultBus *Bus -// DefaultCallerMap is the caller map used by all event package caller -// functions. +// DefaultCallerMap is a global CallerMap. It should not be used unless your program is only using a single CallerMap, +// or in other words definitely only has one event bus running at a time. var DefaultCallerMap *CallerMap func init() { diff --git a/event/events.go b/event/events.go index 83515072..e4c75f65 100644 --- a/event/events.go +++ b/event/events.go @@ -7,8 +7,10 @@ import ( "github.com/oakmound/oak/v3/alg/intgeom" ) +// An UnsafeEventID is a non-typed eventID. EventIDs are just these, with type information attached. type UnsafeEventID int64 +// A EventID represents an event associated with a given payload type. type EventID[T any] struct { UnsafeEventID } @@ -17,8 +19,8 @@ var ( nextEventID int64 ) -const NoEvent = 0 - +// RegisterEvent returns a unique ID to associate an event with. EventIDs not created through RegisterEvent are +// not valid for use in type-safe bindings. func RegisterEvent[T any]() EventID[T] { id := atomic.AddInt64(&nextEventID, 1) return EventID[T]{ @@ -26,6 +28,7 @@ func RegisterEvent[T any]() EventID[T] { } } +// NoPayload is an alias for the empty struct. type NoPayload = struct{} // EnterPayload is the payload sent down to Enter bindings diff --git a/event/handler.go b/event/handler.go index c5a13613..40f2ac88 100644 --- a/event/handler.go +++ b/event/handler.go @@ -13,7 +13,6 @@ var ( // by alternative event handlers. type Handler interface { EnterLoop(time.Duration) - SetEnterLoopRate(time.Duration) error Stop() error Reset() TriggerForCaller(cid CallerID, event UnsafeEventID, data interface{}) chan struct{} diff --git a/event/trigger.go b/event/trigger.go index 66322b21..c65c966a 100644 --- a/event/trigger.go +++ b/event/trigger.go @@ -1,7 +1,6 @@ package event -// Trigger will scan through the event bus and call all bindables found attached -// to the given event, with the passed in data. +// TriggerForCaller acts like Trigger, but will only trigger for the given caller. func (bus *Bus) TriggerForCaller(callerID CallerID, eventID UnsafeEventID, data interface{}) chan struct{} { if callerID == Global { return bus.Trigger(eventID, data) @@ -20,6 +19,8 @@ func (bus *Bus) TriggerForCaller(callerID CallerID, eventID UnsafeEventID, data return ch } +// Trigger will scan through the event bus and call all bindables found attached +// to the given event, with the passed in data. func (bus *Bus) Trigger(eventID UnsafeEventID, data interface{}) chan struct{} { ch := make(chan struct{}) go func() { @@ -33,10 +34,12 @@ func (bus *Bus) Trigger(eventID UnsafeEventID, data interface{}) chan struct{} { return ch } +// TriggerOn calls Trigger with a strongly typed event. func TriggerOn[T any](b Handler, ev EventID[T], data T) chan struct{} { return b.Trigger(ev.UnsafeEventID, data) } +// TriggerForCallerOn calls TriggerForCaller with a strongly typed event. func TriggerForCallerOn[T any](b Handler, cid CallerID, ev EventID[T], data T) chan struct{} { return b.TriggerForCaller(cid, ev.UnsafeEventID, data) } From 382dded3f57608ccfb771fc292c8c9b263068eb7 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Wed, 30 Mar 2022 17:48:59 -0500 Subject: [PATCH 022/146] event: add tests for trigger --- event/bind.go | 18 +-- event/internal.go | 12 -- event/trigger_test.go | 255 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 261 insertions(+), 24 deletions(-) create mode 100644 event/trigger_test.go diff --git a/event/bind.go b/event/bind.go index ce26e2a6..2ab7aef1 100644 --- a/event/bind.go +++ b/event/bind.go @@ -11,7 +11,7 @@ import "sync/atomic" // Q: Why not trust users to call Bind / Unbind / etc with `go`, to allow the caller to decide when to use // concurrency? -// A: It is almost never correct to not call these functions with `go`, and it is a bad user experience for +// A: It is almost never correct to not call such a function with `go`, and it is a bad user experience for // the engine to deadlock unexpectedly because you forgot to begin some call with a goroutine. // A Binding, returned from calls to Bind, references the details of a binding and where that binding is @@ -24,7 +24,7 @@ type Binding struct { CallerID CallerID BindID BindID // Bound is closed once the binding has been applied. Wait on this condition carefully; bindings - // will not take effect while an event is being triggered (e.g. in a even callback's returning thread) + // will not take effect while an event is being triggered (e.g. in a event callback's returning thread) Bound <-chan struct{} } @@ -46,7 +46,8 @@ func (bus *Bus) UnsafeBind(eventID UnsafeEventID, callerID CallerID, fn UnsafeBi ch := make(chan struct{}) go func() { bus.mutex.Lock() - bus.getBindableList(eventID, callerID).storeBindable(fn, bindID) + bl := bus.getBindableList(eventID, callerID) + bl[bindID] = fn bus.mutex.Unlock() close(ch) }() @@ -81,7 +82,8 @@ func (bus *Bus) PersistentBind(eventID UnsafeEventID, callerID CallerID, fn Unsa func (bus *Bus) Unbind(loc Binding) { go func() { bus.mutex.Lock() - bus.getBindableList(loc.EventID, loc.CallerID).remove(loc.BindID) + l := bus.getBindableList(loc.EventID, loc.CallerID) + delete(l, loc.BindID) bus.mutex.Unlock() }() } @@ -116,14 +118,6 @@ func GlobalBind[Payload any](h Handler, ev EventID[Payload], fn GlobalBindable[P // UnsafeBindable defines the underlying signature of all bindings. type UnsafeBindable func(CallerID, Handler, interface{}) Response -// EmptyBinding is shorthand for an UnsafeBindable that does not accept or return anything. -func EmptyBinding(f func()) UnsafeBindable { - return func(CallerID, Handler, interface{}) Response { - f() - return NoResponse - } -} - // UnbindAllFrom unbinds all bindings currently bound to the provided caller via ID. func (bus *Bus) UnbindAllFrom(c CallerID) { go func() { diff --git a/event/internal.go b/event/internal.go index a27fcbb3..55e3995e 100644 --- a/event/internal.go +++ b/event/internal.go @@ -4,14 +4,6 @@ import "sync" type bindableList map[BindID]UnsafeBindable -func (bl bindableList) storeBindable(fn UnsafeBindable, bindID BindID) { - bl[bindID] = fn -} - -func (bl bindableList) remove(bindID BindID) { - delete(bl, bindID) -} - func (eb *Bus) getBindableList(eventID UnsafeEventID, callerID CallerID) bindableList { if m := eb.bindingMap[eventID]; m == nil { eb.bindingMap[eventID] = make(map[CallerID]bindableList) @@ -33,10 +25,6 @@ func (bus *Bus) trigger(binds bindableList, eventID UnsafeEventID, callerID Call for bindID, bnd := range binds { bindID := bindID bnd := bnd - if bnd == nil { - wg.Done() - continue - } go func() { if callerID == Global || bus.callerMap.HasEntity(callerID) { response := bnd(callerID, bus, data) diff --git a/event/trigger_test.go b/event/trigger_test.go new file mode 100644 index 00000000..fd3cf0c6 --- /dev/null +++ b/event/trigger_test.go @@ -0,0 +1,255 @@ +package event_test + +import ( + "fmt" + "math/rand" + "os" + "testing" + "time" + + "github.com/oakmound/oak/v3/event" +) + +func TestMain(m *testing.M) { + rand.Seed(time.Now().UnixNano()) + os.Exit(m.Run()) +} + +func TestBus_TriggerForCaller(t *testing.T) { + t.Run("NoBinding", func(t *testing.T) { + b := event.NewBus(event.NewCallerMap()) + id := event.UnsafeEventID(rand.Intn(100000)) + ch := b.TriggerForCaller(0, id, nil) + select { + case <-time.After(50 * time.Millisecond): + t.Fatal("timeout waiting for trigger to close channel") + case <-ch: + } + }) + t.Run("GlobalWithBinding", func(t *testing.T) { + b := event.NewBus(event.NewCallerMap()) + id := event.UnsafeEventID(rand.Intn(100000)) + errs := make(chan error) + binding := b.UnsafeBind(id, 0, func(ci event.CallerID, h event.Handler, i interface{}) event.Response { + defer close(errs) + if ci != 0 { + errs <- expectedError("callerID", 0, ci) + } + if h != b { + errs <- expectedError("bus", b, h) + } + if i != nil { + errs <- expectedError("payload", nil, i) + } + return 0 + }) + _ = binding + select { + case <-time.After(50 * time.Millisecond): + t.Fatal("timeout waiting for bind to close channel") + case <-binding.Bound: + } + ch := b.TriggerForCaller(0, id, nil) + select { + case <-time.After(50 * time.Millisecond): + t.Fatal("timeout waiting for trigger to close channel") + case <-ch: + } + for err := range errs { + t.Error(err) + } + }) + t.Run("WithMissingCallerID", func(t *testing.T) { + b := event.NewBus(event.NewCallerMap()) + id := event.UnsafeEventID(rand.Intn(100000)) + callerID := event.CallerID(rand.Intn(100000)) + errs := make(chan error) + binding := b.UnsafeBind(id, callerID, func(ci event.CallerID, h event.Handler, i interface{}) event.Response { + errs <- fmt.Errorf("binding should not be triggered") + return 0 + }) + _ = binding + select { + case <-time.After(50 * time.Millisecond): + t.Fatal("timeout waiting for bind to close channel") + case <-binding.Bound: + } + ch := b.TriggerForCaller(callerID, id, nil) + select { + case <-time.After(50 * time.Millisecond): + t.Fatal("timeout waiting for trigger to close channel") + case <-ch: + } + select { + case err := <-errs: + t.Error(err) + default: + } + }) + t.Run("WithValidCallerID", func(t *testing.T) { + b := event.NewBus(event.NewCallerMap()) + var cid event.CallerID + callerID := b.GetCallerMap().Register(cid) + id := event.UnsafeEventID(rand.Intn(100000)) + errs := make(chan error) + binding := b.UnsafeBind(id, callerID, func(ci event.CallerID, h event.Handler, i interface{}) event.Response { + defer close(errs) + if ci != callerID { + errs <- expectedError("callerID", callerID, ci) + } + if h != b { + errs <- expectedError("bus", b, h) + } + if i != nil { + errs <- expectedError("payload", nil, i) + } + return 0 + }) + _ = binding + select { + case <-time.After(50 * time.Millisecond): + t.Fatal("timeout waiting for bind to close channel") + case <-binding.Bound: + } + ch := b.TriggerForCaller(callerID, id, nil) + select { + case <-time.After(50 * time.Millisecond): + t.Fatal("timeout waiting for trigger to close channel") + case <-ch: + } + for err := range errs { + t.Error(err) + } + }) +} + +func TestBus_Trigger(t *testing.T) { + t.Run("NoBinding", func(t *testing.T) { + b := event.NewBus(event.NewCallerMap()) + id := event.UnsafeEventID(rand.Intn(100000)) + ch := b.Trigger(id, nil) + select { + case <-time.After(50 * time.Millisecond): + t.Fatal("timeout waiting for trigger to close channel") + case <-ch: + } + }) + t.Run("GlobalWithBinding", func(t *testing.T) { + b := event.NewBus(event.NewCallerMap()) + id := event.UnsafeEventID(rand.Intn(100000)) + errs := make(chan error) + binding := b.UnsafeBind(id, 0, func(ci event.CallerID, h event.Handler, i interface{}) event.Response { + defer close(errs) + if ci != 0 { + errs <- expectedError("callerID", 0, ci) + } + if h != b { + errs <- expectedError("bus", b, h) + } + if i != nil { + errs <- expectedError("payload", nil, i) + } + return 0 + }) + _ = binding + select { + case <-time.After(50 * time.Millisecond): + t.Fatal("timeout waiting for bind to close channel") + case <-binding.Bound: + } + ch := b.Trigger(id, nil) + select { + case <-time.After(50 * time.Millisecond): + t.Fatal("timeout waiting for trigger to close channel") + case <-ch: + } + for err := range errs { + t.Error(err) + } + }) + t.Run("WithMissingCallerID", func(t *testing.T) { + b := event.NewBus(event.NewCallerMap()) + id := event.UnsafeEventID(rand.Intn(100000)) + callerID := rand.Intn(100000) + errs := make(chan error) + binding := b.UnsafeBind(id, event.CallerID(callerID), func(ci event.CallerID, h event.Handler, i interface{}) event.Response { + errs <- fmt.Errorf("binding should not be triggered") + return 0 + }) + _ = binding + select { + case <-time.After(50 * time.Millisecond): + t.Fatal("timeout waiting for bind to close channel") + case <-binding.Bound: + } + ch := b.Trigger(id, nil) + select { + case <-time.After(50 * time.Millisecond): + t.Fatal("timeout waiting for trigger to close channel") + case <-ch: + } + select { + case err := <-errs: + t.Error(err) + default: + } + }) + t.Run("WithValidCallerID", func(t *testing.T) { + b := event.NewBus(event.NewCallerMap()) + var cid event.CallerID + callerID := b.GetCallerMap().Register(cid) + id := event.UnsafeEventID(rand.Intn(100000)) + errs := make(chan error) + binding := b.UnsafeBind(id, event.CallerID(callerID), func(ci event.CallerID, h event.Handler, i interface{}) event.Response { + defer close(errs) + if ci != callerID { + errs <- expectedError("callerID", callerID, ci) + } + if h != b { + errs <- expectedError("bus", b, h) + } + if i != nil { + errs <- expectedError("payload", nil, i) + } + return 0 + }) + _ = binding + select { + case <-time.After(50 * time.Millisecond): + t.Fatal("timeout waiting for bind to close channel") + case <-binding.Bound: + } + ch := b.Trigger(id, nil) + select { + case <-time.After(50 * time.Millisecond): + t.Fatal("timeout waiting for trigger to close channel") + case <-ch: + } + for err := range errs { + t.Error(err) + } + }) +} + +// TriggerOn and TriggerForCallerOn are simple wrappers of the tested methods above, so +// they are not tested thoroughly. + +func TestTriggerOn(t *testing.T) { + t.Run("SuperficialCoverage", func(t *testing.T) { + b := event.NewBus(event.NewCallerMap()) + eventID := event.RegisterEvent[struct{}]() + event.TriggerOn(b, eventID, struct{}{}) + }) +} + +func TestTriggerForCallerOn(t *testing.T) { + t.Run("SuperficialCoverage", func(t *testing.T) { + b := event.NewBus(event.NewCallerMap()) + eventID := event.RegisterEvent[struct{}]() + event.TriggerForCallerOn(b, 0, eventID, struct{}{}) + }) +} + +func expectedError(name string, expected, got interface{}) error { + return fmt.Errorf("expected %s to be %v, got %v", name, expected, got) +} From 91ef92458e6befe650cd01902a9017677bfcb5da Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Wed, 30 Mar 2022 23:09:38 -0500 Subject: [PATCH 023/146] event: add most tests, further trim down API, ensure concurrent-safe use --- debugstream/scopeHelper.go | 4 +- entities/doodad.go | 4 +- entities/x/stat/statistic.go | 4 +- event/bind.go | 29 +++++++--- event/bind_test.go | 70 ++++++++++++++++++++++++ event/bus.go | 97 +++++++++++++++------------------ event/bus_test.go | 99 ++++++++++++++++++++++++++++++++++ event/caller.go | 36 ++++++++----- event/caller_test.go | 67 +++++++++++++++++++++++ event/events.go | 13 ----- event/handler.go | 6 --- event/internal.go | 8 ++- event/response.go | 10 ++-- event/response_test.go | 9 ++++ event/trigger_test.go | 1 - inputLoop.go | 20 +++++-- inputTracker.go | 6 +-- mouse/onCollision.go | 2 +- render/particle/source.go | 4 +- render/particle/source_test.go | 2 +- render/sequence.go | 4 +- render/sequence_test.go | 2 +- sceneLoop.go | 5 +- viewport.go | 2 +- 24 files changed, 379 insertions(+), 125 deletions(-) create mode 100644 event/bind_test.go create mode 100644 event/bus_test.go create mode 100644 event/caller_test.go create mode 100644 event/response_test.go diff --git a/debugstream/scopeHelper.go b/debugstream/scopeHelper.go index 7104b0b6..465e3c93 100644 --- a/debugstream/scopeHelper.go +++ b/debugstream/scopeHelper.go @@ -90,14 +90,14 @@ func mouseDetails(w window.Window) func(*mouse.Event) event.Response { if len(results) > 0 { i := results[0].CID if i > 0 && cm.HasEntity(i) { - e := cm.GetEntity(i) + e := cm.HasEntity(i) fmt.Printf("%+v\n", e) } else { fmt.Println("No entity ", i) } } - return event.UnbindThis + return event.ResponseUnbindThisBinding } } diff --git a/entities/doodad.go b/entities/doodad.go index bef8722a..43c5f86d 100644 --- a/entities/doodad.go +++ b/entities/doodad.go @@ -43,14 +43,14 @@ func (d *Doodad) Destroy() { d.R.Undraw() } event.DefaultBus.UnbindAllFrom(d.CallerID) - event.DefaultCallerMap.DestroyEntity(d.CallerID) + event.DefaultCallerMap.RemoveEntity(d.CallerID) } // Overwrites // SetPos both Sets logical position and renderable position // The need for this sort of function is lessened with the introduction -// of vector attachement. +// of vector attachment. func (d *Doodad) SetPos(x, y float64) { d.SetLogicPos(x, y) if d.R != nil { diff --git a/entities/x/stat/statistic.go b/entities/x/stat/statistic.go index eb222f2b..9d1b0b7d 100644 --- a/entities/x/stat/statistic.go +++ b/entities/x/stat/statistic.go @@ -74,7 +74,7 @@ func (st *Statistics) TrackStats(no int, data interface{}) event.Response { stat, ok := data.(stat) if !ok { dlog.Error("TrackStats called with a non-stat payload") - return event.UnbindThis + return event.ResponseUnbindThisBinding } st.trackStats(stat.name, stat.inc) return 0 @@ -87,7 +87,7 @@ func (st *Statistics) TrackTimeStats(no int, data interface{}) event.Response { timed, ok := data.(timedStat) if !ok { dlog.Error("TrackTimeStats called with a non-timedStat payload") - return event.UnbindThis + return event.ResponseUnbindThisBinding } if timed.on { //Turning on a thing to time track st.statTimeLock.Lock() diff --git a/event/bind.go b/event/bind.go index 2ab7aef1..38c31010 100644 --- a/event/bind.go +++ b/event/bind.go @@ -23,6 +23,9 @@ type Binding struct { EventID UnsafeEventID CallerID CallerID BindID BindID + + busResetCount int64 + // Bound is closed once the binding has been applied. Wait on this condition carefully; bindings // will not take effect while an event is being triggered (e.g. in a event callback's returning thread) Bound <-chan struct{} @@ -42,21 +45,27 @@ type BindID int64 // available to be triggered. When Reset is called on a Bus, all prior bindings are unbound. This // call is 'unsafe' because UnsafeBindables use bare interface{} types. func (bus *Bus) UnsafeBind(eventID UnsafeEventID, callerID CallerID, fn UnsafeBindable) Binding { + expectedResetCount := bus.resetCount bindID := BindID(atomic.AddInt64(bus.nextBindID, 1)) ch := make(chan struct{}) go func() { + defer close(ch) bus.mutex.Lock() + defer bus.mutex.Unlock() + if bus.resetCount != expectedResetCount { + // The event bus has reset while we we were waiting to bind this + return + } bl := bus.getBindableList(eventID, callerID) bl[bindID] = fn - bus.mutex.Unlock() - close(ch) }() return Binding{ - Handler: bus, - EventID: eventID, - CallerID: callerID, - BindID: bindID, - Bound: ch, + Handler: bus, + EventID: eventID, + CallerID: callerID, + BindID: bindID, + Bound: ch, + busResetCount: bus.resetCount, } } @@ -82,9 +91,13 @@ func (bus *Bus) PersistentBind(eventID UnsafeEventID, callerID CallerID, fn Unsa func (bus *Bus) Unbind(loc Binding) { go func() { bus.mutex.Lock() + defer bus.mutex.Unlock() + if bus.resetCount != loc.busResetCount { + // This binding is not valid for this bus (in this state) + return + } l := bus.getBindableList(loc.EventID, loc.CallerID) delete(l, loc.BindID) - bus.mutex.Unlock() }() } diff --git a/event/bind_test.go b/event/bind_test.go new file mode 100644 index 00000000..fc96108e --- /dev/null +++ b/event/bind_test.go @@ -0,0 +1,70 @@ +package event_test + +import ( + "sync/atomic" + "testing" + + "github.com/oakmound/oak/v3/event" +) + +func TestBus_UnsafeBind(t *testing.T) { + t.Run("ConcurrentReset", func(t *testing.T) { + b := event.NewBus(event.NewCallerMap()) + + var calls int32 + for i := 0; i < 1000; i++ { + b.UnsafeBind(1, 0, func(ci event.CallerID, h event.Handler, i interface{}) event.Response { + atomic.AddInt32(&calls, 1) + return 0 + }) + b.Reset() + // No matter what happens with thread scheduling above, this trigger should never increment calls + <-b.Trigger(1, nil) + } + if calls != 0 { + t.Fatal("a pre-reset binding was triggered after a bus reset") + } + }) +} + +func TestBus_Unbind(t *testing.T) { + t.Run("ConcurrentReset", func(t *testing.T) { + b := event.NewBus(event.NewCallerMap()) + + var goodCalls int32 + for i := 0; i < 1000; i++ { + b1 := b.UnsafeBind(1, 0, func(ci event.CallerID, h event.Handler, i interface{}) event.Response { + return 0 + }) + b.Unbind(b1) + b.Reset() + // b1 and b2 will share a bindID + b2 := b.UnsafeBind(1, 0, func(ci event.CallerID, h event.Handler, i interface{}) event.Response { + atomic.AddInt32(&goodCalls, 1) + return 0 + }) + <-b2.Bound + <-b.Trigger(1, nil) + b2.Unbind() + } + if goodCalls != 1000 { + t.Fatal("a pre-reset unbind unbound a post-reset binding", goodCalls) + } + }) +} + +func TestBind(t *testing.T) { + t.Run("SuperficialCoverage", func(t *testing.T) { + t.Skip("TODO") + }) +} + +func TestGlobalBind(t *testing.T) { + t.Run("SuperficialCoverage", func(t *testing.T) { + t.Skip("TODO") + }) +} + +func TestBus_UnbindAllFrom(t *testing.T) { + t.Skip("TODO") +} diff --git a/event/bus.go b/event/bus.go index 91ad7101..e47f7502 100644 --- a/event/bus.go +++ b/event/bus.go @@ -3,19 +3,22 @@ package event import ( "sync" "time" - - "github.com/oakmound/oak/v3/oakerr" ) // A Bus stores bindables to be triggered by events. type Bus struct { - nextBindID *int64 + // nextBindID is an atomically incrementing value to track bindings within this structure + nextBindID *int64 + + // resetCount increments every time the bus is reset. bindings and unbindings make sure that + // they are called on a bus with an unchanged reset count, and become NOPs if performed on + // a bus with a different reset count to ensure they do not interfere with a bus using different + // bind IDs. + resetCount int64 bindingMap map[UnsafeEventID]map[CallerID]bindableList persistentBindings []persistentBinding - doneCh chan struct{} - framesElapsed int - ticker *time.Ticker - callerMap *CallerMap + + callerMap *CallerMap mutex sync.RWMutex } @@ -36,7 +39,6 @@ func NewBus(callerMap *CallerMap) *Bus { return &Bus{ nextBindID: new(int64), bindingMap: make(map[UnsafeEventID]map[CallerID]bindableList), - doneCh: make(chan struct{}), callerMap: callerMap, } } @@ -46,6 +48,11 @@ func (bus *Bus) SetCallerMap(cm *CallerMap) { bus.callerMap = cm } +// GetCallerMap returns this bus's caller map. +func (b *Bus) GetCallerMap() *CallerMap { + return b.callerMap +} + // ClearPersistentBindings removes all persistent bindings. It will not unbind them // from the bus, but they will not be bound following the next bus reset. func (eb *Bus) ClearPersistentBindings() { @@ -54,74 +61,54 @@ func (eb *Bus) ClearPersistentBindings() { eb.mutex.Unlock() } -// Reset unbinds all present, non-persistent bindings on the bus. +// Reset unbinds all present, non-persistent bindings on the bus. It will block until +// persistent bindings are in place. func (bus *Bus) Reset() { bus.mutex.Lock() + bus.resetCount++ bus.bindingMap = make(map[UnsafeEventID]map[CallerID]bindableList) - for _, pb := range bus.persistentBindings { - bus.UnsafeBind(pb.eventID, pb.callerID, pb.fn) + repersist := make([]Binding, len(bus.persistentBindings)) + for i, pb := range bus.persistentBindings { + repersist[i] = bus.UnsafeBind(pb.eventID, pb.callerID, pb.fn) } bus.mutex.Unlock() + for _, bnd := range repersist { + <-bnd.Bound + } } -// EnterLoop triggers Enter events at the specified rate -func (bus *Bus) EnterLoop(frameDelay time.Duration) { - // The logical loop. - // In order, it waits on receiving a signal to begin a logical frame. - // It then runs any functions bound to when a frame begins. - // It then allows a scene to perform it's loop operation. - bus.framesElapsed = 0 - if bus.ticker == nil { - bus.ticker = time.NewTicker(frameDelay) - } else { - bus.ticker.Reset(frameDelay) - } - bus.doneCh = make(chan struct{}) +// EnterLoop triggers Enter events at the specified rate until the returned cancel is called. +func EnterLoop(bus Handler, frameDelay time.Duration) (cancel func()) { + ch := make(chan struct{}) go func() { + ticker := time.NewTicker(frameDelay) frameDelayF64 := float64(frameDelay) lastTick := time.Now() + framesElapsed := 0 for { select { - case now := <-bus.ticker.C: + case now := <-ticker.C: deltaTime := now.Sub(lastTick) lastTick = now <-bus.Trigger(Enter.UnsafeEventID, EnterPayload{ - FramesElapsed: bus.framesElapsed, + FramesElapsed: framesElapsed, SinceLastFrame: deltaTime, TickPercent: float64(deltaTime) / frameDelayF64, }) - bus.framesElapsed++ - case <-bus.doneCh: + framesElapsed++ + case <-ch: + ticker.Stop() return } } }() -} - -// Stop ceases anything spawned by an ongoing EnterLoop. It will panic if called without EnterLoop being called first, -// or if called twice without an EnterLoop between the two calls. -func (bus *Bus) Stop() error { - if bus.ticker != nil { - bus.ticker.Stop() - } - close(bus.doneCh) - return nil -} - -// SetTick optionally updates the Logical System’s tick rate -// (while it is looping) to be frameRate. If this operation is not -// supported, it should return an error. -func (bus *Bus) SetEnterLoopRate(frameDelay time.Duration) error { - if bus.ticker == nil { - return oakerr.NotFound{ - InputName: "bus.ticker", - } + return func() { + // Q: why send here as well as close + // A: to ensure that no more ticks are sent, the above goroutine has to + // acknowledge that it should stop and return-- just closing would + // enable code following this cancel function to assume no enters were + // being triggered when they still are. + ch <- struct{}{} + close(ch) } - bus.ticker.Reset(frameDelay) - return nil -} - -// GetCallerMap returns this bus's caller map. -func (b *Bus) GetCallerMap() *CallerMap { - return b.callerMap } diff --git a/event/bus_test.go b/event/bus_test.go new file mode 100644 index 00000000..8b227ddb --- /dev/null +++ b/event/bus_test.go @@ -0,0 +1,99 @@ +package event_test + +import ( + "math/rand" + "sync/atomic" + "testing" + "time" + + "github.com/oakmound/oak/v3/event" +) + +func TestNewBus(t *testing.T) { + t.Run("DefaultCallerMap", func(t *testing.T) { + b := event.NewBus(nil) + if b.GetCallerMap() != event.DefaultCallerMap { + t.Fatal("nil caller map not turned into default caller map") + } + }) + t.Run("Basic", func(t *testing.T) { + b := event.NewBus(event.NewCallerMap()) + if b == nil { + t.Fatal("NewBus created nil bus") + } + }) +} + +func TestBus_SetCallerMap(t *testing.T) { + t.Run("Basic", func(t *testing.T) { + cm1 := event.NewCallerMap() + b := event.NewBus(cm1) + c1 := event.CallerID(rand.Intn(10000)) + b.GetCallerMap().Register(c1) + cm2 := event.NewCallerMap() + b.SetCallerMap(cm2) + if b.GetCallerMap().HasEntity(c1) { + t.Fatal("event had old entity after changed caller map") + } + }) +} + +func TestBus_ClearPersistentBindings(t *testing.T) { + t.Run("Basic", func(t *testing.T) { + b := event.NewBus(event.NewCallerMap()) + var impersistentCalls int32 + var persistentCalls int32 + b1 := b.UnsafeBind(1, 0, func(ci event.CallerID, h event.Handler, i interface{}) event.Response { + atomic.AddInt32(&impersistentCalls, 1) + return 0 + }) + b2 := b.PersistentBind(1, 0, func(ci event.CallerID, h event.Handler, i interface{}) event.Response { + atomic.AddInt32(&persistentCalls, 1) + return 0 + }) + <-b1.Bound + <-b2.Bound + <-b.Trigger(1, nil) + if impersistentCalls != 1 { + t.Fatal(expectedError("impersistent calls", 1, impersistentCalls)) + } + if persistentCalls != 1 { + t.Fatal(expectedError("persistent calls", 1, persistentCalls)) + } + b.Reset() + <-b.Trigger(1, nil) + if impersistentCalls != 1 { + t.Fatal(expectedError("impersistent calls", 1, impersistentCalls)) + } + if persistentCalls != 2 { + t.Fatal(expectedError("persistent calls", 2, persistentCalls)) + } + b.ClearPersistentBindings() + b.Reset() + <-b.Trigger(1, nil) + if impersistentCalls != 1 { + t.Fatal(expectedError("impersistent calls", 1, impersistentCalls)) + } + if persistentCalls != 2 { + t.Fatal(expectedError("persistent calls", 2, persistentCalls)) + } + }) +} + +func TestBus_EnterLoop(t *testing.T) { + t.Run("Basic", func(t *testing.T) { + b := event.NewBus(event.NewCallerMap()) + var calls int32 + b1 := b.UnsafeBind(event.Enter.UnsafeEventID, 0, func(ci event.CallerID, h event.Handler, i interface{}) event.Response { + atomic.AddInt32(&calls, 1) + return 0 + }) + <-b1.Bound + cancel := event.EnterLoop(b, 50*time.Millisecond) + time.Sleep(1 * time.Second) + cancel() + if calls != 20 { + t.Fatal(expectedError("calls", 20, calls)) + } + }) +} diff --git a/event/caller.go b/event/caller.go index 1be9ac64..880fd1a7 100644 --- a/event/caller.go +++ b/event/caller.go @@ -2,7 +2,6 @@ package event import ( "sync" - "sync/atomic" ) // A CallerID is a caller ID that Callers use to bind themselves to receive callback @@ -26,7 +25,7 @@ type Caller interface { // This is an alternative to passing in the entity via closure scoping, // and allows for more general bindings as simple top level functions. type CallerMap struct { - highestID *int64 + highestID CallerID callersLock sync.RWMutex callers map[CallerID]Caller } @@ -35,8 +34,7 @@ type CallerMap struct { // is not valid for use if not created via this function. func NewCallerMap() *CallerMap { return &CallerMap{ - highestID: new(int64), - callers: map[CallerID]Caller{}, + callers: map[CallerID]Caller{}, } } @@ -44,14 +42,26 @@ func NewCallerMap() *CallerMap { // and returns it, after adding the given entity to // the caller map. func (cm *CallerMap) Register(e Caller) CallerID { - nextID := atomic.AddInt64(cm.highestID, 1) cm.callersLock.Lock() - cm.callers[CallerID(nextID)] = e - cm.callersLock.Unlock() - return CallerID(nextID) + defer cm.callersLock.Unlock() + // Q: Why not use atomic? + // A: We're in a mutex and therefore it is not needed. + // A2: We need the mutex to safely assign to the map. + // A3: We cannot atomically increment outside of the map, consider: + // - GR1 calls Clear, waits on Lock + // - GR2 calls Register, gets id 100, waits on lock + // - GR1 claims lock, resets highestID to 0, exits + // - GR2 claims lock, inserts id 100 in the map + // - ... later, register silently overwrites entity 100, its + // bindings will now panic on a bad type assertion + // + // Increment before assigning to preserve Global == caller 0 + cm.highestID++ + cm.callers[cm.highestID] = e + return cm.highestID } -// GetEntity returns the entity corresponding to the given ID within +// Get returns the entity corresponding to the given ID within // the caller map. If no entity is found, it returns nil. func (cm *CallerMap) GetEntity(id CallerID) Caller { cm.callersLock.RLock() @@ -59,7 +69,7 @@ func (cm *CallerMap) GetEntity(id CallerID) Caller { return cm.callers[id] } -// HasEntity returns whether the given caller id is an initialized entity +// Has returns whether the given caller id is an initialized entity // within the caller map. func (cm *CallerMap) HasEntity(id CallerID) bool { cm.callersLock.RLock() @@ -68,8 +78,8 @@ func (cm *CallerMap) HasEntity(id CallerID) bool { return ok } -// DestroyEntity removes an entity from the caller map. -func (cm *CallerMap) DestroyEntity(id CallerID) { +// Remove removes an entity from the caller map. +func (cm *CallerMap) RemoveEntity(id CallerID) { cm.callersLock.Lock() delete(cm.callers, id) cm.callersLock.Unlock() @@ -78,7 +88,7 @@ func (cm *CallerMap) DestroyEntity(id CallerID) { // Clear clears the caller map to forget all registered callers. func (cm *CallerMap) Clear() { cm.callersLock.Lock() - *cm.highestID = 0 + cm.highestID = 0 cm.callers = map[CallerID]Caller{} cm.callersLock.Unlock() } diff --git a/event/caller_test.go b/event/caller_test.go new file mode 100644 index 00000000..10707660 --- /dev/null +++ b/event/caller_test.go @@ -0,0 +1,67 @@ +package event_test + +import ( + "math/rand" + "testing" + + "github.com/oakmound/oak/v3/event" +) + +func TestCallerID_CID(t *testing.T) { + t.Run("Identity", func(t *testing.T) { + c := event.CallerID(rand.Intn(100000)) + if c != c.CID() { + t.Fatalf("callerID did not match itself: was %v, got %v", c, c.CID()) + } + }) +} + +func TestNewCallerMap(t *testing.T) { + t.Run("NotNil", func(t *testing.T) { + m := event.NewCallerMap() + if m == nil { + t.Fatalf("created caller map was nil") + } + }) +} + +func TestCallerMap_Register(t *testing.T) { + t.Run("Basic", func(t *testing.T) { + m := event.NewCallerMap() + c1 := event.CallerID(rand.Intn(10000)) + id := m.Register(c1) + c2 := m.GetEntity(id) + if c2 != c1 { + t.Fatalf("unable to retrieve registered caller") + } + if !m.HasEntity(id) { + t.Fatalf("caller map does not have registered caller") + } + }) + t.Run("Remove", func(t *testing.T) { + m := event.NewCallerMap() + c1 := event.CallerID(rand.Intn(10000)) + id := m.Register(c1) + m.RemoveEntity(id) + c3 := m.GetEntity(id) + if c3 != nil { + t.Fatalf("get entity had registered caller after remove") + } + if m.HasEntity(id) { + t.Fatalf("caller map has registered caller after remove") + } + }) + t.Run("Clear", func(t *testing.T) { + m := event.NewCallerMap() + c1 := event.CallerID(rand.Intn(10000)) + id := m.Register(c1) + m.Clear() + c3 := m.GetEntity(id) + if c3 != nil { + t.Fatalf("get entity had registered caller after clear") + } + if m.HasEntity(id) { + t.Fatalf("caller map has registered caller after clear") + } + }) +} diff --git a/event/events.go b/event/events.go index e4c75f65..4a90f2a2 100644 --- a/event/events.go +++ b/event/events.go @@ -3,8 +3,6 @@ package event import ( "sync/atomic" "time" - - "github.com/oakmound/oak/v3/alg/intgeom" ) // An UnsafeEventID is a non-typed eventID. EventIDs are just these, with type information attached. @@ -28,9 +26,6 @@ func RegisterEvent[T any]() EventID[T] { } } -// NoPayload is an alias for the empty struct. -type NoPayload = struct{} - // EnterPayload is the payload sent down to Enter bindings type EnterPayload struct { FramesElapsed int @@ -41,12 +36,4 @@ type EnterPayload struct { var ( // Enter: the beginning of every logical frame. Enter = RegisterEvent[EnterPayload]() - // ViewportUpdate: Triggered when the position of of the viewport changes - ViewportUpdate = RegisterEvent[intgeom.Point2]() - // OnStop: Triggered when the engine is stopped. - OnStop = RegisterEvent[NoPayload]() - // FocusGain: Triggered when the window gains focus - FocusGain = RegisterEvent[NoPayload]() - // FocusLoss: Triggered when the window loses focus - FocusLoss = RegisterEvent[NoPayload]() ) diff --git a/event/handler.go b/event/handler.go index 40f2ac88..6d89d9c7 100644 --- a/event/handler.go +++ b/event/handler.go @@ -1,9 +1,5 @@ package event -import ( - "time" -) - var ( _ Handler = &Bus{} ) @@ -12,8 +8,6 @@ var ( // for use in oak internally, and thus the functions that need to be replaced // by alternative event handlers. type Handler interface { - EnterLoop(time.Duration) - Stop() error Reset() TriggerForCaller(cid CallerID, event UnsafeEventID, data interface{}) chan struct{} Trigger(event UnsafeEventID, data interface{}) chan struct{} diff --git a/event/internal.go b/event/internal.go index 55e3995e..ea692834 100644 --- a/event/internal.go +++ b/event/internal.go @@ -1,6 +1,8 @@ package event -import "sync" +import ( + "sync" +) type bindableList map[BindID]UnsafeBindable @@ -29,12 +31,14 @@ func (bus *Bus) trigger(binds bindableList, eventID UnsafeEventID, callerID Call if callerID == Global || bus.callerMap.HasEntity(callerID) { response := bnd(callerID, bus, data) switch response { - case UnbindThis: + case ResponseUnbindThisBinding: // Q: Why does this call bus.Unbind when it already has the event index to delete? // A: This goroutine does not own a write lock on the bus, and should therefore // not modify its contents. We do not have a simple way of promoting our read lock // to a write lock. bus.Unbind(Binding{EventID: eventID, CallerID: callerID, BindID: bindID}) + case ResponseUnbindThisCaller: + bus.UnbindAllFrom(callerID) } } wg.Done() diff --git a/event/response.go b/event/response.go index f3fabcff..a4391b4a 100644 --- a/event/response.go +++ b/event/response.go @@ -4,11 +4,13 @@ type Response uint8 // Response types for bindables const ( - // NoResponse or 0, is returned by events that + // ResponseNone or 0, is returned by events that // don't want the event bus to do anything with // the event after they have been evaluated. This // is the usual behavior. - NoResponse Response = iota - // UnbindThis unbinds the one binding that returns it. - UnbindThis + ResponseNone Response = iota + // ResponseUnbindThisBinding unbinds the one binding that returns it. + ResponseUnbindThisBinding + // ResponseUnbindThisCaller unbinds all of a caller's bindings when returned from any binding. + ResponseUnbindThisCaller ) diff --git a/event/response_test.go b/event/response_test.go new file mode 100644 index 00000000..5a614558 --- /dev/null +++ b/event/response_test.go @@ -0,0 +1,9 @@ +package event_test + +import ( + "testing" +) + +func TestBindingResponses(t *testing.T) { + t.Skip("TODO") +} \ No newline at end of file diff --git a/event/trigger_test.go b/event/trigger_test.go index fd3cf0c6..2dae1215 100644 --- a/event/trigger_test.go +++ b/event/trigger_test.go @@ -43,7 +43,6 @@ func TestBus_TriggerForCaller(t *testing.T) { } return 0 }) - _ = binding select { case <-time.After(50 * time.Millisecond): t.Fatal("timeout waiting for bind to close channel") diff --git a/inputLoop.go b/inputLoop.go index 04115818..0e354b01 100644 --- a/inputLoop.go +++ b/inputLoop.go @@ -1,6 +1,7 @@ package oak import ( + "github.com/oakmound/oak/v3/alg/intgeom" "github.com/oakmound/oak/v3/event" "github.com/oakmound/oak/v3/timing" @@ -13,6 +14,17 @@ import ( "golang.org/x/mobile/event/size" ) +var ( + // ViewportUpdate: Triggered when the position of of the viewport changes + ViewportUpdate = event.RegisterEvent[intgeom.Point2]() + // OnStop: Triggered when the engine is stopped. + OnStop = event.RegisterEvent[struct{}]() + // FocusGain: Triggered when the window gains focus + FocusGain = event.RegisterEvent[struct{}]() + // FocusLoss: Triggered when the window loses focus + FocusLoss = event.RegisterEvent[struct{}]() +) + func (w *Window) inputLoop() { for { switch e := w.windowControl.NextEvent().(type) { @@ -21,25 +33,25 @@ func (w *Window) inputLoop() { switch e.To { case lifecycle.StageDead: dlog.Info(dlog.WindowClosed) - <-event.TriggerOn(w.eventHandler, event.OnStop, event.NoPayload{}) + <-event.TriggerOn(w.eventHandler, OnStop, struct{}{}) close(w.quitCh) return case lifecycle.StageFocused: w.inFocus = true // If you are in focused state, we don't care how you got there w.DrawTicker.Reset(timing.FPSToFrameDelay(w.DrawFrameRate)) - event.TriggerOn(w.eventHandler, event.FocusGain, event.NoPayload{}) + event.TriggerOn(w.eventHandler, FocusGain, struct{}{}) case lifecycle.StageVisible: // If the last state was focused, this means the app is out of focus // otherwise, we're visible for the first time if e.From > e.To { w.inFocus = false w.DrawTicker.Reset(timing.FPSToFrameDelay(w.IdleDrawFrameRate)) - event.TriggerOn(w.eventHandler, event.FocusLoss, event.NoPayload{}) + event.TriggerOn(w.eventHandler, FocusLoss, struct{}{}) } else { w.inFocus = true w.DrawTicker.Reset(timing.FPSToFrameDelay(w.DrawFrameRate)) - event.TriggerOn(w.eventHandler, event.FocusGain, event.NoPayload{}) + event.TriggerOn(w.eventHandler, FocusGain, struct{}{}) } } // Send key events diff --git a/inputTracker.go b/inputTracker.go index 0bf6b4c2..067b2455 100644 --- a/inputTracker.go +++ b/inputTracker.go @@ -17,7 +17,7 @@ type InputType int32 // InputChange is triggered when the most recent input device changes (e.g. keyboard to joystick or vice versa) var InputChange = event.RegisterEvent[InputType]() -var trackingJoystickChange = event.RegisterEvent[event.NoPayload]() +var trackingJoystickChange = event.RegisterEvent[struct{}]() // Supported Input Types const ( @@ -41,7 +41,7 @@ func (w *Window) trackInputChanges() { } return 0 }) - event.GlobalBind(w.eventHandler, trackingJoystickChange, func(event.NoPayload) event.Response { + event.GlobalBind(w.eventHandler, trackingJoystickChange, func(struct{}) event.Response { old := atomic.SwapInt32(&w.mostRecentInput, int32(InputMouse)) if InputType(old) != InputJoystick { event.TriggerOn(w.eventHandler, InputChange, InputJoystick) @@ -55,7 +55,7 @@ type joyHandler struct { } func (jh *joyHandler) Trigger(eventID event.UnsafeEventID, data interface{}) chan struct{} { - jh.handler.Trigger(trackingJoystickChange.UnsafeEventID, event.NoPayload{}) + jh.handler.Trigger(trackingJoystickChange.UnsafeEventID, struct{}{}) ch := make(chan struct{}) close(ch) return ch diff --git a/mouse/onCollision.go b/mouse/onCollision.go index 1190a1b3..7c77abaf 100644 --- a/mouse/onCollision.go +++ b/mouse/onCollision.go @@ -53,7 +53,7 @@ var ( func phaseCollisionEnter(id event.CallerID, handler event.Handler, _ interface{}) event.Response { e, ok := handler.GetCallerMap().GetEntity(id).(collisionPhase) if !ok { - return event.UnbindThis + return event.ResponseUnbindThisBinding } oc := e.getCollisionPhase() if oc == nil || oc.OnCollisionS == nil { diff --git a/render/particle/source.go b/render/particle/source.go index 6dab9391..c06fe445 100644 --- a/render/particle/source.go +++ b/render/particle/source.go @@ -205,9 +205,9 @@ func clearParticles(ps *Source, _ event.EnterPayload) event.Response { ps.EndFunc() } // TODO: not default - event.DefaultCallerMap.DestroyEntity(ps.CID()) + event.DefaultCallerMap.RemoveEntity(ps.CID()) ps.Deallocate(ps.pIDBlock) - return event.UnbindThis + return event.ResponseUnbindThisBinding } } return 0 diff --git a/render/particle/source_test.go b/render/particle/source_test.go index b9bb440f..728d68d5 100644 --- a/render/particle/source_test.go +++ b/render/particle/source_test.go @@ -50,7 +50,7 @@ func TestSource(t *testing.T) { for i := 0; i < 1000; i++ { rotateParticles(src, event.EnterPayload{}) } - for clearParticles(src, event.EnterPayload{}) != event.UnbindThis { + for clearParticles(src, event.EnterPayload{}) != event.ResponseUnbindThisBinding { } if !ended { diff --git a/render/sequence.go b/render/sequence.go index ef8731b5..0ce1afad 100644 --- a/render/sequence.go +++ b/render/sequence.go @@ -68,7 +68,7 @@ func (sq *Sequence) Copy() Modifiable { return newSq } -var AnimationEnd = event.RegisterEvent[event.NoPayload]() +var AnimationEnd = event.RegisterEvent[struct{}]() // SetTriggerID sets the ID that AnimationEnd will be triggered on when this // sequence loops over from its last frame to its first @@ -82,7 +82,7 @@ func (sq *Sequence) update() { sq.sheetPos = (sq.sheetPos + 1) % len(sq.rs) if sq.sheetPos == (len(sq.rs)-1) && sq.CallerID != 0 { // TODO: not default bus - event.TriggerForCallerOn(event.DefaultBus, sq.CallerID, AnimationEnd, event.NoPayload{}) + event.TriggerForCallerOn(event.DefaultBus, sq.CallerID, AnimationEnd, struct{}{}) } } } diff --git a/render/sequence_test.go b/render/sequence_test.go index ceb16cc7..45b56f29 100644 --- a/render/sequence_test.go +++ b/render/sequence_test.go @@ -24,7 +24,7 @@ func TestSequenceTrigger(t *testing.T) { d.CallerID = event.DefaultCallerMap.Register(d) sq.SetTriggerID(d.CallerID) triggerCh := make(chan struct{}) - event.Bind(event.DefaultBus, AnimationEnd, d, func(_ Dummy, _ event.NoPayload) event.Response { + event.Bind(event.DefaultBus, AnimationEnd, d, func(_ Dummy, _ struct{}) event.Response { triggerCh <- struct{}{} return 0 }) diff --git a/sceneLoop.go b/sceneLoop.go index 359d17cb..2d5e4bb1 100644 --- a/sceneLoop.go +++ b/sceneLoop.go @@ -5,6 +5,7 @@ import ( "github.com/oakmound/oak/v3/alg/intgeom" "github.com/oakmound/oak/v3/dlog" + "github.com/oakmound/oak/v3/event" "github.com/oakmound/oak/v3/oakerr" "github.com/oakmound/oak/v3/scene" "github.com/oakmound/oak/v3/timing" @@ -95,7 +96,7 @@ func (w *Window) sceneLoop(first string, trackingInputs, batchLoad bool) { dlog.Info(dlog.SceneLooping) cont := true - w.eventHandler.EnterLoop(timing.FPSToFrameDelay(w.FrameRate)) + enterCancel := event.EnterLoop(w.eventHandler, timing.FPSToFrameDelay(w.FrameRate)) nextSceneOverride := "" @@ -113,7 +114,7 @@ func (w *Window) sceneLoop(first string, trackingInputs, batchLoad bool) { dlog.Info(dlog.SceneEnding, w.SceneMap.CurrentScene) // We don't want enterFrames going off between scenes - dlog.ErrorCheck(w.eventHandler.Stop()) + enterCancel() prevScene = w.SceneMap.CurrentScene // Send a signal to stop drawing diff --git a/viewport.go b/viewport.go index 9df73069..8ad51ea4 100644 --- a/viewport.go +++ b/viewport.go @@ -34,7 +34,7 @@ func (w *Window) setViewport(pt intgeom.Point2) { } else { w.viewPos = pt } - event.TriggerOn(w.eventHandler, event.ViewportUpdate, w.viewPos) + event.TriggerOn(w.eventHandler, ViewportUpdate, w.viewPos) } // GetViewportBounds reports what bounds the viewport has been set to, if any. From ea990b1f2008de45e5197295ffdeee7559088780 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Thu, 31 Mar 2022 07:44:02 -0500 Subject: [PATCH 024/146] event: restore 100% test coverage --- event/bind.go | 17 +++++++++---- event/bind_test.go | 57 +++++++++++++++++++++++++++++++++++++++--- event/handler.go | 4 +-- event/response_test.go | 54 ++++++++++++++++++++++++++++++++++++--- 4 files changed, 118 insertions(+), 14 deletions(-) diff --git a/event/bind.go b/event/bind.go index 38c31010..11fa7d63 100644 --- a/event/bind.go +++ b/event/bind.go @@ -33,8 +33,8 @@ type Binding struct { // Unbind unbinds the callback associated with this binding from it's own event handler. If this binding // does not belong to its handler or has already been unbound, this will do nothing. -func (b Binding) Unbind() { - b.Handler.Unbind(b) +func (b Binding) Unbind() chan struct{} { + return b.Handler.Unbind(b) } // A BindID is a unique identifier for a binding within a bus. @@ -71,7 +71,8 @@ func (bus *Bus) UnsafeBind(eventID UnsafeEventID, callerID CallerID, fn UnsafeBi // PersistentBind acts like UnsafeBind, but cause Bind to be called with these inputs after a Bus is Reset, i.e. // persisting the binding through bus resets. Unbinding this will not stop it from being rebound on the next -// Bus Reset-- ClearPersistentBindings will. +// Bus Reset-- ClearPersistentBindings will. If called concurrently during a bus Reset, the request may not be +// bound until the next bus Reset. func (bus *Bus) PersistentBind(eventID UnsafeEventID, callerID CallerID, fn UnsafeBindable) Binding { binding := bus.UnsafeBind(eventID, callerID, fn) go func() { @@ -88,7 +89,8 @@ func (bus *Bus) PersistentBind(eventID UnsafeEventID, callerID CallerID, fn Unsa // Unbind unregisters a binding from a bus concurrently. Once complete, triggers that would // have previously caused the Bindable callback to execute will no longer do so. -func (bus *Bus) Unbind(loc Binding) { +func (bus *Bus) Unbind(loc Binding) chan struct{} { + ch := make(chan struct{}) go func() { bus.mutex.Lock() defer bus.mutex.Unlock() @@ -98,7 +100,9 @@ func (bus *Bus) Unbind(loc Binding) { } l := bus.getBindableList(loc.EventID, loc.CallerID) delete(l, loc.BindID) + close(ch) }() + return ch } // A Bindable is a strongly typed callback function to be executed on Trigger. It must be paired @@ -132,12 +136,15 @@ func GlobalBind[Payload any](h Handler, ev EventID[Payload], fn GlobalBindable[P type UnsafeBindable func(CallerID, Handler, interface{}) Response // UnbindAllFrom unbinds all bindings currently bound to the provided caller via ID. -func (bus *Bus) UnbindAllFrom(c CallerID) { +func (bus *Bus) UnbindAllFrom(c CallerID) chan struct{} { + ch := make(chan struct{}) go func() { bus.mutex.Lock() for _, callerMap := range bus.bindingMap { delete(callerMap, c) } bus.mutex.Unlock() + close(ch) }() + return ch } diff --git a/event/bind_test.go b/event/bind_test.go index fc96108e..4fe1d942 100644 --- a/event/bind_test.go +++ b/event/bind_test.go @@ -45,7 +45,7 @@ func TestBus_Unbind(t *testing.T) { }) <-b2.Bound <-b.Trigger(1, nil) - b2.Unbind() + <-b2.Unbind() } if goodCalls != 1000 { t.Fatal("a pre-reset unbind unbound a post-reset binding", goodCalls) @@ -55,16 +55,65 @@ func TestBus_Unbind(t *testing.T) { func TestBind(t *testing.T) { t.Run("SuperficialCoverage", func(t *testing.T) { - t.Skip("TODO") + b := event.NewBus(event.NewCallerMap()) + var cid event.CallerID + id := b.GetCallerMap().Register(cid) + var calls int32 + b1 := event.Bind(b, event.Enter, id, func(event.CallerID, event.EnterPayload) event.Response { + atomic.AddInt32(&calls, 1) + return 0 + }) + <-b1.Bound + <-event.TriggerOn(b, event.Enter, event.EnterPayload{}) + if calls != 1 { + t.Fatal(expectedError("calls", 1, calls)) + } }) } func TestGlobalBind(t *testing.T) { t.Run("SuperficialCoverage", func(t *testing.T) { - t.Skip("TODO") + b := event.NewBus(event.NewCallerMap()) + var calls int32 + b1 := event.GlobalBind(b, event.Enter, func(event.EnterPayload) event.Response { + atomic.AddInt32(&calls, 1) + return 0 + }) + <-b1.Bound + <-event.TriggerOn(b, event.Enter, event.EnterPayload{}) + if calls != 1 { + t.Fatal(expectedError("calls", 1, calls)) + } }) } func TestBus_UnbindAllFrom(t *testing.T) { - t.Skip("TODO") + t.Run("Basic", func(t *testing.T) { + b := event.NewBus(event.NewCallerMap()) + var cid event.CallerID + id := b.GetCallerMap().Register(cid) + var calls int32 + for i := 0; i < 5; i++ { + b1 := event.Bind(b, event.Enter, id, func(event.CallerID, event.EnterPayload) event.Response { + atomic.AddInt32(&calls, 1) + return 0 + }) + <-b1.Bound + } + id2 := b.GetCallerMap().Register(cid) + b1 := event.Bind(b, event.Enter, id2, func(event.CallerID, event.EnterPayload) event.Response { + atomic.AddInt32(&calls, 1) + return 0 + }) + <-b1.Bound + <-event.TriggerOn(b, event.Enter, event.EnterPayload{}) + if calls != 6 { + t.Fatal(expectedError("calls", 1, calls)) + } + <-b.UnbindAllFrom(id) + <-event.TriggerOn(b, event.Enter, event.EnterPayload{}) + if calls != 7 { + t.Fatal(expectedError("calls", 1, calls)) + } + }) } diff --git a/event/handler.go b/event/handler.go index 6d89d9c7..af59e3ea 100644 --- a/event/handler.go +++ b/event/handler.go @@ -12,8 +12,8 @@ type Handler interface { TriggerForCaller(cid CallerID, event UnsafeEventID, data interface{}) chan struct{} Trigger(event UnsafeEventID, data interface{}) chan struct{} UnsafeBind(UnsafeEventID, CallerID, UnsafeBindable) Binding - Unbind(Binding) - UnbindAllFrom(CallerID) + Unbind(Binding) chan struct{} + UnbindAllFrom(CallerID) chan struct{} SetCallerMap(*CallerMap) GetCallerMap() *CallerMap } diff --git a/event/response_test.go b/event/response_test.go index 5a614558..7064e353 100644 --- a/event/response_test.go +++ b/event/response_test.go @@ -1,9 +1,57 @@ package event_test - + import ( + "sync/atomic" "testing" + "time" + + "github.com/oakmound/oak/v3/event" ) func TestBindingResponses(t *testing.T) { - t.Skip("TODO") -} \ No newline at end of file + t.Run("UnbindThisBinding", func(t *testing.T) { + b := event.NewBus(event.NewCallerMap()) + + var calls int32 + b1 := b.UnsafeBind(1, 0, func(ci event.CallerID, h event.Handler, i interface{}) event.Response { + atomic.AddInt32(&calls, 1) + return event.ResponseUnbindThisBinding + }) + <-b1.Bound + <-b.Trigger(1, nil) + if calls != 1 { + t.Fatal(expectedError("calls", 1, calls)) + } + // we do not get a signal for when this unbinding is finished + time.Sleep(1 * time.Second) + <-b.Trigger(1, nil) + if calls != 1 { + t.Fatal(expectedError("calls", 1, calls)) + } + }) + t.Run("UNbindThisCaller", func(t *testing.T) { + b := event.NewBus(event.NewCallerMap()) + + var calls int32 + b1 := b.UnsafeBind(1, 0, func(ci event.CallerID, h event.Handler, i interface{}) event.Response { + atomic.AddInt32(&calls, 1) + return event.ResponseUnbindThisCaller + }) + <-b1.Bound + b2 := b.UnsafeBind(1, 0, func(ci event.CallerID, h event.Handler, i interface{}) event.Response { + atomic.AddInt32(&calls, 1) + return 0 + }) + <-b2.Bound + <-b.Trigger(1, nil) + if calls != 2 { + t.Fatal(expectedError("calls", 1, calls)) + } + // we do not get a signal for when this unbinding is finished + time.Sleep(1 * time.Second) + <-b.Trigger(1, nil) + if calls != 2 { + t.Fatal(expectedError("calls", 2, calls)) + } + }) +} From 9d98d49db41e907360d95ba969393899fe52f661 Mon Sep 17 00:00:00 2001 From: implausiblyfun Date: Sat, 2 Apr 2022 10:45:19 -0400 Subject: [PATCH 025/146] render/particle: Source CallerID ordering fix + Start adding non-defaults to sources --- render/particle/allocator_test.go | 2 +- render/particle/colorGenerator.go | 2 +- render/particle/gradientGenerator.go | 2 +- render/particle/source.go | 17 ++++++++++++----- render/particle/spriteGenerator.go | 2 +- 5 files changed, 16 insertions(+), 9 deletions(-) diff --git a/render/particle/allocator_test.go b/render/particle/allocator_test.go index 31c73f59..bbf04497 100644 --- a/render/particle/allocator_test.go +++ b/render/particle/allocator_test.go @@ -32,7 +32,7 @@ func TestAllocatorLookup(t *testing.T) { a := NewAllocator() go a.Run() - src := NewSource(NewColorGenerator(), 0) + src := NewDefaultSource(NewColorGenerator(), 0) cid := src.CID() pidBlock := a.Allocate(cid) src2 := a.LookupSource(pidBlock * blockSize) diff --git a/render/particle/colorGenerator.go b/render/particle/colorGenerator.go index 4a7a7c32..4b22ceeb 100644 --- a/render/particle/colorGenerator.go +++ b/render/particle/colorGenerator.go @@ -51,7 +51,7 @@ func (cg *ColorGenerator) Generate(layer int) *Source { if cg.Rotation != nil { cg.Rotation = cg.Rotation.Mult(alg.DegToRad) } - return NewSource(cg, layer) + return NewDefaultSource(cg, layer) } // GenerateParticle creates a particle from a generator diff --git a/render/particle/gradientGenerator.go b/render/particle/gradientGenerator.go index d2a947d7..405e3cac 100644 --- a/render/particle/gradientGenerator.go +++ b/render/particle/gradientGenerator.go @@ -45,7 +45,7 @@ func (gg *GradientGenerator) Generate(layer int) *Source { if gg.Rotation != nil { gg.Rotation = gg.Rotation.Mult(alg.DegToRad) } - return NewSource(gg, layer) + return NewDefaultSource(gg, layer) } // GenerateParticle creates a particle from a generator diff --git a/render/particle/source.go b/render/particle/source.go index 6dab9391..f442483d 100644 --- a/render/particle/source.go +++ b/render/particle/source.go @@ -33,22 +33,29 @@ type Source struct { stopped bool } -// NewSource creates a new source -func NewSource(g Generator, stackLevel int) *Source { +// NewDefaultSource creates a new sourceattached to the default event bus. +func NewDefaultSource(g Generator, stackLevel int) *Source { + return NewSource(event.DefaultBus, g, stackLevel) +} + +// NewSource for particles constructed from a generator with specifications on how the particles should be handled. +func NewSource(handler event.Handler, g Generator, stackLevel int) *Source { ps := new(Source) ps.Generator = g ps.stackLevel = stackLevel ps.Allocator = DefaultAllocator - cid := event.DefaultCallerMap.Register(ps) + cid := handler.GetCallerMap().Register(ps) ps.stopRotateAt = time.Now().Add( time.Duration(ps.Generator.GetBaseGenerator().Duration.Poll()) * time.Millisecond) - ps.rotateBinding = event.Bind(event.DefaultBus, event.Enter, ps, rotateParticles) - ps.CallerID = cid + ps.CallerID = cid // cid must be set before the following bind call + ps.rotateBinding = event.Bind(handler, event.Enter, ps, rotateParticles) + ps.pIDBlock = ps.Allocate(ps.CallerID) return ps } +// CID of our particle source func (ps *Source) CID() event.CallerID { return ps.CallerID } diff --git a/render/particle/spriteGenerator.go b/render/particle/spriteGenerator.go index 1cd5c760..111b6102 100644 --- a/render/particle/spriteGenerator.go +++ b/render/particle/spriteGenerator.go @@ -37,7 +37,7 @@ func (sg *SpriteGenerator) Generate(layer int) *Source { if sg.Rotation != nil { sg.Rotation = sg.Rotation.Mult(alg.DegToRad) } - return NewSource(sg, layer) + return NewDefaultSource(sg, layer) } // GenerateParticle creates a particle from a generator From d0fba73b85e68b985a420b11d28c9859ec44e511 Mon Sep 17 00:00:00 2001 From: implausiblyfun Date: Sat, 2 Apr 2022 10:46:14 -0400 Subject: [PATCH 026/146] key: Pull in more mobile key info into oak for cleaner calling signatures --- inputLoop.go | 6 +- key/events.go | 3 +- key/keycodes.go | 139 ++++++++++++++ key/keys.go | 486 ++++++++++++++++++++++++------------------------ 4 files changed, 387 insertions(+), 247 deletions(-) create mode 100644 key/keycodes.go diff --git a/inputLoop.go b/inputLoop.go index 04115818..62d97b50 100644 --- a/inputLoop.go +++ b/inputLoop.go @@ -103,7 +103,7 @@ func (w *Window) TriggerKeyDown(e okey.Event) { k := e.Code.String()[4:] w.SetDown(k) event.TriggerOn(w.eventHandler, okey.AnyDown, e) - event.TriggerOn(w.eventHandler, okey.Down(e.Code), e) + event.TriggerOn(w.eventHandler, okey.Down(okey.Code(e.Code)), e) } // TriggerKeyUp triggers a software-emulated key release. @@ -114,7 +114,7 @@ func (w *Window) TriggerKeyUp(e okey.Event) { k := e.Code.String()[4:] w.SetUp(k) event.TriggerOn(w.eventHandler, okey.AnyUp, e) - event.TriggerOn(w.eventHandler, okey.Up(e.Code), e) + event.TriggerOn(w.eventHandler, okey.Up(okey.Code(e.Code)), e) } // TriggerKeyHeld triggers a software-emulated key hold signal. @@ -123,7 +123,7 @@ func (w *Window) TriggerKeyUp(e okey.Event) { // from a real key hold signal. func (w *Window) TriggerKeyHeld(e okey.Event) { event.TriggerOn(w.eventHandler, okey.AnyHeld, e) - event.TriggerOn(w.eventHandler, okey.Held(e.Code), e) + event.TriggerOn(w.eventHandler, okey.Held(okey.Code(e.Code)), e) } // TriggerMouseEvent triggers a software-emulated mouse event. diff --git a/key/events.go b/key/events.go index 12e2e62b..54358f3c 100644 --- a/key/events.go +++ b/key/events.go @@ -23,11 +23,12 @@ var ( type Event = key.Event // A code is a unique integer code for a given common key -type Code = key.Code +const CodeA key.Code = key.Code(A) var upEventsLock sync.Mutex var upEvents = map[Code]event.EventID[Event]{} +// Up checks func Up(code Code) event.EventID[Event] { upEventsLock.Lock() defer upEventsLock.Unlock() diff --git a/key/keycodes.go b/key/keycodes.go new file mode 100644 index 00000000..8c3ec701 --- /dev/null +++ b/key/keycodes.go @@ -0,0 +1,139 @@ +package key + +// Code is the identity of a key relative to a notional "standard" keyboard. +// It is a straight copy of mobile package's key codes cleaned up for ease of binding in oak. +// See AllKeys for string mappers. +type Code uint32 + +const ( + Unknown Code = 0 + A Code = 4 + B Code = 5 + C Code = 6 + D Code = 7 + E Code = 8 + F Code = 9 + G Code = 10 + H Code = 11 + I Code = 12 + J Code = 13 + K Code = 14 + L Code = 15 + M Code = 16 + N Code = 17 + O Code = 18 + P Code = 19 + Q Code = 20 + R Code = 21 + S Code = 22 + T Code = 23 + U Code = 24 + V Code = 25 + W Code = 26 + X Code = 27 + Y Code = 28 + Z Code = 29 + + Num1 Code = 30 + Num2 Code = 31 + Num3 Code = 32 + Num4 Code = 33 + Num5 Code = 34 + Num6 Code = 35 + Num7 Code = 36 + Num8 Code = 37 + Num9 Code = 38 + Num0 Code = 39 + + ReturnEnter Code = 40 + Escape Code = 41 + DeleteBackspace Code = 42 + Tab Code = 43 + Spacebar Code = 44 + HyphenMinus Code = 45 + EqualSign Code = 46 + LeftSquareBracket Code = 47 + RightSquareBracket Code = 48 + Backslash Code = 49 + Semicolon Code = 51 + Apostrophe Code = 52 + GraveAccent Code = 53 + Comma Code = 54 + FullStop Code = 55 + Slash Code = 56 + CapsLock Code = 57 + + F1 Code = 58 + F2 Code = 59 + F3 Code = 60 + F4 Code = 61 + F5 Code = 62 + F6 Code = 63 + F7 Code = 64 + F8 Code = 65 + F9 Code = 66 + F10 Code = 67 + F11 Code = 68 + F12 Code = 69 + + Pause Code = 72 + Insert Code = 73 + Home Code = 74 + PageUp Code = 75 + DeleteForward Code = 76 + End Code = 77 + PageDown Code = 78 + + RightArrow Code = 79 + LeftArrow Code = 80 + DownArrow Code = 81 + UpArrow Code = 82 + + KeypadNumLock Code = 83 + KeypadSlash Code = 84 + KeypadAsterisk Code = 85 + KeypadHyphenMinus Code = 86 + KeypadPlusSign Code = 87 + KeypadEnter Code = 88 + Keypad1 Code = 89 + Keypad2 Code = 90 + Keypad3 Code = 91 + Keypad4 Code = 92 + Keypad5 Code = 93 + Keypad6 Code = 94 + Keypad7 Code = 95 + Keypad8 Code = 96 + Keypad9 Code = 97 + Keypad0 Code = 98 + KeypadFullStop Code = 99 + KeypadEqualSign Code = 103 + + F13 Code = 104 + F14 Code = 105 + F15 Code = 106 + F16 Code = 107 + F17 Code = 108 + F18 Code = 109 + F19 Code = 110 + F20 Code = 111 + F21 Code = 112 + F22 Code = 113 + F23 Code = 114 + F24 Code = 115 + + Help Code = 117 + + Mute Code = 127 + VolumeUp Code = 128 + VolumeDown Code = 129 + + LeftControl Code = 224 + LeftShift Code = 225 + LeftAlt Code = 226 + LeftGUI Code = 227 + RightControl Code = 228 + RightShift Code = 229 + RightAlt Code = 230 + RightGUI Code = 231 + Compose Code = 0x10000 +) diff --git a/key/keys.go b/key/keys.go index 1cb73fc9..d3c821c0 100644 --- a/key/keys.go +++ b/key/keys.go @@ -7,271 +7,271 @@ package key // These strings are sent as payloads to Key.Down and Key.Up events, // and through "KeyDown"+$a, "KeyUp"+$a for any $a in the const. const ( - Unknown = "Unknown" + UnknownStr = "Unknown" - A = "A" - B = "B" - C = "C" - D = "D" - E = "E" - F = "F" - G = "G" - H = "H" - I = "I" - J = "J" - K = "K" - L = "L" - M = "M" - N = "N" - O = "O" - P = "P" - Q = "Q" - R = "R" - S = "S" - T = "T" - U = "U" - V = "V" - W = "W" - X = "X" - Y = "Y" - Z = "Z" + AStr = "A" + BStr = "B" + CStr = "C" + DStr = "D" + EStr = "E" + FStr = "F" + GStr = "G" + HStr = "H" + IStr = "I" + JStr = "J" + KStr = "K" + LStr = "L" + MStr = "M" + NStr = "N" + OStr = "O" + PStr = "P" + QStr = "Q" + RStr = "R" + SStr = "S" + TStr = "T" + UStr = "U" + VStr = "V" + WStr = "W" + XStr = "X" + YStr = "Y" + ZStr = "Z" - One = "1" - Two = "2" - Three = "3" - Four = "4" - Five = "5" - Six = "6" - Seven = "7" - Eight = "8" - Nine = "9" - Zero = "0" + OneStr = "1" + TwoStr = "2" + ThreeStr = "3" + FourStr = "4" + FiveStr = "5" + SixStr = "6" + SevenStr = "7" + EightStr = "8" + NineStr = "9" + ZeroStr = "0" - ReturnEnter = "ReturnEnter" - Enter = ReturnEnter - Escape = "Escape" - DeleteBackspace = "DeleteBackspace" - Tab = "Tab" - Spacebar = "Spacebar" - HyphenMinus = "HyphenMinus" //- - EqualSign = "EqualSign" //= - LeftSquareBracket = "LeftSquareBracket" //[ - RightSquareBracket = "RightSquareBracket" //] - Backslash = "Backslash" //\ - Semicolon = "Semicolon" //; - Apostrophe = "Apostrophe" //' - GraveAccent = "GraveAccent" //` - Comma = "Comma" //, - FullStop = "FullStop" //. - Period = FullStop - Slash = "Slash" /// - CapsLock = "CapsLock" + ReturnEnterStr = "ReturnEnter" + Enter = ReturnEnter + EscapeStr = "Escape" + DeleteBackspaceStr = "DeleteBackspace" + TabStr = "Tab" + SpacebarStr = "Spacebar" + HyphenMinusStr = "HyphenMinus" //- + EqualSignStr = "EqualSign" //= + LeftSquareBracketStr = "LeftSquareBracket" //[ + RightSquareBracketStr = "RightSquareBracket" //] + BackslashStr = "Backslash" //\ + SemicolonStr = "Semicolon" //; + ApostropheStr = "Apostrophe" //' + GraveAccentStr = "GraveAccent" //` + CommaStr = "Comma" //, + FullStopStr = "FullStop" //. + Period = "FullStop" + SlashStr = "Slash" /// + CapsLockStr = "CapsLock" - F1 = "F1" - F2 = "F2" - F3 = "F3" - F4 = "F4" - F5 = "F5" - F6 = "F6" - F7 = "F7" - F8 = "F8" - F9 = "F9" - F10 = "F10" - F11 = "F11" - F12 = "F12" + F1Str = "F1" + F2Str = "F2" + F3Str = "F3" + F4Str = "F4" + F5Str = "F5" + F6Str = "F6" + F7Str = "F7" + F8Str = "F8" + F9Str = "F9" + F10Str = "F10" + F11Str = "F11" + F12Str = "F12" - Pause = "Pause" - Insert = "Insert" - Home = "Home" - PageUp = "PageUp" - DeleteForward = "DeleteForward" - End = "End" - PageDown = "PageDown" + PauseStr = "Pause" + InsertStr = "Insert" + HomeStr = "Home" + PageUpStr = "PageUp" + DeleteForwardStr = "DeleteForward" + EndStr = "End" + PageDownStr = "PageDown" - RightArrow = "RightArrow" - LeftArrow = "LeftArrow" - DownArrow = "DownArrow" - UpArrow = "UpArrow" + RightArrowStr = "RightArrow" + LeftArrowStr = "LeftArrow" + DownArrowStr = "DownArrow" + UpArrowStr = "UpArrow" - KeypadNumLock = "KeypadNumLock" - KeypadSlash = "KeypadSlash" /// - KeypadAsterisk = "KeypadAsterisk" //* - KeypadHyphenMinus = "KeypadHyphenMinus" //- - KeypadPlusSign = "KeypadPlusSign" //+ - KeypadEnter = "KeypadEnter" - Keypad1 = "Keypad1" - Keypad2 = "Keypad2" - Keypad3 = "Keypad3" - Keypad4 = "Keypad4" - Keypad5 = "Keypad5" - Keypad6 = "Keypad6" - Keypad7 = "Keypad7" - Keypad8 = "Keypad8" - Keypad9 = "Keypad9" - Keypad0 = "Keypad0" - KeypadFullStop = "KeypadFullStop" //. - KeypadPeriod = KeypadFullStop - KeypadEqualSign = "KeypadEqualSign" //= + KeypadNumLockStr = "KeypadNumLock" + KeypadSlashStr = "KeypadSlash" /// + KeypadAsteriskStr = "KeypadAsterisk" //* + KeypadHyphenMinusStr = "KeypadHyphenMinus" //- + KeypadPlusSignStr = "KeypadPlusSign" //+ + KeypadEnterStr = "KeypadEnter" + Keypad1Str = "Keypad1" + Keypad2Str = "Keypad2" + Keypad3Str = "Keypad3" + Keypad4Str = "Keypad4" + Keypad5Str = "Keypad5" + Keypad6Str = "Keypad6" + Keypad7Str = "Keypad7" + Keypad8Str = "Keypad8" + Keypad9Str = "Keypad9" + Keypad0Str = "Keypad0" + KeypadFullStopStr = "KeypadFullStop" //. + KeypadPeriod = "KeypadFullStop" + KeypadEqualSignStr = "KeypadEqualSign" //= - F13 = "F13" - F14 = "F14" - F15 = "F15" - F16 = "F16" - F17 = "F17" - F18 = "F18" - F19 = "F19" - F20 = "F20" - F21 = "F21" - F22 = "F22" - F23 = "F23" - F24 = "F24" + F13Str = "F13" + F14Str = "F14" + F15Str = "F15" + F16Str = "F16" + F17Str = "F17" + F18Str = "F18" + F19Str = "F19" + F20Str = "F20" + F21Str = "F21" + F22Str = "F22" + F23Str = "F23" + F24Str = "F24" - Help = "Help" + HelpStr = "Help" - Mute = "Mute" - VolumeUp = "VolumeUp" - VolumeDown = "VolumeDown" + MuteStr = "Mute" + VolumeUpStr = "VolumeUp" + VolumeDownStr = "VolumeDown" - LeftControl = "LeftControl" - LeftShift = "LeftShift" - LeftAlt = "LeftAlt" - LeftGUI = "LeftGUI" - RightControl = "RightControl" - RightShift = "RightShift" - RightAlt = "RightAlt" - RightGUI = "RightGUI" + LeftControlStr = "LeftControl" + LeftShiftStr = "LeftShift" + LeftAltStr = "LeftAlt" + LeftGUIStr = "LeftGUI" + RightControlStr = "RightControl" + RightShiftStr = "RightShift" + RightAltStr = "RightAlt" + RightGUIStr = "RightGUI" ) -// AllKeys is the set of all defined key codes -var AllKeys = map[string]struct{}{ - Unknown: {}, +// AllKeys is the set of all defined key codes to their Codes +var AllKeys = map[string]Code{ + UnknownStr: Unknown, - A: {}, - B: {}, - C: {}, - D: {}, - E: {}, - F: {}, - G: {}, - H: {}, - I: {}, - J: {}, - K: {}, - L: {}, - M: {}, - N: {}, - O: {}, - P: {}, - Q: {}, - R: {}, - S: {}, - T: {}, - U: {}, - V: {}, - W: {}, - X: {}, - Y: {}, - Z: {}, + AStr: A, + BStr: B, + CStr: C, + DStr: D, + EStr: E, + FStr: F, + GStr: G, + HStr: H, + IStr: I, + JStr: J, + KStr: K, + LStr: L, + MStr: M, + NStr: N, + OStr: O, + PStr: P, + QStr: Q, + RStr: R, + SStr: S, + TStr: T, + UStr: U, + VStr: V, + WStr: W, + XStr: X, + YStr: Y, + ZStr: Z, - One: {}, - Two: {}, - Three: {}, - Four: {}, - Five: {}, - Six: {}, - Seven: {}, - Eight: {}, - Nine: {}, - Zero: {}, + OneStr: Num1, + TwoStr: Num2, + ThreeStr: Num3, + FourStr: Num4, + FiveStr: Num5, + SixStr: Num6, + SevenStr: Num7, + EightStr: Num8, + NineStr: Num9, + ZeroStr: Num0, - ReturnEnter: {}, - Escape: {}, - DeleteBackspace: {}, - Tab: {}, - Spacebar: {}, - HyphenMinus: {}, - EqualSign: {}, - LeftSquareBracket: {}, - RightSquareBracket: {}, - Backslash: {}, - Semicolon: {}, - Apostrophe: {}, - GraveAccent: {}, - Comma: {}, - FullStop: {}, - Slash: {}, - CapsLock: {}, + ReturnEnterStr: ReturnEnter, + EscapeStr: Escape, + DeleteBackspaceStr: DeleteBackspace, + TabStr: Tab, + SpacebarStr: Spacebar, + HyphenMinusStr: HyphenMinus, + EqualSignStr: EqualSign, + LeftSquareBracketStr: LeftSquareBracket, + RightSquareBracketStr: RightSquareBracket, + BackslashStr: Backslash, + SemicolonStr: Semicolon, + ApostropheStr: Apostrophe, + GraveAccentStr: GraveAccent, + CommaStr: Comma, + FullStopStr: FullStop, + SlashStr: Slash, + CapsLockStr: CapsLock, - F1: {}, - F2: {}, - F3: {}, - F4: {}, - F5: {}, - F6: {}, - F7: {}, - F8: {}, - F9: {}, - F10: {}, - F11: {}, - F12: {}, + F1Str: F1, + F2Str: F2, + F3Str: F3, + F4Str: F4, + F5Str: F5, + F6Str: F6, + F7Str: F7, + F8Str: F8, + F9Str: F9, + F10Str: F10, + F11Str: F11, + F12Str: F12, - Pause: {}, - Insert: {}, - Home: {}, - PageUp: {}, - DeleteForward: {}, - End: {}, - PageDown: {}, + PauseStr: Pause, + InsertStr: Insert, + HomeStr: Home, + PageUpStr: PageUp, + DeleteForwardStr: DeleteForward, + EndStr: End, + PageDownStr: PageDown, - RightArrow: {}, - LeftArrow: {}, - DownArrow: {}, - UpArrow: {}, + RightArrowStr: RightArrow, + LeftArrowStr: LeftArrow, + DownArrowStr: DownArrow, + UpArrowStr: UpArrow, - KeypadNumLock: {}, - KeypadSlash: {}, - KeypadAsterisk: {}, - KeypadHyphenMinus: {}, - KeypadPlusSign: {}, - KeypadEnter: {}, - Keypad1: {}, - Keypad2: {}, - Keypad3: {}, - Keypad4: {}, - Keypad5: {}, - Keypad6: {}, - Keypad7: {}, - Keypad8: {}, - Keypad9: {}, - Keypad0: {}, - KeypadFullStop: {}, - KeypadEqualSign: {}, + KeypadNumLockStr: KeypadNumLock, + KeypadSlashStr: KeypadSlash, + KeypadAsteriskStr: KeypadAsterisk, + KeypadHyphenMinusStr: KeypadHyphenMinus, + KeypadPlusSignStr: KeypadPlusSign, + KeypadEnterStr: KeypadEnter, + Keypad1Str: Keypad1, + Keypad2Str: Keypad2, + Keypad3Str: Keypad3, + Keypad4Str: Keypad4, + Keypad5Str: Keypad5, + Keypad6Str: Keypad6, + Keypad7Str: Keypad7, + Keypad8Str: Keypad8, + Keypad9Str: Keypad9, + Keypad0Str: Keypad0, + KeypadFullStopStr: KeypadFullStop, + KeypadEqualSignStr: KeypadEqualSign, - F13: {}, - F14: {}, - F15: {}, - F16: {}, - F17: {}, - F18: {}, - F19: {}, - F20: {}, - F21: {}, - F22: {}, - F23: {}, - F24: {}, + F13Str: F13, + F14Str: F14, + F15Str: F15, + F16Str: F16, + F17Str: F17, + F18Str: F18, + F19Str: F19, + F20Str: F20, + F21Str: F21, + F22Str: F22, + F23Str: F23, + F24Str: F24, - Help: {}, + HelpStr: Help, - Mute: {}, - VolumeUp: {}, - VolumeDown: {}, + MuteStr: Mute, + VolumeUpStr: VolumeUp, + VolumeDownStr: VolumeDown, - LeftControl: {}, - LeftShift: {}, - LeftAlt: {}, - LeftGUI: {}, - RightControl: {}, - RightShift: {}, - RightAlt: {}, - RightGUI: {}, + LeftControlStr: LeftControl, + LeftShiftStr: LeftShift, + LeftAltStr: LeftAlt, + LeftGUIStr: LeftGUI, + RightControlStr: RightControl, + RightShiftStr: RightShift, + RightAltStr: RightAlt, + RightGUIStr: RightGUI, } From 494c9e14db8c936bb57f90b309fe1396d4705f93 Mon Sep 17 00:00:00 2001 From: implausiblyfun Date: Sat, 2 Apr 2022 11:04:47 -0400 Subject: [PATCH 027/146] debugtools\inputviz: Updates for the new key and cid changes --- debugtools/inputviz/joystick.go | 4 +--- debugtools/inputviz/keyboard.go | 12 ++++++------ debugtools/inputviz/mouse.go | 2 +- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/debugtools/inputviz/joystick.go b/debugtools/inputviz/joystick.go index c2fcb46b..a1c0c16f 100644 --- a/debugtools/inputviz/joystick.go +++ b/debugtools/inputviz/joystick.go @@ -9,8 +9,6 @@ import ( "math" "time" - mkey "golang.org/x/mobile/event/key" - "github.com/oakmound/oak/v3/alg/floatgeom" "github.com/oakmound/oak/v3/dlog" "github.com/oakmound/oak/v3/event" @@ -189,7 +187,7 @@ func (j *Joystick) RenderAndListen(ctx *scene.Context, joy *joystick.Joystick, l }) // TODO: it is bad that you need to import two 'key' packages - b2 := event.Bind(ctx, key.Down(mkey.CodeSpacebar), j, func(j *Joystick, _ key.Event) event.Response { + b2 := event.Bind(ctx, key.Down(key.Spacebar), j, func(j *Joystick, _ key.Event) event.Response { j.joy.Vibrate(math.MaxUint16, math.MaxUint16) go func() { time.Sleep(1 * time.Second) diff --git a/debugtools/inputviz/keyboard.go b/debugtools/inputviz/keyboard.go index 52b24f46..e753f8af 100644 --- a/debugtools/inputviz/keyboard.go +++ b/debugtools/inputviz/keyboard.go @@ -85,12 +85,12 @@ func (l *LayoutQWERTY) init() { l.layoutMap = make(map[string]LayoutPosition) qwertyRows := [][]LayoutKey{ - {sk(key.Escape), gap(1), sk(key.F1), sk(key.F2), sk(key.F3), sk(key.F4), gap(.5), sk(key.F5), sk(key.F6), sk(key.F7), sk(key.F8), gap(.5), sk(key.F9), sk(key.F10), sk(key.F11), sk(key.F12), gap(2.1), sk(key.Pause)}, - {sk(key.GraveAccent), sk(key.One), sk(key.Two), sk(key.Three), sk(key.Four), sk(key.Five), sk(key.Six), sk(key.Seven), sk(key.Eight), sk(key.Nine), sk(key.Zero), sk(key.HyphenMinus), sk(key.EqualSign), wideKey{key.DeleteBackspace, 2.0}, gap(.1), sk(key.Insert), sk(key.Home), sk(key.PageUp), gap(.1), sk(key.KeypadNumLock), sk(key.KeypadSlash), sk(key.KeypadAsterisk), sk(key.KeypadHyphenMinus)}, - {wideKey{key.Tab, 1.5}, sk(key.Q), sk(key.W), sk(key.E), sk(key.R), sk(key.T), sk(key.Y), sk(key.U), sk(key.I), sk(key.O), sk(key.P), sk(key.LeftSquareBracket), sk(key.RightSquareBracket), wideKey{key.Backslash, 1.5}, gap(.1), sk(key.DeleteForward), sk(key.End), sk(key.PageDown), gap(.1), sk(key.Keypad7), sk(key.Keypad8), sk(key.Keypad9), tallKey{key.KeypadPlusSign, 2}}, - {wideKey{key.CapsLock, 1.5}, sk(key.A), sk(key.S), sk(key.D), sk(key.F), sk(key.G), sk(key.H), sk(key.J), sk(key.K), sk(key.L), sk(key.Semicolon), sk(key.Apostrophe), wideKey{key.ReturnEnter, 2.5}, gap(3.2), sk(key.Keypad4), sk(key.Keypad5), sk(key.Keypad6)}, - {wideKey{key.LeftShift, 2.0}, sk(key.Z), sk(key.X), sk(key.C), sk(key.V), sk(key.B), sk(key.N), sk(key.M), sk(key.Comma), sk(key.FullStop), sk(key.Slash), wideKey{key.RightShift, 3.0}, gap(1.1), sk(key.UpArrow), gap(1.1), sk(key.Keypad1), sk(key.Keypad2), sk(key.Keypad3), tallKey{key.KeypadEnter, 2.0}}, - {wideKey{key.LeftControl, 1.5}, sk(key.LeftGUI), wideKey{key.LeftAlt, 1.5}, wideKey{key.Spacebar, 7.0}, wideKey{key.RightAlt, 1.5}, sk(key.RightGUI), wideKey{key.RightControl, 1.5}, gap(.1), sk(key.LeftArrow), sk(key.DownArrow), sk(key.RightArrow), gap(.1), wideKey{key.Keypad0, 2.0}, sk(key.KeypadPeriod)}, + {sk(key.EscapeStr), gap(1), sk(key.F1Str), sk(key.F2Str), sk(key.F3Str), sk(key.F4Str), gap(.5), sk(key.F5Str), sk(key.F6Str), sk(key.F7Str), sk(key.F8Str), gap(.5), sk(key.F9Str), sk(key.F10Str), sk(key.F11Str), sk(key.F12Str), gap(2.1), sk(key.Pause)}, + {sk(key.GraveAccentStr), sk(key.OneStr), sk(key.TwoStr), sk(key.ThreeStr), sk(key.FourStr), sk(key.FiveStr), sk(key.SixStr), sk(key.SevenStr), sk(key.EightStr), sk(key.NineStr), sk(key.ZeroStr), sk(key.HyphenMinusStr), sk(key.EqualSignStr), wideKey{key.DeleteBackspaceStr, 2.0}, gap(.1), sk(key.InsertStr), sk(key.HomeStr), sk(key.PageUpStr), gap(.1), sk(key.KeypadNumLockStr), sk(key.KeypadSlashStr), sk(key.KeypadAsteriskStr), sk(key.KeypadHyphenMinus)}, + {wideKey{key.TabStr, 1.5}, sk(key.QStr), sk(key.WStr), sk(key.EStr), sk(key.RStr), sk(key.TStr), sk(key.YStr), sk(key.UStr), sk(key.IStr), sk(key.OStr), sk(key.PStr), sk(key.LeftSquareBracketStr), sk(key.RightSquareBracketStr), wideKey{key.BackslashStr, 1.5}, gap(.1), sk(key.DeleteForwardStr), sk(key.EndStr), sk(key.PageDownStr), gap(.1), sk(key.Keypad7Str), sk(key.Keypad8Str), sk(key.Keypad9Str), tallKey{key.KeypadPlusSignStr, 2}}, + {wideKey{key.CapsLockStr, 1.5}, sk(key.AStr), sk(key.SStr), sk(key.DStr), sk(key.FStr), sk(key.GStr), sk(key.HStr), sk(key.JStr), sk(key.KStr), sk(key.LStr), sk(key.SemicolonStr), sk(key.ApostropheStr), wideKey{key.ReturnEnterStr, 2.5}, gap(3.2), sk(key.Keypad4Str), sk(key.Keypad5Str), sk(key.Keypad6)}, + {wideKey{key.LeftShiftStr, 2.0}, sk(key.ZStr), sk(key.XStr), sk(key.CStr), sk(key.VStr), sk(key.BStr), sk(key.NStr), sk(key.MStr), sk(key.CommaStr), sk(key.FullStopStr), sk(key.SlashStr), wideKey{key.RightShiftStr, 3.0}, gap(1.1), sk(key.UpArrowStr), gap(1.1), sk(key.Keypad1Str), sk(key.Keypad2Str), sk(key.Keypad3Str), tallKey{key.KeypadEnterStr, 2.0}}, + {wideKey{key.LeftControlStr, 1.5}, sk(key.LeftGUIStr), wideKey{key.LeftAltStr, 1.5}, wideKey{key.SpacebarStr, 7.0}, wideKey{key.RightAltStr, 1.5}, sk(key.RightGUIStr), wideKey{key.RightControlStr, 1.5}, gap(.1), sk(key.LeftArrowStr), sk(key.DownArrowStr), sk(key.RightArrowStr), gap(.1), wideKey{key.Keypad0Str, 2.0}, sk(key.KeypadPeriod)}, } rowFloats := []float64{0.0, 1.1, 2.1, 3.1, 4.1, 5.1} for row, cols := range qwertyRows { diff --git a/debugtools/inputviz/mouse.go b/debugtools/inputviz/mouse.go index b0d2323c..fbaceb88 100644 --- a/debugtools/inputviz/mouse.go +++ b/debugtools/inputviz/mouse.go @@ -37,7 +37,7 @@ func (m *Mouse) CID() event.CallerID { func (m *Mouse) RenderAndListen(ctx *scene.Context, layer int) error { m.ctx = ctx - m.CallerID = ctx.Handler.GetCallerMap().Register(m) + m.CallerID = ctx.Register(m) if m.Rect.W() == 0 || m.Rect.H() == 0 { m.Rect.Max = m.Rect.Min.Add(floatgeom.Point2{60, 100}) From 780a1fb93b841b7ebe90c2301cdd73d9fd739f3a Mon Sep 17 00:00:00 2001 From: implausiblyfun Date: Sat, 2 Apr 2022 11:05:21 -0400 Subject: [PATCH 028/146] entities: Moving works as expected post event refactor --- entities/doodad.go | 7 +++++++ entities/x/move/topdown.go | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/entities/doodad.go b/entities/doodad.go index bef8722a..4e002123 100644 --- a/entities/doodad.go +++ b/entities/doodad.go @@ -57,3 +57,10 @@ func (d *Doodad) SetPos(x, y float64) { d.R.SetPos(x, y) } } + +// GetRenmderable retrieves the renderable. +// Mainly used to satisfy upper level interfaces. +// TODO: remove along with entity rework +func (d *Doodad) GetRenderable() render.Renderable { + return d.R +} diff --git a/entities/x/move/topdown.go b/entities/x/move/topdown.go index 8d16bbd5..bfb4a69e 100644 --- a/entities/x/move/topdown.go +++ b/entities/x/move/topdown.go @@ -9,12 +9,12 @@ import ( // WASD moves the given mover based on its speed as W,A,S, and D are pressed func WASD(mvr Mover) { - TopDown(mvr, key.W, key.S, key.A, key.D) + TopDown(mvr, key.WStr, key.SStr, key.AStr, key.DStr) } // Arrows moves the given mover based on its speed as the arrow keys are pressed func Arrows(mvr Mover) { - TopDown(mvr, key.UpArrow, key.DownArrow, key.LeftArrow, key.RightAlt) + TopDown(mvr, key.UpArrowStr, key.DownArrowStr, key.LeftArrowStr, key.RightAltStr) } // TopDown moves the given mover based on its speed as the given keys are pressed From 133cfba45d3348efe27244b64357cf31b1b241d9 Mon Sep 17 00:00:00 2001 From: implausiblyfun Date: Sat, 2 Apr 2022 11:05:54 -0400 Subject: [PATCH 029/146] examples: Fixes for CID changes and key changes --- examples/click-propagation/main.go | 2 +- examples/clipboard/go.mod | 2 +- examples/clipboard/main.go | 16 ++--- examples/custom-cursor/main.go | 10 +-- examples/fallback-font/go.mod | 2 +- examples/flappy-bird/main.go | 54 ++++++++-------- examples/joystick-viz/main.go | 11 ++-- examples/multi-window/main.go | 8 +-- examples/particle-demo/main.go | 3 +- examples/piano/main.go | 61 +++++++++---------- .../platformer-tutorial/2-moving/moving.go | 14 ++--- .../platformer-tutorial/3-falling/falling.go | 22 +++---- .../platformer-tutorial/4-jumping/jumping.go | 25 ++++---- .../5-correct-jumping/correct-jumping.go | 11 ++-- .../6-complete/complete.go | 11 ++-- examples/pong/main.go | 4 +- examples/radar-demo/main.go | 19 +++--- examples/svg/go.mod | 2 +- 18 files changed, 132 insertions(+), 145 deletions(-) diff --git a/examples/click-propagation/main.go b/examples/click-propagation/main.go index 72f591c1..7ada4e5a 100644 --- a/examples/click-propagation/main.go +++ b/examples/click-propagation/main.go @@ -53,7 +53,7 @@ func newHoverButton(ctx *scene.Context, x, y, w, h float64, clr color.RGBA, laye sp.SetZLayer(float64(layer)) mouse.Add(sp) - mouse.PhaseCollision(sp, ctx.GetCallerMap(), ctx.Handler) + mouse.PhaseCollision(sp, ctx.Handler) render.Draw(hb.changingColorBox, 0, layer) diff --git a/examples/clipboard/go.mod b/examples/clipboard/go.mod index f55b9172..15d5fc95 100644 --- a/examples/clipboard/go.mod +++ b/examples/clipboard/go.mod @@ -1,6 +1,6 @@ module github.com/oakmound/oak/examples/clipboard -go 1.16 +go 1.18 require ( github.com/atotto/clipboard v0.1.4 diff --git a/examples/clipboard/main.go b/examples/clipboard/main.go index da8db2f3..af38afb5 100644 --- a/examples/clipboard/main.go +++ b/examples/clipboard/main.go @@ -3,16 +3,15 @@ package main import ( "fmt" - gokey "golang.org/x/mobile/event/key" - + "github.com/atotto/clipboard" "github.com/oakmound/oak/v3" "github.com/oakmound/oak/v3/entities/x/btn" "github.com/oakmound/oak/v3/event" "github.com/oakmound/oak/v3/key" + "github.com/oakmound/oak/v3/mouse" "github.com/oakmound/oak/v3/render" "github.com/oakmound/oak/v3/scene" - - "github.com/atotto/clipboard" + gokey "golang.org/x/mobile/event/key" ) func main() { @@ -33,7 +32,7 @@ func newClipboardCopyText(text string, x, y float64) { btn.Pos(x, y), btn.Height(20), btn.FitText(20), - btn.Click(func(event.CallerID, interface{}) int { + btn.Click(func(b btn.Btn, me *mouse.Event) event.Response { err := clipboard.WriteAll(text) if err != nil { fmt.Println(err) @@ -46,14 +45,15 @@ func newClipboardCopyText(text string, x, y float64) { func newClipboardPaster(placeholder string, x, y float64) { textPtr := new(string) *textPtr = placeholder + btn.New( btn.Font(render.DefaultFont()), btn.TextPtr(textPtr), btn.Pos(x, y), btn.Height(20), btn.FitText(20), - btn.Binding(key.Down+key.V, func(_ event.CallerID, payload interface{}) int { - kv := payload.(key.Event) + btn.Binding(key.Down(key.V), func(b btn.Btn, kv key.Event) event.Response { + if kv.Modifiers&gokey.ModControl == gokey.ModControl { got, err := clipboard.ReadAll() if err != nil { @@ -64,7 +64,7 @@ func newClipboardPaster(placeholder string, x, y float64) { } return 0 }), - btn.Click(func(event.CallerID, interface{}) int { + btn.Click(func(b btn.Btn, me *mouse.Event) event.Response { got, err := clipboard.ReadAll() if err != nil { fmt.Println(err) diff --git a/examples/custom-cursor/main.go b/examples/custom-cursor/main.go index 898fbed4..a7d391a9 100644 --- a/examples/custom-cursor/main.go +++ b/examples/custom-cursor/main.go @@ -37,11 +37,11 @@ func main() { ) ctx.DrawStack.Draw(box) - ctx.Handler.GlobalBind(mouse.Drag, func(_ event.CallerID, me interface{}) int { - mouseEvent := me.(*mouse.Event) - box.SetPos(mouseEvent.X(), mouseEvent.Y()) - return 0 - }) + event.GlobalBind(ctx, + mouse.Drag, func(mouseEvent *mouse.Event) event.Response { + box.SetPos(mouseEvent.X(), mouseEvent.Y()) + return 0 + }) }, }) oak.Init("customcursor") diff --git a/examples/fallback-font/go.mod b/examples/fallback-font/go.mod index 6ae55a2d..bc069ee2 100644 --- a/examples/fallback-font/go.mod +++ b/examples/fallback-font/go.mod @@ -1,6 +1,6 @@ module github.com/oakmound/oak/examples/fallback-font -go 1.16 +go 1.18 require ( github.com/flopp/go-findfont v0.0.0-20201114153133-e7393a00c15b diff --git a/examples/flappy-bird/main.go b/examples/flappy-bird/main.go index ec363dfe..f8516b85 100644 --- a/examples/flappy-bird/main.go +++ b/examples/flappy-bird/main.go @@ -37,11 +37,11 @@ func main() { score = 0 // 1. Make Player - newFlappy(90, 140) + newFlappy(ctx, 90, 140) // 2. Make scrolling repeating pillars var pillarLoop func() pillarLoop = func() { - newPillarPair() + newPillarPair(ctx) ctx.DoAfter(time.Duration(pillarFreq.Poll()*float64(time.Second)), pillarLoop) } go ctx.DoAfter(time.Duration(pillarFreq.Poll()*float64(time.Second)), pillarLoop) @@ -49,12 +49,6 @@ func main() { // 3. Make Score t := render.DefaultFont().NewIntText(&score, 200, 30) render.Draw(t, 0) - }, Loop: func() bool { - if playerHitPillar { - playerHitPillar = false - return false - } - return true }, End: func() (string, *scene.Result) { return "bounce", nil }}) @@ -69,25 +63,24 @@ type Flappy struct { *entities.Interactive } -// Init satisfies the event.Entity interface -func (f *Flappy) Init() event.CallerID { - return event.NextID(f) +// CID returns the event.CallerID so that this can be bound to. +func (flap *Flappy) CID() event.CallerID { + return flap.CallerID } -func newFlappy(x, y float64) *Flappy { +func newFlappy(ctx *scene.Context, x, y float64) *Flappy { f := new(Flappy) - f.Interactive = entities.NewInteractive(x, y, 32, 32, render.NewColorBox(32, 32, color.RGBA{0, 255, 255, 255}), nil, f.Init(), 1) + f.Interactive = entities.NewInteractive(x, y, 32, 32, render.NewColorBox(32, 32, color.RGBA{0, 255, 255, 255}), nil, ctx.Register(f), 1) f.RSpace.Add(pillar, func(s1, s2 *collision.Space) { - playerHitPillar = true + ctx.Window.NextScene() }) f.RSpace.Space.Label = player collision.Add(f.RSpace.Space) f.R.SetLayer(1) render.Draw(f.R, 0) - - f.Bind(event.Enter, func(event.CallerID, interface{}) int { + event.Bind(ctx, event.Enter, f, func(f *Flappy, ev event.EnterPayload) event.Response { f.ShiftPos(f.Delta.X(), f.Delta.Y()) f.Add(f.Delta) if f.Delta.Y() > 10 { @@ -101,7 +94,7 @@ func newFlappy(x, y float64) *Flappy { <-f.RSpace.CallOnHits() if f.Y()+f.H > 480 { - playerHitPillar = true + ctx.Window.NextScene() } if f.Y() < 0 { f.SetY(0) @@ -109,11 +102,12 @@ func newFlappy(x, y float64) *Flappy { } return 0 }) - f.Bind(mouse.Press, func(event.CallerID, interface{}) int { + + event.Bind(ctx, mouse.Press, f, func(f *Flappy, me *mouse.Event) event.Response { f.Delta.ShiftY(-4) return 0 }) - f.Bind(key.Down+key.W, func(event.CallerID, interface{}) int { + event.Bind(ctx, key.Down(key.W), f, func(f *Flappy, k key.Event) event.Response { f.Delta.ShiftY(-4) return 0 }) @@ -126,17 +120,18 @@ type Pillar struct { hasScored bool } -// Init satisfies the event.Entity interface -func (p *Pillar) Init() event.CallerID { - return event.NextID(p) +// CID returns the event.CallerID so that this can be bound to. +func (p *Pillar) CID() event.CallerID { + return p.CallerID } -func newPillar(x, y, h float64, isAbove bool) { +func newPillar(ctx *scene.Context, x, y, h float64, isAbove bool) { p := new(Pillar) - p.Solid = entities.NewSolid(x, y, 64, h, render.NewColorBox(64, int(h), color.RGBA{0, 255, 0, 255}), nil, p.Init()) + p.Solid = entities.NewSolid(x, y, 64, h, render.NewColorBox(64, int(h), color.RGBA{0, 255, 0, 255}), nil, ctx.Register(p)) p.Space.Label = pillar collision.Add(p.Space) - p.Bind(event.Enter, enterPillar) + event.Bind(ctx, event.Enter, p, enterPillar) + p.R.SetLayer(1) render.Draw(p.R, 0) // Don't score one out of each two pillars @@ -145,7 +140,7 @@ func newPillar(x, y, h float64, isAbove bool) { } } -func newPillarPair() { +func newPillarPair(ctx *scene.Context) { pos := gapPosition.Poll() span := gapSpan.Poll() if (pos + span) > 470 { @@ -155,12 +150,11 @@ func newPillarPair() { pos = 370 span = 100 } - newPillar(641, 0, pos, true) - newPillar(641, pos+span, 480-(pos+span), false) + newPillar(ctx, 641, 0, pos, true) + newPillar(ctx, 641, pos+span, 480-(pos+span), false) } -func enterPillar(id event.CallerID, nothing interface{}) int { - p := event.GetEntity(id).(*Pillar) +func enterPillar(p *Pillar, ev event.EnterPayload) event.Response { p.ShiftX(-2) if p.X()+p.W < 0 { p.Destroy() diff --git a/examples/joystick-viz/main.go b/examples/joystick-viz/main.go index 6980aa92..6061b7e0 100644 --- a/examples/joystick-viz/main.go +++ b/examples/joystick-viz/main.go @@ -22,13 +22,16 @@ func main() { *latestInput = "Latest Input: Keyboard+Mouse" ctx.DrawStack.Draw(render.NewStrPtrText(latestInput, 10, 460), 4) ctx.DrawStack.Draw(render.NewText("Space to Vibrate", 10, 440), 4) - ctx.Handler.GlobalBind(event.InputChange, func(_ event.CallerID, payload interface{}) int { - input := payload.(oak.InputType) + + event.GlobalBind(ctx, oak.InputChange, func(input oak.InputType) event.Response { + switch input { case oak.InputJoystick: *latestInput = "Latest Input: Joystick" - case oak.InputKeyboardMouse: - *latestInput = "Latest Input: Keyboard+Mouse" + case oak.InputKeyboard: + *latestInput = "Latest Input: Keyboard" + case oak.InputMouse: + *latestInput = "Latest Input: Mouse" } return 0 }) diff --git a/examples/multi-window/main.go b/examples/multi-window/main.go index 4407c8cd..120e0840 100644 --- a/examples/multi-window/main.go +++ b/examples/multi-window/main.go @@ -26,10 +26,10 @@ func main() { ctx.DrawStack.Draw(cb, 0) dFPS := render.NewDrawFPS(0.1, nil, 600, 10) ctx.DrawStack.Draw(dFPS, 1) - ctx.Handler.GlobalBind(mouse.Press, mouse.Binding(func(_ event.CallerID, me *mouse.Event) int { + event.GlobalBind(ctx, mouse.Press, func(me *mouse.Event) event.Response { cb.SetPos(me.X(), me.Y()) return 0 - })) + }) }, }) go func() { @@ -55,10 +55,10 @@ func main() { ctx.DrawStack.Draw(cb, 0) dFPS := render.NewDrawFPS(0.1, nil, 600, 10) ctx.DrawStack.Draw(dFPS, 1) - ctx.Handler.GlobalBind(mouse.Press, mouse.Binding(func(_ event.CallerID, me *mouse.Event) int { + event.GlobalBind(ctx, mouse.Press, func(me *mouse.Event) event.Response { cb.SetPos(me.X(), me.Y()) return 0 - })) + }) }, }) c2.Init("scene2", func(c oak.Config) (oak.Config, error) { diff --git a/examples/particle-demo/main.go b/examples/particle-demo/main.go index ab91c43c..238f9d87 100644 --- a/examples/particle-demo/main.go +++ b/examples/particle-demo/main.go @@ -56,7 +56,7 @@ func parseShape(args []string) shape.Shape { func main() { debugstream.AddCommand(debugstream.Command{Name: "followMouse", Operation: func(args []string) string { - event.GlobalBind(event.Enter, func(event.CallerID, interface{}) int { + event.GlobalBind(event.DefaultBus, event.Enter, func(ev event.EnterPayload) event.Response { // It'd be interesting to attach to the mouse position src.SetPos(float64(mouse.LastEvent.X()), float64(mouse.LastEvent.Y())) return 0 @@ -284,6 +284,7 @@ func main() { endColor = color.RGBA{255, 255, 255, 255} endColorRand = color.RGBA{0, 0, 0, 0} shape := shape.Square + src = pt.NewColorGenerator( pt.Pos(x, y), pt.Duration(pt.Inf), diff --git a/examples/piano/main.go b/examples/piano/main.go index b9bd2c1f..a5ab0c02 100644 --- a/examples/piano/main.go +++ b/examples/piano/main.go @@ -60,7 +60,7 @@ func (kc keyColor) Color() color.RGBA { return color.RGBA{255, 255, 255, 255} } -func newKey(note synth.Pitch, c keyColor, k string) *entities.Solid { +func newKey(ctx *scene.Context, note synth.Pitch, c keyColor, k string) *entities.Solid { w := c.Width() h := c.Height() clr := c.Color() @@ -93,30 +93,29 @@ func newKey(note synth.Pitch, c keyColor, k string) *entities.Solid { s.Space.Label = labelWhiteKey } mouse.UpdateSpace(s.X(), s.Y(), s.W, s.H, s.Space) - s.Bind(key.Down+k, func(c event.CallerID, i interface{}) int { - if oak.IsDown(key.LeftShift) || oak.IsDown(key.RightShift) { + event.GlobalBind(ctx, key.Down(key.AllKeys[k]), func(_ key.Event) event.Response { + if oak.IsDown(key.LeftShiftStr) || oak.IsDown(key.RightShiftStr) { return 0 } - playPitch(note) + playPitch(ctx, note) sw.Set("down") return 0 }) - s.Bind(key.Up+k, func(c event.CallerID, i interface{}) int { - if oak.IsDown(key.LeftShift) || oak.IsDown(key.RightShift) { + event.GlobalBind(ctx, key.Up(key.AllKeys[k]), func(_ key.Event) event.Response { + if oak.IsDown(key.LeftShiftStr) || oak.IsDown(key.RightShiftStr) { return 0 } releasePitch(note) sw.Set("up") return 0 }) - s.Bind(mouse.PressOn, func(c event.CallerID, i interface{}) int { - playPitch(note) - me := i.(*mouse.Event) + event.Bind(ctx, mouse.PressOn, s, func(_ *entities.Solid, me *mouse.Event) event.Response { + playPitch(ctx, note) me.StopPropagation = true sw.Set("down") return 0 }) - s.Bind(mouse.Release, func(c event.CallerID, i interface{}) int { + event.Bind(ctx, mouse.Release, s, func(_ *entities.Solid, me *mouse.Event) event.Response { releasePitch(note) sw.Set("up") return 0 @@ -133,10 +132,10 @@ type keyDef struct { var keycharOrder = []string{ "Z", "S", "X", "D", "C", "V", "G", "B", "H", "N", "J", "M", - key.Comma, "L", key.Period, key.Semicolon, key.Slash, + key.CommaStr, "L", key.Period, key.SemicolonStr, key.SlashStr, "Q", "2", "W", "3", "E", "4", "R", "T", "6", "Y", "7", "U", - "I", "9", "O", "0", "P", key.HyphenMinus, key.LeftSquareBracket, + "I", "9", "O", "0", "P", key.HyphenMinusStr, key.LeftSquareBracketStr, } var playLock sync.Mutex @@ -144,7 +143,7 @@ var cancelFuncs = map[synth.Pitch]func(){} var synthKind func(...synth.Option) (pcm.Reader, error) -func playPitch(pitch synth.Pitch) { +func playPitch(ctx *scene.Context, pitch synth.Pitch) { playLock.Lock() defer playLock.Unlock() if cancel, ok := cancelFuncs[pitch]; ok { @@ -158,12 +157,12 @@ func playPitch(pitch synth.Pitch) { fmt.Println("new writer failed:", err) return } - monitor := newPCMMonitor(speaker) + monitor := newPCMMonitor(ctx, speaker) monitor.SetPos(0, 0) render.Draw(monitor) - ctx, cancel := context.WithCancel(context.Background()) + gctx, cancel := context.WithCancel(ctx) go func() { - err = pcm.Play(ctx, monitor, toPlay) + err = pcm.Play(gctx, monitor, toPlay) if err != nil { fmt.Println("play error:", err) } @@ -204,7 +203,7 @@ func main() { y := 200.0 i := 0 for i < len(keycharOrder) && x+kc.Width() < float64(ctx.Window.Width()-10) { - ky := newKey(pitch, kc, keycharOrder[i]) + ky := newKey(ctx, pitch, kc, keycharOrder[i]) ky.SetPos(x, y) layer := 0 if kc == keyColorBlack { @@ -223,26 +222,26 @@ func main() { i++ } // Consider: Adding volume control - event.GlobalBind(key.Down+key.S, func(c event.CallerID, i interface{}) int { - if oak.IsDown(key.LeftShift) || oak.IsDown(key.RightShift) { + event.GlobalBind(ctx, key.Down(key.S), func(_ key.Event) event.Response { + if oak.IsDown(key.LeftShiftStr) || oak.IsDown(key.RightShiftStr) { synthKind = src.SinPCM } return 0 }) - event.GlobalBind(key.Down+key.W, func(c event.CallerID, i interface{}) int { - if oak.IsDown(key.LeftShift) || oak.IsDown(key.RightShift) { + event.GlobalBind(ctx, key.Down(key.W), func(_ key.Event) event.Response { + if oak.IsDown(key.LeftShiftStr) || oak.IsDown(key.RightShiftStr) { synthKind = src.SawPCM } return 0 }) - event.GlobalBind(key.Down+key.T, func(c event.CallerID, i interface{}) int { - if oak.IsDown(key.LeftShift) || oak.IsDown(key.RightShift) { + event.GlobalBind(ctx, key.Down(key.T), func(_ key.Event) event.Response { + if oak.IsDown(key.LeftShiftStr) || oak.IsDown(key.RightShiftStr) { synthKind = src.TrianglePCM } return 0 }) - event.GlobalBind(key.Down+key.P, func(c event.CallerID, i interface{}) int { - if oak.IsDown(key.LeftShift) || oak.IsDown(key.RightShift) { + event.GlobalBind(ctx, key.Down(key.P), func(_ key.Event) event.Response { + if oak.IsDown(key.LeftShiftStr) || oak.IsDown(key.RightShiftStr) { synthKind = src.PulsePCM(2) } return 0 @@ -252,7 +251,7 @@ func main() { render.Draw(help1) render.Draw(help2) - event.GlobalBind(mouse.ScrollDown, func(c event.CallerID, i interface{}) int { + event.GlobalBind(ctx, mouse.ScrollDown, func(_ *mouse.Event) event.Response { mag := globalMagnification - 0.05 if mag < 1 { mag = 1 @@ -260,7 +259,7 @@ func main() { globalMagnification = mag return 0 }) - event.GlobalBind(mouse.ScrollUp, func(c event.CallerID, i interface{}) int { + event.GlobalBind(ctx, mouse.ScrollUp, func(_ *mouse.Event) event.Response { globalMagnification += 0.05 return 0 }) @@ -285,7 +284,7 @@ type pcmMonitor struct { var globalMagnification float64 = 1 -func newPCMMonitor(w pcm.Writer) *pcmMonitor { +func newPCMMonitor(ctx *scene.Context, w pcm.Writer) *pcmMonitor { fmt := w.PCMFormat() pm := &pcmMonitor{ Writer: w, @@ -293,13 +292,11 @@ func newPCMMonitor(w pcm.Writer) *pcmMonitor { LayeredPoint: render.NewLayeredPoint(0, 0, 0), written: make([]byte, fmt.BytesPerSecond()*pcm.WriterBufferLengthInSeconds), } - pm.Init() return pm } -func (pm *pcmMonitor) Init() event.CallerID { - pm.CID = event.NextID(pm) - return pm.CID +func (pm *pcmMonitor) CID() event.CallerID { + return pm.CallerID } func (pm *pcmMonitor) PCMFormat() pcm.Format { diff --git a/examples/platformer-tutorial/2-moving/moving.go b/examples/platformer-tutorial/2-moving/moving.go index 0ab7b1e2..07d27096 100644 --- a/examples/platformer-tutorial/2-moving/moving.go +++ b/examples/platformer-tutorial/2-moving/moving.go @@ -15,7 +15,7 @@ import ( ) func main() { - oak.AddScene("platformer", scene.Scene{Start: func(*scene.Context) { + oak.AddScene("platformer", scene.Scene{Start: func(ctx *scene.Context) { char := entities.NewMoving(100, 100, 16, 32, render.NewColorBox(16, 32, color.RGBA{255, 0, 0, 255}), @@ -24,15 +24,13 @@ func main() { render.Draw(char.R) char.Speed = physics.NewVector(3, 3) - - char.Bind(event.Enter, func(id event.CallerID, nothing interface{}) int { - char := event.GetEntity(id).(*entities.Moving) + event.Bind(ctx, event.Enter, char, func(c *entities.Moving, ev event.EnterPayload) event.Response { // Move left and right with A and D - if oak.IsDown(key.A) { - char.ShiftX(-char.Speed.X()) + if oak.IsDown(key.AStr) { + c.ShiftX(-c.Speed.X()) } - if oak.IsDown(key.D) { - char.ShiftX(char.Speed.X()) + if oak.IsDown(key.DStr) { + c.ShiftX(c.Speed.X()) } return 0 }) diff --git a/examples/platformer-tutorial/3-falling/falling.go b/examples/platformer-tutorial/3-falling/falling.go index 9f3c9b66..beabdd44 100644 --- a/examples/platformer-tutorial/3-falling/falling.go +++ b/examples/platformer-tutorial/3-falling/falling.go @@ -24,7 +24,7 @@ const ( ) func main() { - oak.AddScene("platformer", scene.Scene{Start: func(*scene.Context) { + oak.AddScene("platformer", scene.Scene{Start: func(ctx *scene.Context) { char := entities.NewMoving(100, 100, 16, 32, render.NewColorBox(16, 32, color.RGBA{255, 0, 0, 255}), @@ -36,23 +36,23 @@ func main() { fallSpeed := .1 - char.Bind(event.Enter, func(id event.CallerID, nothing interface{}) int { - char := event.GetEntity(id).(*entities.Moving) + event.Bind(ctx, event.Enter, char, func(c *entities.Moving, ev event.EnterPayload) event.Response { + // Move left and right with A and D - if oak.IsDown(key.A) { - char.ShiftX(-char.Speed.X()) + if oak.IsDown(key.AStr) { + c.ShiftX(-c.Speed.X()) } - if oak.IsDown(key.D) { - char.ShiftX(char.Speed.X()) + if oak.IsDown(key.DStr) { + c.ShiftX(c.Speed.X()) } - hit := char.HitLabel(Ground) + hit := c.HitLabel(Ground) if hit == nil { // Fall if there's no ground - char.Delta.ShiftY(fallSpeed) + c.Delta.ShiftY(fallSpeed) } else { - char.Delta.SetY(0) + c.Delta.SetY(0) } - char.ShiftY(char.Delta.Y()) + c.ShiftY(c.Delta.Y()) return 0 }) diff --git a/examples/platformer-tutorial/4-jumping/jumping.go b/examples/platformer-tutorial/4-jumping/jumping.go index 1f89019b..41c950a8 100644 --- a/examples/platformer-tutorial/4-jumping/jumping.go +++ b/examples/platformer-tutorial/4-jumping/jumping.go @@ -24,7 +24,7 @@ const ( ) func main() { - oak.AddScene("platformer", scene.Scene{Start: func(*scene.Context) { + oak.AddScene("platformer", scene.Scene{Start: func(ctx *scene.Context) { char := entities.NewMoving(100, 100, 16, 32, render.NewColorBox(16, 32, color.RGBA{255, 0, 0, 255}), @@ -36,27 +36,26 @@ func main() { fallSpeed := .1 - char.Bind(event.Enter, func(id event.CallerID, nothing interface{}) int { - char := event.GetEntity(id).(*entities.Moving) + event.Bind(ctx, event.Enter, char, func(c *entities.Moving, ev event.EnterPayload) event.Response { // Move left and right with A and D - if oak.IsDown(key.A) { - char.ShiftX(-char.Speed.X()) + if oak.IsDown(key.AStr) { + c.ShiftX(-c.Speed.X()) } - if oak.IsDown(key.D) { - char.ShiftX(char.Speed.X()) + if oak.IsDown(key.DStr) { + c.ShiftX(c.Speed.X()) } - hit := collision.HitLabel(char.Space, Ground) + hit := collision.HitLabel(c.Space, Ground) if hit == nil { // Fall if there's no ground - char.Delta.ShiftY(fallSpeed) + c.Delta.ShiftY(fallSpeed) } else { - char.Delta.SetY(0) + c.Delta.SetY(0) // Jump with Space - if oak.IsDown(key.Spacebar) { - char.Delta.ShiftY(-char.Speed.Y()) + if oak.IsDown(key.SpacebarStr) { + c.Delta.ShiftY(-c.Speed.Y()) } } - char.ShiftY(char.Delta.Y()) + c.ShiftY(c.Delta.Y()) return 0 }) diff --git a/examples/platformer-tutorial/5-correct-jumping/correct-jumping.go b/examples/platformer-tutorial/5-correct-jumping/correct-jumping.go index 60fc9ce1..4d2c381e 100644 --- a/examples/platformer-tutorial/5-correct-jumping/correct-jumping.go +++ b/examples/platformer-tutorial/5-correct-jumping/correct-jumping.go @@ -24,7 +24,7 @@ const ( ) func main() { - oak.AddScene("platformer", scene.Scene{Start: func(*scene.Context) { + oak.AddScene("platformer", scene.Scene{Start: func(ctx *scene.Context) { char := entities.NewMoving(100, 100, 16, 32, render.NewColorBox(16, 32, color.RGBA{255, 0, 0, 255}), @@ -36,13 +36,12 @@ func main() { fallSpeed := .1 - char.Bind(event.Enter, func(id event.CallerID, nothing interface{}) int { - char := event.GetEntity(id).(*entities.Moving) + event.Bind(ctx, event.Enter, char, func(c *entities.Moving, ev event.EnterPayload) event.Response { // Move left and right with A and D - if oak.IsDown(key.A) { + if oak.IsDown(key.AStr) { char.ShiftX(-char.Speed.X()) } - if oak.IsDown(key.D) { + if oak.IsDown(key.DStr) { char.ShiftX(char.Speed.X()) } oldY := char.Y() @@ -56,7 +55,7 @@ func main() { char.SetY(hit.Y() - char.H) char.Delta.SetY(0) // Jump with Space - if oak.IsDown(key.Spacebar) { + if oak.IsDown(key.SpacebarStr) { char.Delta.ShiftY(-char.Speed.Y()) } } else { diff --git a/examples/platformer-tutorial/6-complete/complete.go b/examples/platformer-tutorial/6-complete/complete.go index 7b481368..12a5b5d7 100644 --- a/examples/platformer-tutorial/6-complete/complete.go +++ b/examples/platformer-tutorial/6-complete/complete.go @@ -26,7 +26,7 @@ const ( ) func main() { - oak.AddScene("platformer", scene.Scene{Start: func(*scene.Context) { + oak.AddScene("platformer", scene.Scene{Start: func(ctx *scene.Context) { char := entities.NewMoving(100, 100, 16, 32, render.NewColorBox(16, 32, color.RGBA{255, 0, 0, 255}), @@ -38,13 +38,12 @@ func main() { fallSpeed := .2 - char.Bind(event.Enter, func(id event.CallerID, nothing interface{}) int { - char := event.GetEntity(id).(*entities.Moving) + event.Bind(ctx, event.Enter, char, func(c *entities.Moving, ev event.EnterPayload) event.Response { // Move left and right with A and D - if oak.IsDown(key.A) { + if oak.IsDown(key.AStr) { char.Delta.SetX(-char.Speed.X()) - } else if oak.IsDown(key.D) { + } else if oak.IsDown(key.DStr) { char.Delta.SetX(char.Speed.X()) } else { char.Delta.SetX(0) @@ -64,7 +63,7 @@ func main() { // Stop falling char.Delta.SetY(0) // Jump with Space when on the ground - if oak.IsDown(key.Spacebar) { + if oak.IsDown(key.SpacebarStr) { char.Delta.ShiftY(-char.Speed.Y()) } aboveGround = true diff --git a/examples/pong/main.go b/examples/pong/main.go index 3dba7009..bcec120f 100644 --- a/examples/pong/main.go +++ b/examples/pong/main.go @@ -76,9 +76,9 @@ func newPaddle(ctx *scene.Context, x, y float64, player int) { render.Draw(p.R, 1) p.Space.UpdateLabel(hitPaddle) if player == 1 { - event.Bind(ctx, event.Enter, p, enterPaddle(key.UpArrow, key.DownArrow)) + event.Bind(ctx, event.Enter, p, enterPaddle(key.UpArrowStr, key.DownArrowStr)) } else { - event.Bind(ctx, event.Enter, p, enterPaddle(key.W, key.S)) + event.Bind(ctx, event.Enter, p, enterPaddle(key.WStr, key.SStr)) } } diff --git a/examples/radar-demo/main.go b/examples/radar-demo/main.go index 201a961f..981ceea5 100644 --- a/examples/radar-demo/main.go +++ b/examples/radar-demo/main.go @@ -26,6 +26,8 @@ const ( // This example demonstrates making a basic radar or other custom renderable // type. The radar here acts as a UI element, staying on screen, and follows // around a player character. +//TODO: Remove and or link to grove radar as it is cleaner +// https://github.com/oakmound/grove/tree/master/components/radar func main() { oak.AddScene("demo", scene.Scene{Start: func(ctx *scene.Context) { @@ -36,8 +38,7 @@ func main() { oak.SetViewportBounds(intgeom.NewRect2(0, 0, xLimit, yLimit)) moveRect := floatgeom.NewRect2(0, 0, xLimit, yLimit) - - char.Bind(event.Enter, func(event.CallerID, interface{}) int { + event.Bind(ctx, event.Enter, char, func(char *entities.Moving, ev event.EnterPayload) event.Response { move.WASD(char) move.Limit(char, moveRect) move.CenterScreenOn(char) @@ -55,8 +56,8 @@ func main() { for i := 0; i < 5; i++ { x, y := rand.Float64()*400, rand.Float64()*400 - enemy := newEnemyOnRadar(x, y) - enemy.CID.Bind(event.Enter, standardEnemyMove) + enemy := newEnemyOnRadar(ctx, x, y) + event.Bind(ctx, event.Enter, enemy, standardEnemyMove) render.Draw(enemy.R, 1, 1) r.AddPoint(radar.Point{X: enemy.Xp(), Y: enemy.Yp()}, color.RGBA{255, 255, 0, 255}) } @@ -87,19 +88,15 @@ type enemyOnRadar struct { *entities.Moving } -func (eor *enemyOnRadar) Init() event.CallerID { - return event.NextID(eor) -} -func newEnemyOnRadar(x, y float64) *enemyOnRadar { +func newEnemyOnRadar(ctx *scene.Context, x, y float64) *enemyOnRadar { eor := new(enemyOnRadar) - eor.Moving = entities.NewMoving(50, y, 50, 50, render.NewColorBox(25, 25, color.RGBA{0, 200, 0, 0}), nil, eor.Init(), 0) + eor.Moving = entities.NewMoving(50, y, 50, 50, render.NewColorBox(25, 25, color.RGBA{0, 200, 0, 0}), nil, ctx.Register(eor), 0) eor.Speed = physics.NewVector(-1*(rand.Float64()*2+1), rand.Float64()*2-1) eor.Delta = eor.Speed return eor } -func standardEnemyMove(id event.CallerID, nothing interface{}) int { - eor := event.GetEntity(id).(*enemyOnRadar) +func standardEnemyMove(eor *enemyOnRadar, ev event.EnterPayload) event.Response { if eor.X() < 0 { eor.Delta.SetPos(math.Abs(eor.Speed.X()), (eor.Speed.Y())) } diff --git a/examples/svg/go.mod b/examples/svg/go.mod index c85ce234..813b2a57 100644 --- a/examples/svg/go.mod +++ b/examples/svg/go.mod @@ -1,6 +1,6 @@ module github.com/oakmound/oak/examples/svg -go 1.16 +go 1.18 require ( github.com/oakmound/oak/v3 v3.0.0-alpha.1 From 710c7705ed5eec2b0ffd44c26b06e2d5c1672634 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 2 Apr 2022 10:29:33 -0500 Subject: [PATCH 030/146] oak: drop background smear todo, correct key usage docs --- key/keys.go | 4 ++-- lifecycle.go | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/key/keys.go b/key/keys.go index 1cb73fc9..78c58a63 100644 --- a/key/keys.go +++ b/key/keys.go @@ -4,8 +4,8 @@ package key // This list is not used internally by oak, but was generated from // the expected output from x/mobile/key. // -// These strings are sent as payloads to Key.Down and Key.Up events, -// and through "KeyDown"+$a, "KeyUp"+$a for any $a in the const. +// These strings are sent as payloads to AnyDown and AnyUp events, +// and through Down(k) and Up(k). const ( Unknown = "Unknown" diff --git a/lifecycle.go b/lifecycle.go index 795a0860..49511503 100644 --- a/lifecycle.go +++ b/lifecycle.go @@ -77,9 +77,7 @@ func (w *Window) SetAspectRatio(xToY float64) { // ChangeWindow sets the width and height of the game window. Although exported, // calling it without a size event will probably not act as expected. func (w *Window) ChangeWindow(width, height int) error { - // Draw a black frame to cover up smears - // Todo: could restrict the black to -just- the area not covered by the - // scaled screen buffer + // Draw the background to cover up smears buff, err := w.screenControl.NewImage(image.Point{width, height}) if err == nil { draw.Draw(buff.RGBA(), buff.Bounds(), w.bkgFn(), zeroPoint, draw.Src) From 3ea313cbfc724f07621391648633a70e6676ce30 Mon Sep 17 00:00:00 2001 From: implausiblyfun Date: Sat, 2 Apr 2022 11:56:27 -0400 Subject: [PATCH 031/146] entities: Fixes new solids that dont have a cid passed in sharing collision --- entities/solid.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/entities/solid.go b/entities/solid.go index 934ce90b..357f374c 100644 --- a/entities/solid.go +++ b/entities/solid.go @@ -31,7 +31,7 @@ func NewSolid(x, y, w, h float64, r render.Renderable, tree *collision.Tree, cid tree = collision.DefaultTree } s.Tree = tree - s.Space = collision.NewSpace(x, y, w, h, cid) + s.Space = collision.NewSpace(x, y, w, h, s.CallerID) s.Tree.Add(s.Space) return s } From ac0771a957a5e74ad98e22553db6b35af699d9e2 Mon Sep 17 00:00:00 2001 From: implausiblyfun Date: Sat, 2 Apr 2022 12:02:35 -0400 Subject: [PATCH 032/146] examples: Update more examples to the new event paradigm --- examples/rooms/main.go | 2 +- examples/screenopts/main.go | 7 +- examples/sprite-demo/main.go | 26 +++---- examples/svg/go.mod | 20 +++++ examples/svg/go.sum | 4 - examples/text-demo-1/main.go | 30 ++++---- examples/text-demo-2/main.go | 40 +++++----- examples/titlescreen-demo/main.go | 77 ++++++++++--------- .../1-start/start.go | 14 ++-- .../2-shooting/shooting.go | 28 +++---- .../3-enemies/enemies.go | 44 ++++------- .../4-sprites/sprites.go | 37 ++++----- examples/zooming/main.go | 12 +-- 13 files changed, 165 insertions(+), 176 deletions(-) diff --git a/examples/rooms/main.go b/examples/rooms/main.go index 91e02fa5..b9d3ad74 100644 --- a/examples/rooms/main.go +++ b/examples/rooms/main.go @@ -49,7 +49,7 @@ func main() { var transitioning bool var totalTransitionDelta intgeom.Point2 var transitionDelta intgeom.Point2 - char.Bind(event.Enter, func(event.CallerID, interface{}) int { + event.Bind(ctx, event.Enter, char, func(c *entities.Moving, ev event.EnterPayload) event.Response { dir, ok := isOffScreen(ctx, char) if !transitioning && ok { transitioning = true diff --git a/examples/screenopts/main.go b/examples/screenopts/main.go index a0398b03..d0dd3bde 100644 --- a/examples/screenopts/main.go +++ b/examples/screenopts/main.go @@ -16,14 +16,13 @@ const ( ) func main() { - oak.AddScene("demo", scene.Scene{Start: func(*scene.Context) { + oak.AddScene("demo", scene.Scene{Start: func(ctx *scene.Context) { txt := render.NewText("Press F to toggle fullscreen. Press B to toggle borderless.", 50, 50) render.Draw(txt) borderless := borderlessAtStart fullscreen := fullscreenAtStart - - event.GlobalBind(key.Down+key.F, func(event.CallerID, interface{}) int { + event.GlobalBind(ctx, key.Down(key.W), func(k key.Event) event.Response { fullscreen = !fullscreen err := oak.SetFullScreen(fullscreen) if err != nil { @@ -32,7 +31,7 @@ func main() { } return 0 }) - event.GlobalBind(key.Down+key.B, func(event.CallerID, interface{}) int { + event.GlobalBind(ctx, key.Down(key.B), func(k key.Event) event.Response { borderless = !borderless err := oak.SetBorderless(borderless) if err != nil { diff --git a/examples/sprite-demo/main.go b/examples/sprite-demo/main.go index 20d7eb89..ac82350c 100644 --- a/examples/sprite-demo/main.go +++ b/examples/sprite-demo/main.go @@ -27,7 +27,7 @@ var cache = [360]*image.RGBA{} func main() { oak.AddScene( "demo", - scene.Scene{Start: func(*scene.Context) { + scene.Scene{Start: func(ctx *scene.Context) { render.Draw(render.NewDrawFPS(0.03, nil, 10, 10)) render.Draw(render.NewLogicFPS(0.03, nil, 10, 20)) @@ -35,11 +35,11 @@ func main() { layerTxt := render.DefaultFont().NewIntText(&layer, 30, 20) layerTxt.SetLayer(100000000) render.Draw(layerTxt, 0) - NewGopher(layer) + NewGopher(ctx, layer) layer++ - event.GlobalBind(event.Enter, func(event.CallerID, interface{}) int { + event.GlobalBind(ctx, event.Enter, func(ev event.EnterPayload) event.Response { if oak.IsDown("K") { - NewGopher(layer) + NewGopher(ctx, layer) layer++ } return 0 @@ -76,31 +76,23 @@ type Gopher struct { rotation int } -// Init sets up a gophers CID -func (g *Gopher) Init() event.CallerID { - return event.NextID(g) -} - // NewGopher creates a gopher sprite to bounce around -func NewGopher(layer int) { - goph := Gopher{} +func NewGopher(ctx *scene.Context, layer int) { + goph := new(Gopher) goph.Doodad = entities.NewDoodad( rand.Float64()*576, rand.Float64()*416, render.NewSwitch("goph", map[string]render.Modifiable{"goph": render.EmptyRenderable()}), - //render.NewReverting(render.LoadSprite(filepath.Join("raw", "gopher11.png"))), - goph.Init()) + ctx.Register(goph)) goph.R.SetLayer(layer) - goph.Bind("EnterFrame", gophEnter) + event.Bind(ctx, event.Enter, goph, gophEnter) goph.deltaX = 4 * float64(rand.Intn(2)*2-1) goph.deltaY = 4 * float64(rand.Intn(2)*2-1) goph.rotation = rand.Intn(360) render.Draw(goph.R, 0) } -func gophEnter(cid event.CallerID, nothing interface{}) int { - goph := event.GetEntity(cid).(*Gopher) - +func gophEnter(goph *Gopher, ev event.EnterPayload) event.Response { // Compare against this version of rotation // (also swap the comments on lines in goph.Doodad's renderable) //goph.R.(*render.Reverting).RevertAndModify(1, render.Rotate(goph.rotation)) diff --git a/examples/svg/go.mod b/examples/svg/go.mod index 813b2a57..0f091b98 100644 --- a/examples/svg/go.mod +++ b/examples/svg/go.mod @@ -6,7 +6,27 @@ require ( github.com/oakmound/oak/v3 v3.0.0-alpha.1 github.com/srwiley/oksvg v0.0.0-20210320200257-875f767ac39a github.com/srwiley/rasterx v0.0.0-20200120212402-85cb7272f5e9 +) + +require ( + dmitri.shuralyov.com/gpu/mtl v0.0.0-20201218220906-28db891af037 // indirect + github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc // indirect + github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 // indirect + github.com/disintegration/gift v1.2.0 // indirect + github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb // indirect + github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect + github.com/hajimehoshi/go-mp3 v0.3.1 // indirect + github.com/oakmound/alsa v0.0.2 // indirect + github.com/oakmound/libudev v0.2.1 // indirect + github.com/oakmound/w32 v2.1.0+incompatible // indirect + github.com/oov/directsound-go v0.0.0-20141101201356-e53e59c700bf // indirect + golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56 // indirect golang.org/x/image v0.0.0-20210504121937-7319ad40d33e // indirect + golang.org/x/mobile v0.0.0-20220112015953-858099ff7816 // indirect + golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d // indirect + golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect + golang.org/x/sys v0.0.0-20220111092808-5a964db01320 // indirect + golang.org/x/text v0.3.6 // indirect ) replace github.com/oakmound/oak/v3 => ../.. diff --git a/examples/svg/go.sum b/examples/svg/go.sum index e94799e5..8ec8315c 100644 --- a/examples/svg/go.sum +++ b/examples/svg/go.sum @@ -7,8 +7,6 @@ github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 h1:O/r2Sj+8QcMF github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046/go.mod h1:uw9h2sd4WWHOPdJ13MQpwK5qYWKYDumDqxWWIknEQ+k= github.com/disintegration/gift v1.2.0 h1:VMQeei2F+ZtsHjMgP6Sdt1kFjRhs2lGz8ljEOPeIR50= github.com/disintegration/gift v1.2.0/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI= -github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d/go.mod h1:CHkHWWZ4kbGY6jEy1+qlitDaCtRgNvCOQdakj/1Yl/Q= -github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1/go.mod h1:frG94byMNy+1CgGrQ25dZ+17tf98EN+OYBQL4Zh612M= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb h1:T6gaWBvRzJjuOrdCtg8fXXjKai2xSDqWTcKFUPuw8Tw= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= @@ -17,7 +15,6 @@ github.com/hajimehoshi/go-mp3 v0.3.1 h1:pn/SKU1+/rfK8KaZXdGEC2G/KCB2aLRjbTCrwKco github.com/hajimehoshi/go-mp3 v0.3.1/go.mod h1:qMJj/CSDxx6CGHiZeCgbiq2DSUkbK0UbtXShQcnfyMM= github.com/hajimehoshi/oto v0.6.1/go.mod h1:0QXGEkbuJRohbJaxr7ZQSxnju7hEhseiPx2hrh6raOI= github.com/jfreymuth/pulse v0.1.0 h1:KN38/9hoF9PJvP5DpEVhMRKNuwnJUonc8c9ARorRXUA= -github.com/jfreymuth/pulse v0.1.0/go.mod h1:cpYspI6YljhkUf1WLXLLDmeaaPFc3CnGLjDZf9dZ4no= github.com/oakmound/alsa v0.0.2 h1:JbOUckkJqVvhABth7qy2JgAjqsWuBPggyoYOk1L6eK0= github.com/oakmound/alsa v0.0.2/go.mod h1:wx+ehwqFnNL7foTwxxu2bKQlaUmD2oXd4ka1UBSgWAo= github.com/oakmound/libudev v0.2.1 h1:gaXuw7Pbt3RSRxbUakAjl0dSW6Wo3TZWpwS5aMq8+EA= @@ -39,7 +36,6 @@ golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56 h1:estk1glOnSVeJ9tdEZZc5mAMD golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20210504121937-7319ad40d33e h1:PzJMNfFQx+QO9hrC1GwZ4BoPGeNGhfeQEgcQFArEjPk= golang.org/x/image v0.0.0-20210504121937-7319ad40d33e/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= diff --git a/examples/text-demo-1/main.go b/examples/text-demo-1/main.go index 0b6c7a30..5aa60be5 100644 --- a/examples/text-demo-1/main.go +++ b/examples/text-demo-1/main.go @@ -64,21 +64,23 @@ func main() { render.Draw(font2.NewText("r", 160, 260), 0) render.Draw(font2.NewText("g", 280, 260), 0) render.Draw(font2.NewText("b", 400, 260), 0) + + go func() { + for { + r = limit.EnforceRange(r + diff.Poll()) + g = limit.EnforceRange(g + diff.Poll()) + b = limit.EnforceRange(b + diff.Poll()) + font.Drawer.Src = image.NewUniform( + color.RGBA{ + uint8(r), + uint8(g), + uint8(b), + 255, + }, + ) + } + }() }, - Loop: func() bool { - r = limit.EnforceRange(r + diff.Poll()) - g = limit.EnforceRange(g + diff.Poll()) - b = limit.EnforceRange(b + diff.Poll()) - font.Drawer.Src = image.NewUniform( - color.RGBA{ - uint8(r), - uint8(g), - uint8(b), - 255, - }, - ) - return true - }, }) oak.SetFS(assets) oak.Init("demo") diff --git a/examples/text-demo-2/main.go b/examples/text-demo-2/main.go index 235f5c10..afe8cf38 100644 --- a/examples/text-demo-2/main.go +++ b/examples/text-demo-2/main.go @@ -60,26 +60,28 @@ func main() { strs = append(strs, font.NewText(str, 0, y)) render.Draw(strs[len(strs)-1], 0) } - }, - Loop: func() bool { - r = limit.EnforceRange(r + diff.Poll()) - g = limit.EnforceRange(g + diff.Poll()) - b = limit.EnforceRange(b + diff.Poll()) - // This should be a function in oak to just set color source - // (or texture source) - font.Drawer.Src = image.NewUniform( - color.RGBA{ - uint8(r), - uint8(g), - uint8(b), - 255, - }, - ) - for _, st := range strs { - st.SetString(randomStr(strlen)) + + go func() { + for { + r = limit.EnforceRange(r + diff.Poll()) + g = limit.EnforceRange(g + diff.Poll()) + b = limit.EnforceRange(b + diff.Poll()) + // This should be a function in oak to just set color source + // (or texture source) + font.Drawer.Src = image.NewUniform( + color.RGBA{ + uint8(r), + uint8(g), + uint8(b), + 255, + }, + ) + for _, st := range strs { + st.SetString(randomStr(strlen)) + } } - return true - }, + }() + }, }) render.SetDrawStack( render.NewDynamicHeap(), diff --git a/examples/titlescreen-demo/main.go b/examples/titlescreen-demo/main.go index 9cda7718..7a428558 100644 --- a/examples/titlescreen-demo/main.go +++ b/examples/titlescreen-demo/main.go @@ -6,6 +6,7 @@ import ( oak "github.com/oakmound/oak/v3" "github.com/oakmound/oak/v3/entities" + "github.com/oakmound/oak/v3/event" "github.com/oakmound/oak/v3/key" "github.com/oakmound/oak/v3/render" "github.com/oakmound/oak/v3/scene" @@ -53,16 +54,17 @@ func main() { //this time we only center the X axis, otherwise it would overlap titleText center(ctx, instructionText, X) render.Draw(instructionText) - }, Loop: func() bool { - //if the enter key is pressed, go to the next scene - if oak.IsDown(key.Enter) { - return false - } - //exit the program if the q key is pressed - if oak.IsDown(key.Q) { + event.GlobalBind(ctx, key.Down(key.Enter), func(key.Event) event.Response { + // Go to the next scene if enter is pressed. Next scene is the game + ctx.Window.NextScene() + return 0 + }) + event.GlobalBind(ctx, key.Down(key.Q), func(key.Event) event.Response { + // exit the game if q is pressed os.Exit(0) - } - return true + return 0 + }) + }, End: func() (string, *scene.Result) { return "game", nil //set the next scene to "game" }}) @@ -71,7 +73,7 @@ func main() { var player *entities.Moving //define the "game" (it's just a square that can be moved with WASD) - oak.AddScene("game", scene.Scene{Start: func(*scene.Context) { + oak.AddScene("game", scene.Scene{Start: func(ctx *scene.Context) { //create the player, a blue 32x32 square at 100,100 player = entities.NewMoving(100, 100, 32, 32, render.NewColorBox(32, 32, color.RGBA{0, 0, 255, 255}), @@ -84,33 +86,34 @@ func main() { //we draw the text on layer 1 (instead of the default layer 0) //because we want it to show up above the player render.Draw(controlsText, 1) - }, Loop: func() bool { - //if escape is pressed, go to the next scene (titlescreen) - if oak.IsDown(key.Escape) { - return false - } - //controls - if oak.IsDown(key.S) { - //if S is pressed, set the player's vertical speed to 2 (positive == down) - player.Delta.SetY(2) - } else if oak.IsDown(key.W) { - player.Delta.SetY(-2) - } else { - //if the now buttons are pressed for vertical movement, don't move verticaly - player.Delta.SetY(0) - } - - //do the same thing as before, but horizontaly - if oak.IsDown(key.D) { - player.Delta.SetX(2) - } else if oak.IsDown(key.A) { - player.Delta.SetX(-2) - } else { - player.Delta.SetX(0) - } - //apply the player's speed to their position - player.ShiftPos(player.Delta.X(), player.Delta.Y()) - return true + event.GlobalBind(ctx, key.Down(key.Escape), func(key.Event) event.Response { + // Go to the next scene if escape is pressed. Next scene is titlescreen + ctx.Window.NextScene() + return 0 + }) + event.GlobalBind(ctx, event.Enter, func(event.EnterPayload) event.Response { + if oak.IsDown(key.SStr) { + //if S is pressed, set the player's vertical speed to 2 (positive == down) + player.Delta.SetY(2) + } else if oak.IsDown(key.WStr) { + player.Delta.SetY(-2) + } else { + //if the now buttons are pressed for vertical movement, don't move verticaly + player.Delta.SetY(0) + } + + //do the same thing as before, but horizontaly + if oak.IsDown(key.DStr) { + player.Delta.SetX(2) + } else if oak.IsDown(key.AStr) { + player.Delta.SetX(-2) + } else { + player.Delta.SetX(0) + } + //apply the player's speed to their position + player.ShiftPos(player.Delta.X(), player.Delta.Y()) + return 0 + }) }, End: func() (string, *scene.Result) { return "titlescreen", nil //set the next scene to be titlescreen }}) diff --git a/examples/top-down-shooter-tutorial/1-start/start.go b/examples/top-down-shooter-tutorial/1-start/start.go index 46a7a6ec..c2b8834c 100644 --- a/examples/top-down-shooter-tutorial/1-start/start.go +++ b/examples/top-down-shooter-tutorial/1-start/start.go @@ -24,7 +24,7 @@ var ( ) func main() { - oak.AddScene("tds", scene.Scene{Start: func(*scene.Context) { + oak.AddScene("tds", scene.Scene{Start: func(ctx *scene.Context) { playerAlive = true char := entities.NewMoving(100, 100, 32, 32, render.NewColorBox(32, 32, color.RGBA{0, 255, 0, 255}), @@ -33,19 +33,19 @@ func main() { char.Speed = physics.NewVector(5, 5) render.Draw(char.R) - char.Bind(event.Enter, func(id event.CallerID, _ interface{}) int { - char := event.GetEntity(id).(*entities.Moving) + event.Bind(ctx, event.Enter, char, func(c *entities.Moving, ev event.EnterPayload) event.Response { + char.Delta.Zero() - if oak.IsDown(key.W) { + if oak.IsDown(key.WStr) { char.Delta.ShiftY(-char.Speed.Y()) } - if oak.IsDown(key.A) { + if oak.IsDown(key.AStr) { char.Delta.ShiftX(-char.Speed.X()) } - if oak.IsDown(key.S) { + if oak.IsDown(key.SStr) { char.Delta.ShiftY(char.Speed.Y()) } - if oak.IsDown(key.D) { + if oak.IsDown(key.DStr) { char.Delta.ShiftX(char.Speed.X()) } char.ShiftPos(char.Delta.X(), char.Delta.Y()) diff --git a/examples/top-down-shooter-tutorial/2-shooting/shooting.go b/examples/top-down-shooter-tutorial/2-shooting/shooting.go index 9c9d484f..ce9539d4 100644 --- a/examples/top-down-shooter-tutorial/2-shooting/shooting.go +++ b/examples/top-down-shooter-tutorial/2-shooting/shooting.go @@ -21,13 +21,9 @@ const ( Player collision.Label = 2 ) -var ( - playerAlive = true -) - func main() { oak.AddScene("tds", scene.Scene{Start: func(ctx *scene.Context) { - playerAlive = true + char := entities.NewMoving(100, 100, 32, 32, render.NewColorBox(32, 32, color.RGBA{0, 255, 0, 255}), nil, 0, 0) @@ -35,42 +31,38 @@ func main() { char.Speed = physics.NewVector(5, 5) render.Draw(char.R) - char.Bind(event.Enter, func(id event.CallerID, _ interface{}) int { - char := event.GetEntity(id).(*entities.Moving) + event.Bind(ctx, event.Enter, char, func(char *entities.Moving, ev event.EnterPayload) event.Response { + char.Delta.Zero() - if oak.IsDown(key.W) { + if oak.IsDown(key.WStr) { char.Delta.ShiftY(-char.Speed.Y()) } - if oak.IsDown(key.A) { + if oak.IsDown(key.AStr) { char.Delta.ShiftX(-char.Speed.X()) } - if oak.IsDown(key.S) { + if oak.IsDown(key.SStr) { char.Delta.ShiftY(char.Speed.Y()) } - if oak.IsDown(key.D) { + if oak.IsDown(key.DStr) { char.Delta.ShiftX(char.Speed.X()) } char.ShiftPos(char.Delta.X(), char.Delta.Y()) hit := char.HitLabel(Enemy) if hit != nil { - playerAlive = false + ctx.Window.NextScene() } return 0 }) - - char.Bind(mouse.Press, func(id event.CallerID, me interface{}) int { - char := event.GetEntity(id).(*entities.Moving) - mevent := me.(*mouse.Event) + event.Bind(ctx, mouse.Press, char, func(char *entities.Moving, mevent *mouse.Event) event.Response { ctx.DrawForTime( render.NewLine(char.X()+char.W/2, char.Y()+char.H/2, mevent.X(), mevent.Y(), color.RGBA{0, 128, 0, 128}), time.Millisecond*50, 1) + return 0 }) - }, Loop: func() bool { - return playerAlive }}) oak.Init("tds") } diff --git a/examples/top-down-shooter-tutorial/3-enemies/enemies.go b/examples/top-down-shooter-tutorial/3-enemies/enemies.go index 723c1cb2..85580e0e 100644 --- a/examples/top-down-shooter-tutorial/3-enemies/enemies.go +++ b/examples/top-down-shooter-tutorial/3-enemies/enemies.go @@ -25,18 +25,18 @@ const ( ) var ( - playerAlive = true // Vectors are backed by pointers, // so despite this not being a pointer, // this does update according to the player's // position so long as we don't reset // the player's position vector playerPos physics.Vector + + destroy = event.RegisterEvent[event.NoPayload]() ) func main() { oak.AddScene("tds", scene.Scene{Start: func(ctx *scene.Context) { - playerAlive = true char := entities.NewMoving(100, 100, 32, 32, render.NewColorBox(32, 32, color.RGBA{0, 255, 0, 255}), nil, 0, 0) @@ -45,39 +45,36 @@ func main() { playerPos = char.Point.Vector render.Draw(char.R) - char.Bind(event.Enter, func(id event.CallerID, _ interface{}) int { - char := event.GetEntity(id).(*entities.Moving) + event.Bind(ctx, event.Enter, char, func(char *entities.Moving, ev event.EnterPayload) event.Response { + char.Delta.Zero() - if oak.IsDown(key.W) { + if oak.IsDown(key.WStr) { char.Delta.ShiftY(-char.Speed.Y()) } - if oak.IsDown(key.A) { + if oak.IsDown(key.AStr) { char.Delta.ShiftX(-char.Speed.X()) } - if oak.IsDown(key.S) { + if oak.IsDown(key.SStr) { char.Delta.ShiftY(char.Speed.Y()) } - if oak.IsDown(key.D) { + if oak.IsDown(key.DStr) { char.Delta.ShiftX(char.Speed.X()) } char.ShiftPos(char.Delta.X(), char.Delta.Y()) hit := char.HitLabel(Enemy) if hit != nil { - playerAlive = false + ctx.Window.NextScene() } - return 0 }) - char.Bind(mouse.Press, func(id event.CallerID, me interface{}) int { - char := event.GetEntity(id).(*entities.Moving) - mevent := me.(*mouse.Event) + event.Bind(ctx, mouse.Press, char, func(char *entities.Moving, mevent *mouse.Event) event.Response { x := char.X() + char.W/2 y := char.Y() + char.H/2 ray.DefaultCaster.CastDistance = floatgeom.Point2{x, y}.Sub(floatgeom.Point2{mevent.X(), mevent.Y()}).Magnitude() hits := ray.CastTo(floatgeom.Point2{x, y}, floatgeom.Point2{mevent.X(), mevent.Y()}) for _, hit := range hits { - hit.Zone.CID.Trigger("Destroy", nil) + event.TriggerForCallerOn(ctx, hit.Zone.CID, destroy, event.NoPayload{}) } ctx.DrawForTime( render.NewLine(x, y, mevent.X(), mevent.Y(), color.RGBA{0, 128, 0, 128}), @@ -86,16 +83,13 @@ func main() { return 0 }) - event.GlobalBind(event.Enter, func(_ event.CallerID, frames interface{}) int { - enterPayload := frames.(event.EnterPayload) + event.GlobalBind(ctx, event.Enter, func(enterPayload event.EnterPayload) event.Response { if enterPayload.FramesElapsed%EnemyRefresh == 0 { go NewEnemy(ctx) } return 0 }) - }, Loop: func() bool { - return playerAlive }}) oak.Init("tds") } @@ -117,21 +111,17 @@ func NewEnemy(ctx *scene.Context) { render.Draw(enemy.R) enemy.UpdateLabel(Enemy) - - enemy.Bind(event.Enter, func(id event.CallerID, _ interface{}) int { - enemy := event.GetEntity(id).(*entities.Solid) + event.Bind(ctx, event.Enter, enemy, func(e *entities.Solid, ev event.EnterPayload) event.Response { // move towards the player - x, y := enemy.GetPos() + x, y := e.GetPos() pt := floatgeom.Point2{x, y} pt2 := floatgeom.Point2{playerPos.X(), playerPos.Y()} delta := pt2.Sub(pt).Normalize().MulConst(EnemySpeed) - enemy.ShiftPos(delta.X(), delta.Y()) + e.ShiftPos(delta.X(), delta.Y()) return 0 }) - - enemy.Bind("Destroy", func(id event.CallerID, _ interface{}) int { - enemy := event.GetEntity(id).(*entities.Solid) - enemy.Destroy() + event.Bind(ctx, destroy, enemy, func(e *entities.Solid, nothing event.NoPayload) event.Response { + e.Destroy() return 0 }) } diff --git a/examples/top-down-shooter-tutorial/4-sprites/sprites.go b/examples/top-down-shooter-tutorial/4-sprites/sprites.go index 0fd5b783..f0f41ff5 100644 --- a/examples/top-down-shooter-tutorial/4-sprites/sprites.go +++ b/examples/top-down-shooter-tutorial/4-sprites/sprites.go @@ -29,7 +29,6 @@ const ( ) var ( - playerAlive = true // Vectors are backed by pointers, // so despite this not being a pointer, // this does update according to the player's @@ -37,13 +36,15 @@ var ( // the player's position vector playerPos physics.Vector + destroy = event.RegisterEvent[event.NoPayload]() + sheet [][]*render.Sprite ) func main() { oak.AddScene("tds", scene.Scene{Start: func(ctx *scene.Context) { // Initialization - playerAlive = true + sprites, err := render.GetSheet("sheet.png") dlog.ErrorCheck(err) sheet = sprites.ToSprites() @@ -67,25 +68,24 @@ func main() { playerPos = char.Point.Vector render.Draw(char.R, 2) - char.Bind(event.Enter, func(id event.CallerID, _ interface{}) int { - char := event.GetEntity(id).(*entities.Moving) + event.Bind(ctx, event.Enter, char, func(char *entities.Moving, ev event.EnterPayload) event.Response { char.Delta.Zero() - if oak.IsDown(key.W) { + if oak.IsDown(key.WStr) { char.Delta.ShiftY(-char.Speed.Y()) } - if oak.IsDown(key.A) { + if oak.IsDown(key.AStr) { char.Delta.ShiftX(-char.Speed.X()) } - if oak.IsDown(key.S) { + if oak.IsDown(key.SStr) { char.Delta.ShiftY(char.Speed.Y()) } - if oak.IsDown(key.D) { + if oak.IsDown(key.DStr) { char.Delta.ShiftX(char.Speed.X()) } char.ShiftPos(char.Delta.X(), char.Delta.Y()) hit := char.HitLabel(Enemy) if hit != nil { - playerAlive = false + ctx.Window.NextScene() } // update animation @@ -103,15 +103,13 @@ func main() { return 0 }) - char.Bind(mouse.Press, func(id event.CallerID, me interface{}) int { - char := event.GetEntity(id).(*entities.Moving) - mevent := me.(*mouse.Event) + event.Bind(ctx, mouse.Press, char, func(char *entities.Moving, mevent *mouse.Event) event.Response { x := char.X() + char.W/2 y := char.Y() + char.H/2 ray.DefaultCaster.CastDistance = floatgeom.Point2{x, y}.Sub(floatgeom.Point2{mevent.X(), mevent.Y()}).Magnitude() hits := ray.CastTo(floatgeom.Point2{x, y}, floatgeom.Point2{mevent.X(), mevent.Y()}) for _, hit := range hits { - hit.Zone.CID.Trigger("Destroy", nil) + event.TriggerForCallerOn(ctx, hit.Zone.CID, destroy, event.NoPayload{}) } ctx.DrawForTime( render.NewLine(x, y, mevent.X(), mevent.Y(), color.RGBA{0, 128, 0, 128}), @@ -121,8 +119,7 @@ func main() { }) // Create enemies periodically - event.GlobalBind(event.Enter, func(_ event.CallerID, frames interface{}) int { - enterPayload := frames.(event.EnterPayload) + event.GlobalBind(ctx, event.Enter, func(enterPayload event.EnterPayload) event.Response { if enterPayload.FramesElapsed%EnemyRefresh == 0 { go NewEnemy(ctx) } @@ -140,8 +137,6 @@ func main() { } } - }, Loop: func() bool { - return playerAlive }}) oak.Init("tds", func(c oak.Config) (oak.Config, error) { @@ -178,8 +173,7 @@ func NewEnemy(ctx *scene.Context) { enemy.UpdateLabel(Enemy) - enemy.Bind(event.Enter, func(id event.CallerID, _ interface{}) int { - enemy := event.GetEntity(id).(*entities.Solid) + event.Bind(ctx, event.Enter, enemy, func(e *entities.Solid, ev event.EnterPayload) event.Response { // move towards the player x, y := enemy.GetPos() pt := floatgeom.Point2{x, y} @@ -201,9 +195,8 @@ func NewEnemy(ctx *scene.Context) { return 0 }) - enemy.Bind("Destroy", func(id event.CallerID, _ interface{}) int { - enemy := event.GetEntity(id).(*entities.Solid) - enemy.Destroy() + event.Bind(ctx, destroy, enemy, func(e *entities.Solid, nothing event.NoPayload) event.Response { + e.Destroy() return 0 }) } diff --git a/examples/zooming/main.go b/examples/zooming/main.go index c166aaed..80f5fc16 100644 --- a/examples/zooming/main.go +++ b/examples/zooming/main.go @@ -20,7 +20,7 @@ var ( ) func main() { - oak.AddScene("demo", scene.Scene{Start: func(*scene.Context) { + oak.AddScene("demo", scene.Scene{Start: func(ctx *scene.Context) { render.Draw(render.NewText("Controls: Arrow keys", 500, 440)) // Get an image that we will illustrate zooming with later @@ -39,17 +39,17 @@ func main() { render.Draw(zoomer) // To illustrate zooming allow for arrow keys to control the main zoomable renderable. - event.GlobalBind(event.Enter, func(i event.CallerID, _ interface{}) int { - if oak.IsDown(key.UpArrow) { + event.GlobalBind(ctx, key.AnyDown, func(k key.Event) event.Response { + if oak.IsDown(key.UpArrowStr) { zoomOutFactorY *= .98 } - if oak.IsDown(key.DownArrow) { + if oak.IsDown(key.DownArrowStr) { zoomOutFactorY *= 1.02 } - if oak.IsDown(key.RightArrow) { + if oak.IsDown(key.RightArrowStr) { zoomOutFactorX *= 1.02 } - if oak.IsDown(key.LeftArrow) { + if oak.IsDown(key.LeftArrowStr) { zoomOutFactorX *= .98 } From 9e93421a71a9f32337e1c2b03fa3efc4944db2de Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 2 Apr 2022 11:19:35 -0500 Subject: [PATCH 033/146] key: use Code types everywhere --- debugtools/inputviz/keyboard.go | 58 +++-- debugtools/mouse.go | 7 +- default.go | 21 +- entities/x/move/topdown.go | 6 +- examples/collision-demo/main.go | 9 +- examples/piano/main.go | 64 +++-- examples/pong/main.go | 6 +- examples/zooming/main.go | 3 +- inputLoop.go | 12 +- key/events.go | 20 +- key/keycodes.go | 4 +- key/keys.go | 406 +++++++++++--------------------- key/state.go | 16 +- key/state_test.go | 28 +-- 14 files changed, 256 insertions(+), 404 deletions(-) diff --git a/debugtools/inputviz/keyboard.go b/debugtools/inputviz/keyboard.go index e753f8af..d259dd69 100644 --- a/debugtools/inputviz/keyboard.go +++ b/debugtools/inputviz/keyboard.go @@ -11,7 +11,7 @@ import ( ) type KeyboardLayout interface { - KeyRect(k string) floatgeom.Rect2 + KeyRect(k key.Code) floatgeom.Rect2 } type LayoutKey interface { @@ -19,7 +19,7 @@ type LayoutKey interface { } type LayoutPosition struct { - Key string + Key key.Code Gap bool Width float64 Height float64 @@ -36,37 +36,37 @@ func (g gap) Pos() LayoutPosition { } } -type standardKey string +type standardKey key.Code func (s standardKey) Pos() LayoutPosition { return LayoutPosition{ - Key: string(s), + Key: key.Code(s), Width: 1, Height: 1, } } type wideKey struct { - k string + k key.Code w float64 } func (w wideKey) Pos() LayoutPosition { return LayoutPosition{ - Key: string(w.k), + Key: w.k, Width: w.w, Height: 1, } } type tallKey struct { - k string + k key.Code h float64 } func (h tallKey) Pos() LayoutPosition { return LayoutPosition{ - Key: string(h.k), + Key: h.k, Width: 1, Height: h.h, } @@ -74,7 +74,7 @@ func (h tallKey) Pos() LayoutPosition { type LayoutQWERTY struct { Bounds floatgeom.Rect2 - layoutMap map[string]LayoutPosition + layoutMap map[key.Code]LayoutPosition } func (l *LayoutQWERTY) init() { @@ -83,14 +83,14 @@ func (l *LayoutQWERTY) init() { } type sk = standardKey - l.layoutMap = make(map[string]LayoutPosition) + l.layoutMap = make(map[key.Code]LayoutPosition) qwertyRows := [][]LayoutKey{ - {sk(key.EscapeStr), gap(1), sk(key.F1Str), sk(key.F2Str), sk(key.F3Str), sk(key.F4Str), gap(.5), sk(key.F5Str), sk(key.F6Str), sk(key.F7Str), sk(key.F8Str), gap(.5), sk(key.F9Str), sk(key.F10Str), sk(key.F11Str), sk(key.F12Str), gap(2.1), sk(key.Pause)}, - {sk(key.GraveAccentStr), sk(key.OneStr), sk(key.TwoStr), sk(key.ThreeStr), sk(key.FourStr), sk(key.FiveStr), sk(key.SixStr), sk(key.SevenStr), sk(key.EightStr), sk(key.NineStr), sk(key.ZeroStr), sk(key.HyphenMinusStr), sk(key.EqualSignStr), wideKey{key.DeleteBackspaceStr, 2.0}, gap(.1), sk(key.InsertStr), sk(key.HomeStr), sk(key.PageUpStr), gap(.1), sk(key.KeypadNumLockStr), sk(key.KeypadSlashStr), sk(key.KeypadAsteriskStr), sk(key.KeypadHyphenMinus)}, - {wideKey{key.TabStr, 1.5}, sk(key.QStr), sk(key.WStr), sk(key.EStr), sk(key.RStr), sk(key.TStr), sk(key.YStr), sk(key.UStr), sk(key.IStr), sk(key.OStr), sk(key.PStr), sk(key.LeftSquareBracketStr), sk(key.RightSquareBracketStr), wideKey{key.BackslashStr, 1.5}, gap(.1), sk(key.DeleteForwardStr), sk(key.EndStr), sk(key.PageDownStr), gap(.1), sk(key.Keypad7Str), sk(key.Keypad8Str), sk(key.Keypad9Str), tallKey{key.KeypadPlusSignStr, 2}}, - {wideKey{key.CapsLockStr, 1.5}, sk(key.AStr), sk(key.SStr), sk(key.DStr), sk(key.FStr), sk(key.GStr), sk(key.HStr), sk(key.JStr), sk(key.KStr), sk(key.LStr), sk(key.SemicolonStr), sk(key.ApostropheStr), wideKey{key.ReturnEnterStr, 2.5}, gap(3.2), sk(key.Keypad4Str), sk(key.Keypad5Str), sk(key.Keypad6)}, - {wideKey{key.LeftShiftStr, 2.0}, sk(key.ZStr), sk(key.XStr), sk(key.CStr), sk(key.VStr), sk(key.BStr), sk(key.NStr), sk(key.MStr), sk(key.CommaStr), sk(key.FullStopStr), sk(key.SlashStr), wideKey{key.RightShiftStr, 3.0}, gap(1.1), sk(key.UpArrowStr), gap(1.1), sk(key.Keypad1Str), sk(key.Keypad2Str), sk(key.Keypad3Str), tallKey{key.KeypadEnterStr, 2.0}}, - {wideKey{key.LeftControlStr, 1.5}, sk(key.LeftGUIStr), wideKey{key.LeftAltStr, 1.5}, wideKey{key.SpacebarStr, 7.0}, wideKey{key.RightAltStr, 1.5}, sk(key.RightGUIStr), wideKey{key.RightControlStr, 1.5}, gap(.1), sk(key.LeftArrowStr), sk(key.DownArrowStr), sk(key.RightArrowStr), gap(.1), wideKey{key.Keypad0Str, 2.0}, sk(key.KeypadPeriod)}, + {sk(key.Escape), gap(1), sk(key.F1), sk(key.F2), sk(key.F3), sk(key.F4), gap(.5), sk(key.F5), sk(key.F6), sk(key.F7), sk(key.F8), gap(.5), sk(key.F9), sk(key.F10), sk(key.F11), sk(key.F12), gap(2.1), sk(key.Pause)}, + {sk(key.GraveAccent), sk(key.Num1), sk(key.Num2), sk(key.Num3), sk(key.Num4), sk(key.Num5), sk(key.Num6), sk(key.Num7), sk(key.Num8), sk(key.Num9), sk(key.Num0), sk(key.HyphenMinus), sk(key.EqualSign), wideKey{key.DeleteBackspace, 2.0}, gap(.1), sk(key.Insert), sk(key.Home), sk(key.PageUp), gap(.1), sk(key.KeypadNumLock), sk(key.KeypadSlash), sk(key.KeypadAsterisk), sk(key.KeypadHyphenMinus)}, + {wideKey{key.Tab, 1.5}, sk(key.Q), sk(key.W), sk(key.E), sk(key.R), sk(key.T), sk(key.Y), sk(key.U), sk(key.I), sk(key.O), sk(key.P), sk(key.LeftSquareBracket), sk(key.RightSquareBracket), wideKey{key.Backslash, 1.5}, gap(.1), sk(key.DeleteForward), sk(key.End), sk(key.PageDown), gap(.1), sk(key.Keypad7), sk(key.Keypad8), sk(key.Keypad9), tallKey{key.KeypadPlusSign, 2}}, + {wideKey{key.CapsLock, 1.5}, sk(key.A), sk(key.S), sk(key.D), sk(key.F), sk(key.G), sk(key.H), sk(key.J), sk(key.K), sk(key.L), sk(key.Semicolon), sk(key.Apostrophe), wideKey{key.ReturnEnter, 2.5}, gap(3.2), sk(key.Keypad4), sk(key.Keypad5), sk(key.Keypad6)}, + {wideKey{key.LeftShift, 2.0}, sk(key.Z), sk(key.X), sk(key.C), sk(key.V), sk(key.B), sk(key.N), sk(key.M), sk(key.Comma), sk(key.FullStop), sk(key.Slash), wideKey{key.RightShift, 3.0}, gap(1.1), sk(key.UpArrow), gap(1.1), sk(key.Keypad1), sk(key.Keypad2), sk(key.Keypad3), tallKey{key.KeypadEnter, 2.0}}, + {wideKey{key.LeftControl, 1.5}, sk(key.LeftGUI), wideKey{key.LeftAlt, 1.5}, wideKey{key.Spacebar, 7.0}, wideKey{key.RightAlt, 1.5}, sk(key.RightGUI), wideKey{key.RightControl, 1.5}, gap(.1), sk(key.LeftArrow), sk(key.DownArrow), sk(key.RightArrow), gap(.1), wideKey{key.Keypad0, 2.0}, sk(key.KeypadFullStop)}, } rowFloats := []float64{0.0, 1.1, 2.1, 3.1, 4.1, 5.1} for row, cols := range qwertyRows { @@ -98,7 +98,7 @@ func (l *LayoutQWERTY) init() { cf := 0.0 for _, v := range cols { ps := v.Pos() - if ps.Key != "" { + if ps.Key != 0 { l.layoutMap[ps.Key] = LayoutPosition{ Row: rf, Col: cf, @@ -111,7 +111,7 @@ func (l *LayoutQWERTY) init() { } } -func (l *LayoutQWERTY) KeyRect(k string) floatgeom.Rect2 { +func (l *LayoutQWERTY) KeyRect(k key.Code) floatgeom.Rect2 { l.init() pos, ok := l.layoutMap[k] @@ -137,12 +137,12 @@ func (l *LayoutQWERTY) KeyRect(k string) floatgeom.Rect2 { return floatgeom.NewRect2WH(x, y, keyWidth, keyHeight) } -var defaultColors = map[string]color.Color{} +var defaultColors = map[key.Code]color.Color{} type Keyboard struct { Rect floatgeom.Rect2 BaseLayer int - Colors map[string]color.Color + Colors map[key.Code]color.Color KeyboardLayout RenderCharacters bool @@ -151,7 +151,7 @@ type Keyboard struct { event.CallerID ctx *scene.Context - rs map[string]*render.Switch + rs map[key.Code]*render.Switch bindings []event.Binding } @@ -179,9 +179,9 @@ func (k *Keyboard) RenderAndListen(ctx *scene.Context, layer int) error { k.Font = render.DefaultFont() } - k.rs = make(map[string]*render.Switch) + k.rs = make(map[key.Code]*render.Switch) - for kv := range key.AllKeys { + for kv, kstr := range key.AllKeys { rect := k.KeyboardLayout.KeyRect(kv) if rect == (floatgeom.Rect2{}) { continue @@ -199,7 +199,7 @@ func (k *Keyboard) RenderAndListen(ctx *scene.Context, layer int) error { k.rs[kv] = r if k.RenderCharacters { x, y := rect.Min.X(), rect.Min.Y() - txt := k.Font.NewText(kv, x, y) + txt := k.Font.NewText(kstr, x, y) tw, th := txt.GetDims() xBuffer := rect.W() - float64(tw) yBuffer := rect.H() - float64(th) @@ -222,19 +222,17 @@ func (k *Keyboard) RenderAndListen(ctx *scene.Context, layer int) error { } b1 := event.Bind(ctx, key.AnyDown, k, func(kb *Keyboard, ev key.Event) event.Response { - btn := ev.Code.String()[4:] - if kb.rs[btn] == nil { + if kb.rs[ev.Code] == nil { return 0 } - kb.rs[btn].Set("pressed") + kb.rs[ev.Code].Set("pressed") return 0 }) b2 := event.Bind(ctx, key.AnyUp, k, func(kb *Keyboard, ev key.Event) event.Response { - btn := ev.Code.String()[4:] - if kb.rs[btn] == nil { + if kb.rs[ev.Code] == nil { return 0 } - kb.rs[btn].Set("released") + kb.rs[ev.Code].Set("released") return 0 }) k.bindings = []event.Binding{b1, b2} diff --git a/debugtools/mouse.go b/debugtools/mouse.go index 5b692c7f..2c8aae56 100644 --- a/debugtools/mouse.go +++ b/debugtools/mouse.go @@ -3,15 +3,16 @@ package debugtools import ( "github.com/oakmound/oak/v3/dlog" "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v3/key" "github.com/oakmound/oak/v3/mouse" "github.com/oakmound/oak/v3/scene" ) // DebugMouseRelease will print the position and button pressed of the mouse when the mouse is released, if the given -// key is held down at the time. If no key is given, it will always be printed -func DebugMouseRelease(ctx *scene.Context, k string) { +// key is held down at the time. If 0 is given, it will always be printed +func DebugMouseRelease(ctx *scene.Context, k key.Code) { event.GlobalBind(ctx, mouse.Release, func(mev *mouse.Event) event.Response { - if k == "" || ctx.KeyState.IsDown(k) { + if k == 0 || ctx.KeyState.IsDown(k) { dlog.Info(mev) } return 0 diff --git a/default.go b/default.go index 75384bbe..2ac9a638 100644 --- a/default.go +++ b/default.go @@ -7,6 +7,7 @@ import ( "github.com/oakmound/oak/v3/alg/intgeom" "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v3/key" "github.com/oakmound/oak/v3/render" "github.com/oakmound/oak/v3/scene" ) @@ -37,27 +38,15 @@ func AddScene(name string, sc scene.Scene) error { } // IsDown calls IsDown on the default window. -func IsDown(key string) bool { +func IsDown(k key.Code) bool { initDefaultWindow() - return defaultWindow.IsDown(key) + return defaultWindow.IsDown(k) } // IsHeld calls IsHeld on the default window. -func IsHeld(key string) (bool, time.Duration) { +func IsHeld(k key.Code) (bool, time.Duration) { initDefaultWindow() - return defaultWindow.IsHeld(key) -} - -// SetUp calls SetUp on the default window. -func SetUp(key string) { - initDefaultWindow() - defaultWindow.SetUp(key) -} - -// SetDown calls SetDown on the default window. -func SetDown(key string) { - initDefaultWindow() - defaultWindow.SetDown(key) + return defaultWindow.IsHeld(k) } // SetViewportBounds calls SetViewportBounds on the default window. diff --git a/entities/x/move/topdown.go b/entities/x/move/topdown.go index bfb4a69e..a4a9c6c7 100644 --- a/entities/x/move/topdown.go +++ b/entities/x/move/topdown.go @@ -9,16 +9,16 @@ import ( // WASD moves the given mover based on its speed as W,A,S, and D are pressed func WASD(mvr Mover) { - TopDown(mvr, key.WStr, key.SStr, key.AStr, key.DStr) + TopDown(mvr, key.W, key.S, key.A, key.D) } // Arrows moves the given mover based on its speed as the arrow keys are pressed func Arrows(mvr Mover) { - TopDown(mvr, key.UpArrowStr, key.DownArrowStr, key.LeftArrowStr, key.RightAltStr) + TopDown(mvr, key.UpArrow, key.DownArrow, key.LeftArrow, key.RightAlt) } // TopDown moves the given mover based on its speed as the given keys are pressed -func TopDown(mvr Mover, up, down, left, right string) { +func TopDown(mvr Mover, up, down, left, right key.Code) { delta := mvr.GetDelta() vec := mvr.Vec() spd := mvr.GetSpeed() diff --git a/examples/collision-demo/main.go b/examples/collision-demo/main.go index 571727a3..d5374005 100644 --- a/examples/collision-demo/main.go +++ b/examples/collision-demo/main.go @@ -7,6 +7,7 @@ import ( "github.com/oakmound/oak/v3/collision" "github.com/oakmound/oak/v3/entities" "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v3/key" "github.com/oakmound/oak/v3/render" "github.com/oakmound/oak/v3/scene" ) @@ -33,20 +34,20 @@ func main() { act.R = act.nextR render.Draw(act.R, 0, 1) } - if oak.IsDown("A") { + if oak.IsDown(key.A) { // We could use attachment here to not have to shift both // R and act but that is made more difficult by constantly // changing the act's R act.ShiftX(-3) act.R.ShiftX(-3) - } else if oak.IsDown("D") { + } else if oak.IsDown(key.D) { act.ShiftX(3) act.R.ShiftX(3) } - if oak.IsDown("W") { + if oak.IsDown(key.W) { act.ShiftY(-3) act.R.ShiftY(-3) - } else if oak.IsDown("S") { + } else if oak.IsDown(key.S) { act.ShiftY(3) act.R.ShiftY(3) } diff --git a/examples/piano/main.go b/examples/piano/main.go index a5ab0c02..ef045b8e 100644 --- a/examples/piano/main.go +++ b/examples/piano/main.go @@ -60,7 +60,7 @@ func (kc keyColor) Color() color.RGBA { return color.RGBA{255, 255, 255, 255} } -func newKey(ctx *scene.Context, note synth.Pitch, c keyColor, k string) *entities.Solid { +func newKey(ctx *scene.Context, note synth.Pitch, c keyColor, k key.Code) *entities.Solid { w := c.Width() h := c.Height() clr := c.Color() @@ -93,16 +93,17 @@ func newKey(ctx *scene.Context, note synth.Pitch, c keyColor, k string) *entitie s.Space.Label = labelWhiteKey } mouse.UpdateSpace(s.X(), s.Y(), s.W, s.H, s.Space) - event.GlobalBind(ctx, key.Down(key.AllKeys[k]), func(_ key.Event) event.Response { - if oak.IsDown(key.LeftShiftStr) || oak.IsDown(key.RightShiftStr) { + event.GlobalBind(ctx, key.Down(k), func(ev key.Event) event.Response { + // TODO: add helper function for this? + if ev.Modifiers&key.ModShift == key.ModShift { return 0 } playPitch(ctx, note) sw.Set("down") return 0 }) - event.GlobalBind(ctx, key.Up(key.AllKeys[k]), func(_ key.Event) event.Response { - if oak.IsDown(key.LeftShiftStr) || oak.IsDown(key.RightShiftStr) { + event.GlobalBind(ctx, key.Up(k), func(ev key.Event) event.Response { + if ev.Modifiers&key.ModShift == key.ModShift { return 0 } releasePitch(note) @@ -129,13 +130,13 @@ type keyDef struct { x float64 } -var keycharOrder = []string{ - "Z", "S", "X", "D", "C", - "V", "G", "B", "H", "N", "J", "M", - key.CommaStr, "L", key.Period, key.SemicolonStr, key.SlashStr, - "Q", "2", "W", "3", "E", "4", "R", - "T", "6", "Y", "7", "U", - "I", "9", "O", "0", "P", key.HyphenMinusStr, key.LeftSquareBracketStr, +var keycharOrder = []key.Code{ + key.Z, key.S, key.X, key.D, key.C, + key.V, key.G, key.B, key.H, key.N, key.J, key.M, + key.Comma, key.L, key.FullStop, key.Semicolon, key.Slash, + key.Q, key.Num2, key.W, key.Num3, key.E, key.Num4, key.R, + key.T, key.Num6, key.Y, key.Num7, key.U, + key.I, key.Num9, key.O, key.Num0, key.P, key.HyphenMinus, key.LeftSquareBracket, } var playLock sync.Mutex @@ -222,30 +223,21 @@ func main() { i++ } // Consider: Adding volume control - event.GlobalBind(ctx, key.Down(key.S), func(_ key.Event) event.Response { - if oak.IsDown(key.LeftShiftStr) || oak.IsDown(key.RightShiftStr) { - synthKind = src.SinPCM - } - return 0 - }) - event.GlobalBind(ctx, key.Down(key.W), func(_ key.Event) event.Response { - if oak.IsDown(key.LeftShiftStr) || oak.IsDown(key.RightShiftStr) { - synthKind = src.SawPCM - } - return 0 - }) - event.GlobalBind(ctx, key.Down(key.T), func(_ key.Event) event.Response { - if oak.IsDown(key.LeftShiftStr) || oak.IsDown(key.RightShiftStr) { - synthKind = src.TrianglePCM - } - return 0 - }) - event.GlobalBind(ctx, key.Down(key.P), func(_ key.Event) event.Response { - if oak.IsDown(key.LeftShiftStr) || oak.IsDown(key.RightShiftStr) { - synthKind = src.PulsePCM(2) - } - return 0 - }) + codeKinds := map[key.Code]func(...synth.Option) (pcm.Reader, error){ + key.S: src.SinPCM, + key.W: src.SawPCM, + key.T: src.TrianglePCM, + key.P: src.PulsePCM(2), + } + for kc, synfn := range codeKinds { + event.GlobalBind(ctx, key.Down(kc), func(ev key.Event) event.Response { + if ev.Modifiers&key.ModShift == key.ModShift { + synthKind = synfn + } + return 0 + }) + } + help1 := render.NewText("Shift+([S]in/[T]ri/[P]ulse/sa[W]) to change wave style", 10, 500) help2 := render.NewText("Keyboard / mouse to play", 10, 520) render.Draw(help1) diff --git a/examples/pong/main.go b/examples/pong/main.go index bcec120f..5ae43bcc 100644 --- a/examples/pong/main.go +++ b/examples/pong/main.go @@ -76,13 +76,13 @@ func newPaddle(ctx *scene.Context, x, y float64, player int) { render.Draw(p.R, 1) p.Space.UpdateLabel(hitPaddle) if player == 1 { - event.Bind(ctx, event.Enter, p, enterPaddle(key.UpArrowStr, key.DownArrowStr)) + event.Bind(ctx, event.Enter, p, enterPaddle(key.UpArrow, key.DownArrow)) } else { - event.Bind(ctx, event.Enter, p, enterPaddle(key.WStr, key.SStr)) + event.Bind(ctx, event.Enter, p, enterPaddle(key.W, key.S)) } } -func enterPaddle(up, down string) func(*entities.Moving, event.EnterPayload) event.Response { +func enterPaddle(up, down key.Code) func(*entities.Moving, event.EnterPayload) event.Response { return func(p *entities.Moving, _ event.EnterPayload) event.Response { p.Delta.SetY(0) if oak.IsDown(up) { diff --git a/examples/zooming/main.go b/examples/zooming/main.go index c166aaed..2f159178 100644 --- a/examples/zooming/main.go +++ b/examples/zooming/main.go @@ -39,7 +39,7 @@ func main() { render.Draw(zoomer) // To illustrate zooming allow for arrow keys to control the main zoomable renderable. - event.GlobalBind(event.Enter, func(i event.CallerID, _ interface{}) int { + event.GlobalBind(event.DefaultBus, event.Enter, func(event.EnterPayload) event.Response { if oak.IsDown(key.UpArrow) { zoomOutFactorY *= .98 } @@ -52,7 +52,6 @@ func main() { if oak.IsDown(key.LeftArrow) { zoomOutFactorX *= .98 } - return 0 }) diff --git a/inputLoop.go b/inputLoop.go index 62d97b50..aa71f860 100644 --- a/inputLoop.go +++ b/inputLoop.go @@ -100,10 +100,9 @@ func (w *Window) inputLoop() { // From the perspective of the event handler this is indistinguishable // from a real keypress. func (w *Window) TriggerKeyDown(e okey.Event) { - k := e.Code.String()[4:] - w.SetDown(k) + w.State.SetDown(e.Code) event.TriggerOn(w.eventHandler, okey.AnyDown, e) - event.TriggerOn(w.eventHandler, okey.Down(okey.Code(e.Code)), e) + event.TriggerOn(w.eventHandler, okey.Down(e.Code), e) } // TriggerKeyUp triggers a software-emulated key release. @@ -111,10 +110,9 @@ func (w *Window) TriggerKeyDown(e okey.Event) { // From the perspective of the event handler this is indistinguishable // from a real key release. func (w *Window) TriggerKeyUp(e okey.Event) { - k := e.Code.String()[4:] - w.SetUp(k) + w.State.SetUp(e.Code) event.TriggerOn(w.eventHandler, okey.AnyUp, e) - event.TriggerOn(w.eventHandler, okey.Up(okey.Code(e.Code)), e) + event.TriggerOn(w.eventHandler, okey.Up(e.Code), e) } // TriggerKeyHeld triggers a software-emulated key hold signal. @@ -123,7 +121,7 @@ func (w *Window) TriggerKeyUp(e okey.Event) { // from a real key hold signal. func (w *Window) TriggerKeyHeld(e okey.Event) { event.TriggerOn(w.eventHandler, okey.AnyHeld, e) - event.TriggerOn(w.eventHandler, okey.Held(okey.Code(e.Code)), e) + event.TriggerOn(w.eventHandler, okey.Held(e.Code), e) } // TriggerMouseEvent triggers a software-emulated mouse event. diff --git a/key/events.go b/key/events.go index 54358f3c..cfbd06f6 100644 --- a/key/events.go +++ b/key/events.go @@ -20,10 +20,24 @@ var ( ) // An Event is sent as the payload for all key bindings. -type Event = key.Event +type Event key.Event -// A code is a unique integer code for a given common key -const CodeA key.Code = key.Code(A) +type Modifiers = key.Modifiers + +const ( + ModShift Modifiers = 1 << 0 + ModControl Modifiers = 1 << 1 + ModAlt Modifiers = 1 << 2 + ModMeta Modifiers = 1 << 3 // called "Command" on OS X +) + +type Direction = key.Direction + +const ( + DirNone Direction = 0 + DirPress Direction = 1 + DirRelease Direction = 2 +) var upEventsLock sync.Mutex var upEvents = map[Code]event.EventID[Event]{} diff --git a/key/keycodes.go b/key/keycodes.go index 8c3ec701..4c06915a 100644 --- a/key/keycodes.go +++ b/key/keycodes.go @@ -1,9 +1,11 @@ package key +import "golang.org/x/mobile/event/key" + // Code is the identity of a key relative to a notional "standard" keyboard. // It is a straight copy of mobile package's key codes cleaned up for ease of binding in oak. // See AllKeys for string mappers. -type Code uint32 +type Code = key.Code const ( Unknown Code = 0 diff --git a/key/keys.go b/key/keys.go index d3c821c0..64bb3d95 100644 --- a/key/keys.go +++ b/key/keys.go @@ -1,277 +1,135 @@ package key -// This lists the keys sent through oak's input events. -// This list is not used internally by oak, but was generated from -// the expected output from x/mobile/key. -// -// These strings are sent as payloads to Key.Down and Key.Up events, -// and through "KeyDown"+$a, "KeyUp"+$a for any $a in the const. -const ( - UnknownStr = "Unknown" - - AStr = "A" - BStr = "B" - CStr = "C" - DStr = "D" - EStr = "E" - FStr = "F" - GStr = "G" - HStr = "H" - IStr = "I" - JStr = "J" - KStr = "K" - LStr = "L" - MStr = "M" - NStr = "N" - OStr = "O" - PStr = "P" - QStr = "Q" - RStr = "R" - SStr = "S" - TStr = "T" - UStr = "U" - VStr = "V" - WStr = "W" - XStr = "X" - YStr = "Y" - ZStr = "Z" - - OneStr = "1" - TwoStr = "2" - ThreeStr = "3" - FourStr = "4" - FiveStr = "5" - SixStr = "6" - SevenStr = "7" - EightStr = "8" - NineStr = "9" - ZeroStr = "0" - - ReturnEnterStr = "ReturnEnter" - Enter = ReturnEnter - EscapeStr = "Escape" - DeleteBackspaceStr = "DeleteBackspace" - TabStr = "Tab" - SpacebarStr = "Spacebar" - HyphenMinusStr = "HyphenMinus" //- - EqualSignStr = "EqualSign" //= - LeftSquareBracketStr = "LeftSquareBracket" //[ - RightSquareBracketStr = "RightSquareBracket" //] - BackslashStr = "Backslash" //\ - SemicolonStr = "Semicolon" //; - ApostropheStr = "Apostrophe" //' - GraveAccentStr = "GraveAccent" //` - CommaStr = "Comma" //, - FullStopStr = "FullStop" //. - Period = "FullStop" - SlashStr = "Slash" /// - CapsLockStr = "CapsLock" - - F1Str = "F1" - F2Str = "F2" - F3Str = "F3" - F4Str = "F4" - F5Str = "F5" - F6Str = "F6" - F7Str = "F7" - F8Str = "F8" - F9Str = "F9" - F10Str = "F10" - F11Str = "F11" - F12Str = "F12" - - PauseStr = "Pause" - InsertStr = "Insert" - HomeStr = "Home" - PageUpStr = "PageUp" - DeleteForwardStr = "DeleteForward" - EndStr = "End" - PageDownStr = "PageDown" - - RightArrowStr = "RightArrow" - LeftArrowStr = "LeftArrow" - DownArrowStr = "DownArrow" - UpArrowStr = "UpArrow" - - KeypadNumLockStr = "KeypadNumLock" - KeypadSlashStr = "KeypadSlash" /// - KeypadAsteriskStr = "KeypadAsterisk" //* - KeypadHyphenMinusStr = "KeypadHyphenMinus" //- - KeypadPlusSignStr = "KeypadPlusSign" //+ - KeypadEnterStr = "KeypadEnter" - Keypad1Str = "Keypad1" - Keypad2Str = "Keypad2" - Keypad3Str = "Keypad3" - Keypad4Str = "Keypad4" - Keypad5Str = "Keypad5" - Keypad6Str = "Keypad6" - Keypad7Str = "Keypad7" - Keypad8Str = "Keypad8" - Keypad9Str = "Keypad9" - Keypad0Str = "Keypad0" - KeypadFullStopStr = "KeypadFullStop" //. - KeypadPeriod = "KeypadFullStop" - KeypadEqualSignStr = "KeypadEqualSign" //= - - F13Str = "F13" - F14Str = "F14" - F15Str = "F15" - F16Str = "F16" - F17Str = "F17" - F18Str = "F18" - F19Str = "F19" - F20Str = "F20" - F21Str = "F21" - F22Str = "F22" - F23Str = "F23" - F24Str = "F24" - - HelpStr = "Help" - - MuteStr = "Mute" - VolumeUpStr = "VolumeUp" - VolumeDownStr = "VolumeDown" - - LeftControlStr = "LeftControl" - LeftShiftStr = "LeftShift" - LeftAltStr = "LeftAlt" - LeftGUIStr = "LeftGUI" - RightControlStr = "RightControl" - RightShiftStr = "RightShift" - RightAltStr = "RightAlt" - RightGUIStr = "RightGUI" -) - -// AllKeys is the set of all defined key codes to their Codes -var AllKeys = map[string]Code{ - UnknownStr: Unknown, - - AStr: A, - BStr: B, - CStr: C, - DStr: D, - EStr: E, - FStr: F, - GStr: G, - HStr: H, - IStr: I, - JStr: J, - KStr: K, - LStr: L, - MStr: M, - NStr: N, - OStr: O, - PStr: P, - QStr: Q, - RStr: R, - SStr: S, - TStr: T, - UStr: U, - VStr: V, - WStr: W, - XStr: X, - YStr: Y, - ZStr: Z, - - OneStr: Num1, - TwoStr: Num2, - ThreeStr: Num3, - FourStr: Num4, - FiveStr: Num5, - SixStr: Num6, - SevenStr: Num7, - EightStr: Num8, - NineStr: Num9, - ZeroStr: Num0, - - ReturnEnterStr: ReturnEnter, - EscapeStr: Escape, - DeleteBackspaceStr: DeleteBackspace, - TabStr: Tab, - SpacebarStr: Spacebar, - HyphenMinusStr: HyphenMinus, - EqualSignStr: EqualSign, - LeftSquareBracketStr: LeftSquareBracket, - RightSquareBracketStr: RightSquareBracket, - BackslashStr: Backslash, - SemicolonStr: Semicolon, - ApostropheStr: Apostrophe, - GraveAccentStr: GraveAccent, - CommaStr: Comma, - FullStopStr: FullStop, - SlashStr: Slash, - CapsLockStr: CapsLock, - - F1Str: F1, - F2Str: F2, - F3Str: F3, - F4Str: F4, - F5Str: F5, - F6Str: F6, - F7Str: F7, - F8Str: F8, - F9Str: F9, - F10Str: F10, - F11Str: F11, - F12Str: F12, - - PauseStr: Pause, - InsertStr: Insert, - HomeStr: Home, - PageUpStr: PageUp, - DeleteForwardStr: DeleteForward, - EndStr: End, - PageDownStr: PageDown, - - RightArrowStr: RightArrow, - LeftArrowStr: LeftArrow, - DownArrowStr: DownArrow, - UpArrowStr: UpArrow, - - KeypadNumLockStr: KeypadNumLock, - KeypadSlashStr: KeypadSlash, - KeypadAsteriskStr: KeypadAsterisk, - KeypadHyphenMinusStr: KeypadHyphenMinus, - KeypadPlusSignStr: KeypadPlusSign, - KeypadEnterStr: KeypadEnter, - Keypad1Str: Keypad1, - Keypad2Str: Keypad2, - Keypad3Str: Keypad3, - Keypad4Str: Keypad4, - Keypad5Str: Keypad5, - Keypad6Str: Keypad6, - Keypad7Str: Keypad7, - Keypad8Str: Keypad8, - Keypad9Str: Keypad9, - Keypad0Str: Keypad0, - KeypadFullStopStr: KeypadFullStop, - KeypadEqualSignStr: KeypadEqualSign, - - F13Str: F13, - F14Str: F14, - F15Str: F15, - F16Str: F16, - F17Str: F17, - F18Str: F18, - F19Str: F19, - F20Str: F20, - F21Str: F21, - F22Str: F22, - F23Str: F23, - F24Str: F24, - - HelpStr: Help, - - MuteStr: Mute, - VolumeUpStr: VolumeUp, - VolumeDownStr: VolumeDown, - - LeftControlStr: LeftControl, - LeftShiftStr: LeftShift, - LeftAltStr: LeftAlt, - LeftGUIStr: LeftGUI, - RightControlStr: RightControl, - RightShiftStr: RightShift, - RightAltStr: RightAlt, - RightGUIStr: RightGUI, +// AllKeys is the set of all defined key codes +var AllKeys = map[Code]string{ + Unknown: "Unknown", + + A: "A", + B: "B", + C: "C", + D: "D", + E: "E", + F: "F", + G: "G", + H: "H", + I: "I", + J: "J", + K: "K", + L: "L", + M: "M", + N: "N", + O: "O", + P: "P", + Q: "Q", + R: "R", + S: "S", + T: "T", + U: "U", + V: "V", + W: "W", + X: "X", + Y: "Y", + Z: "Z", + + Num1: "1", + Num2: "2", + Num3: "3", + Num4: "4", + Num5: "5", + Num6: "6", + Num7: "7", + Num8: "8", + Num9: "9", + Num0: "0", + + ReturnEnter: "ReturnEnter", + Escape: "Escape", + DeleteBackspace: "DeleteBackspace", + Tab: "Tab", + Spacebar: "Spacebar", + HyphenMinus: "HyphenMinus", + EqualSign: "EqualSign", + LeftSquareBracket: "LeftSquareBracket", + RightSquareBracket: "RightSquareBracket", + Backslash: "Backslash", + Semicolon: "Semicolon", + Apostrophe: "Apostrophe", + GraveAccent: "GraveAccent", + Comma: "Comma", + FullStop: "FullStop", + Slash: "Slash", + CapsLock: "CapsLock", + + F1: "F1", + F2: "F2", + F3: "F3", + F4: "F4", + F5: "F5", + F6: "F6", + F7: "F7", + F8: "F8", + F9: "F9", + F10: "F10", + F11: "F11", + F12: "F12", + + Pause: "Pause", + Insert: "Insert", + Home: "Home", + PageUp: "PageUp", + DeleteForward: "DeleteForward", + End: "End", + PageDown: "PageDown", + + RightArrow: "RightArrow", + LeftArrow: "LeftArrow", + DownArrow: "DownArrow", + UpArrow: "UpArrow", + + KeypadNumLock: "KeypadNumLock", + KeypadSlash: "KeypadSlash", + KeypadAsterisk: "KeypadAsterisk", + KeypadHyphenMinus: "KeypadHyphenMinus", + KeypadPlusSign: "KeypadPlusSign", + KeypadEnter: "KeypadEnter", + Keypad1: "Keypad1", + Keypad2: "Keypad2", + Keypad3: "Keypad3", + Keypad4: "Keypad4", + Keypad5: "Keypad5", + Keypad6: "Keypad6", + Keypad7: "Keypad7", + Keypad8: "Keypad8", + Keypad9: "Keypad9", + Keypad0: "Keypad0", + KeypadFullStop: "KeypadFullStop", + KeypadEqualSign: "KeypadEqualSign", + + F13: "F13", + F14: "F14", + F15: "F15", + F16: "F16", + F17: "F17", + F18: "F18", + F19: "F19", + F20: "F20", + F21: "F21", + F22: "F22", + F23: "F23", + F24: "F24", + + Help: "Help", + + Mute: "Mute", + VolumeUp: "VolumeUp", + VolumeDown: "VolumeDown", + + LeftControl: "LeftControl", + LeftShift: "LeftShift", + LeftAlt: "LeftAlt", + LeftGUI: "LeftGUI", + RightControl: "RightControl", + RightShift: "RightShift", + RightAlt: "RightAlt", + RightGUI: "RightGUI", } diff --git a/key/state.go b/key/state.go index 428d955c..0165b0fc 100644 --- a/key/state.go +++ b/key/state.go @@ -8,8 +8,8 @@ import ( // A State tracks what keys of a keyboard are currently pressed and for how long they have been // pressed if they are held down. type State struct { - state map[string]bool - durations map[string]time.Time + state map[Code]bool + durations map[Code]time.Time stateLock sync.RWMutex durationLock sync.RWMutex } @@ -17,8 +17,8 @@ type State struct { // NewState creates a state object for tracking keyboard state. func NewState() State { return State{ - state: make(map[string]bool), - durations: make(map[string]time.Time), + state: make(map[Code]bool), + durations: make(map[Code]time.Time), } } @@ -27,7 +27,7 @@ func NewState() State { // events are sent from the real keyboard and mouse. // Calling this can interrupt real input or cause // unintended behavior and should be done cautiously. -func (ks *State) SetUp(key string) { +func (ks *State) SetUp(key Code) { ks.stateLock.Lock() ks.durationLock.Lock() delete(ks.state, key) @@ -41,7 +41,7 @@ func (ks *State) SetUp(key string) { // events are sent from the real keyboard and mouse. // Calling this can interrupt real input or cause // unintended behavior and should be done cautiously. -func (ks *State) SetDown(key string) { +func (ks *State) SetDown(key Code) { ks.stateLock.Lock() ks.state[key] = true ks.durations[key] = time.Now() @@ -49,7 +49,7 @@ func (ks *State) SetDown(key string) { } // IsDown returns whether a key is held down -func (ks *State) IsDown(key string) (k bool) { +func (ks *State) IsDown(key Code) (k bool) { ks.stateLock.RLock() k = ks.state[key] ks.stateLock.RUnlock() @@ -58,7 +58,7 @@ func (ks *State) IsDown(key string) (k bool) { // IsHeld returns whether a key is held down, and for how long // it has been held. -func (ks *State) IsHeld(key string) (k bool, d time.Duration) { +func (ks *State) IsHeld(key Code) (k bool, d time.Duration) { ks.stateLock.RLock() k = ks.state[key] ks.stateLock.RUnlock() diff --git a/key/state_test.go b/key/state_test.go index 82b11cbb..a9d5cc70 100644 --- a/key/state_test.go +++ b/key/state_test.go @@ -7,29 +7,29 @@ import ( func TestState(t *testing.T) { ks := NewState() - ks.SetDown("Test") - if !ks.IsDown("Test") { - t.Fatalf("test was not set down") + ks.SetDown(A) + if !ks.IsDown(A) { + t.Fatalf("a was not set down") } - ks.SetUp("Test") - if ks.IsDown("Test") { - t.Fatalf("test was not set up") + ks.SetUp(A) + if ks.IsDown(A) { + t.Fatalf("a was not set up") } - ks.SetDown("Test") + ks.SetDown(A) time.Sleep(2 * time.Second) - ok, d := ks.IsHeld("Test") + ok, d := ks.IsHeld(A) if !ok { - t.Fatalf("test was not held down") + t.Fatalf("a was not held down") } if d < 2000*time.Millisecond { - t.Fatalf("test was not held down for sleep length") + t.Fatalf("a was not held down for sleep length") } - ks.SetUp("Test") - ok, d = ks.IsHeld("Test") + ks.SetUp(A) + ok, d = ks.IsHeld(A) if ok { - t.Fatalf("test was not released") + t.Fatalf("a was not released") } if d != 0 { - t.Fatalf("test hold was not reset") + t.Fatalf("a hold was not reset") } } From 9ed67914527ffaf4bd0d03c8b42a785c38840149 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 2 Apr 2022 11:23:45 -0500 Subject: [PATCH 034/146] examples/titlescreen-demo: use new key / events --- examples/titlescreen-demo/main.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/examples/titlescreen-demo/main.go b/examples/titlescreen-demo/main.go index 7a428558..246140b4 100644 --- a/examples/titlescreen-demo/main.go +++ b/examples/titlescreen-demo/main.go @@ -49,12 +49,12 @@ func main() { //tell the draw loop to draw titleText render.Draw(titleText) - //do the same for the text with button instuctions, but this time Y position is not a placeholder (X still is) + //do the same for the text with button instructions, but this time Y position is not a placeholder (X still is) instructionText := render.NewText("press Enter to start, or press Q to quit", 0, float64(ctx.Window.Height()*3/4)) //this time we only center the X axis, otherwise it would overlap titleText center(ctx, instructionText, X) render.Draw(instructionText) - event.GlobalBind(ctx, key.Down(key.Enter), func(key.Event) event.Response { + event.GlobalBind(ctx, key.Down(key.ReturnEnter), func(key.Event) event.Response { // Go to the next scene if enter is pressed. Next scene is the game ctx.Window.NextScene() return 0 @@ -69,7 +69,7 @@ func main() { return "game", nil //set the next scene to "game" }}) - //we declare this here so it can be accesed by the scene start and scene loop + //we declare this here so it can be accessed by the scene start and scene loop var player *entities.Moving //define the "game" (it's just a square that can be moved with WASD) @@ -79,7 +79,7 @@ func main() { render.NewColorBox(32, 32, color.RGBA{0, 0, 255, 255}), nil, 0, 0) //because the player is more than visuals (it has a hitbox, even though we don't use it), - //we have to get the visual part specificaly, and not the whole thing. + //we have to get the visual part specifically, and not the whole thing. render.Draw(player.R) controlsText := render.NewText("WASD to move, ESC to return to titlescreen", 5, 20) @@ -92,20 +92,20 @@ func main() { return 0 }) event.GlobalBind(ctx, event.Enter, func(event.EnterPayload) event.Response { - if oak.IsDown(key.SStr) { + if oak.IsDown(key.S) { //if S is pressed, set the player's vertical speed to 2 (positive == down) player.Delta.SetY(2) - } else if oak.IsDown(key.WStr) { + } else if oak.IsDown(key.W) { player.Delta.SetY(-2) } else { - //if the now buttons are pressed for vertical movement, don't move verticaly + //if the now buttons are pressed for vertical movement, don't move vertically player.Delta.SetY(0) } - //do the same thing as before, but horizontaly - if oak.IsDown(key.DStr) { + //do the same thing as before, but horizontally + if oak.IsDown(key.D) { player.Delta.SetX(2) - } else if oak.IsDown(key.AStr) { + } else if oak.IsDown(key.A) { player.Delta.SetX(-2) } else { player.Delta.SetX(0) From 24d9dd1d4357f48e268b77e1a515558d34aefc46 Mon Sep 17 00:00:00 2001 From: implausiblyfun Date: Sat, 2 Apr 2022 12:25:06 -0400 Subject: [PATCH 035/146] examples\platformer: Change for strs --- examples/platformer-tutorial/2-moving/moving.go | 4 ++-- examples/platformer-tutorial/3-falling/falling.go | 4 ++-- examples/platformer-tutorial/4-jumping/jumping.go | 6 +++--- .../5-correct-jumping/correct-jumping.go | 6 +++--- examples/platformer-tutorial/6-complete/complete.go | 6 +++--- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/examples/platformer-tutorial/2-moving/moving.go b/examples/platformer-tutorial/2-moving/moving.go index 07d27096..d025bf3a 100644 --- a/examples/platformer-tutorial/2-moving/moving.go +++ b/examples/platformer-tutorial/2-moving/moving.go @@ -26,10 +26,10 @@ func main() { char.Speed = physics.NewVector(3, 3) event.Bind(ctx, event.Enter, char, func(c *entities.Moving, ev event.EnterPayload) event.Response { // Move left and right with A and D - if oak.IsDown(key.AStr) { + if oak.IsDown(key.A) { c.ShiftX(-c.Speed.X()) } - if oak.IsDown(key.DStr) { + if oak.IsDown(key.D) { c.ShiftX(c.Speed.X()) } return 0 diff --git a/examples/platformer-tutorial/3-falling/falling.go b/examples/platformer-tutorial/3-falling/falling.go index beabdd44..a6968536 100644 --- a/examples/platformer-tutorial/3-falling/falling.go +++ b/examples/platformer-tutorial/3-falling/falling.go @@ -39,10 +39,10 @@ func main() { event.Bind(ctx, event.Enter, char, func(c *entities.Moving, ev event.EnterPayload) event.Response { // Move left and right with A and D - if oak.IsDown(key.AStr) { + if oak.IsDown(key.A) { c.ShiftX(-c.Speed.X()) } - if oak.IsDown(key.DStr) { + if oak.IsDown(key.D) { c.ShiftX(c.Speed.X()) } hit := c.HitLabel(Ground) diff --git a/examples/platformer-tutorial/4-jumping/jumping.go b/examples/platformer-tutorial/4-jumping/jumping.go index 41c950a8..c9049469 100644 --- a/examples/platformer-tutorial/4-jumping/jumping.go +++ b/examples/platformer-tutorial/4-jumping/jumping.go @@ -38,10 +38,10 @@ func main() { event.Bind(ctx, event.Enter, char, func(c *entities.Moving, ev event.EnterPayload) event.Response { // Move left and right with A and D - if oak.IsDown(key.AStr) { + if oak.IsDown(key.A) { c.ShiftX(-c.Speed.X()) } - if oak.IsDown(key.DStr) { + if oak.IsDown(key.D) { c.ShiftX(c.Speed.X()) } hit := collision.HitLabel(c.Space, Ground) @@ -51,7 +51,7 @@ func main() { } else { c.Delta.SetY(0) // Jump with Space - if oak.IsDown(key.SpacebarStr) { + if oak.IsDown(key.Spacebar) { c.Delta.ShiftY(-c.Speed.Y()) } } diff --git a/examples/platformer-tutorial/5-correct-jumping/correct-jumping.go b/examples/platformer-tutorial/5-correct-jumping/correct-jumping.go index 4d2c381e..92040f79 100644 --- a/examples/platformer-tutorial/5-correct-jumping/correct-jumping.go +++ b/examples/platformer-tutorial/5-correct-jumping/correct-jumping.go @@ -38,10 +38,10 @@ func main() { event.Bind(ctx, event.Enter, char, func(c *entities.Moving, ev event.EnterPayload) event.Response { // Move left and right with A and D - if oak.IsDown(key.AStr) { + if oak.IsDown(key.A) { char.ShiftX(-char.Speed.X()) } - if oak.IsDown(key.DStr) { + if oak.IsDown(key.D) { char.ShiftX(char.Speed.X()) } oldY := char.Y() @@ -55,7 +55,7 @@ func main() { char.SetY(hit.Y() - char.H) char.Delta.SetY(0) // Jump with Space - if oak.IsDown(key.SpacebarStr) { + if oak.IsDown(key.Spacebar) { char.Delta.ShiftY(-char.Speed.Y()) } } else { diff --git a/examples/platformer-tutorial/6-complete/complete.go b/examples/platformer-tutorial/6-complete/complete.go index 12a5b5d7..42f17f7a 100644 --- a/examples/platformer-tutorial/6-complete/complete.go +++ b/examples/platformer-tutorial/6-complete/complete.go @@ -41,9 +41,9 @@ func main() { event.Bind(ctx, event.Enter, char, func(c *entities.Moving, ev event.EnterPayload) event.Response { // Move left and right with A and D - if oak.IsDown(key.AStr) { + if oak.IsDown(key.A) { char.Delta.SetX(-char.Speed.X()) - } else if oak.IsDown(key.DStr) { + } else if oak.IsDown(key.D) { char.Delta.SetX(char.Speed.X()) } else { char.Delta.SetX(0) @@ -63,7 +63,7 @@ func main() { // Stop falling char.Delta.SetY(0) // Jump with Space when on the ground - if oak.IsDown(key.SpacebarStr) { + if oak.IsDown(key.Spacebar) { char.Delta.ShiftY(-char.Speed.Y()) } aboveGround = true From 435da4eebc75c7597db39b2421b0f8e6ceeaa99c Mon Sep 17 00:00:00 2001 From: implausiblyfun Date: Sat, 2 Apr 2022 12:26:53 -0400 Subject: [PATCH 036/146] examples\sprite: str changes --- examples/sprite-demo/main.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/sprite-demo/main.go b/examples/sprite-demo/main.go index ac82350c..872a3e53 100644 --- a/examples/sprite-demo/main.go +++ b/examples/sprite-demo/main.go @@ -10,6 +10,7 @@ import ( oak "github.com/oakmound/oak/v3" "github.com/oakmound/oak/v3/entities" "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v3/key" "github.com/oakmound/oak/v3/render" "github.com/oakmound/oak/v3/render/mod" "github.com/oakmound/oak/v3/scene" @@ -38,7 +39,7 @@ func main() { NewGopher(ctx, layer) layer++ event.GlobalBind(ctx, event.Enter, func(ev event.EnterPayload) event.Response { - if oak.IsDown("K") { + if oak.IsDown(key.K) { NewGopher(ctx, layer) layer++ } From d9b3e4b46a232b345ebd50962012f64b4d1de796 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 2 Apr 2022 11:34:09 -0500 Subject: [PATCH 037/146] examples/top-down-shooter-tutorial: finish fixing for new events and keys --- .../1-start/start.go | 8 ++-- .../2-shooting/shooting.go | 8 ++-- .../3-enemies/enemies.go | 8 ++-- .../4-sprites/sprites.go | 8 ++-- .../5-viewport/viewport.go | 32 +++++-------- .../6-performance/performance.go | 45 +++++++------------ 6 files changed, 45 insertions(+), 64 deletions(-) diff --git a/examples/top-down-shooter-tutorial/1-start/start.go b/examples/top-down-shooter-tutorial/1-start/start.go index c2b8834c..126cf2e4 100644 --- a/examples/top-down-shooter-tutorial/1-start/start.go +++ b/examples/top-down-shooter-tutorial/1-start/start.go @@ -36,16 +36,16 @@ func main() { event.Bind(ctx, event.Enter, char, func(c *entities.Moving, ev event.EnterPayload) event.Response { char.Delta.Zero() - if oak.IsDown(key.WStr) { + if oak.IsDown(key.W) { char.Delta.ShiftY(-char.Speed.Y()) } - if oak.IsDown(key.AStr) { + if oak.IsDown(key.A) { char.Delta.ShiftX(-char.Speed.X()) } - if oak.IsDown(key.SStr) { + if oak.IsDown(key.S) { char.Delta.ShiftY(char.Speed.Y()) } - if oak.IsDown(key.DStr) { + if oak.IsDown(key.D) { char.Delta.ShiftX(char.Speed.X()) } char.ShiftPos(char.Delta.X(), char.Delta.Y()) diff --git a/examples/top-down-shooter-tutorial/2-shooting/shooting.go b/examples/top-down-shooter-tutorial/2-shooting/shooting.go index ce9539d4..89844bb0 100644 --- a/examples/top-down-shooter-tutorial/2-shooting/shooting.go +++ b/examples/top-down-shooter-tutorial/2-shooting/shooting.go @@ -34,16 +34,16 @@ func main() { event.Bind(ctx, event.Enter, char, func(char *entities.Moving, ev event.EnterPayload) event.Response { char.Delta.Zero() - if oak.IsDown(key.WStr) { + if oak.IsDown(key.W) { char.Delta.ShiftY(-char.Speed.Y()) } - if oak.IsDown(key.AStr) { + if oak.IsDown(key.A) { char.Delta.ShiftX(-char.Speed.X()) } - if oak.IsDown(key.SStr) { + if oak.IsDown(key.S) { char.Delta.ShiftY(char.Speed.Y()) } - if oak.IsDown(key.DStr) { + if oak.IsDown(key.D) { char.Delta.ShiftX(char.Speed.X()) } char.ShiftPos(char.Delta.X(), char.Delta.Y()) diff --git a/examples/top-down-shooter-tutorial/3-enemies/enemies.go b/examples/top-down-shooter-tutorial/3-enemies/enemies.go index 85580e0e..5117255d 100644 --- a/examples/top-down-shooter-tutorial/3-enemies/enemies.go +++ b/examples/top-down-shooter-tutorial/3-enemies/enemies.go @@ -48,16 +48,16 @@ func main() { event.Bind(ctx, event.Enter, char, func(char *entities.Moving, ev event.EnterPayload) event.Response { char.Delta.Zero() - if oak.IsDown(key.WStr) { + if oak.IsDown(key.W) { char.Delta.ShiftY(-char.Speed.Y()) } - if oak.IsDown(key.AStr) { + if oak.IsDown(key.A) { char.Delta.ShiftX(-char.Speed.X()) } - if oak.IsDown(key.SStr) { + if oak.IsDown(key.S) { char.Delta.ShiftY(char.Speed.Y()) } - if oak.IsDown(key.DStr) { + if oak.IsDown(key.D) { char.Delta.ShiftX(char.Speed.X()) } char.ShiftPos(char.Delta.X(), char.Delta.Y()) diff --git a/examples/top-down-shooter-tutorial/4-sprites/sprites.go b/examples/top-down-shooter-tutorial/4-sprites/sprites.go index f0f41ff5..ee8ea146 100644 --- a/examples/top-down-shooter-tutorial/4-sprites/sprites.go +++ b/examples/top-down-shooter-tutorial/4-sprites/sprites.go @@ -70,16 +70,16 @@ func main() { event.Bind(ctx, event.Enter, char, func(char *entities.Moving, ev event.EnterPayload) event.Response { char.Delta.Zero() - if oak.IsDown(key.WStr) { + if oak.IsDown(key.W) { char.Delta.ShiftY(-char.Speed.Y()) } - if oak.IsDown(key.AStr) { + if oak.IsDown(key.A) { char.Delta.ShiftX(-char.Speed.X()) } - if oak.IsDown(key.SStr) { + if oak.IsDown(key.S) { char.Delta.ShiftY(char.Speed.Y()) } - if oak.IsDown(key.DStr) { + if oak.IsDown(key.D) { char.Delta.ShiftX(char.Speed.X()) } char.ShiftPos(char.Delta.X(), char.Delta.Y()) diff --git a/examples/top-down-shooter-tutorial/5-viewport/viewport.go b/examples/top-down-shooter-tutorial/5-viewport/viewport.go index 5adae2db..5126c98e 100644 --- a/examples/top-down-shooter-tutorial/5-viewport/viewport.go +++ b/examples/top-down-shooter-tutorial/5-viewport/viewport.go @@ -29,7 +29,6 @@ const ( ) var ( - playerAlive = true // Vectors are backed by pointers, // so despite this not being a pointer, // this does update according to the player's @@ -37,6 +36,8 @@ var ( // the player's position vector playerPos physics.Vector + destroy = event.RegisterEvent[event.NoPayload]() + sheet [][]*render.Sprite ) @@ -49,7 +50,6 @@ func main() { oak.AddScene("tds", scene.Scene{Start: func(ctx *scene.Context) { // Initialization - playerAlive = true sprites, err := render.GetSheet("sheet.png") dlog.ErrorCheck(err) sheet = sprites.ToSprites() @@ -75,8 +75,7 @@ func main() { playerPos = char.Point.Vector render.Draw(char.R, 2) - char.Bind(event.Enter, func(id event.CallerID, _ interface{}) int { - char := event.GetEntity(id).(*entities.Moving) + event.Bind(ctx, event.Enter, char, func(char *entities.Moving, ev event.EnterPayload) event.Response { char.Delta.Zero() if oak.IsDown(key.W) { char.Delta.ShiftY(-char.Speed.Y()) @@ -108,7 +107,7 @@ func main() { ) hit := char.HitLabel(Enemy) if hit != nil { - playerAlive = false + ctx.Window.NextScene() } // update animation @@ -126,9 +125,7 @@ func main() { return 0 }) - char.Bind(mouse.Press, func(id event.CallerID, me interface{}) int { - char := event.GetEntity(id).(*entities.Moving) - mevent := me.(*mouse.Event) + event.Bind(ctx, mouse.Press, char, func(char *entities.Moving, mevent *mouse.Event) event.Response { x := char.X() + char.W/2 y := char.Y() + char.H/2 vp := ctx.Window.Viewport() @@ -137,7 +134,7 @@ func main() { ray.DefaultCaster.CastDistance = floatgeom.Point2{x, y}.Sub(floatgeom.Point2{mx, my}).Magnitude() hits := ray.CastTo(floatgeom.Point2{x, y}, floatgeom.Point2{mx, my}) for _, hit := range hits { - hit.Zone.CID.Trigger("Destroy", nil) + event.TriggerForCallerOn(ctx, hit.Zone.CID, destroy, event.NoPayload{}) } ctx.DrawForTime( render.NewLine(x, y, mx, my, color.RGBA{0, 128, 0, 128}), @@ -147,10 +144,9 @@ func main() { }) // Create enemies periodically - event.GlobalBind(event.Enter, func(_ event.CallerID, frames interface{}) int { - enterPayload := frames.(event.EnterPayload) + event.GlobalBind(ctx, event.Enter, func(enterPayload event.EnterPayload) event.Response { if enterPayload.FramesElapsed%EnemyRefresh == 0 { - go NewEnemy() + go NewEnemy(ctx) } return 0 }) @@ -166,8 +162,6 @@ func main() { } } - }, Loop: func() bool { - return playerAlive }}) oak.Init("tds", func(c oak.Config) (oak.Config, error) { @@ -184,7 +178,7 @@ const ( ) // NewEnemy creates an enemy for a top down shooter -func NewEnemy() { +func NewEnemy(ctx *scene.Context) { x, y := enemyPos() enemyFrame := sheet[0][0].Copy() @@ -200,8 +194,7 @@ func NewEnemy() { enemy.UpdateLabel(Enemy) - enemy.Bind(event.Enter, func(id event.CallerID, _ interface{}) int { - enemy := event.GetEntity(id).(*entities.Solid) + event.Bind(ctx, event.Enter, enemy, func(e *entities.Solid, ev event.EnterPayload) event.Response { // move towards the player x, y := enemy.GetPos() pt := floatgeom.Point2{x, y} @@ -223,9 +216,8 @@ func NewEnemy() { return 0 }) - enemy.Bind("Destroy", func(id event.CallerID, _ interface{}) int { - enemy := event.GetEntity(id).(*entities.Solid) - enemy.Destroy() + event.Bind(ctx, destroy, enemy, func(e *entities.Solid, nothing event.NoPayload) event.Response { + e.Destroy() return 0 }) } diff --git a/examples/top-down-shooter-tutorial/6-performance/performance.go b/examples/top-down-shooter-tutorial/6-performance/performance.go index 112b89cc..3d2afd77 100644 --- a/examples/top-down-shooter-tutorial/6-performance/performance.go +++ b/examples/top-down-shooter-tutorial/6-performance/performance.go @@ -28,7 +28,6 @@ const ( ) var ( - playerAlive = true // Vectors are backed by pointers, // so despite this not being a pointer, // this does update according to the player's @@ -36,6 +35,8 @@ var ( // the player's position vector playerPos physics.Vector + destroy = event.RegisterEvent[event.NoPayload]() + sheet [][]*render.Sprite ) @@ -52,7 +53,6 @@ func main() { // render.Draw(debugtools.NewThickRTree(ctx, collision.DefaultTree, 5), 2, 3) // Initialization - playerAlive = true sprites, err := render.GetSheet("sheet.png") dlog.ErrorCheck(err) sheet = sprites.ToSprites() @@ -81,21 +81,18 @@ func main() { float64(ctx.Window.Height()) / 2, } - char.Bind(event.Enter, func(id event.CallerID, payload interface{}) int { - char := event.GetEntity(id).(*entities.Moving) - - enterPayload := payload.(event.EnterPayload) + event.Bind(ctx, event.Enter, char, func(char *entities.Moving, ev event.EnterPayload) event.Response { if oak.IsDown(key.W) { - char.Delta.ShiftY(-char.Speed.Y() * enterPayload.TickPercent) + char.Delta.ShiftY(-char.Speed.Y() * ev.TickPercent) } if oak.IsDown(key.A) { - char.Delta.ShiftX(-char.Speed.X() * enterPayload.TickPercent) + char.Delta.ShiftX(-char.Speed.X() * ev.TickPercent) } if oak.IsDown(key.S) { - char.Delta.ShiftY(char.Speed.Y() * enterPayload.TickPercent) + char.Delta.ShiftY(char.Speed.Y() * ev.TickPercent) } if oak.IsDown(key.D) { - char.Delta.ShiftX(char.Speed.X() * enterPayload.TickPercent) + char.Delta.ShiftX(char.Speed.X() * ev.TickPercent) } ctx.Window.(*oak.Window).DoBetweenDraws(func() { char.ShiftPos(char.Delta.X(), char.Delta.Y()) @@ -119,7 +116,7 @@ func main() { hit := char.HitLabel(Enemy) if hit != nil { - playerAlive = false + ctx.Window.NextScene() } // update animation @@ -137,9 +134,7 @@ func main() { return 0 }) - char.Bind(mouse.Press, func(id event.CallerID, me interface{}) int { - char := event.GetEntity(id).(*entities.Moving) - mevent := me.(*mouse.Event) + event.Bind(ctx, mouse.Press, char, func(char *entities.Moving, mevent *mouse.Event) event.Response { x := char.X() + char.W/2 y := char.Y() + char.H/2 vp := ctx.Window.Viewport() @@ -148,7 +143,7 @@ func main() { ray.DefaultCaster.CastDistance = floatgeom.Point2{x, y}.Sub(floatgeom.Point2{mx, my}).Magnitude() hits := ray.CastTo(floatgeom.Point2{x, y}, floatgeom.Point2{mx, my}) for _, hit := range hits { - hit.Zone.CID.Trigger("Destroy", nil) + event.TriggerForCallerOn(ctx, hit.Zone.CID, destroy, event.NoPayload{}) } ctx.DrawForTime( render.NewLine(x, y, mx, my, color.RGBA{0, 128, 0, 128}), @@ -158,10 +153,9 @@ func main() { }) // Create enemies periodically - event.GlobalBind(event.Enter, func(_ event.CallerID, frames interface{}) int { - enterPayload := frames.(event.EnterPayload) + event.GlobalBind(ctx, event.Enter, func(enterPayload event.EnterPayload) event.Response { if enterPayload.FramesElapsed%EnemyRefresh == 0 { - go NewEnemy() + go NewEnemy(ctx) } return 0 }) @@ -177,8 +171,6 @@ func main() { } } - }, Loop: func() bool { - return playerAlive }}) render.SetDrawStack( @@ -206,7 +198,7 @@ const ( ) // NewEnemy creates an enemy for a top down shooter -func NewEnemy() { +func NewEnemy(ctx *scene.Context) { x, y := enemyPos() enemyFrame := sheet[0][0].Copy() @@ -222,14 +214,12 @@ func NewEnemy() { enemy.UpdateLabel(Enemy) - enemy.Bind(event.Enter, func(id event.CallerID, payload interface{}) int { - enemy := event.GetEntity(id).(*entities.Solid) - enterPayload := payload.(event.EnterPayload) + event.Bind(ctx, event.Enter, enemy, func(e *entities.Solid, ev event.EnterPayload) event.Response { // move towards the player x, y := enemy.GetPos() pt := floatgeom.Point2{x, y} pt2 := floatgeom.Point2{playerPos.X(), playerPos.Y()} - delta := pt2.Sub(pt).Normalize().MulConst(EnemySpeed * enterPayload.TickPercent) + delta := pt2.Sub(pt).Normalize().MulConst(EnemySpeed * ev.TickPercent) enemy.ShiftPos(delta.X(), delta.Y()) // update animation @@ -246,9 +236,8 @@ func NewEnemy() { return 0 }) - enemy.Bind("Destroy", func(id event.CallerID, _ interface{}) int { - enemy := event.GetEntity(id).(*entities.Solid) - enemy.Destroy() + event.Bind(ctx, destroy, enemy, func(e *entities.Solid, nothing event.NoPayload) event.Response { + e.Destroy() return 0 }) } From 4dfa4ce4d5f1b9a012732346f89062a7523a4f95 Mon Sep 17 00:00:00 2001 From: implausiblyfun Date: Sat, 2 Apr 2022 12:53:35 -0400 Subject: [PATCH 038/146] examples/slides: Update for new event format --- examples/slide/show/slide.go | 36 ++++++++++++++++-------- examples/slide/show/static/basicSlide.go | 26 ++++++++++------- 2 files changed, 40 insertions(+), 22 deletions(-) diff --git a/examples/slide/show/slide.go b/examples/slide/show/slide.go index 90d9af17..2fdade72 100644 --- a/examples/slide/show/slide.go +++ b/examples/slide/show/slide.go @@ -9,12 +9,13 @@ import ( oak "github.com/oakmound/oak/v3" "github.com/oakmound/oak/v3/debugstream" "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v3/key" "github.com/oakmound/oak/v3/render" "github.com/oakmound/oak/v3/scene" ) type Slide interface { - Init() + Init(*scene.Context) Continue() bool Prev() bool Transition() scene.Transition @@ -59,14 +60,19 @@ func Start(width, height int, slides ...Slide) { i := i sl := sl oak.AddScene("slide"+strconv.Itoa(i), scene.Scene{ - Start: func(*scene.Context) { sl.Init() }, - Loop: func() bool { - cont := sl.Continue() && !skip - // This should be disable-able - if !cont { + Start: func(ctx *scene.Context) { + + sl.Init(ctx) + event.GlobalBind(ctx, event.Enter, func(event.EnterPayload) event.Response { + cont := sl.Continue() && !skip oak.SetLoadingRenderable(render.NewSprite(0, 0, oak.ScreenShot())) - } - return cont + if !cont { + ctx.Window.NextScene() + return event.ResponseUnbindThisBinding + } + return 0 + }) + }, End: func() (string, *scene.Result) { fmt.Println("ending") @@ -75,6 +81,7 @@ func Start(width, height int, slides ...Slide) { return "slide" + skipTo, slideResult(sl) } if sl.Prev() { + fmt.Println("Prev slide requested from", i) if i > 0 { return "slide" + strconv.Itoa(i-1), slideResult(sl) } @@ -102,13 +109,18 @@ func Start(width, height int, slides ...Slide) { float64(ctx.Window.Height()-50), ), ) - event.GlobalBind("KeyDownSpacebar", func(event.CallerID, interface{}) int { + event.GlobalBind(ctx, key.Down(key.Spacebar), func(key.Event) event.Response { reset = true return 0 }) - }, - Loop: func() bool { - return !reset + + event.GlobalBind(ctx, event.Enter, func(event.EnterPayload) event.Response { + if !reset { + ctx.Window.NextScene() + return event.ResponseUnbindThisBinding + } + return 0 + }) }, End: func() (string, *scene.Result) { oak.SetColorBackground(oldBackground) diff --git a/examples/slide/show/static/basicSlide.go b/examples/slide/show/static/basicSlide.go index 29c930ba..3b2d01ce 100644 --- a/examples/slide/show/static/basicSlide.go +++ b/examples/slide/show/static/basicSlide.go @@ -6,39 +6,45 @@ import ( oak "github.com/oakmound/oak/v3" "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v3/key" + "github.com/oakmound/oak/v3/mouse" "github.com/oakmound/oak/v3/render" "github.com/oakmound/oak/v3/scene" ) type Slide struct { Rs *render.CompositeR - ContinueKey string - PrevKey string + ContinueKey key.Code + PrevKey key.Code transition scene.Transition cont bool prev bool OnClick func() } -func (ss *Slide) Init() { +func (ss *Slide) Init(ctx *scene.Context) { oak.SetFullScreen(true) render.Draw(ss.Rs, 0) - event.GlobalBind("KeyUp"+ss.ContinueKey, func(event.CallerID, interface{}) int { + + event.GlobalBind(ctx, key.Up(ss.ContinueKey), func(key.Event) event.Response { + fmt.Println("continue key pressed") ss.cont = true return 0 }) - event.GlobalBind("KeyUp"+ss.PrevKey, func(event.CallerID, interface{}) int { + + event.GlobalBind(ctx, key.Up(ss.PrevKey), func(key.Event) event.Response { fmt.Println("prev key pressed") ss.prev = true return 0 }) - event.GlobalBind("KeyUpEscape", func(event.CallerID, interface{}) int { + + event.GlobalBind(ctx, key.Up(key.Escape), func(key.Event) event.Response { os.Exit(0) return 0 }) if ss.OnClick != nil { - event.GlobalBind("MousePress", func(event.CallerID, interface{}) int { + event.GlobalBind(ctx, mouse.Press, func(*mouse.Event) event.Response { ss.OnClick() return 0 }) @@ -69,8 +75,8 @@ func (ss *Slide) Transition() scene.Transition { func NewSlide(rs ...render.Renderable) *Slide { return &Slide{ Rs: render.NewCompositeR(rs...), - ContinueKey: "RightArrow", - PrevKey: "LeftArrow", + ContinueKey: key.RightArrow, + PrevKey: key.LeftArrow, } } @@ -88,7 +94,7 @@ func Background(r render.Modifiable) SlideOption { } } -func ControlKeys(cont, prev string) SlideOption { +func ControlKeys(cont, prev key.Code) SlideOption { return func(s *Slide) *Slide { s.ContinueKey = cont s.PrevKey = prev From 8ed533888613faa3d8015b087fec23e9389dde4d Mon Sep 17 00:00:00 2001 From: implausiblyfun Date: Sat, 2 Apr 2022 12:53:54 -0400 Subject: [PATCH 039/146] .github: Update workflows for go 1.18 --- .github/workflows/go.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 8059106a..a7d1071f 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -6,10 +6,10 @@ jobs: runs-on: [self-hosted, linux, ARM64] steps: - - name: Set up Go 1.17 + - name: Set up Go 1.18 uses: actions/setup-go@v1 with: - go-version: 1.17 + go-version: 1.18 id: go - name: Check out code into the Go module directory @@ -27,10 +27,10 @@ jobs: runs-on: ubuntu-latest steps: - - name: Set up Go 1.17 + - name: Set up Go 1.18 uses: actions/setup-go@v1 with: - go-version: 1.17 + go-version: 1.18 id: go - name: Check out code into the Go module directory From 8c9ca67b57554dd1324a109df12324f073c43e94 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 2 Apr 2022 11:56:33 -0500 Subject: [PATCH 040/146] examples: remove event.NoPayload usages --- examples/top-down-shooter-tutorial/3-enemies/enemies.go | 6 +++--- examples/top-down-shooter-tutorial/4-sprites/sprites.go | 6 +++--- examples/top-down-shooter-tutorial/5-viewport/viewport.go | 6 +++--- .../top-down-shooter-tutorial/6-performance/performance.go | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/examples/top-down-shooter-tutorial/3-enemies/enemies.go b/examples/top-down-shooter-tutorial/3-enemies/enemies.go index 5117255d..f34b0599 100644 --- a/examples/top-down-shooter-tutorial/3-enemies/enemies.go +++ b/examples/top-down-shooter-tutorial/3-enemies/enemies.go @@ -32,7 +32,7 @@ var ( // the player's position vector playerPos physics.Vector - destroy = event.RegisterEvent[event.NoPayload]() + destroy = event.RegisterEvent[struct{}]() ) func main() { @@ -74,7 +74,7 @@ func main() { ray.DefaultCaster.CastDistance = floatgeom.Point2{x, y}.Sub(floatgeom.Point2{mevent.X(), mevent.Y()}).Magnitude() hits := ray.CastTo(floatgeom.Point2{x, y}, floatgeom.Point2{mevent.X(), mevent.Y()}) for _, hit := range hits { - event.TriggerForCallerOn(ctx, hit.Zone.CID, destroy, event.NoPayload{}) + event.TriggerForCallerOn(ctx, hit.Zone.CID, destroy, struct{}{}) } ctx.DrawForTime( render.NewLine(x, y, mevent.X(), mevent.Y(), color.RGBA{0, 128, 0, 128}), @@ -120,7 +120,7 @@ func NewEnemy(ctx *scene.Context) { e.ShiftPos(delta.X(), delta.Y()) return 0 }) - event.Bind(ctx, destroy, enemy, func(e *entities.Solid, nothing event.NoPayload) event.Response { + event.Bind(ctx, destroy, enemy, func(e *entities.Solid, nothing struct{}) event.Response { e.Destroy() return 0 }) diff --git a/examples/top-down-shooter-tutorial/4-sprites/sprites.go b/examples/top-down-shooter-tutorial/4-sprites/sprites.go index ee8ea146..933701ed 100644 --- a/examples/top-down-shooter-tutorial/4-sprites/sprites.go +++ b/examples/top-down-shooter-tutorial/4-sprites/sprites.go @@ -36,7 +36,7 @@ var ( // the player's position vector playerPos physics.Vector - destroy = event.RegisterEvent[event.NoPayload]() + destroy = event.RegisterEvent[struct{}]() sheet [][]*render.Sprite ) @@ -109,7 +109,7 @@ func main() { ray.DefaultCaster.CastDistance = floatgeom.Point2{x, y}.Sub(floatgeom.Point2{mevent.X(), mevent.Y()}).Magnitude() hits := ray.CastTo(floatgeom.Point2{x, y}, floatgeom.Point2{mevent.X(), mevent.Y()}) for _, hit := range hits { - event.TriggerForCallerOn(ctx, hit.Zone.CID, destroy, event.NoPayload{}) + event.TriggerForCallerOn(ctx, hit.Zone.CID, destroy, struct{}{}) } ctx.DrawForTime( render.NewLine(x, y, mevent.X(), mevent.Y(), color.RGBA{0, 128, 0, 128}), @@ -195,7 +195,7 @@ func NewEnemy(ctx *scene.Context) { return 0 }) - event.Bind(ctx, destroy, enemy, func(e *entities.Solid, nothing event.NoPayload) event.Response { + event.Bind(ctx, destroy, enemy, func(e *entities.Solid, nothing struct{}) event.Response { e.Destroy() return 0 }) diff --git a/examples/top-down-shooter-tutorial/5-viewport/viewport.go b/examples/top-down-shooter-tutorial/5-viewport/viewport.go index 5126c98e..4900b62c 100644 --- a/examples/top-down-shooter-tutorial/5-viewport/viewport.go +++ b/examples/top-down-shooter-tutorial/5-viewport/viewport.go @@ -36,7 +36,7 @@ var ( // the player's position vector playerPos physics.Vector - destroy = event.RegisterEvent[event.NoPayload]() + destroy = event.RegisterEvent[struct{}]() sheet [][]*render.Sprite ) @@ -134,7 +134,7 @@ func main() { ray.DefaultCaster.CastDistance = floatgeom.Point2{x, y}.Sub(floatgeom.Point2{mx, my}).Magnitude() hits := ray.CastTo(floatgeom.Point2{x, y}, floatgeom.Point2{mx, my}) for _, hit := range hits { - event.TriggerForCallerOn(ctx, hit.Zone.CID, destroy, event.NoPayload{}) + event.TriggerForCallerOn(ctx, hit.Zone.CID, destroy, struct{}{}) } ctx.DrawForTime( render.NewLine(x, y, mx, my, color.RGBA{0, 128, 0, 128}), @@ -216,7 +216,7 @@ func NewEnemy(ctx *scene.Context) { return 0 }) - event.Bind(ctx, destroy, enemy, func(e *entities.Solid, nothing event.NoPayload) event.Response { + event.Bind(ctx, destroy, enemy, func(e *entities.Solid, nothing struct{}) event.Response { e.Destroy() return 0 }) diff --git a/examples/top-down-shooter-tutorial/6-performance/performance.go b/examples/top-down-shooter-tutorial/6-performance/performance.go index 3d2afd77..dfe1284e 100644 --- a/examples/top-down-shooter-tutorial/6-performance/performance.go +++ b/examples/top-down-shooter-tutorial/6-performance/performance.go @@ -35,7 +35,7 @@ var ( // the player's position vector playerPos physics.Vector - destroy = event.RegisterEvent[event.NoPayload]() + destroy = event.RegisterEvent[struct{}]() sheet [][]*render.Sprite ) @@ -143,7 +143,7 @@ func main() { ray.DefaultCaster.CastDistance = floatgeom.Point2{x, y}.Sub(floatgeom.Point2{mx, my}).Magnitude() hits := ray.CastTo(floatgeom.Point2{x, y}, floatgeom.Point2{mx, my}) for _, hit := range hits { - event.TriggerForCallerOn(ctx, hit.Zone.CID, destroy, event.NoPayload{}) + event.TriggerForCallerOn(ctx, hit.Zone.CID, destroy, struct{}{}) } ctx.DrawForTime( render.NewLine(x, y, mx, my, color.RGBA{0, 128, 0, 128}), @@ -236,7 +236,7 @@ func NewEnemy(ctx *scene.Context) { return 0 }) - event.Bind(ctx, destroy, enemy, func(e *entities.Solid, nothing event.NoPayload) event.Response { + event.Bind(ctx, destroy, enemy, func(e *entities.Solid, nothing struct{}) event.Response { e.Destroy() return 0 }) From 8dd2b5958a954a0fda09e9e342c9e434ed2f51df Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 2 Apr 2022 12:06:07 -0500 Subject: [PATCH 041/146] event: add SetCID to Caller, stop returning CIDs from Register --- event/bind_test.go | 23 ++++++++++++----------- event/bus_test.go | 5 ++--- event/caller.go | 9 +++++++-- event/caller_test.go | 31 ++++++++++++++++++------------- event/trigger_test.go | 22 +++++++++++----------- 5 files changed, 50 insertions(+), 40 deletions(-) diff --git a/event/bind_test.go b/event/bind_test.go index 4fe1d942..073bf065 100644 --- a/event/bind_test.go +++ b/event/bind_test.go @@ -56,10 +56,10 @@ func TestBus_Unbind(t *testing.T) { func TestBind(t *testing.T) { t.Run("SuperficialCoverage", func(t *testing.T) { b := event.NewBus(event.NewCallerMap()) - var cid event.CallerID - id := b.GetCallerMap().Register(cid) + cid := randomCallerID() + b.GetCallerMap().Register(cid) var calls int32 - b1 := event.Bind(b, event.Enter, id, func(event.CallerID, event.EnterPayload) event.Response { + b1 := event.Bind(b, event.Enter, cid, func(*event.CallerID, event.EnterPayload) event.Response { atomic.AddInt32(&calls, 1) return 0 }) @@ -90,30 +90,31 @@ func TestGlobalBind(t *testing.T) { func TestBus_UnbindAllFrom(t *testing.T) { t.Run("Basic", func(t *testing.T) { b := event.NewBus(event.NewCallerMap()) - var cid event.CallerID - id := b.GetCallerMap().Register(cid) + var cid = new(event.CallerID) + b.GetCallerMap().Register(cid) var calls int32 for i := 0; i < 5; i++ { - b1 := event.Bind(b, event.Enter, id, func(event.CallerID, event.EnterPayload) event.Response { + b1 := event.Bind(b, event.Enter, cid, func(*event.CallerID, event.EnterPayload) event.Response { atomic.AddInt32(&calls, 1) return 0 }) <-b1.Bound } - id2 := b.GetCallerMap().Register(cid) - b1 := event.Bind(b, event.Enter, id2, func(event.CallerID, event.EnterPayload) event.Response { + oldID := *cid + b.GetCallerMap().Register(cid) + b1 := event.Bind(b, event.Enter, cid, func(*event.CallerID, event.EnterPayload) event.Response { atomic.AddInt32(&calls, 1) return 0 }) <-b1.Bound <-event.TriggerOn(b, event.Enter, event.EnterPayload{}) if calls != 6 { - t.Fatal(expectedError("calls", 1, calls)) + t.Fatal(expectedError("calls", 6, calls)) } - <-b.UnbindAllFrom(id) + <-b.UnbindAllFrom(oldID) <-event.TriggerOn(b, event.Enter, event.EnterPayload{}) if calls != 7 { - t.Fatal(expectedError("calls", 1, calls)) + t.Fatal(expectedError("calls", 7, calls)) } }) } diff --git a/event/bus_test.go b/event/bus_test.go index 8b227ddb..7993ba69 100644 --- a/event/bus_test.go +++ b/event/bus_test.go @@ -1,7 +1,6 @@ package event_test import ( - "math/rand" "sync/atomic" "testing" "time" @@ -28,11 +27,11 @@ func TestBus_SetCallerMap(t *testing.T) { t.Run("Basic", func(t *testing.T) { cm1 := event.NewCallerMap() b := event.NewBus(cm1) - c1 := event.CallerID(rand.Intn(10000)) + c1 := randomCallerID() b.GetCallerMap().Register(c1) cm2 := event.NewCallerMap() b.SetCallerMap(cm2) - if b.GetCallerMap().HasEntity(c1) { + if b.GetCallerMap().HasEntity(c1.CID()) { t.Fatal("event had old entity after changed caller map") } }) diff --git a/event/caller.go b/event/caller.go index 880fd1a7..1ab09bcd 100644 --- a/event/caller.go +++ b/event/caller.go @@ -12,6 +12,10 @@ func (c CallerID) CID() CallerID { return c } +func (c *CallerID) SetCID(c2 CallerID) { + *c = c2 +} + // Global is the CallerID associated with global bindings. A caller must not be assigned // this ID. Global may be used to manually create bindings scoped to no callers, but the GlobalBind function // should be preferred when possible for type safety. @@ -19,6 +23,7 @@ const Global CallerID = 0 type Caller interface { CID() CallerID + SetCID(CallerID) } // A CallerMap tracks CallerID mappings to Entities. @@ -41,7 +46,7 @@ func NewCallerMap() *CallerMap { // NextID finds the next available caller id // and returns it, after adding the given entity to // the caller map. -func (cm *CallerMap) Register(e Caller) CallerID { +func (cm *CallerMap) Register(e Caller) { cm.callersLock.Lock() defer cm.callersLock.Unlock() // Q: Why not use atomic? @@ -58,7 +63,7 @@ func (cm *CallerMap) Register(e Caller) CallerID { // Increment before assigning to preserve Global == caller 0 cm.highestID++ cm.callers[cm.highestID] = e - return cm.highestID + e.SetCID(cm.highestID) } // Get returns the entity corresponding to the given ID within diff --git a/event/caller_test.go b/event/caller_test.go index 10707660..6ca3b8e6 100644 --- a/event/caller_test.go +++ b/event/caller_test.go @@ -25,42 +25,47 @@ func TestNewCallerMap(t *testing.T) { }) } +func randomCallerID() *event.CallerID { + c1 := event.CallerID(rand.Intn(10000)) + return &c1 +} + func TestCallerMap_Register(t *testing.T) { t.Run("Basic", func(t *testing.T) { m := event.NewCallerMap() - c1 := event.CallerID(rand.Intn(10000)) - id := m.Register(c1) - c2 := m.GetEntity(id) + c1 := randomCallerID() + m.Register(c1) + c2 := m.GetEntity(c1.CID()) if c2 != c1 { t.Fatalf("unable to retrieve registered caller") } - if !m.HasEntity(id) { + if !m.HasEntity(c1.CID()) { t.Fatalf("caller map does not have registered caller") } }) t.Run("Remove", func(t *testing.T) { m := event.NewCallerMap() - c1 := event.CallerID(rand.Intn(10000)) - id := m.Register(c1) - m.RemoveEntity(id) - c3 := m.GetEntity(id) + c1 := randomCallerID() + m.Register(c1) + m.RemoveEntity(c1.CID()) + c3 := m.GetEntity(c1.CID()) if c3 != nil { t.Fatalf("get entity had registered caller after remove") } - if m.HasEntity(id) { + if m.HasEntity(c1.CID()) { t.Fatalf("caller map has registered caller after remove") } }) t.Run("Clear", func(t *testing.T) { m := event.NewCallerMap() - c1 := event.CallerID(rand.Intn(10000)) - id := m.Register(c1) + c1 := randomCallerID() + m.Register(c1) m.Clear() - c3 := m.GetEntity(id) + c3 := m.GetEntity(c1.CID()) if c3 != nil { t.Fatalf("get entity had registered caller after clear") } - if m.HasEntity(id) { + if m.HasEntity(c1.CID()) { t.Fatalf("caller map has registered caller after clear") } }) diff --git a/event/trigger_test.go b/event/trigger_test.go index 2dae1215..4b52c2ff 100644 --- a/event/trigger_test.go +++ b/event/trigger_test.go @@ -87,14 +87,14 @@ func TestBus_TriggerForCaller(t *testing.T) { }) t.Run("WithValidCallerID", func(t *testing.T) { b := event.NewBus(event.NewCallerMap()) - var cid event.CallerID - callerID := b.GetCallerMap().Register(cid) + var cid = new(event.CallerID) + b.GetCallerMap().Register(cid) id := event.UnsafeEventID(rand.Intn(100000)) errs := make(chan error) - binding := b.UnsafeBind(id, callerID, func(ci event.CallerID, h event.Handler, i interface{}) event.Response { + binding := b.UnsafeBind(id, *cid, func(ci event.CallerID, h event.Handler, i interface{}) event.Response { defer close(errs) - if ci != callerID { - errs <- expectedError("callerID", callerID, ci) + if ci != *cid { + errs <- expectedError("callerID", *cid, ci) } if h != b { errs <- expectedError("bus", b, h) @@ -110,7 +110,7 @@ func TestBus_TriggerForCaller(t *testing.T) { t.Fatal("timeout waiting for bind to close channel") case <-binding.Bound: } - ch := b.TriggerForCaller(callerID, id, nil) + ch := b.TriggerForCaller(*cid, id, nil) select { case <-time.After(50 * time.Millisecond): t.Fatal("timeout waiting for trigger to close channel") @@ -195,14 +195,14 @@ func TestBus_Trigger(t *testing.T) { }) t.Run("WithValidCallerID", func(t *testing.T) { b := event.NewBus(event.NewCallerMap()) - var cid event.CallerID - callerID := b.GetCallerMap().Register(cid) + var cid = new(event.CallerID) + b.GetCallerMap().Register(cid) id := event.UnsafeEventID(rand.Intn(100000)) errs := make(chan error) - binding := b.UnsafeBind(id, event.CallerID(callerID), func(ci event.CallerID, h event.Handler, i interface{}) event.Response { + binding := b.UnsafeBind(id, *cid, func(ci event.CallerID, h event.Handler, i interface{}) event.Response { defer close(errs) - if ci != callerID { - errs <- expectedError("callerID", callerID, ci) + if ci != *cid { + errs <- expectedError("callerID", *cid, ci) } if h != b { errs <- expectedError("bus", b, h) From 419b01643c05b96670eeb9bfcc828d6075ebd1c1 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 2 Apr 2022 13:10:41 -0500 Subject: [PATCH 042/146] Revert "event: add SetCID to Caller, stop returning CIDs from Register" This reverts commit 8dd2b5958a954a0fda09e9e342c9e434ed2f51df. --- event/bind_test.go | 23 +++++++++++------------ event/bus_test.go | 5 +++-- event/caller.go | 9 ++------- event/caller_test.go | 31 +++++++++++++------------------ event/trigger_test.go | 22 +++++++++++----------- 5 files changed, 40 insertions(+), 50 deletions(-) diff --git a/event/bind_test.go b/event/bind_test.go index 073bf065..4fe1d942 100644 --- a/event/bind_test.go +++ b/event/bind_test.go @@ -56,10 +56,10 @@ func TestBus_Unbind(t *testing.T) { func TestBind(t *testing.T) { t.Run("SuperficialCoverage", func(t *testing.T) { b := event.NewBus(event.NewCallerMap()) - cid := randomCallerID() - b.GetCallerMap().Register(cid) + var cid event.CallerID + id := b.GetCallerMap().Register(cid) var calls int32 - b1 := event.Bind(b, event.Enter, cid, func(*event.CallerID, event.EnterPayload) event.Response { + b1 := event.Bind(b, event.Enter, id, func(event.CallerID, event.EnterPayload) event.Response { atomic.AddInt32(&calls, 1) return 0 }) @@ -90,31 +90,30 @@ func TestGlobalBind(t *testing.T) { func TestBus_UnbindAllFrom(t *testing.T) { t.Run("Basic", func(t *testing.T) { b := event.NewBus(event.NewCallerMap()) - var cid = new(event.CallerID) - b.GetCallerMap().Register(cid) + var cid event.CallerID + id := b.GetCallerMap().Register(cid) var calls int32 for i := 0; i < 5; i++ { - b1 := event.Bind(b, event.Enter, cid, func(*event.CallerID, event.EnterPayload) event.Response { + b1 := event.Bind(b, event.Enter, id, func(event.CallerID, event.EnterPayload) event.Response { atomic.AddInt32(&calls, 1) return 0 }) <-b1.Bound } - oldID := *cid - b.GetCallerMap().Register(cid) - b1 := event.Bind(b, event.Enter, cid, func(*event.CallerID, event.EnterPayload) event.Response { + id2 := b.GetCallerMap().Register(cid) + b1 := event.Bind(b, event.Enter, id2, func(event.CallerID, event.EnterPayload) event.Response { atomic.AddInt32(&calls, 1) return 0 }) <-b1.Bound <-event.TriggerOn(b, event.Enter, event.EnterPayload{}) if calls != 6 { - t.Fatal(expectedError("calls", 6, calls)) + t.Fatal(expectedError("calls", 1, calls)) } - <-b.UnbindAllFrom(oldID) + <-b.UnbindAllFrom(id) <-event.TriggerOn(b, event.Enter, event.EnterPayload{}) if calls != 7 { - t.Fatal(expectedError("calls", 7, calls)) + t.Fatal(expectedError("calls", 1, calls)) } }) } diff --git a/event/bus_test.go b/event/bus_test.go index 7993ba69..8b227ddb 100644 --- a/event/bus_test.go +++ b/event/bus_test.go @@ -1,6 +1,7 @@ package event_test import ( + "math/rand" "sync/atomic" "testing" "time" @@ -27,11 +28,11 @@ func TestBus_SetCallerMap(t *testing.T) { t.Run("Basic", func(t *testing.T) { cm1 := event.NewCallerMap() b := event.NewBus(cm1) - c1 := randomCallerID() + c1 := event.CallerID(rand.Intn(10000)) b.GetCallerMap().Register(c1) cm2 := event.NewCallerMap() b.SetCallerMap(cm2) - if b.GetCallerMap().HasEntity(c1.CID()) { + if b.GetCallerMap().HasEntity(c1) { t.Fatal("event had old entity after changed caller map") } }) diff --git a/event/caller.go b/event/caller.go index 1ab09bcd..880fd1a7 100644 --- a/event/caller.go +++ b/event/caller.go @@ -12,10 +12,6 @@ func (c CallerID) CID() CallerID { return c } -func (c *CallerID) SetCID(c2 CallerID) { - *c = c2 -} - // Global is the CallerID associated with global bindings. A caller must not be assigned // this ID. Global may be used to manually create bindings scoped to no callers, but the GlobalBind function // should be preferred when possible for type safety. @@ -23,7 +19,6 @@ const Global CallerID = 0 type Caller interface { CID() CallerID - SetCID(CallerID) } // A CallerMap tracks CallerID mappings to Entities. @@ -46,7 +41,7 @@ func NewCallerMap() *CallerMap { // NextID finds the next available caller id // and returns it, after adding the given entity to // the caller map. -func (cm *CallerMap) Register(e Caller) { +func (cm *CallerMap) Register(e Caller) CallerID { cm.callersLock.Lock() defer cm.callersLock.Unlock() // Q: Why not use atomic? @@ -63,7 +58,7 @@ func (cm *CallerMap) Register(e Caller) { // Increment before assigning to preserve Global == caller 0 cm.highestID++ cm.callers[cm.highestID] = e - e.SetCID(cm.highestID) + return cm.highestID } // Get returns the entity corresponding to the given ID within diff --git a/event/caller_test.go b/event/caller_test.go index 6ca3b8e6..10707660 100644 --- a/event/caller_test.go +++ b/event/caller_test.go @@ -25,47 +25,42 @@ func TestNewCallerMap(t *testing.T) { }) } -func randomCallerID() *event.CallerID { - c1 := event.CallerID(rand.Intn(10000)) - return &c1 -} - func TestCallerMap_Register(t *testing.T) { t.Run("Basic", func(t *testing.T) { m := event.NewCallerMap() - c1 := randomCallerID() - m.Register(c1) - c2 := m.GetEntity(c1.CID()) + c1 := event.CallerID(rand.Intn(10000)) + id := m.Register(c1) + c2 := m.GetEntity(id) if c2 != c1 { t.Fatalf("unable to retrieve registered caller") } - if !m.HasEntity(c1.CID()) { + if !m.HasEntity(id) { t.Fatalf("caller map does not have registered caller") } }) t.Run("Remove", func(t *testing.T) { m := event.NewCallerMap() - c1 := randomCallerID() - m.Register(c1) - m.RemoveEntity(c1.CID()) - c3 := m.GetEntity(c1.CID()) + c1 := event.CallerID(rand.Intn(10000)) + id := m.Register(c1) + m.RemoveEntity(id) + c3 := m.GetEntity(id) if c3 != nil { t.Fatalf("get entity had registered caller after remove") } - if m.HasEntity(c1.CID()) { + if m.HasEntity(id) { t.Fatalf("caller map has registered caller after remove") } }) t.Run("Clear", func(t *testing.T) { m := event.NewCallerMap() - c1 := randomCallerID() - m.Register(c1) + c1 := event.CallerID(rand.Intn(10000)) + id := m.Register(c1) m.Clear() - c3 := m.GetEntity(c1.CID()) + c3 := m.GetEntity(id) if c3 != nil { t.Fatalf("get entity had registered caller after clear") } - if m.HasEntity(c1.CID()) { + if m.HasEntity(id) { t.Fatalf("caller map has registered caller after clear") } }) diff --git a/event/trigger_test.go b/event/trigger_test.go index 4b52c2ff..2dae1215 100644 --- a/event/trigger_test.go +++ b/event/trigger_test.go @@ -87,14 +87,14 @@ func TestBus_TriggerForCaller(t *testing.T) { }) t.Run("WithValidCallerID", func(t *testing.T) { b := event.NewBus(event.NewCallerMap()) - var cid = new(event.CallerID) - b.GetCallerMap().Register(cid) + var cid event.CallerID + callerID := b.GetCallerMap().Register(cid) id := event.UnsafeEventID(rand.Intn(100000)) errs := make(chan error) - binding := b.UnsafeBind(id, *cid, func(ci event.CallerID, h event.Handler, i interface{}) event.Response { + binding := b.UnsafeBind(id, callerID, func(ci event.CallerID, h event.Handler, i interface{}) event.Response { defer close(errs) - if ci != *cid { - errs <- expectedError("callerID", *cid, ci) + if ci != callerID { + errs <- expectedError("callerID", callerID, ci) } if h != b { errs <- expectedError("bus", b, h) @@ -110,7 +110,7 @@ func TestBus_TriggerForCaller(t *testing.T) { t.Fatal("timeout waiting for bind to close channel") case <-binding.Bound: } - ch := b.TriggerForCaller(*cid, id, nil) + ch := b.TriggerForCaller(callerID, id, nil) select { case <-time.After(50 * time.Millisecond): t.Fatal("timeout waiting for trigger to close channel") @@ -195,14 +195,14 @@ func TestBus_Trigger(t *testing.T) { }) t.Run("WithValidCallerID", func(t *testing.T) { b := event.NewBus(event.NewCallerMap()) - var cid = new(event.CallerID) - b.GetCallerMap().Register(cid) + var cid event.CallerID + callerID := b.GetCallerMap().Register(cid) id := event.UnsafeEventID(rand.Intn(100000)) errs := make(chan error) - binding := b.UnsafeBind(id, *cid, func(ci event.CallerID, h event.Handler, i interface{}) event.Response { + binding := b.UnsafeBind(id, event.CallerID(callerID), func(ci event.CallerID, h event.Handler, i interface{}) event.Response { defer close(errs) - if ci != *cid { - errs <- expectedError("callerID", *cid, ci) + if ci != callerID { + errs <- expectedError("callerID", callerID, ci) } if h != b { errs <- expectedError("bus", b, h) From 8ed39ef17c0cb74f2716534f1bb2e50d27e518bf Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sun, 3 Apr 2022 11:05:37 -0500 Subject: [PATCH 043/146] event: return directional channels from handler methods This is a small api correction to ensure consumers cannot try to send on receive only channels. --- event/bind.go | 15 +++++++++++---- event/handler.go | 8 ++++---- event/trigger.go | 8 ++++---- inputTracker.go | 7 ++----- joystick/joystick.go | 2 +- 5 files changed, 22 insertions(+), 18 deletions(-) diff --git a/event/bind.go b/event/bind.go index 11fa7d63..68dd2d48 100644 --- a/event/bind.go +++ b/event/bind.go @@ -1,6 +1,10 @@ package event -import "sync/atomic" +import ( + "sync/atomic" + + "github.com/oakmound/oak/dlog" +) // Q: Why do Bind / Unbind / etc not immediately take effect? // A: For concurrent safety, most operations on a bus lock the bus. Triggers acquire a read lock on the bus, @@ -33,7 +37,7 @@ type Binding struct { // Unbind unbinds the callback associated with this binding from it's own event handler. If this binding // does not belong to its handler or has already been unbound, this will do nothing. -func (b Binding) Unbind() chan struct{} { +func (b Binding) Unbind() <-chan struct{} { return b.Handler.Unbind(b) } @@ -89,7 +93,7 @@ func (bus *Bus) PersistentBind(eventID UnsafeEventID, callerID CallerID, fn Unsa // Unbind unregisters a binding from a bus concurrently. Once complete, triggers that would // have previously caused the Bindable callback to execute will no longer do so. -func (bus *Bus) Unbind(loc Binding) chan struct{} { +func (bus *Bus) Unbind(loc Binding) <-chan struct{} { ch := make(chan struct{}) go func() { bus.mutex.Lock() @@ -113,6 +117,9 @@ type Bindable[C any, Payload any] func(C, Payload) Response // will be called with the provided caller as its first argument, and will also be called when the provided event is specifically // triggered on the caller's ID. func Bind[C Caller, Payload any](h Handler, ev EventID[Payload], caller C, fn Bindable[C, Payload]) Binding { + if caller.CID() == 0 { + dlog.Warn("Bind called with CallerID 0; is this entity registered and set?") + } return h.UnsafeBind(ev.UnsafeEventID, caller.CID(), func(cid CallerID, h Handler, payload interface{}) Response { typedPayload := payload.(Payload) ent := h.GetCallerMap().GetEntity(cid) @@ -136,7 +143,7 @@ func GlobalBind[Payload any](h Handler, ev EventID[Payload], fn GlobalBindable[P type UnsafeBindable func(CallerID, Handler, interface{}) Response // UnbindAllFrom unbinds all bindings currently bound to the provided caller via ID. -func (bus *Bus) UnbindAllFrom(c CallerID) chan struct{} { +func (bus *Bus) UnbindAllFrom(c CallerID) <-chan struct{} { ch := make(chan struct{}) go func() { bus.mutex.Lock() diff --git a/event/handler.go b/event/handler.go index af59e3ea..5537121d 100644 --- a/event/handler.go +++ b/event/handler.go @@ -9,11 +9,11 @@ var ( // by alternative event handlers. type Handler interface { Reset() - TriggerForCaller(cid CallerID, event UnsafeEventID, data interface{}) chan struct{} - Trigger(event UnsafeEventID, data interface{}) chan struct{} + TriggerForCaller(cid CallerID, event UnsafeEventID, data interface{}) <-chan struct{} + Trigger(event UnsafeEventID, data interface{}) <-chan struct{} UnsafeBind(UnsafeEventID, CallerID, UnsafeBindable) Binding - Unbind(Binding) chan struct{} - UnbindAllFrom(CallerID) chan struct{} + Unbind(Binding) <-chan struct{} + UnbindAllFrom(CallerID) <-chan struct{} SetCallerMap(*CallerMap) GetCallerMap() *CallerMap } diff --git a/event/trigger.go b/event/trigger.go index c65c966a..cf842fec 100644 --- a/event/trigger.go +++ b/event/trigger.go @@ -1,7 +1,7 @@ package event // TriggerForCaller acts like Trigger, but will only trigger for the given caller. -func (bus *Bus) TriggerForCaller(callerID CallerID, eventID UnsafeEventID, data interface{}) chan struct{} { +func (bus *Bus) TriggerForCaller(callerID CallerID, eventID UnsafeEventID, data interface{}) <-chan struct{} { if callerID == Global { return bus.Trigger(eventID, data) } @@ -21,7 +21,7 @@ func (bus *Bus) TriggerForCaller(callerID CallerID, eventID UnsafeEventID, data // Trigger will scan through the event bus and call all bindables found attached // to the given event, with the passed in data. -func (bus *Bus) Trigger(eventID UnsafeEventID, data interface{}) chan struct{} { +func (bus *Bus) Trigger(eventID UnsafeEventID, data interface{}) <-chan struct{} { ch := make(chan struct{}) go func() { bus.mutex.RLock() @@ -35,11 +35,11 @@ func (bus *Bus) Trigger(eventID UnsafeEventID, data interface{}) chan struct{} { } // TriggerOn calls Trigger with a strongly typed event. -func TriggerOn[T any](b Handler, ev EventID[T], data T) chan struct{} { +func TriggerOn[T any](b Handler, ev EventID[T], data T) <-chan struct{} { return b.Trigger(ev.UnsafeEventID, data) } // TriggerForCallerOn calls TriggerForCaller with a strongly typed event. -func TriggerForCallerOn[T any](b Handler, cid CallerID, ev EventID[T], data T) chan struct{} { +func TriggerForCallerOn[T any](b Handler, cid CallerID, ev EventID[T], data T) <-chan struct{} { return b.TriggerForCaller(cid, ev.UnsafeEventID, data) } diff --git a/inputTracker.go b/inputTracker.go index 067b2455..d5080ded 100644 --- a/inputTracker.go +++ b/inputTracker.go @@ -54,11 +54,8 @@ type joyHandler struct { handler event.Handler } -func (jh *joyHandler) Trigger(eventID event.UnsafeEventID, data interface{}) chan struct{} { - jh.handler.Trigger(trackingJoystickChange.UnsafeEventID, struct{}{}) - ch := make(chan struct{}) - close(ch) - return ch +func (jh *joyHandler) Trigger(eventID event.UnsafeEventID, data interface{}) <-chan struct{} { + return event.TriggerOn(jh.handler, trackingJoystickChange, struct{}{}) } func trackJoystickChanges(handler event.Handler) { diff --git a/joystick/joystick.go b/joystick/joystick.go index 1500dc15..e2f12513 100644 --- a/joystick/joystick.go +++ b/joystick/joystick.go @@ -52,7 +52,7 @@ func Init() error { // A Triggerer can either be an event bus or event CID, allowing // joystick triggers to be listened to globally or sent to particular entities. type Triggerer interface { - Trigger(eventID event.UnsafeEventID, data interface{}) chan struct{} + Trigger(eventID event.UnsafeEventID, data interface{}) <-chan struct{} } // A Joystick represents a (usually) physical controller connected to the machine. From 4a7b2d4cbe1e1d4e23c84a269e1c057485d929e0 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sun, 3 Apr 2022 17:32:12 +0000 Subject: [PATCH 044/146] shiny/driver/mtldriver: add rgba->bgra conversion for m1s It appears that newer macs have deprecated the ability to render metal windows as rgba, which was the default behavior on older macs even when bgra was requested This is a confusing statement and is not backed up by anything I can find online, but this patch on m1 fixes the display such that the r and b channels are flipped. Candidate for backporting to v3. --- shiny/driver/mtldriver/bgra.go | 351 ++++++++++++++++++++++++++++ shiny/driver/mtldriver/mtldriver.go | 4 +- shiny/driver/mtldriver/window.go | 48 +++- 3 files changed, 392 insertions(+), 11 deletions(-) create mode 100644 shiny/driver/mtldriver/bgra.go diff --git a/shiny/driver/mtldriver/bgra.go b/shiny/driver/mtldriver/bgra.go new file mode 100644 index 00000000..6a665da3 --- /dev/null +++ b/shiny/driver/mtldriver/bgra.go @@ -0,0 +1,351 @@ +package mtldriver + +import ( + "image" + "image/color" + "math" + "math/bits" + + "golang.org/x/image/math/f64" +) + +// This file is a copy of much of x/image/draw and draw/image +// To enable fast conversions from RGBA (which Oak uses everywhere internally) +// and BGRA (which metal refuses not to use for windows) + +var _ image.Image = &BGRA{} + +// BGRA is an in-memory image whose At method returns BGRA values. +type BGRA struct { + // Pix holds the image's pixels, in B, G, R, A order. The pixel at + // (x, y) starts at Pix[(y-Rect.Min.Y)*Stride + (x-Rect.Min.X)*4]. + Pix []uint8 + // Stride is the Pix stride (in bytes) between vertically adjacent pixels. + Stride int + // Rect is the image's bounds. + Rect image.Rectangle +} + +func (p *BGRA) ColorModel() color.Model { return color.RGBAModel } + +func (p *BGRA) Bounds() image.Rectangle { return p.Rect } + +func (p *BGRA) At(x, y int) color.Color { + return p.RGBAAt(x, y) +} + +func (p *BGRA) RGBA64At(x, y int) color.RGBA64 { + if !(image.Point{x, y}.In(p.Rect)) { + return color.RGBA64{} + } + i := p.PixOffset(x, y) + s := p.Pix[i : i+4 : i+4] // Small cap improves performance, see https://golang.org/issue/27857 + r := uint16(s[2]) + g := uint16(s[1]) + b := uint16(s[0]) + a := uint16(s[3]) + return color.RGBA64{ + (r << 8) | r, + (g << 8) | g, + (b << 8) | b, + (a << 8) | a, + } +} + +func (p *BGRA) RGBAAt(x, y int) color.RGBA { + if !(image.Point{x, y}.In(p.Rect)) { + return color.RGBA{} + } + i := p.PixOffset(x, y) + s := p.Pix[i : i+4 : i+4] // Small cap improves performance, see https://golang.org/issue/27857 + return color.RGBA{s[2], s[1], s[0], s[3]} +} + +// PixOffset returns the index of the first element of Pix that corresponds to +// the pixel at (x, y). +func (p *BGRA) PixOffset(x, y int) int { + return (y-p.Rect.Min.Y)*p.Stride + (x-p.Rect.Min.X)*4 +} + +func (p *BGRA) Set(x, y int, c color.Color) { + if !(image.Point{x, y}.In(p.Rect)) { + return + } + i := p.PixOffset(x, y) + c1 := color.RGBAModel.Convert(c).(color.RGBA) + s := p.Pix[i : i+4 : i+4] // Small cap improves performance, see https://golang.org/issue/27857 + s[2] = c1.R + s[1] = c1.G + s[0] = c1.B + s[3] = c1.A +} + +func (p *BGRA) SetRGBA64(x, y int, c color.RGBA64) { + if !(image.Point{x, y}.In(p.Rect)) { + return + } + i := p.PixOffset(x, y) + s := p.Pix[i : i+4 : i+4] // Small cap improves performance, see https://golang.org/issue/27857 + s[2] = uint8(c.R >> 8) + s[1] = uint8(c.G >> 8) + s[0] = uint8(c.B >> 8) + s[3] = uint8(c.A >> 8) +} + +func (p *BGRA) SetRGBA(x, y int, c color.RGBA) { + if !(image.Point{x, y}.In(p.Rect)) { + return + } + i := p.PixOffset(x, y) + s := p.Pix[i : i+4 : i+4] // Small cap improves performance, see https://golang.org/issue/27857 + s[0] = c.R + s[1] = c.G + s[2] = c.B + s[3] = c.A +} + +// SubImage returns an image representing the portion of the image p visible +// through r. The returned value shares pixels with the original image. +func (p *BGRA) SubImage(r image.Rectangle) image.Image { + r = r.Intersect(p.Rect) + // If r1 and r2 are Rectangles, r1.Intersect(r2) is not guaranteed to be inside + // either r1 or r2 if the intersection is empty. Without explicitly checking for + // this, the Pix[i:] expression below can panic. + if r.Empty() { + return &BGRA{} + } + i := p.PixOffset(r.Min.X, r.Min.Y) + return &BGRA{ + Pix: p.Pix[i:], + Stride: p.Stride, + Rect: r, + } +} + +// Opaque scans the entire image and reports whether it is fully opaque. +func (p *BGRA) Opaque() bool { + if p.Rect.Empty() { + return true + } + i0, i1 := 3, p.Rect.Dx()*4 + for y := p.Rect.Min.Y; y < p.Rect.Max.Y; y++ { + for i := i0; i < i1; i += 4 { + if p.Pix[i] != 0xff { + return false + } + } + i0 += p.Stride + i1 += p.Stride + } + return true +} + +// NewBGRA returns a new RGBA image with the given bounds. +func NewBGRA(r image.Rectangle) *BGRA { + return &BGRA{ + Pix: make([]uint8, pixelBufferLength(4, r, "BGRA")), + Stride: 4 * r.Dx(), + Rect: r, + } +} + +// pixelBufferLength returns the length of the []uint8 typed Pix slice field +// for the NewXxx functions. Conceptually, this is just (bpp * width * height), +// but this function panics if at least one of those is negative or if the +// computation would overflow the int type. +// +// This panics instead of returning an error because of backwards +// compatibility. The NewXxx functions do not return an error. +func pixelBufferLength(bytesPerPixel int, r image.Rectangle, imageTypeName string) int { + totalLength := mul3NonNeg(bytesPerPixel, r.Dx(), r.Dy()) + if totalLength < 0 { + panic("image: New" + imageTypeName + " Rectangle has huge or negative dimensions") + } + return totalLength +} + +// mul3NonNeg returns (x * y * z), unless at least one argument is negative or +// if the computation overflows the int type, in which case it returns -1. +func mul3NonNeg(x int, y int, z int) int { + if (x < 0) || (y < 0) || (z < 0) { + return -1 + } + hi, lo := bits.Mul64(uint64(x), uint64(y)) + if hi != 0 { + return -1 + } + hi, lo = bits.Mul64(lo, uint64(z)) + if hi != 0 { + return -1 + } + a := int(lo) + if (a < 0) || (uint64(a) != lo) { + return -1 + } + return a +} + +// clip clips r against each image's bounds (after translating into the +// destination image's coordinate space) and shifts the points sp and mp by +// the same amount as the change in r.Min. +func clip(dst *BGRA, r *image.Rectangle, src *image.RGBA, sp *image.Point, mask image.Image, mp *image.Point) { + orig := r.Min + *r = r.Intersect(dst.Bounds()) + *r = r.Intersect(src.Bounds().Add(orig.Sub(*sp))) + if mask != nil { + *r = r.Intersect(mask.Bounds().Add(orig.Sub(*mp))) + } + dx := r.Min.X - orig.X + dy := r.Min.Y - orig.Y + if dx == 0 && dy == 0 { + return + } + sp.X += dx + sp.Y += dy + if mp != nil { + mp.X += dx + mp.Y += dy + } +} + +type nnInterpolator struct{} + +func (z nnInterpolator) Transform(dst *BGRA, s2d f64.Aff3, src *image.RGBA, sr image.Rectangle) { + // Try to simplify a Transform to a Copy. + // if s2d[0] == 1 && s2d[1] == 0 && s2d[3] == 0 && s2d[4] == 1 { + // dx := int(s2d[2]) + // dy := int(s2d[5]) + // if float64(dx) == s2d[2] && float64(dy) == s2d[5] { + // Copy(dst, image.Point{X: sr.Min.X + dx, Y: sr.Min.X + dy}, src, sr, op, opts) + // return + // } + // } + + dr := transformRect(&s2d, &sr) + // adr is the affected destination pixels. + adr := dst.Bounds().Intersect(dr) + if adr.Empty() || sr.Empty() { + return + } + d2s := invert(&s2d) + // bias is a translation of the mapping from dst coordinates to src + // coordinates such that the latter temporarily have non-negative X + // and Y coordinates. This allows us to write int(f) instead of + // int(math.Floor(f)), since "round to zero" and "round down" are + // equivalent when f >= 0, but the former is much cheaper. The X-- + // and Y-- are because the TransformLeaf methods have a "sx -= 0.5" + // adjustment. + bias := transformRect(&d2s, &adr).Min + bias.X-- + bias.Y-- + d2s[2] -= float64(bias.X) + d2s[5] -= float64(bias.Y) + // Make adr relative to dr.Min. + adr = adr.Sub(dr.Min) + // sr is the source pixels. If it extends beyond the src bounds, + // we cannot use the type-specific fast paths, as they access + // the Pix fields directly without bounds checking. + // + // Similarly, the fast paths assume that the masks are nil. + z.transform_BGRA_RGBA_Over(dst, dr, adr, &d2s, src, sr, bias) +} + +func (nnInterpolator) transform_BGRA_RGBA_Over(dst *BGRA, dr, adr image.Rectangle, d2s *f64.Aff3, src *image.RGBA, sr image.Rectangle, bias image.Point) { + for dy := int32(adr.Min.Y); dy < int32(adr.Max.Y); dy++ { + dyf := float64(dr.Min.Y+int(dy)) + 0.5 + d := (dr.Min.Y+int(dy)-dst.Rect.Min.Y)*dst.Stride + (dr.Min.X+adr.Min.X-dst.Rect.Min.X)*4 + for dx := int32(adr.Min.X); dx < int32(adr.Max.X); dx, d = dx+1, d+4 { + dxf := float64(dr.Min.X+int(dx)) + 0.5 + sx0 := int(d2s[0]*dxf+d2s[1]*dyf+d2s[2]) + bias.X + sy0 := int(d2s[3]*dxf+d2s[4]*dyf+d2s[5]) + bias.Y + if !(image.Point{sx0, sy0}).In(sr) { + continue + } + pi := (sy0-src.Rect.Min.Y)*src.Stride + (sx0-src.Rect.Min.X)*4 + pr := uint32(src.Pix[pi+0]) * 0x101 + pg := uint32(src.Pix[pi+1]) * 0x101 + pb := uint32(src.Pix[pi+2]) * 0x101 + pa := uint32(src.Pix[pi+3]) * 0x101 + pa1 := (0xffff - pa) * 0x101 + dst.Pix[d+2] = uint8((uint32(dst.Pix[d+0])*pa1/0xffff + pr) >> 8) + dst.Pix[d+1] = uint8((uint32(dst.Pix[d+1])*pa1/0xffff + pg) >> 8) + dst.Pix[d+0] = uint8((uint32(dst.Pix[d+2])*pa1/0xffff + pb) >> 8) + dst.Pix[d+3] = uint8((uint32(dst.Pix[d+3])*pa1/0xffff + pa) >> 8) + } + } +} + +// transformRect returns a rectangle dr that contains sr transformed by s2d. +func transformRect(s2d *f64.Aff3, sr *image.Rectangle) (dr image.Rectangle) { + ps := [...]image.Point{ + {sr.Min.X, sr.Min.Y}, + {sr.Max.X, sr.Min.Y}, + {sr.Min.X, sr.Max.Y}, + {sr.Max.X, sr.Max.Y}, + } + for i, p := range ps { + sxf := float64(p.X) + syf := float64(p.Y) + dx := int(math.Floor(s2d[0]*sxf + s2d[1]*syf + s2d[2])) + dy := int(math.Floor(s2d[3]*sxf + s2d[4]*syf + s2d[5])) + + // The +1 adjustments below are because an image.Rectangle is inclusive + // on the low end but exclusive on the high end. + + if i == 0 { + dr = image.Rectangle{ + Min: image.Point{dx + 0, dy + 0}, + Max: image.Point{dx + 1, dy + 1}, + } + continue + } + + if dr.Min.X > dx { + dr.Min.X = dx + } + dx++ + if dr.Max.X < dx { + dr.Max.X = dx + } + + if dr.Min.Y > dy { + dr.Min.Y = dy + } + dy++ + if dr.Max.Y < dy { + dr.Max.Y = dy + } + } + return dr +} + +func clipAffectedDestRect(adr image.Rectangle, dstMask image.Image, dstMaskP image.Point) (image.Rectangle, image.Image) { + if dstMask == nil { + return adr, nil + } + if r, ok := dstMask.(image.Rectangle); ok { + return adr.Intersect(r.Sub(dstMaskP)), nil + } + // TODO: clip to dstMask.Bounds() if the color model implies that out-of-bounds means 0 alpha? + return adr, dstMask +} + +func invert(m *f64.Aff3) f64.Aff3 { + m00 := +m[3*1+1] + m01 := -m[3*0+1] + m02 := +m[3*1+2]*m[3*0+1] - m[3*1+1]*m[3*0+2] + m10 := -m[3*1+0] + m11 := +m[3*0+0] + m12 := +m[3*1+0]*m[3*0+2] - m[3*1+2]*m[3*0+0] + + det := m00*m11 - m10*m01 + + return f64.Aff3{ + m00 / det, + m01 / det, + m02 / det, + m10 / det, + m11 / det, + m12 / det, + } +} diff --git a/shiny/driver/mtldriver/mtldriver.go b/shiny/driver/mtldriver/mtldriver.go index 203d7ce4..68cebe79 100644 --- a/shiny/driver/mtldriver/mtldriver.go +++ b/shiny/driver/mtldriver/mtldriver.go @@ -187,6 +187,8 @@ func newWindow(device mtl.Device, chans windowRequestChannels, opts screen.Windo ml := coreanim.MakeMetalLayer() ml.SetDevice(device) + // Newer (m1) macs appear to not support rgba window formats. + // See bgra.go for the consequences of this. ml.SetPixelFormat(mtl.PixelFormatBGRA8UNorm) ml.SetMaximumDrawableCount(3) ml.SetDisplaySyncEnabled(true) @@ -203,7 +205,7 @@ func newWindow(device mtl.Device, chans windowRequestChannels, opts screen.Windo chans: chans, ml: ml, cq: device.MakeCommandQueue(), - rgba: image.NewRGBA(image.Rectangle{Max: image.Point{X: opts.Width, Y: opts.Height}}), + bgra: NewBGRA(image.Rectangle{Max: image.Point{X: opts.Width, Y: opts.Height}}), texture: device.MakeTexture(mtl.TextureDescriptor{ PixelFormat: mtl.PixelFormatRGBA8UNorm, Width: opts.Width, diff --git a/shiny/driver/mtldriver/window.go b/shiny/driver/mtldriver/window.go index f2fa9d81..be5d607b 100644 --- a/shiny/driver/mtldriver/window.go +++ b/shiny/driver/mtldriver/window.go @@ -35,7 +35,7 @@ type windowImpl struct { event.Deque lifecycler lifecycler.State - rgba *image.RGBA + bgra *BGRA texture mtl.Texture // Used in Publish. title string @@ -136,7 +136,7 @@ func (w *windowImpl) NextEvent() interface{} { // Set drawable size, create backing image and texture. w.ml.SetDrawableSize(sz.WidthPx, sz.HeightPx) - w.rgba = image.NewRGBA(image.Rectangle{Max: image.Point{X: sz.WidthPx, Y: sz.HeightPx}}) + w.bgra = NewBGRA(image.Rectangle{Max: image.Point{X: sz.WidthPx, Y: sz.HeightPx}}) w.texture = w.device.MakeTexture(mtl.TextureDescriptor{ PixelFormat: mtl.PixelFormatRGBA8UNorm, Width: sz.WidthPx, @@ -151,7 +151,7 @@ func (w *windowImpl) Publish() screen.PublishResult { // Copy w.rgba pixels into a texture. region := mtl.RegionMake2D(0, 0, w.texture.Width, w.texture.Height) bytesPerRow := 4 * w.texture.Width - w.texture.ReplaceRegion(region, 0, &w.rgba.Pix[0], uintptr(bytesPerRow)) + w.texture.ReplaceRegion(region, 0, &w.bgra.Pix[0], uintptr(bytesPerRow)) drawable, err := w.ml.NextDrawable() if err != nil { @@ -178,26 +178,54 @@ func (w *windowImpl) Publish() screen.PublishResult { return screen.PublishResult{} } -func (w *windowImpl) Upload(dp image.Point, src screen.Image, sr image.Rectangle) { - draw.Draw(w.rgba, sr.Sub(sr.Min).Add(dp), src.RGBA(), sr.Min, draw.Src) +func (w *windowImpl) Upload(dp image.Point, srcImg screen.Image, sr image.Rectangle) { + dst := w.bgra + r := sr.Sub(sr.Min).Add(dp) + src := srcImg.RGBA() + sp := sr.Min + clip(dst, &r, src, &sp, nil, &image.Point{}) + if r.Empty() { + return + } + + i0 := (r.Min.X - dst.Rect.Min.X) * 4 + i1 := (r.Max.X - dst.Rect.Min.X) * 4 + si0 := (sp.X - src.Rect.Min.X) * 4 + yMax := r.Max.Y - dst.Rect.Min.Y + + y := r.Min.Y - dst.Rect.Min.Y + sy := sp.Y - src.Rect.Min.Y + for ; y != yMax; y, sy = y+1, sy+1 { + dpix := dst.Pix[y*dst.Stride:] + spix := src.Pix[sy*src.Stride:] + + for i, si := i0, si0; i < i1; i, si = i+4, si+4 { + s := spix[si : si+4 : si+4] // Small cap improves performance, see https://golang.org/issue/27857 + d := dpix[i : i+4 : i+4] + d[0] = s[2] + d[1] = s[1] + d[2] = s[0] + d[3] = s[3] + } + } } func (w *windowImpl) Fill(dr image.Rectangle, src color.Color, op draw.Op) { - draw.Draw(w.rgba, dr, &image.Uniform{src}, image.Point{}, op) + // Unimplemented } func (w *windowImpl) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectangle, op draw.Op) { - draw.NearestNeighbor.Transform(w.rgba, src2dst, src.(*textureImpl).rgba, sr, op, nil) + nnInterpolator{}.Transform(w.bgra, src2dst, src.(*textureImpl).rgba, sr) } func (w *windowImpl) DrawUniform(src2dst f64.Aff3, src color.Color, sr image.Rectangle, op draw.Op) { - draw.NearestNeighbor.Transform(w.rgba, src2dst, &image.Uniform{src}, sr, op, nil) + // Unimplemented } func (w *windowImpl) Copy(dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) { - drawer.Copy(w, dp, src, sr, op) + drawer.Copy(w, dp, src, sr, draw.Over) } func (w *windowImpl) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) { - drawer.Scale(w, dr, src, sr, op) + drawer.Scale(w, dr, src, sr, draw.Over) } From fe108d0834ac52c4e77387a206065e0f56ee2fc9 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sun, 3 Apr 2022 17:53:36 +0000 Subject: [PATCH 045/146] shiny/driver/mtldriver: switch bgra behavior by intel vs arm --- shiny/driver/mtldriver/bgra.go | 3 ++ shiny/driver/mtldriver/window.go | 56 ---------------------- shiny/driver/mtldriver/window_amd64 | 32 +++++++++++++ shiny/driver/mtldriver/window_arm64.go | 66 ++++++++++++++++++++++++++ 4 files changed, 101 insertions(+), 56 deletions(-) create mode 100644 shiny/driver/mtldriver/window_amd64 create mode 100644 shiny/driver/mtldriver/window_arm64.go diff --git a/shiny/driver/mtldriver/bgra.go b/shiny/driver/mtldriver/bgra.go index 6a665da3..99114709 100644 --- a/shiny/driver/mtldriver/bgra.go +++ b/shiny/driver/mtldriver/bgra.go @@ -1,3 +1,6 @@ +//go:build arm64 && darwin +// +build arm64,darwin + package mtldriver import ( diff --git a/shiny/driver/mtldriver/window.go b/shiny/driver/mtldriver/window.go index be5d607b..30121c9e 100644 --- a/shiny/driver/mtldriver/window.go +++ b/shiny/driver/mtldriver/window.go @@ -9,18 +9,14 @@ package mtldriver import ( "image" - "image/color" "log" "dmitri.shuralyov.com/gpu/mtl" "github.com/go-gl/glfw/v3.3/glfw" - "github.com/oakmound/oak/v3/shiny/driver/internal/drawer" "github.com/oakmound/oak/v3/shiny/driver/internal/event" "github.com/oakmound/oak/v3/shiny/driver/internal/lifecycler" "github.com/oakmound/oak/v3/shiny/driver/mtldriver/internal/coreanim" "github.com/oakmound/oak/v3/shiny/screen" - "golang.org/x/image/draw" - "golang.org/x/image/math/f64" "golang.org/x/mobile/event/size" ) @@ -177,55 +173,3 @@ func (w *windowImpl) Publish() screen.PublishResult { return screen.PublishResult{} } - -func (w *windowImpl) Upload(dp image.Point, srcImg screen.Image, sr image.Rectangle) { - dst := w.bgra - r := sr.Sub(sr.Min).Add(dp) - src := srcImg.RGBA() - sp := sr.Min - clip(dst, &r, src, &sp, nil, &image.Point{}) - if r.Empty() { - return - } - - i0 := (r.Min.X - dst.Rect.Min.X) * 4 - i1 := (r.Max.X - dst.Rect.Min.X) * 4 - si0 := (sp.X - src.Rect.Min.X) * 4 - yMax := r.Max.Y - dst.Rect.Min.Y - - y := r.Min.Y - dst.Rect.Min.Y - sy := sp.Y - src.Rect.Min.Y - for ; y != yMax; y, sy = y+1, sy+1 { - dpix := dst.Pix[y*dst.Stride:] - spix := src.Pix[sy*src.Stride:] - - for i, si := i0, si0; i < i1; i, si = i+4, si+4 { - s := spix[si : si+4 : si+4] // Small cap improves performance, see https://golang.org/issue/27857 - d := dpix[i : i+4 : i+4] - d[0] = s[2] - d[1] = s[1] - d[2] = s[0] - d[3] = s[3] - } - } -} - -func (w *windowImpl) Fill(dr image.Rectangle, src color.Color, op draw.Op) { - // Unimplemented -} - -func (w *windowImpl) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectangle, op draw.Op) { - nnInterpolator{}.Transform(w.bgra, src2dst, src.(*textureImpl).rgba, sr) -} - -func (w *windowImpl) DrawUniform(src2dst f64.Aff3, src color.Color, sr image.Rectangle, op draw.Op) { - // Unimplemented -} - -func (w *windowImpl) Copy(dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) { - drawer.Copy(w, dp, src, sr, draw.Over) -} - -func (w *windowImpl) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) { - drawer.Scale(w, dr, src, sr, draw.Over) -} diff --git a/shiny/driver/mtldriver/window_amd64 b/shiny/driver/mtldriver/window_amd64 new file mode 100644 index 00000000..ab43d7cd --- /dev/null +++ b/shiny/driver/mtldriver/window_amd64 @@ -0,0 +1,32 @@ +//go:build darwin && amd64 +// +build darwin,amd64 + +package mtldriver + +func (w *windowImpl) Upload(dp image.Point, src screen.Image, sr image.Rectangle) { + draw.Draw(w.rgba, sr.Sub(sr.Min).Add(dp), src.RGBA(), sr.Min, draw.Src) +} + +func (w *windowImpl) Fill(dr image.Rectangle, src color.Color, op draw.Op) { + draw.Draw(w.rgba, dr, &image.Uniform{src}, image.Point{}, op) +} + +func (w *windowImpl) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectangle, op draw.Op) { + draw.NearestNeighbor.Transform(w.rgba, src2dst, src.(*textureImpl).rgba, sr, op, nil) +} + +func (w *windowImpl) DrawUniform(src2dst f64.Aff3, src color.Color, sr image.Rectangle, op draw.Op) { + draw.NearestNeighbor.Transform(w.rgba, src2dst, &image.Uniform{src}, sr, op, nil) +} + +func (w *windowImpl) Copy(dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) { + drawer.Copy(w, dp, src, sr, op) +} + +func (w *windowImpl) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) { + drawer.Scale(w, dr, src, sr, op) +} + +type BGRA = image.RGBA + +var NewBGRA = image.NewRGBA diff --git a/shiny/driver/mtldriver/window_arm64.go b/shiny/driver/mtldriver/window_arm64.go new file mode 100644 index 00000000..ea5818dc --- /dev/null +++ b/shiny/driver/mtldriver/window_arm64.go @@ -0,0 +1,66 @@ +//go:build arm64 && darwin +// +build arm64,darwin + +package mtldriver + +import ( + "image" + "image/color" + + "github.com/oakmound/oak/v3/shiny/driver/internal/drawer" + "github.com/oakmound/oak/v3/shiny/screen" + "golang.org/x/image/draw" + "golang.org/x/image/math/f64" +) + +func (w *windowImpl) Upload(dp image.Point, srcImg screen.Image, sr image.Rectangle) { + dst := w.bgra + r := sr.Sub(sr.Min).Add(dp) + src := srcImg.RGBA() + sp := sr.Min + clip(dst, &r, src, &sp, nil, &image.Point{}) + if r.Empty() { + return + } + + i0 := (r.Min.X - dst.Rect.Min.X) * 4 + i1 := (r.Max.X - dst.Rect.Min.X) * 4 + si0 := (sp.X - src.Rect.Min.X) * 4 + yMax := r.Max.Y - dst.Rect.Min.Y + + y := r.Min.Y - dst.Rect.Min.Y + sy := sp.Y - src.Rect.Min.Y + for ; y != yMax; y, sy = y+1, sy+1 { + dpix := dst.Pix[y*dst.Stride:] + spix := src.Pix[sy*src.Stride:] + + for i, si := i0, si0; i < i1; i, si = i+4, si+4 { + s := spix[si : si+4 : si+4] // Small cap improves performance, see https://golang.org/issue/27857 + d := dpix[i : i+4 : i+4] + d[0] = s[2] + d[1] = s[1] + d[2] = s[0] + d[3] = s[3] + } + } +} + +func (w *windowImpl) Fill(dr image.Rectangle, src color.Color, op draw.Op) { + // Unimplemented +} + +func (w *windowImpl) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectangle, op draw.Op) { + nnInterpolator{}.Transform(w.bgra, src2dst, src.(*textureImpl).rgba, sr) +} + +func (w *windowImpl) DrawUniform(src2dst f64.Aff3, src color.Color, sr image.Rectangle, op draw.Op) { + // Unimplemented +} + +func (w *windowImpl) Copy(dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) { + drawer.Copy(w, dp, src, sr, draw.Over) +} + +func (w *windowImpl) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) { + drawer.Scale(w, dr, src, sr, draw.Over) +} From 38f3cc494627c2f0605f46ba8303729d3975b61a Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sun, 3 Apr 2022 12:55:17 -0500 Subject: [PATCH 046/146] shiny/driver/mtldriver: fix compilation of intel color variant --- .../{window_amd64 => window_amd64.go} | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) rename shiny/driver/mtldriver/{window_amd64 => window_amd64.go} (64%) diff --git a/shiny/driver/mtldriver/window_amd64 b/shiny/driver/mtldriver/window_amd64.go similarity index 64% rename from shiny/driver/mtldriver/window_amd64 rename to shiny/driver/mtldriver/window_amd64.go index ab43d7cd..f8dafad9 100644 --- a/shiny/driver/mtldriver/window_amd64 +++ b/shiny/driver/mtldriver/window_amd64.go @@ -3,20 +3,30 @@ package mtldriver +import ( + "image" + "image/color" + + "github.com/oakmound/oak/v3/shiny/driver/internal/drawer" + "github.com/oakmound/oak/v3/shiny/screen" + "golang.org/x/image/draw" + "golang.org/x/image/math/f64" +) + func (w *windowImpl) Upload(dp image.Point, src screen.Image, sr image.Rectangle) { - draw.Draw(w.rgba, sr.Sub(sr.Min).Add(dp), src.RGBA(), sr.Min, draw.Src) + draw.Draw(w.bgra, sr.Sub(sr.Min).Add(dp), src.RGBA(), sr.Min, draw.Src) } func (w *windowImpl) Fill(dr image.Rectangle, src color.Color, op draw.Op) { - draw.Draw(w.rgba, dr, &image.Uniform{src}, image.Point{}, op) + draw.Draw(w.bgra, dr, &image.Uniform{src}, image.Point{}, op) } func (w *windowImpl) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectangle, op draw.Op) { - draw.NearestNeighbor.Transform(w.rgba, src2dst, src.(*textureImpl).rgba, sr, op, nil) + draw.NearestNeighbor.Transform(w.bgra, src2dst, src.(*textureImpl).rgba, sr, op, nil) } func (w *windowImpl) DrawUniform(src2dst f64.Aff3, src color.Color, sr image.Rectangle, op draw.Op) { - draw.NearestNeighbor.Transform(w.rgba, src2dst, &image.Uniform{src}, sr, op, nil) + draw.NearestNeighbor.Transform(w.bgra, src2dst, &image.Uniform{src}, sr, op, nil) } func (w *windowImpl) Copy(dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) { From 2f6b4c2641030fe843dad7ff0d076c0b7c403f8f Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sun, 3 Apr 2022 20:32:17 +0000 Subject: [PATCH 047/146] shiny/driver/mtldriver: match new window interface set tray icon is still in progress. --- shiny/driver/driver_darwin.go | 56 ----------------- shiny/driver/mtldriver/mtldriver.go | 11 +++- shiny/driver/mtldriver/window.go | 84 +++++++++++++++++++++----- shiny/driver/mtldriver/window_amd64.go | 12 ++-- shiny/driver/mtldriver/window_arm64.go | 12 ++-- shiny/driver/mtldriver_darwin.go | 6 +- 6 files changed, 95 insertions(+), 86 deletions(-) delete mode 100644 shiny/driver/driver_darwin.go diff --git a/shiny/driver/driver_darwin.go b/shiny/driver/driver_darwin.go deleted file mode 100644 index b561f207..00000000 --- a/shiny/driver/driver_darwin.go +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build darwin && darwingl && !nooswindow && !android -// +build darwin,darwingl,!nooswindow,!android - -package driver - -import ( - "bytes" - "fmt" - "os/exec" - "regexp" - "strconv" - - "github.com/oakmound/oak/v3/shiny/driver/gldriver" - "github.com/oakmound/oak/v3/shiny/screen" -) - -func main(f func(screen.Screen)) { - gldriver.Main(f) -} - -var ( - sysProfRegex = regexp.MustCompile(`Resolution: (\d)* x (\d)*`) -) - -func monitorSize() (int, int) { - out, err := exec.Command("system_profiler", "SPDisplaysDataType").CombinedOutput() - if err != nil { - return 0, 0 - } - found := sysProfRegex.FindAll(out, -1) - if len(found) == 0 { - return 0, 0 - } - if len(found) != 1 { - fmt.Println("Found multiple screens", len(found)) - } - first := found[0] - first = bytes.TrimPrefix(first, []byte("Resolution: ")) - dims := bytes.Split(first, []byte(" x ")) - if len(dims) != 2 { - return 0, 0 - } - w, err := strconv.Atoi(string(dims[0])) - if err != nil { - return 0, 0 - } - h, err := strconv.Atoi(string(dims[1])) - if err != nil { - return 0, 0 - } - return w, h -} diff --git a/shiny/driver/mtldriver/mtldriver.go b/shiny/driver/mtldriver/mtldriver.go index 68cebe79..93cd724e 100644 --- a/shiny/driver/mtldriver/mtldriver.go +++ b/shiny/driver/mtldriver/mtldriver.go @@ -106,10 +106,15 @@ func main(f func(screen.Screen)) error { case req := <-glfwChans.updateCh: // this is not functionalized to prevent methods from accidentally // calling this outside of the main thread + if req.title != nil { + req.window.SetTitle(*req.title) + } + for _, atr := range req.attribs { + req.window.SetAttrib(atr.key, atr.val) + } if req.setPos { req.window.SetPos(int(req.x), int(req.y)) req.window.SetSize(int(req.width), int(req.height)) - req.respCh <- struct{}{} } if req.setBorderless != nil { if *req.setBorderless { @@ -162,6 +167,8 @@ type updateWindowReq struct { setBorderless *bool setPos bool x, y, width, height int + title *string + attribs []attribPair respCh chan struct{} } @@ -199,7 +206,7 @@ func newWindow(device mtl.Device, chans windowRequestChannels, opts screen.Windo window.SetAttrib(glfw.Decorated, 0) } - w := &windowImpl{ + w := &Window{ device: device, window: window, chans: chans, diff --git a/shiny/driver/mtldriver/window.go b/shiny/driver/mtldriver/window.go index 30121c9e..cb429c5b 100644 --- a/shiny/driver/mtldriver/window.go +++ b/shiny/driver/mtldriver/window.go @@ -8,8 +8,10 @@ package mtldriver import ( + "fmt" "image" "log" + "os/exec" "dmitri.shuralyov.com/gpu/mtl" "github.com/go-gl/glfw/v3.3/glfw" @@ -20,8 +22,8 @@ import ( "golang.org/x/mobile/event/size" ) -// windowImpl implements screen.Window. -type windowImpl struct { +// Window implements screen.Window. +type Window struct { device mtl.Device window *glfw.Window chans windowRequestChannels @@ -42,12 +44,12 @@ type windowImpl struct { x, y int } -func (w *windowImpl) HideCursor() error { +func (w *Window) HideCursor() error { w.window.SetInputMode(glfw.CursorMode, glfw.CursorHidden) return nil } -func (w *windowImpl) SetBorderless(borderless bool) error { +func (w *Window) SetBorderless(borderless bool) error { if w.borderless == borderless { return nil } @@ -67,7 +69,7 @@ func (w *windowImpl) SetBorderless(borderless bool) error { return nil } -func (w *windowImpl) SetFullScreen(full bool) error { +func (w *Window) SetFullScreen(full bool) error { if w.fullscreen == full { return nil } @@ -90,12 +92,12 @@ func (w *windowImpl) SetFullScreen(full bool) error { return nil } -func (w *windowImpl) MoveWindow(x, y, width, height int32) error { +func (w *Window) MoveWindow(x, y, width, height int) error { respCh := make(chan struct{}) - w.x = int(x) - w.y = int(y) - w.w = int(width) - w.h = int(height) + w.x = x + w.y = y + w.w = width + w.h = height w.chans.updateCh <- updateWindowReq{ window: w.window, setPos: true, @@ -110,11 +112,11 @@ func (w *windowImpl) MoveWindow(x, y, width, height int32) error { return nil } -func (w *windowImpl) GetCursorPosition() (x, y float64) { +func (w *Window) GetCursorPosition() (x, y float64) { return w.window.GetCursorPos() } -func (w *windowImpl) Release() { +func (w *Window) Release() { respCh := make(chan struct{}) w.chans.releaseCh <- releaseWindowReq{ window: w.window, @@ -124,7 +126,61 @@ func (w *windowImpl) Release() { <-respCh } -func (w *windowImpl) NextEvent() interface{} { +func (w *Window) SetTitle(title string) error { + respCh := make(chan struct{}) + w.chans.updateCh <- updateWindowReq{ + window: w.window, + title: &title, + respCh: respCh, + } + glfw.PostEmptyEvent() // Break main loop out of glfw.WaitEvents so it can receive on releaseWindowCh. + <-respCh + return nil +} + +type attribPair struct { + key glfw.Hint + val int +} + +func (w *Window) SetTopMost(topMost bool) error { + respCh := make(chan struct{}) + val := glfw.True + if !topMost { + val = glfw.False + } + w.chans.updateCh <- updateWindowReq{ + window: w.window, + attribs: []attribPair{{ + key: glfw.Floating, + val: val, + }}, + respCh: respCh, + } + glfw.PostEmptyEvent() // Break main loop out of glfw.WaitEvents so it can receive on releaseWindowCh. + <-respCh + return nil +} + +func (w *Window) SetTrayIcon(path string) error { + // TODO: the problem here is that this ^ takes a path, because windows + // wants a path, where glfw wants an image.Image (or set of them). + // for v4, standardize this interface. + // w.window.SetIcon() + return fmt.Errorf("unimplemented") +} + +func (w *Window) ShowNotification(title, msg string, icon bool) error { + // formed between beeep and stack overflow + osa, err := exec.LookPath("osascript") + if err != nil { + return err + } + cmd := exec.Command(osa, "-e", fmt.Sprintf("display notification %q with title %q", msg, title)) + return cmd.Run() +} + +func (w *Window) NextEvent() interface{} { e := w.Deque.NextEvent() if sz, ok := e.(size.Event); ok { // TODO(dmitshur): this is the best place/time/frequency to do this @@ -143,7 +199,7 @@ func (w *windowImpl) NextEvent() interface{} { return e } -func (w *windowImpl) Publish() screen.PublishResult { +func (w *Window) Publish() screen.PublishResult { // Copy w.rgba pixels into a texture. region := mtl.RegionMake2D(0, 0, w.texture.Width, w.texture.Height) bytesPerRow := 4 * w.texture.Width diff --git a/shiny/driver/mtldriver/window_amd64.go b/shiny/driver/mtldriver/window_amd64.go index f8dafad9..ef13782a 100644 --- a/shiny/driver/mtldriver/window_amd64.go +++ b/shiny/driver/mtldriver/window_amd64.go @@ -13,27 +13,27 @@ import ( "golang.org/x/image/math/f64" ) -func (w *windowImpl) Upload(dp image.Point, src screen.Image, sr image.Rectangle) { +func (w *Window) Upload(dp image.Point, src screen.Image, sr image.Rectangle) { draw.Draw(w.bgra, sr.Sub(sr.Min).Add(dp), src.RGBA(), sr.Min, draw.Src) } -func (w *windowImpl) Fill(dr image.Rectangle, src color.Color, op draw.Op) { +func (w *Window) Fill(dr image.Rectangle, src color.Color, op draw.Op) { draw.Draw(w.bgra, dr, &image.Uniform{src}, image.Point{}, op) } -func (w *windowImpl) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectangle, op draw.Op) { +func (w *Window) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectangle, op draw.Op) { draw.NearestNeighbor.Transform(w.bgra, src2dst, src.(*textureImpl).rgba, sr, op, nil) } -func (w *windowImpl) DrawUniform(src2dst f64.Aff3, src color.Color, sr image.Rectangle, op draw.Op) { +func (w *Window) DrawUniform(src2dst f64.Aff3, src color.Color, sr image.Rectangle, op draw.Op) { draw.NearestNeighbor.Transform(w.bgra, src2dst, &image.Uniform{src}, sr, op, nil) } -func (w *windowImpl) Copy(dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) { +func (w *Window) Copy(dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) { drawer.Copy(w, dp, src, sr, op) } -func (w *windowImpl) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) { +func (w *Window) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) { drawer.Scale(w, dr, src, sr, op) } diff --git a/shiny/driver/mtldriver/window_arm64.go b/shiny/driver/mtldriver/window_arm64.go index ea5818dc..fa653391 100644 --- a/shiny/driver/mtldriver/window_arm64.go +++ b/shiny/driver/mtldriver/window_arm64.go @@ -13,7 +13,7 @@ import ( "golang.org/x/image/math/f64" ) -func (w *windowImpl) Upload(dp image.Point, srcImg screen.Image, sr image.Rectangle) { +func (w *Window) Upload(dp image.Point, srcImg screen.Image, sr image.Rectangle) { dst := w.bgra r := sr.Sub(sr.Min).Add(dp) src := srcImg.RGBA() @@ -45,22 +45,22 @@ func (w *windowImpl) Upload(dp image.Point, srcImg screen.Image, sr image.Rectan } } -func (w *windowImpl) Fill(dr image.Rectangle, src color.Color, op draw.Op) { +func (w *Window) Fill(dr image.Rectangle, src color.Color, op draw.Op) { // Unimplemented } -func (w *windowImpl) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectangle, op draw.Op) { +func (w *Window) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectangle, op draw.Op) { nnInterpolator{}.Transform(w.bgra, src2dst, src.(*textureImpl).rgba, sr) } -func (w *windowImpl) DrawUniform(src2dst f64.Aff3, src color.Color, sr image.Rectangle, op draw.Op) { +func (w *Window) DrawUniform(src2dst f64.Aff3, src color.Color, sr image.Rectangle, op draw.Op) { // Unimplemented } -func (w *windowImpl) Copy(dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) { +func (w *Window) Copy(dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) { drawer.Copy(w, dp, src, sr, draw.Over) } -func (w *windowImpl) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) { +func (w *Window) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) { drawer.Scale(w, dr, src, sr, draw.Over) } diff --git a/shiny/driver/mtldriver_darwin.go b/shiny/driver/mtldriver_darwin.go index 59618ed7..9035c9f1 100644 --- a/shiny/driver/mtldriver_darwin.go +++ b/shiny/driver/mtldriver_darwin.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build darwin -// +build !noop +//go:build darwin && !noop +// +build darwin,!noop package driver @@ -54,3 +54,5 @@ func monitorSize() (int, int) { } return w, h } + +type Window = mtldriver.Window From f4d1e790f2fea4fcb6d3854c7b2aacc706dc8bb1 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sun, 3 Apr 2022 20:32:35 +0000 Subject: [PATCH 048/146] shiny/driver/internal/win32: add build tags to cursor file --- shiny/driver/internal/win32/cursor.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/shiny/driver/internal/win32/cursor.go b/shiny/driver/internal/win32/cursor.go index ecf0ef1e..61e75628 100644 --- a/shiny/driver/internal/win32/cursor.go +++ b/shiny/driver/internal/win32/cursor.go @@ -1,3 +1,6 @@ +//go:build windows +// +build windows + package win32 import "sync" From e08046a03a10b3fdcf53facc28a5a5878a447f9f Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sun, 3 Apr 2022 20:32:54 +0000 Subject: [PATCH 049/146] examples/screenopts: add title and notification buttons --- examples/screenopts/main.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/examples/screenopts/main.go b/examples/screenopts/main.go index b96b02b4..8967bb9f 100644 --- a/examples/screenopts/main.go +++ b/examples/screenopts/main.go @@ -2,6 +2,7 @@ package main import ( "fmt" + "strconv" oak "github.com/oakmound/oak/v3" "github.com/oakmound/oak/v3/event" @@ -20,6 +21,8 @@ func main() { oak.AddScene("demo", scene.Scene{Start: func(ctx *scene.Context) { txt := render.NewText("Press F to toggle fullscreen. Press B to toggle borderless. Press T to toggle topmost", 50, 50) render.Draw(txt) + line2 := render.NewText("Press Q to change window title. Press N to show a notification", 50, 70) + render.Draw(line2) borderless := borderlessAtStart fullscreen := fullscreenAtStart @@ -55,6 +58,16 @@ func main() { } return 0 }) + event.GlobalBind(ctx, key.Down(key.N), func(k key.Event) event.Response { + oak.ShowNotification("title", "message", false) + return 0 + }) + titleCt := 0 + event.GlobalBind(ctx, key.Down(key.Q), func(k key.Event) event.Response { + titleCt++ + oak.SetTitle("window title " + strconv.Itoa(titleCt)) + return 0 + }) }}) From 14d444ce2bf8d1e8b779385d7edf51ff4c378766 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sun, 3 Apr 2022 20:33:03 +0000 Subject: [PATCH 050/146] event: correct dlog version --- event/bind.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/event/bind.go b/event/bind.go index 68dd2d48..4e66fc38 100644 --- a/event/bind.go +++ b/event/bind.go @@ -3,7 +3,7 @@ package event import ( "sync/atomic" - "github.com/oakmound/oak/dlog" + "github.com/oakmound/oak/v3/dlog" ) // Q: Why do Bind / Unbind / etc not immediately take effect? @@ -118,7 +118,7 @@ type Bindable[C any, Payload any] func(C, Payload) Response // triggered on the caller's ID. func Bind[C Caller, Payload any](h Handler, ev EventID[Payload], caller C, fn Bindable[C, Payload]) Binding { if caller.CID() == 0 { - dlog.Warn("Bind called with CallerID 0; is this entity registered and set?") + dlog.Error("Bind called with CallerID 0; is this entity registered and set?") } return h.UnsafeBind(ev.UnsafeEventID, caller.CID(), func(cid CallerID, h Handler, payload interface{}) Response { typedPayload := payload.(Payload) From 43ea47c262ca9d1bb9778714f34f2a4eb5228585 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Mon, 4 Apr 2022 08:27:39 -0500 Subject: [PATCH 051/146] shiny/driver: replace Tray methods with SetIcon SetIcon is much more likely to be a thing a real application will want to call over using tray icons. In addition, there are existing libraries (beeep) that do notifications well already. --- default.go | 12 +-- examples/screenopts/main.go | 34 ++++++- .../driver/internal/win32/zsyscall_windows.go | 8 +- shiny/driver/mtldriver/window.go | 13 +-- shiny/driver/windriver/ico.go | 74 ++++++++++++++ shiny/driver/windriver/window.go | 97 +++++++++---------- window/window.go | 8 +- 7 files changed, 165 insertions(+), 81 deletions(-) create mode 100644 shiny/driver/windriver/ico.go diff --git a/default.go b/default.go index 42525a88..97d34cbb 100644 --- a/default.go +++ b/default.go @@ -103,16 +103,10 @@ func SetTitle(title string) error { return defaultWindow.SetTitle(title) } -// SetTrayIcon calls SetTrayIcon on the default window. -func SetTrayIcon(icon string) error { +// SetIcon calls SetIcon on the default window. +func SetIcon(icon image.Image) error { initDefaultWindow() - return defaultWindow.SetTrayIcon(icon) -} - -// ShowNotification calls ShowNotification on the default window. -func ShowNotification(title, msg string, icon bool) error { - initDefaultWindow() - return defaultWindow.ShowNotification(title, msg, icon) + return defaultWindow.SetIcon(icon) } // ScreenShot calls ScreenShot on the default window. diff --git a/examples/screenopts/main.go b/examples/screenopts/main.go index 8967bb9f..5ce3e691 100644 --- a/examples/screenopts/main.go +++ b/examples/screenopts/main.go @@ -2,6 +2,9 @@ package main import ( "fmt" + "image" + "image/color" + "math/rand" "strconv" oak "github.com/oakmound/oak/v3" @@ -21,13 +24,38 @@ func main() { oak.AddScene("demo", scene.Scene{Start: func(ctx *scene.Context) { txt := render.NewText("Press F to toggle fullscreen. Press B to toggle borderless. Press T to toggle topmost", 50, 50) render.Draw(txt) - line2 := render.NewText("Press Q to change window title. Press N to show a notification", 50, 70) + line2 := render.NewText("Press Q to change window title. Press C to change the window icon", 50, 70) render.Draw(line2) borderless := borderlessAtStart fullscreen := fullscreenAtStart topMost := topMostAtStart + event.GlobalBind(ctx, key.Down(key.C), func(k key.Event) event.Response { + colors := []color.RGBA{ + {255, 255, 0, 255}, + {255, 0, 255, 255}, + {0, 255, 255, 255}, + {255, 0, 0, 255}, + {0, 255, 0, 255}, + {0, 0, 255, 255}, + } + c := colors[rand.Intn(len(colors))] + rgba := image.NewRGBA(image.Rect(0, 0, 32, 32)) + for x := 0; x < 32; x++ { + for y := 0; y < 32; y++ { + rgba.SetRGBA(x, y, c) + } + } + + // TODO: this is silly + err := ctx.Window.(*oak.Window).Window.SetIcon(rgba) + if err != nil { + fmt.Println(err) + } + return 0 + }) + event.GlobalBind(ctx, key.Down(key.F), func(k key.Event) event.Response { fullscreen = !fullscreen fmt.Println("Setting fullscreen:", fullscreen) @@ -58,10 +86,6 @@ func main() { } return 0 }) - event.GlobalBind(ctx, key.Down(key.N), func(k key.Event) event.Response { - oak.ShowNotification("title", "message", false) - return 0 - }) titleCt := 0 event.GlobalBind(ctx, key.Down(key.Q), func(k key.Event) event.Response { titleCt++ diff --git a/shiny/driver/internal/win32/zsyscall_windows.go b/shiny/driver/internal/win32/zsyscall_windows.go index 26814887..9f2d2e4d 100644 --- a/shiny/driver/internal/win32/zsyscall_windows.go +++ b/shiny/driver/internal/win32/zsyscall_windows.go @@ -42,7 +42,7 @@ var ( ) var ( - procShell_NotifyIconW = modshell32.NewProc("Shell_NotifyIconW") + procShell_NotifyIconW = modshell32.NewProc("Shell_NotifyIconW") procRegisterClass = moduser32.NewProc("RegisterClassW") procIsZoomed = moduser32.NewProc("IsZoomed") procLoadIcon = moduser32.NewProc("LoadIconW") @@ -60,6 +60,7 @@ var ( procPostMessage = moduser32.NewProc("PostMessageW") procSetWindowText = moduser32.NewProc("SetWindowTextW") procGetWindowRect = moduser32.NewProc("GetWindowRect") + procGetWindow = moduser32.NewProc("GetWindow") procMoveWindow = moduser32.NewProc("MoveWindow") procScreenToClient = moduser32.NewProc("ScreenToClient") procSetWindowLong = moduser32.NewProc("SetWindowLongW") @@ -180,6 +181,11 @@ func DestroyWindow(hwnd HWND) bool { return ret != 0 } +const ( + ICON_BIG = 1 + ICON_SMALL = 0 +) + func DefWindowProc(hwnd HWND, msg uint32, wParam, lParam uintptr) (uintptr, error) { ret, _, err := procDefWindowProc.Call( uintptr(hwnd), diff --git a/shiny/driver/mtldriver/window.go b/shiny/driver/mtldriver/window.go index cb429c5b..6ab5033c 100644 --- a/shiny/driver/mtldriver/window.go +++ b/shiny/driver/mtldriver/window.go @@ -11,7 +11,6 @@ import ( "fmt" "image" "log" - "os/exec" "dmitri.shuralyov.com/gpu/mtl" "github.com/go-gl/glfw/v3.3/glfw" @@ -162,7 +161,7 @@ func (w *Window) SetTopMost(topMost bool) error { return nil } -func (w *Window) SetTrayIcon(path string) error { +func (w *Window) SetIcon(image.Image) error { // TODO: the problem here is that this ^ takes a path, because windows // wants a path, where glfw wants an image.Image (or set of them). // for v4, standardize this interface. @@ -170,16 +169,6 @@ func (w *Window) SetTrayIcon(path string) error { return fmt.Errorf("unimplemented") } -func (w *Window) ShowNotification(title, msg string, icon bool) error { - // formed between beeep and stack overflow - osa, err := exec.LookPath("osascript") - if err != nil { - return err - } - cmd := exec.Command(osa, "-e", fmt.Sprintf("display notification %q with title %q", msg, title)) - return cmd.Run() -} - func (w *Window) NextEvent() interface{} { e := w.Deque.NextEvent() if sz, ok := e.(size.Event); ok { diff --git a/shiny/driver/windriver/ico.go b/shiny/driver/windriver/ico.go new file mode 100644 index 00000000..f6f4d38a --- /dev/null +++ b/shiny/driver/windriver/ico.go @@ -0,0 +1,74 @@ +package windriver + +import ( + "bufio" + "bytes" + "encoding/binary" + "image" + "image/draw" + "image/png" + "io" +) + +// adapted from https://github.com/Kodeworks/golang-image-ico + +type icondir struct { + reserved uint16 + imageType uint16 + numImages uint16 +} + +type icondirentry struct { + imageWidth uint8 + imageHeight uint8 + numColors uint8 + reserved uint8 + colorPlanes uint16 + bitsPerPixel uint16 + sizeInBytes uint32 + offset uint32 +} + +func newIcondir() icondir { + var id icondir + id.imageType = 1 + id.numImages = 1 + return id +} + +func newIcondirentry() icondirentry { + var ide icondirentry + ide.colorPlanes = 1 // windows is supposed to not mind 0 or 1, but other icon files seem to have 1 here + ide.bitsPerPixel = 32 // can be 24 for bitmap or 24/32 for png. Set to 32 for now + ide.offset = 22 //6 icondir + 16 icondirentry, next image will be this image size + 16 icondirentry, etc + return ide +} + +func encodeIco(w io.Writer, im image.Image) error { + b := im.Bounds() + m := image.NewRGBA(b) + draw.Draw(m, b, im, b.Min, draw.Src) + + id := newIcondir() + ide := newIcondirentry() + + pngbb := new(bytes.Buffer) + pngwriter := bufio.NewWriter(pngbb) + png.Encode(pngwriter, m) + pngwriter.Flush() + ide.sizeInBytes = uint32(len(pngbb.Bytes())) + + bounds := m.Bounds() + ide.imageWidth = uint8(bounds.Dx()) + ide.imageHeight = uint8(bounds.Dy()) + bb := new(bytes.Buffer) + + var e error + binary.Write(bb, binary.LittleEndian, id) + binary.Write(bb, binary.LittleEndian, ide) + + w.Write(bb.Bytes()) + w.Write(pngbb.Bytes()) + + return e +} diff --git a/shiny/driver/windriver/window.go b/shiny/driver/windriver/window.go index 6f0cbdad..19f2358b 100644 --- a/shiny/driver/windriver/window.go +++ b/shiny/driver/windriver/window.go @@ -16,6 +16,10 @@ import ( "image/color" "image/draw" "math" + "math/rand" + "os" + "path/filepath" + "strconv" "sync" "syscall" "unsafe" @@ -245,70 +249,63 @@ func (w *Window) HideCursor() error { return nil } -func (w *Window) SetTrayIcon(iconPath string) error { - if w.trayGUID == nil { - if err := w.createTrayItem(); err != nil { - return err - } +// SetIcon sets this window's taskbar (and top left corner) icon +func (w *Window) SetIcon(icon image.Image) error { + // windows supports four modes of setting icons: + // 1. loading internal resources embedded into binaries in a windows-specific fashion + // 2. loading from file + // 3. using windows-os built in icons like question marks + // 4. hand crafting black and white icons via combining AND and XOR masks + // + // note, none of these are 'use an icon held in application memory' + // + // 1 is not an option for a multiplatform app. + // 3 is not an option because icons are usually not built in windows icons. + // 4 is not an option because icons are usually colorful. + // + // so we're left with 2: take the image given, write it as an icon to a temporary + // file, load that file, set it as the icon, delete that file. + iconPath := filepath.Join(os.TempDir(), "oakicon"+strconv.Itoa(rand.Int())+".ico") + f, err := os.Create(iconPath) + if err != nil { + return fmt.Errorf("failed to create icon: %w", err) + } + defer os.Remove(iconPath) + err = encodeIco(f, icon) + if err != nil { + return err } - iconData := win32.NOTIFYICONDATA{} - iconData.CbSize = uint32(unsafe.Sizeof(iconData)) - iconData.UFlags = win32.NIF_GUID | win32.NIF_MESSAGE - iconData.HWnd = w.hwnd - iconData.GUIDItem = *w.trayGUID - iconData.UFlags = win32.NIF_GUID | win32.NIF_ICON - var err error - iconData.HIcon, err = win32.LoadImage( + f.Close() + + hicon, err := win32.LoadImage( 0, windows.StringToUTF16Ptr(iconPath), win32.IMAGE_ICON, 0, 0, win32.LR_DEFAULTSIZE|win32.LR_LOADFROMFILE) if err != nil { - return fmt.Errorf("failed to load icon: %w", err) - } - if !win32.Shell_NotifyIcon(win32.NIM_MODIFY, &iconData) { - return fmt.Errorf("failed to create notification icon") - } - return nil -} - -func (w *Window) ShowNotification(title, msg string, icon bool) error { - if w.trayGUID == nil { - if err := w.createTrayItem(); err != nil { - return err + if isWindowsSuccessError(err) { + return fmt.Errorf("failed to reload image") } - } - iconData := win32.NOTIFYICONDATA{} - iconData.CbSize = uint32(unsafe.Sizeof(iconData)) - iconData.UFlags = win32.NIF_GUID | win32.NIF_INFO - iconData.HWnd = w.hwnd - iconData.GUIDItem = *w.trayGUID - copy(iconData.SzInfoTitle[:], windows.StringToUTF16(title)) - copy(iconData.SzInfo[:], windows.StringToUTF16(msg)) - if icon { - iconData.DwInfoFlags = win32.NIIF_USER | win32.NIIF_LARGE_ICON + return fmt.Errorf("failed to reload image: %v", err) } - if !win32.Shell_NotifyIcon(win32.NIM_MODIFY, &iconData) { - return fmt.Errorf("failed to create notification icon") - } + win32.SendMessage(w.hwnd, win32.WM_SETICON, win32.ICON_SMALL, hicon) + win32.SendMessage(w.hwnd, win32.WM_SETICON, win32.ICON_BIG, hicon) return nil } -func (w *Window) createTrayItem() error { - w.trayGUID = new(win32.GUID) - *w.trayGUID = win32.MakeGUID(w.guid) - iconData := win32.NOTIFYICONDATA{} - iconData.CbSize = uint32(unsafe.Sizeof(iconData)) - iconData.UFlags = win32.NIF_GUID | win32.NIF_MESSAGE - iconData.HWnd = w.hwnd - iconData.GUIDItem = *w.trayGUID - iconData.UCallbackMessage = win32.WM_APP + 1 - if !win32.Shell_NotifyIcon(win32.NIM_ADD, &iconData) { - return fmt.Errorf("failed to create notification") +func isWindowsSuccessError(err error) bool { + var errno syscall.Errno + if errors.As(err, &errno) { + if errno == 0 { + // we got a confusing 'this operation completed successfully' + // no, this does not actually mean the operation necessarily succeeded + // no, win32.GetLastError will not necessarily return a real error to clarify things + return true + } } - return nil + return false } func (w *Window) MoveWindow(x, y, wd, ht int) error { diff --git a/window/window.go b/window/window.go index 926df662..e74bf25b 100644 --- a/window/window.go +++ b/window/window.go @@ -2,19 +2,19 @@ package window import ( + "image" + "github.com/oakmound/oak/v3/alg/intgeom" "github.com/oakmound/oak/v3/event" ) -// Window is an interface of methods on an oak.Window used -// to avoid circular imports +// Window is an interface of methods on an oak.Window type Window interface { SetFullScreen(bool) error SetBorderless(bool) error SetTopMost(bool) error SetTitle(string) error - SetTrayIcon(string) error - ShowNotification(title, msg string, icon bool) error + SetIcon(image.Image) error MoveWindow(x, y, w, h int) error HideCursor() error From 9929aeb75fdb5e2bfbd6b4062b36c80125845ce8 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Mon, 4 Apr 2022 10:04:37 -0500 Subject: [PATCH 052/146] shiny/driver/x11driver: add SetTitle --- shiny/driver/x11driver/window.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/shiny/driver/x11driver/window.go b/shiny/driver/x11driver/window.go index 84e6c4da..3fac7c13 100644 --- a/shiny/driver/x11driver/window.go +++ b/shiny/driver/x11driver/window.go @@ -195,3 +195,10 @@ func (w *windowImpl) MoveWindow(x, y, width, height int32) error { }) return nil } + +func (w *Window) SetTitle(title string) error { + xproto.ChangeProperty(w.s.xc, xproto.PropModeReplace, w.xw, + w.s.atoms["_NET_WM_NAME"], w.s.atoms["UTF8_STRING"], + 8, uint32(len(title)), []byte(title)) + return nil +} From a345bdd7153bef8645d6012f0f98dd71bb72fc87 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Mon, 4 Apr 2022 10:05:03 -0500 Subject: [PATCH 053/146] shiny/driver/x11driver: add SetIcon --- shiny/driver/x11driver/window.go | 35 ++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/shiny/driver/x11driver/window.go b/shiny/driver/x11driver/window.go index 3fac7c13..7f2be4c0 100644 --- a/shiny/driver/x11driver/window.go +++ b/shiny/driver/x11driver/window.go @@ -202,3 +202,38 @@ func (w *Window) SetTitle(title string) error { 8, uint32(len(title)), []byte(title)) return nil } + +func (w *Window) SetIcon(icon image.Image) error { + bds := icon.Bounds() + wd := bds.Max.X + h := bds.Max.Y + u32w := uint32(wd) + u32h := uint32(h) + // 4 bytes, b/g/r/a, per pixel + bgra := make([]byte, 8, 8+wd*h*4) + // prepend width and height + bgra[0] = byte(u32w) + bgra[1] = byte(u32w >> 8) + bgra[2] = byte(u32w >> 16) + bgra[3] = byte(u32w >> 24) + bgra[4] = byte(u32h) + bgra[5] = byte(u32h >> 8) + bgra[6] = byte(u32h >> 16) + bgra[7] = byte(u32h >> 24) + for x := 0; x < wd; x++ { + for y := 0; y < h; y++ { + c := icon.At(x, (h-1)-y) + r, g, b, a := c.RGBA() + bgra = append(bgra, byte(b>>8)) + bgra = append(bgra, byte(g>>8)) + bgra = append(bgra, byte(r>>8)) + bgra = append(bgra, byte(a>>8)) + } + } + const XA_CARDINAL = 6 + + xproto.ChangeProperty(w.s.xc, xproto.PropModeReplace, w.xw, + w.s.atoms["_NET_WM_ICON"], XA_CARDINAL, + 32, uint32(len(bgra))/4, bgra) + return nil +} From 2fd1ed1cb3459b818cf87289998948c1e9929baa Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Mon, 4 Apr 2022 10:09:02 -0500 Subject: [PATCH 054/146] shiny/driver/x11driver: add SetTopMost --- shiny/driver/internal/x11/x11.go | 14 +++++++++++++- shiny/driver/x11driver/window.go | 4 ++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/shiny/driver/internal/x11/x11.go b/shiny/driver/internal/x11/x11.go index 3584f00b..5917604b 100644 --- a/shiny/driver/internal/x11/x11.go +++ b/shiny/driver/internal/x11/x11.go @@ -51,9 +51,21 @@ func SetFullScreen(xutil *xgbutil.XUtil, win xproto.Window, fullscreen bool) err return ewmh.WmStateReq(xutil, win, action, "_NET_WM_STATE_FULLSCREEN") } +func ToggleTopMost(xutil *xgbutil.XUtil, win xproto.Window) error { + return ewmh.WmStateReq(xutil, win, ewmh.StateToggle, "_NET_WM_STATE_ABOVE") +} + +func SetTopMost(xutil *xgbutil.XUtil, win xproto.Window, topMost bool) error { + action := ewmh.StateRemove + if topMost { + action = ewmh.StateAdd + } + return ewmh.WmStateReq(xutil, win, action, "_NET_WM_STATE_ABOVE") +} + func SetBorderless(xutil *xgbutil.XUtil, win xproto.Window, borderless bool) error { hints := &motif.Hints{ - Flags: motif.HintDecorations, + Flags: motif.HintDecorations, Decoration: motif.DecorationNone, } if !borderless { diff --git a/shiny/driver/x11driver/window.go b/shiny/driver/x11driver/window.go index 7f2be4c0..ce7e5954 100644 --- a/shiny/driver/x11driver/window.go +++ b/shiny/driver/x11driver/window.go @@ -203,6 +203,10 @@ func (w *Window) SetTitle(title string) error { return nil } +func (w *Window) SetTopMost(topMost bool) error { + return x11.SetTopMost(w.s.XUtil, w.xw, topMost) +} + func (w *Window) SetIcon(icon image.Image) error { bds := icon.Bounds() wd := bds.Max.X From b16533d13be78c3a239eed686410463dd95485d5 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Mon, 4 Apr 2022 11:28:19 -0500 Subject: [PATCH 055/146] shiny/driver/x11driver: add HideCursor --- shiny/driver/x11driver/window.go | 42 +++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/shiny/driver/x11driver/window.go b/shiny/driver/x11driver/window.go index ce7e5954..e4ffba2e 100644 --- a/shiny/driver/x11driver/window.go +++ b/shiny/driver/x11driver/window.go @@ -207,6 +207,44 @@ func (w *Window) SetTopMost(topMost bool) error { return x11.SetTopMost(w.s.XUtil, w.xw, topMost) } +func (w *Window) HideCursor() error { + // ask X for a pixmap id + px, err := xproto.NewPixmapId(w.s.xc) + if err != nil { + return err + } + + // Create a 1x1 pixmap with that pixmap id + // depth has to be 1, otherwise you get BadMatch + // the drawable has to be this root window. I don't know why. + // You can't make a pixmap with less than 1x1 dimensions. + // I don't even know if this pixmap is black or transparent + xproto.CreatePixmap(w.s.xc, 1, px, xproto.Drawable(w.s.XUtil.RootWin()), 1, 1) + + // ask X for a cursor id + cursorId, err := xproto.NewCursorId(w.s.xc) + if err != nil { + return err + } + + // create a cursor from the pixmap with that cursor id. + // the zeros are colors (r,g,b,r,g,b) and the hotspot of the cursor (x,y) + // the second px is a mask which we ignore. + xproto.CreateCursor(w.s.xc, cursorId, px, px, 0, 0, 0, 0, 0, 0, 0, 0) + + // change the cursor of the window to be the created cursor. + xproto.ChangeWindowAttributes(w.s.xc, w.xw, + xproto.CwBackPixel|xproto.CwCursor, []uint32{0xffffffff, uint32(cursorId)}) + + // free the things we created + // it does not make sense to me that we can free these, and still persist our created + // cursor, but it works + xproto.FreeCursor(w.s.xc, cursorId) + xproto.FreePixmap(w.s.xc, px) + + return nil +} + func (w *Window) SetIcon(icon image.Image) error { bds := icon.Bounds() wd := bds.Max.X @@ -235,7 +273,9 @@ func (w *Window) SetIcon(icon image.Image) error { } } const XA_CARDINAL = 6 - + // 32 here is the bit size of a cardinal, which is a bgra pixel + // we divide our length by 4 because we're sending a byte slice, + // not a cardinal slice xproto.ChangeProperty(w.s.xc, xproto.PropModeReplace, w.xw, w.s.atoms["_NET_WM_ICON"], XA_CARDINAL, 32, uint32(len(bgra))/4, bgra) From e0e1717c5925b59f3e9bad5246cb81794b29ee05 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Mon, 4 Apr 2022 11:35:33 -0500 Subject: [PATCH 056/146] shiny/driver/x11driver: fix for new window interface --- lifecycle.go | 6 ++--- shiny/driver/driver_x11.go | 2 ++ shiny/driver/internal/x11/x11.go | 4 +-- shiny/driver/x11driver/screen.go | 11 +++++---- shiny/driver/x11driver/window.go | 42 ++++++++++++++++++++------------ shiny/screen/options.go | 4 +-- window.go | 2 +- 7 files changed, 42 insertions(+), 29 deletions(-) diff --git a/lifecycle.go b/lifecycle.go index cea0053d..7df9106a 100644 --- a/lifecycle.go +++ b/lifecycle.go @@ -23,8 +23,8 @@ func (w *Window) lifecycleLoop(s screen.Screen) { // Apply that factor to the scale err = w.newWindow( - int32(w.config.Screen.X), - int32(w.config.Screen.Y), + w.config.Screen.X, + w.config.Screen.Y, int(float64(w.ScreenWidth)*w.config.Screen.Scale), int(float64(w.ScreenHeight)*w.config.Screen.Scale), ) @@ -55,7 +55,7 @@ func (w *Window) Quit() { } } -func (w *Window) newWindow(x, y int32, width, height int) error { +func (w *Window) newWindow(x, y, width, height int) error { // The window controller handles incoming hardware or platform events and // publishes image data to the screen. wC, err := w.windowController(w.screenControl, x, y, width, height) diff --git a/shiny/driver/driver_x11.go b/shiny/driver/driver_x11.go index c2169238..87320635 100644 --- a/shiny/driver/driver_x11.go +++ b/shiny/driver/driver_x11.go @@ -19,3 +19,5 @@ func main(f func(screen.Screen)) { func monitorSize() (int, int) { return 0, 0 } + +type Window = x11driver.Window diff --git a/shiny/driver/internal/x11/x11.go b/shiny/driver/internal/x11/x11.go index 5917604b..b85f17c0 100644 --- a/shiny/driver/internal/x11/x11.go +++ b/shiny/driver/internal/x11/x11.go @@ -11,7 +11,7 @@ import ( "github.com/BurntSushi/xgbutil/motif" ) -func MoveWindow(xc *xgb.Conn, xw xproto.Window, x, y, width, height int32) (int32, int32, int32, int32) { +func MoveWindow(xc *xgb.Conn, xw xproto.Window, x, y, width, height int) (int, int, int, int) { vals := []uint32{} flags := xproto.ConfigWindowHeight | @@ -66,7 +66,7 @@ func SetTopMost(xutil *xgbutil.XUtil, win xproto.Window, topMost bool) error { func SetBorderless(xutil *xgbutil.XUtil, win xproto.Window, borderless bool) error { hints := &motif.Hints{ Flags: motif.HintDecorations, - Decoration: motif.DecorationNone, + Decoration: motif.DecorationNone, } if !borderless { hints.Decoration = motif.DecorationAll diff --git a/shiny/driver/x11driver/screen.go b/shiny/driver/x11driver/screen.go index fa15a388..ab55b5d6 100644 --- a/shiny/driver/x11driver/screen.go +++ b/shiny/driver/x11driver/screen.go @@ -57,7 +57,7 @@ type screenImpl struct { mu sync.Mutex buffers map[shm.Seg]*bufferImpl uploads map[uint16]chan struct{} - windows map[xproto.Window]*windowImpl + windows map[xproto.Window]*Window nPendingUploads int completionKeys []uint16 } @@ -69,6 +69,7 @@ var ( "WM_DELETE_WINDOW", "WM_PROTOCOLS", "WM_TAKE_FOCUS", + "_NET_WM_ICON", } ) @@ -85,7 +86,7 @@ func newScreenImpl(xutil *xgbutil.XUtil) (s *screenImpl, err error) { xsi: xutil.Setup().DefaultScreen(xutil.Conn()), buffers: map[shm.Seg]*bufferImpl{}, uploads: map[uint16]chan struct{}{}, - windows: map[xproto.Window]*windowImpl{}, + windows: map[xproto.Window]*Window{}, } for _, atom := range initialAtoms { s.atoms[atom], err = xprop.Atm(s.XUtil, atom) @@ -294,7 +295,7 @@ func (s *screenImpl) findBuffer(key shm.Seg) *bufferImpl { return b } -func (s *screenImpl) findWindow(key xproto.Window) *windowImpl { +func (s *screenImpl) findWindow(key xproto.Window) *Window { s.mu.Lock() w := s.windows[key] s.mu.Unlock() @@ -447,7 +448,7 @@ func (s *screenImpl) NewWindow(opts screen.WindowGenerator) (screen.Window, erro pictformat = s.pictformat32 } - w := &windowImpl{ + w := &Window{ s: s, xw: xw, xg: xg, @@ -489,7 +490,7 @@ func (s *screenImpl) NewWindow(opts screen.WindowGenerator) (screen.Window, erro render.CreatePicture(s.xc, xp, xproto.Drawable(xw), pictformat, 0, nil) xproto.MapWindow(s.xc, xw) - err = w.MoveWindow(opts.X, opts.Y, int32(width), int32(height)) + err = w.MoveWindow(opts.X, opts.Y, width, height) if opts.Fullscreen { err = w.SetFullScreen(true) if err != nil { diff --git a/shiny/driver/x11driver/window.go b/shiny/driver/x11driver/window.go index e4ffba2e..cd3f984a 100644 --- a/shiny/driver/x11driver/window.go +++ b/shiny/driver/x11driver/window.go @@ -30,7 +30,7 @@ import ( "golang.org/x/mobile/geom" ) -type windowImpl struct { +type Window struct { s *screenImpl xw xproto.Window @@ -48,11 +48,13 @@ type windowImpl struct { mu sync.Mutex + lastMouseX, lastMouseY int16 + x, y uint32 released bool } -func (w *windowImpl) Release() { +func (w *Window) Release() { w.mu.Lock() released := w.released w.released = true @@ -69,31 +71,31 @@ func (w *windowImpl) Release() { xproto.DestroyWindow(w.s.xc, w.xw) } -func (w *windowImpl) Upload(dp image.Point, src screen.Image, sr image.Rectangle) { +func (w *Window) Upload(dp image.Point, src screen.Image, sr image.Rectangle) { src.(*bufferImpl).upload(xproto.Drawable(w.xw), w.xg, w.s.xsi.RootDepth, dp, sr) } -func (w *windowImpl) Fill(dr image.Rectangle, src color.Color, op draw.Op) { +func (w *Window) Fill(dr image.Rectangle, src color.Color, op draw.Op) { fill(w.s.xc, w.xp, dr, src, op) } -func (w *windowImpl) DrawUniform(src2dst f64.Aff3, src color.Color, sr image.Rectangle, op draw.Op) { +func (w *Window) DrawUniform(src2dst f64.Aff3, src color.Color, sr image.Rectangle, op draw.Op) { w.s.drawUniform(w.xp, &src2dst, src, sr, op) } -func (w *windowImpl) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectangle, op draw.Op) { +func (w *Window) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectangle, op draw.Op) { src.(*textureImpl).draw(w.xp, &src2dst, sr, op) } -func (w *windowImpl) Copy(dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) { +func (w *Window) Copy(dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) { drawer.Copy(w, dp, src, sr, op) } -func (w *windowImpl) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) { +func (w *Window) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) { drawer.Scale(w, dr, src, sr, op) } -func (w *windowImpl) Publish() screen.PublishResult { +func (w *Window) Publish() screen.PublishResult { // TODO: implement a back buffer, and copy or flip that here to the front // buffer. @@ -109,15 +111,15 @@ func (w *windowImpl) Publish() screen.PublishResult { return screen.PublishResult{} } -func (w *windowImpl) SetFullScreen(fullscreen bool) error { +func (w *Window) SetFullScreen(fullscreen bool) error { return x11.SetFullScreen(w.s.XUtil, w.xw, fullscreen) } -func (w *windowImpl) SetBorderless(borderless bool) error { +func (w *Window) SetBorderless(borderless bool) error { return x11.SetBorderless(w.s.XUtil, w.xw, borderless) } -func (w *windowImpl) handleConfigureNotify(ev xproto.ConfigureNotifyEvent) { +func (w *Window) handleConfigureNotify(ev xproto.ConfigureNotifyEvent) { // TODO: does the order of these lifecycle and size events matter? Should // they really be a single, atomic event? w.lifecycler.SetVisible((int(ev.X)+int(ev.Width)) > 0 && (int(ev.Y)+int(ev.Height)) > 0) @@ -137,11 +139,11 @@ func (w *windowImpl) handleConfigureNotify(ev xproto.ConfigureNotifyEvent) { }) } -func (w *windowImpl) handleExpose() { +func (w *Window) handleExpose() { w.Send(paint.Event{}) } -func (w *windowImpl) handleKey(detail xproto.Keycode, state uint16, dir key.Direction) { +func (w *Window) handleKey(detail xproto.Keycode, state uint16, dir key.Direction) { r, c := w.s.keysyms.Lookup(uint8(detail), state, w.s.numLockMod) w.Send(key.Event{ Rune: r, @@ -151,7 +153,9 @@ func (w *windowImpl) handleKey(detail xproto.Keycode, state uint16, dir key.Dire }) } -func (w *windowImpl) handleMouse(x, y int16, b xproto.Button, state uint16, dir mouse.Direction) { +func (w *Window) handleMouse(x, y int16, b xproto.Button, state uint16, dir mouse.Direction) { + w.lastMouseX = x + w.lastMouseY = y // TODO: should a mouse.Event have a separate MouseModifiers field, for // which buttons are pressed during a mouse move? btn := mouse.Button(b) @@ -180,7 +184,7 @@ func (w *windowImpl) handleMouse(x, y int16, b xproto.Button, state uint16, dir }) } -func (w *windowImpl) MoveWindow(x, y, width, height int32) error { +func (w *Window) MoveWindow(x, y, width, height int) error { newX, newY, newW, newH := x11.MoveWindow(w.s.xc, w.xw, x, y, width, height) w.x = uint32(newX) w.y = uint32(newY) @@ -281,3 +285,9 @@ func (w *Window) SetIcon(icon image.Image) error { 32, uint32(len(bgra))/4, bgra) return nil } + +func (w *Window) GetCursorPosition() (x, y float64) { + // it's really not easy to do this with X + // we're just caching the last values we got + return float64(w.lastMouseX), float64(w.lastMouseY) +} diff --git a/shiny/screen/options.go b/shiny/screen/options.go index 4702241b..47ba2603 100644 --- a/shiny/screen/options.go +++ b/shiny/screen/options.go @@ -30,7 +30,7 @@ type WindowGenerator struct { // X and Y determine the location the new window should be created at. If // either are zero, a driver-dependant default will be used for each zero // value. If Fullscreen is true, these values will be ignored. - X, Y int32 + X, Y int } // A WindowOption is any function that sets up a WindowGenerator. @@ -54,7 +54,7 @@ func Dimensions(w, h int) WindowOption { } // Position sets the starting position of the new window -func Position(x, y int32) WindowOption { +func Position(x, y int) WindowOption { return func(g *WindowGenerator) { g.X = x g.Y = y diff --git a/window.go b/window.go index 7a6bbe8a..1ae4f74f 100644 --- a/window.go +++ b/window.go @@ -23,7 +23,7 @@ import ( var _ window.Window = &Window{} -func (w *Window) windowController(s screen.Screen, x, y int32, width, height int) (*driver.Window, error) { +func (w *Window) windowController(s screen.Screen, x, y, width, height int) (*driver.Window, error) { // TODO v4: can we update this interface to return our concrete driver.Window? dwin, err := s.NewWindow(screen.NewWindowGenerator( screen.Dimensions(width, height), From cffab97cd62716c2597a91b39d57fad15085b6c6 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Mon, 4 Apr 2022 11:39:02 -0500 Subject: [PATCH 057/146] shiny/driver/internal/win32: fix integer casting on window create --- shiny/driver/internal/win32/win32.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shiny/driver/internal/win32/win32.go b/shiny/driver/internal/win32/win32.go index 9dfa55ec..8cd3dc7a 100644 --- a/shiny/driver/internal/win32/win32.go +++ b/shiny/driver/internal/win32/win32.go @@ -126,11 +126,11 @@ func ResizeClientRect(hwnd HWND, opts screen.WindowGenerator) error { h := (wr.Bottom - wr.Top) - (cr.Bottom - int32(opts.Height)) x := wr.Left if opts.X != 0 { - x = opts.X + x = int32(opts.X) } y := wr.Top if opts.Y != 0 { - y = opts.Y + y = int32(opts.Y) } return MoveWindow(hwnd, x, y, w, h, false) } From 547f1b3d7a796faad3e81605d5cd5a9488315a55 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Mon, 4 Apr 2022 16:52:33 +0000 Subject: [PATCH 058/146] shiny/driver/mtldriver: fill in implementation for SetIcon Inexpliciably, this appears to do nothing. --- shiny/driver/mtldriver/window.go | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/shiny/driver/mtldriver/window.go b/shiny/driver/mtldriver/window.go index 6ab5033c..5aeeca81 100644 --- a/shiny/driver/mtldriver/window.go +++ b/shiny/driver/mtldriver/window.go @@ -8,7 +8,6 @@ package mtldriver import ( - "fmt" "image" "log" @@ -161,12 +160,10 @@ func (w *Window) SetTopMost(topMost bool) error { return nil } -func (w *Window) SetIcon(image.Image) error { - // TODO: the problem here is that this ^ takes a path, because windows - // wants a path, where glfw wants an image.Image (or set of them). - // for v4, standardize this interface. - // w.window.SetIcon() - return fmt.Errorf("unimplemented") +// BUG: this doesn't work, and it doesn't error either +func (w *Window) SetIcon(img image.Image) error { + w.window.SetIcon([]image.Image{img}) + return nil } func (w *Window) NextEvent() interface{} { From 2422ab3cbe7ea24538a14cb6bf363f70ea4f2ed7 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Mon, 4 Apr 2022 16:55:59 +0000 Subject: [PATCH 059/146] oak: bump dependencies this was a failed attempt to make SetIcon work on osx --- go.mod | 14 +++++++------- go.sum | 14 ++++++++++++++ 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index f8b12964..62f7f857 100644 --- a/go.mod +++ b/go.mod @@ -6,23 +6,23 @@ require ( dmitri.shuralyov.com/gpu/mtl v0.0.0-20201218220906-28db891af037 github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 - github.com/disintegration/gift v1.2.0 + github.com/disintegration/gift v1.2.1 github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1 - github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb + github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958 github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 - github.com/hajimehoshi/go-mp3 v0.3.1 + github.com/hajimehoshi/go-mp3 v0.3.2 github.com/jfreymuth/pulse v0.1.0 github.com/oakmound/alsa v0.0.2 github.com/oakmound/libudev v0.2.1 github.com/oakmound/w32 v2.1.0+incompatible github.com/oov/directsound-go v0.0.0-20141101201356-e53e59c700bf - golang.org/x/image v0.0.0-20201208152932-35266b937fa6 - golang.org/x/mobile v0.0.0-20220112015953-858099ff7816 + golang.org/x/image v0.0.0-20220321031419-a8550c1d254a + golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 golang.org/x/sync v0.0.0-20210220032951-036812b2e83c - golang.org/x/sys v0.0.0-20220111092808-5a964db01320 + golang.org/x/sys v0.0.0-20220403205710-6acee93ad0eb ) require ( github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d // indirect - golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56 // indirect + golang.org/x/exp v0.0.0-20220328175248-053ad81199eb // indirect ) diff --git a/go.sum b/go.sum index f8cf8ae7..f6a56ac7 100644 --- a/go.sum +++ b/go.sum @@ -7,16 +7,22 @@ github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 h1:O/r2Sj+8QcMF github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046/go.mod h1:uw9h2sd4WWHOPdJ13MQpwK5qYWKYDumDqxWWIknEQ+k= github.com/disintegration/gift v1.2.0 h1:VMQeei2F+ZtsHjMgP6Sdt1kFjRhs2lGz8ljEOPeIR50= github.com/disintegration/gift v1.2.0/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI= +github.com/disintegration/gift v1.2.1 h1:Y005a1X4Z7Uc+0gLpSAsKhWi4qLtsdEcMIbbdvdZ6pc= +github.com/disintegration/gift v1.2.1/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI= github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d h1:HB5J9+f1xpkYLgWQ/RqEcbp3SEufyOIMYLoyKNKiG7E= github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d/go.mod h1:CHkHWWZ4kbGY6jEy1+qlitDaCtRgNvCOQdakj/1Yl/Q= github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1 h1:wl/ggSfTHqAy46hyzw1IlrUYwjqmXYvbJyPdH3rT7YE= github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1/go.mod h1:frG94byMNy+1CgGrQ25dZ+17tf98EN+OYBQL4Zh612M= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb h1:T6gaWBvRzJjuOrdCtg8fXXjKai2xSDqWTcKFUPuw8Tw= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958 h1:TL70PMkdPCt9cRhKTqsm+giRpgrd0IGEj763nNr2VFY= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/hajimehoshi/go-mp3 v0.3.1 h1:pn/SKU1+/rfK8KaZXdGEC2G/KCB2aLRjbTCrwKcokao= github.com/hajimehoshi/go-mp3 v0.3.1/go.mod h1:qMJj/CSDxx6CGHiZeCgbiq2DSUkbK0UbtXShQcnfyMM= +github.com/hajimehoshi/go-mp3 v0.3.2 h1:xSYNE2F3lxtOu9BRjCWHHceg7S91IHfXfXp5+LYQI7s= +github.com/hajimehoshi/go-mp3 v0.3.2/go.mod h1:qMJj/CSDxx6CGHiZeCgbiq2DSUkbK0UbtXShQcnfyMM= github.com/hajimehoshi/oto v0.6.1/go.mod h1:0QXGEkbuJRohbJaxr7ZQSxnju7hEhseiPx2hrh6raOI= github.com/jfreymuth/pulse v0.1.0 h1:KN38/9hoF9PJvP5DpEVhMRKNuwnJUonc8c9ARorRXUA= github.com/jfreymuth/pulse v0.1.0/go.mod h1:cpYspI6YljhkUf1WLXLLDmeaaPFc3CnGLjDZf9dZ4no= @@ -35,14 +41,20 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56 h1:estk1glOnSVeJ9tdEZZc5mAMDZk5lNJNyJ6DvrBkTEU= golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= +golang.org/x/exp v0.0.0-20220328175248-053ad81199eb h1:pC9Okm6BVmxEw76PUu0XUbOTQ92JX11hfvqTjAV3qxM= +golang.org/x/exp v0.0.0-20220328175248-053ad81199eb/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20201208152932-35266b937fa6 h1:nfeHNc1nAqecKCy2FCy4HY+soOOe5sDLJ/gZLbx6GYI= golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20220321031419-a8550c1d254a h1:LnH9RNcpPv5Kzi15lXg42lYMPUf0x8CuPv1YnvBWZAg= +golang.org/x/image v0.0.0-20220321031419-a8550c1d254a/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190415191353-3e0bab5405d6/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mobile v0.0.0-20220112015953-858099ff7816 h1:jhDgkcu3yQ4tasBZ+1YwDmK7eFmuVf1w1k+NGGGxfmE= golang.org/x/mobile v0.0.0-20220112015953-858099ff7816/go.mod h1:pe2sM7Uk+2Su1y7u/6Z8KJ24D7lepUjFZbhFOrmDfuQ= +golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 h1:ZDL7hDvJEQEcHVkoZawKmRUgbqn1pOIzb8EinBh5csU= +golang.org/x/mobile v0.0.0-20220325161704-447654d348e3/go.mod h1:pe2sM7Uk+2Su1y7u/6Z8KJ24D7lepUjFZbhFOrmDfuQ= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -61,6 +73,8 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220111092808-5a964db01320 h1:0jf+tOCoZ3LyutmCOWpVni1chK4VfFLhRsDK7MhqGRY= golang.org/x/sys v0.0.0-20220111092808-5a964db01320/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220403205710-6acee93ad0eb h1:PVGECzEo9Y3uOidtkHGdd347NjLtITfJFO9BxFpmRoo= +golang.org/x/sys v0.0.0-20220403205710-6acee93ad0eb/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= From e4255e3d717b8e27de120b6c9f1253a6a45b0a4c Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Mon, 4 Apr 2022 12:00:46 -0500 Subject: [PATCH 060/146] examples/piano: fix synth switching --- examples/piano/main.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/examples/piano/main.go b/examples/piano/main.go index ef045b8e..e57b540c 100644 --- a/examples/piano/main.go +++ b/examples/piano/main.go @@ -230,6 +230,8 @@ func main() { key.P: src.PulsePCM(2), } for kc, synfn := range codeKinds { + synfn := synfn + kc := kc event.GlobalBind(ctx, key.Down(kc), func(ev key.Event) event.Response { if ev.Modifiers&key.ModShift == key.ModShift { synthKind = synfn From f5dcd0b6446e3fe7e2b3ba84d74dfab5398a864c Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Mon, 4 Apr 2022 12:24:45 -0500 Subject: [PATCH 061/146] examples: go mod tidy --- examples/clipboard/go.mod | 20 +++++++++++++++++++- examples/clipboard/go.sum | 30 ++++++++++++++---------------- examples/fallback-font/go.mod | 19 +++++++++++++++++++ examples/fallback-font/go.sum | 30 ++++++++++++++---------------- examples/svg/go.mod | 14 +++++++------- examples/svg/go.sum | 27 ++++++++++++++------------- 6 files changed, 87 insertions(+), 53 deletions(-) diff --git a/examples/clipboard/go.mod b/examples/clipboard/go.mod index 15d5fc95..07481493 100644 --- a/examples/clipboard/go.mod +++ b/examples/clipboard/go.mod @@ -5,7 +5,25 @@ go 1.18 require ( github.com/atotto/clipboard v0.1.4 github.com/oakmound/oak/v3 v3.0.0-alpha.1 - golang.org/x/mobile v0.0.0-20220112015953-858099ff7816 + golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 +) + +require ( + dmitri.shuralyov.com/gpu/mtl v0.0.0-20201218220906-28db891af037 // indirect + github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc // indirect + github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 // indirect + github.com/disintegration/gift v1.2.1 // indirect + github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958 // indirect + github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect + github.com/hajimehoshi/go-mp3 v0.3.2 // indirect + github.com/oakmound/alsa v0.0.2 // indirect + github.com/oakmound/libudev v0.2.1 // indirect + github.com/oakmound/w32 v2.1.0+incompatible // indirect + github.com/oov/directsound-go v0.0.0-20141101201356-e53e59c700bf // indirect + golang.org/x/exp/shiny v0.0.0-20220328175248-053ad81199eb // indirect + golang.org/x/image v0.0.0-20220321031419-a8550c1d254a // indirect + golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect + golang.org/x/sys v0.0.0-20220403205710-6acee93ad0eb // indirect ) replace github.com/oakmound/oak/v3 => ../.. diff --git a/examples/clipboard/go.sum b/examples/clipboard/go.sum index a91dcd3d..86cc0507 100644 --- a/examples/clipboard/go.sum +++ b/examples/clipboard/go.sum @@ -7,19 +7,16 @@ github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 h1:O/r2Sj+8QcMF github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046/go.mod h1:uw9h2sd4WWHOPdJ13MQpwK5qYWKYDumDqxWWIknEQ+k= github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= -github.com/disintegration/gift v1.2.0 h1:VMQeei2F+ZtsHjMgP6Sdt1kFjRhs2lGz8ljEOPeIR50= -github.com/disintegration/gift v1.2.0/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI= -github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d/go.mod h1:CHkHWWZ4kbGY6jEy1+qlitDaCtRgNvCOQdakj/1Yl/Q= -github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1/go.mod h1:frG94byMNy+1CgGrQ25dZ+17tf98EN+OYBQL4Zh612M= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb h1:T6gaWBvRzJjuOrdCtg8fXXjKai2xSDqWTcKFUPuw8Tw= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/disintegration/gift v1.2.1 h1:Y005a1X4Z7Uc+0gLpSAsKhWi4qLtsdEcMIbbdvdZ6pc= +github.com/disintegration/gift v1.2.1/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958 h1:TL70PMkdPCt9cRhKTqsm+giRpgrd0IGEj763nNr2VFY= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= -github.com/hajimehoshi/go-mp3 v0.3.1 h1:pn/SKU1+/rfK8KaZXdGEC2G/KCB2aLRjbTCrwKcokao= -github.com/hajimehoshi/go-mp3 v0.3.1/go.mod h1:qMJj/CSDxx6CGHiZeCgbiq2DSUkbK0UbtXShQcnfyMM= +github.com/hajimehoshi/go-mp3 v0.3.2 h1:xSYNE2F3lxtOu9BRjCWHHceg7S91IHfXfXp5+LYQI7s= +github.com/hajimehoshi/go-mp3 v0.3.2/go.mod h1:qMJj/CSDxx6CGHiZeCgbiq2DSUkbK0UbtXShQcnfyMM= github.com/hajimehoshi/oto v0.6.1/go.mod h1:0QXGEkbuJRohbJaxr7ZQSxnju7hEhseiPx2hrh6raOI= github.com/jfreymuth/pulse v0.1.0 h1:KN38/9hoF9PJvP5DpEVhMRKNuwnJUonc8c9ARorRXUA= -github.com/jfreymuth/pulse v0.1.0/go.mod h1:cpYspI6YljhkUf1WLXLLDmeaaPFc3CnGLjDZf9dZ4no= github.com/oakmound/alsa v0.0.2 h1:JbOUckkJqVvhABth7qy2JgAjqsWuBPggyoYOk1L6eK0= github.com/oakmound/alsa v0.0.2/go.mod h1:wx+ehwqFnNL7foTwxxu2bKQlaUmD2oXd4ka1UBSgWAo= github.com/oakmound/libudev v0.2.1 h1:gaXuw7Pbt3RSRxbUakAjl0dSW6Wo3TZWpwS5aMq8+EA= @@ -33,16 +30,17 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56 h1:estk1glOnSVeJ9tdEZZc5mAMDZk5lNJNyJ6DvrBkTEU= golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= +golang.org/x/exp/shiny v0.0.0-20220328175248-053ad81199eb h1:YIOQ8kg0z9XVF6z94NZocplll/YTlWBUNO8psuhfTYU= +golang.org/x/exp/shiny v0.0.0-20220328175248-053ad81199eb/go.mod h1:NtXcNtv5Wu0zUbBl574y/D5MMZvnQnV3sgjZxbs64Jo= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20201208152932-35266b937fa6 h1:nfeHNc1nAqecKCy2FCy4HY+soOOe5sDLJ/gZLbx6GYI= -golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20220321031419-a8550c1d254a h1:LnH9RNcpPv5Kzi15lXg42lYMPUf0x8CuPv1YnvBWZAg= +golang.org/x/image v0.0.0-20220321031419-a8550c1d254a/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190415191353-3e0bab5405d6/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mobile v0.0.0-20220112015953-858099ff7816 h1:jhDgkcu3yQ4tasBZ+1YwDmK7eFmuVf1w1k+NGGGxfmE= -golang.org/x/mobile v0.0.0-20220112015953-858099ff7816/go.mod h1:pe2sM7Uk+2Su1y7u/6Z8KJ24D7lepUjFZbhFOrmDfuQ= +golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 h1:ZDL7hDvJEQEcHVkoZawKmRUgbqn1pOIzb8EinBh5csU= +golang.org/x/mobile v0.0.0-20220325161704-447654d348e3/go.mod h1:pe2sM7Uk+2Su1y7u/6Z8KJ24D7lepUjFZbhFOrmDfuQ= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -59,8 +57,8 @@ golang.org/x/sys v0.0.0-20190429190828-d89cdac9e872/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220111092808-5a964db01320 h1:0jf+tOCoZ3LyutmCOWpVni1chK4VfFLhRsDK7MhqGRY= -golang.org/x/sys v0.0.0-20220111092808-5a964db01320/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220403205710-6acee93ad0eb h1:PVGECzEo9Y3uOidtkHGdd347NjLtITfJFO9BxFpmRoo= +golang.org/x/sys v0.0.0-20220403205710-6acee93ad0eb/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/examples/fallback-font/go.mod b/examples/fallback-font/go.mod index bc069ee2..093a2e54 100644 --- a/examples/fallback-font/go.mod +++ b/examples/fallback-font/go.mod @@ -7,4 +7,23 @@ require ( github.com/oakmound/oak/v3 v3.0.0-alpha.1 ) +require ( + dmitri.shuralyov.com/gpu/mtl v0.0.0-20201218220906-28db891af037 // indirect + github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc // indirect + github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 // indirect + github.com/disintegration/gift v1.2.1 // indirect + github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958 // indirect + github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect + github.com/hajimehoshi/go-mp3 v0.3.2 // indirect + github.com/oakmound/alsa v0.0.2 // indirect + github.com/oakmound/libudev v0.2.1 // indirect + github.com/oakmound/w32 v2.1.0+incompatible // indirect + github.com/oov/directsound-go v0.0.0-20141101201356-e53e59c700bf // indirect + golang.org/x/exp/shiny v0.0.0-20220328175248-053ad81199eb // indirect + golang.org/x/image v0.0.0-20220321031419-a8550c1d254a // indirect + golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 // indirect + golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect + golang.org/x/sys v0.0.0-20220403205710-6acee93ad0eb // indirect +) + replace github.com/oakmound/oak/v3 => ../.. diff --git a/examples/fallback-font/go.sum b/examples/fallback-font/go.sum index fe44f8be..40a7beb4 100644 --- a/examples/fallback-font/go.sum +++ b/examples/fallback-font/go.sum @@ -5,21 +5,18 @@ github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc h1:7D+Bh06CRPCJO3gr github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 h1:O/r2Sj+8QcMF7V5IcmiE2sMFV2q3J47BEirxbXJAdzA= github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046/go.mod h1:uw9h2sd4WWHOPdJ13MQpwK5qYWKYDumDqxWWIknEQ+k= -github.com/disintegration/gift v1.2.0 h1:VMQeei2F+ZtsHjMgP6Sdt1kFjRhs2lGz8ljEOPeIR50= -github.com/disintegration/gift v1.2.0/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI= -github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d/go.mod h1:CHkHWWZ4kbGY6jEy1+qlitDaCtRgNvCOQdakj/1Yl/Q= -github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1/go.mod h1:frG94byMNy+1CgGrQ25dZ+17tf98EN+OYBQL4Zh612M= +github.com/disintegration/gift v1.2.1 h1:Y005a1X4Z7Uc+0gLpSAsKhWi4qLtsdEcMIbbdvdZ6pc= +github.com/disintegration/gift v1.2.1/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI= github.com/flopp/go-findfont v0.0.0-20201114153133-e7393a00c15b h1:/wqXgpZNTP8qV1dPEApjJXlDQd5N/F9U/WEvy5SawUI= github.com/flopp/go-findfont v0.0.0-20201114153133-e7393a00c15b/go.mod h1:wKKxRDjD024Rh7VMwoU90i6ikQRCr+JTHB5n4Ejkqvw= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb h1:T6gaWBvRzJjuOrdCtg8fXXjKai2xSDqWTcKFUPuw8Tw= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958 h1:TL70PMkdPCt9cRhKTqsm+giRpgrd0IGEj763nNr2VFY= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= -github.com/hajimehoshi/go-mp3 v0.3.1 h1:pn/SKU1+/rfK8KaZXdGEC2G/KCB2aLRjbTCrwKcokao= -github.com/hajimehoshi/go-mp3 v0.3.1/go.mod h1:qMJj/CSDxx6CGHiZeCgbiq2DSUkbK0UbtXShQcnfyMM= +github.com/hajimehoshi/go-mp3 v0.3.2 h1:xSYNE2F3lxtOu9BRjCWHHceg7S91IHfXfXp5+LYQI7s= +github.com/hajimehoshi/go-mp3 v0.3.2/go.mod h1:qMJj/CSDxx6CGHiZeCgbiq2DSUkbK0UbtXShQcnfyMM= github.com/hajimehoshi/oto v0.6.1/go.mod h1:0QXGEkbuJRohbJaxr7ZQSxnju7hEhseiPx2hrh6raOI= github.com/jfreymuth/pulse v0.1.0 h1:KN38/9hoF9PJvP5DpEVhMRKNuwnJUonc8c9ARorRXUA= -github.com/jfreymuth/pulse v0.1.0/go.mod h1:cpYspI6YljhkUf1WLXLLDmeaaPFc3CnGLjDZf9dZ4no= github.com/oakmound/alsa v0.0.2 h1:JbOUckkJqVvhABth7qy2JgAjqsWuBPggyoYOk1L6eK0= github.com/oakmound/alsa v0.0.2/go.mod h1:wx+ehwqFnNL7foTwxxu2bKQlaUmD2oXd4ka1UBSgWAo= github.com/oakmound/libudev v0.2.1 h1:gaXuw7Pbt3RSRxbUakAjl0dSW6Wo3TZWpwS5aMq8+EA= @@ -33,16 +30,17 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56 h1:estk1glOnSVeJ9tdEZZc5mAMDZk5lNJNyJ6DvrBkTEU= golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= +golang.org/x/exp/shiny v0.0.0-20220328175248-053ad81199eb h1:YIOQ8kg0z9XVF6z94NZocplll/YTlWBUNO8psuhfTYU= +golang.org/x/exp/shiny v0.0.0-20220328175248-053ad81199eb/go.mod h1:NtXcNtv5Wu0zUbBl574y/D5MMZvnQnV3sgjZxbs64Jo= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20201208152932-35266b937fa6 h1:nfeHNc1nAqecKCy2FCy4HY+soOOe5sDLJ/gZLbx6GYI= -golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20220321031419-a8550c1d254a h1:LnH9RNcpPv5Kzi15lXg42lYMPUf0x8CuPv1YnvBWZAg= +golang.org/x/image v0.0.0-20220321031419-a8550c1d254a/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190415191353-3e0bab5405d6/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mobile v0.0.0-20220112015953-858099ff7816 h1:jhDgkcu3yQ4tasBZ+1YwDmK7eFmuVf1w1k+NGGGxfmE= -golang.org/x/mobile v0.0.0-20220112015953-858099ff7816/go.mod h1:pe2sM7Uk+2Su1y7u/6Z8KJ24D7lepUjFZbhFOrmDfuQ= +golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 h1:ZDL7hDvJEQEcHVkoZawKmRUgbqn1pOIzb8EinBh5csU= +golang.org/x/mobile v0.0.0-20220325161704-447654d348e3/go.mod h1:pe2sM7Uk+2Su1y7u/6Z8KJ24D7lepUjFZbhFOrmDfuQ= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -59,8 +57,8 @@ golang.org/x/sys v0.0.0-20190429190828-d89cdac9e872/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220111092808-5a964db01320 h1:0jf+tOCoZ3LyutmCOWpVni1chK4VfFLhRsDK7MhqGRY= -golang.org/x/sys v0.0.0-20220111092808-5a964db01320/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220403205710-6acee93ad0eb h1:PVGECzEo9Y3uOidtkHGdd347NjLtITfJFO9BxFpmRoo= +golang.org/x/sys v0.0.0-20220403205710-6acee93ad0eb/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/examples/svg/go.mod b/examples/svg/go.mod index 0f091b98..5418cb06 100644 --- a/examples/svg/go.mod +++ b/examples/svg/go.mod @@ -12,20 +12,20 @@ require ( dmitri.shuralyov.com/gpu/mtl v0.0.0-20201218220906-28db891af037 // indirect github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc // indirect github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 // indirect - github.com/disintegration/gift v1.2.0 // indirect - github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb // indirect + github.com/disintegration/gift v1.2.1 // indirect + github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958 // indirect github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect - github.com/hajimehoshi/go-mp3 v0.3.1 // indirect + github.com/hajimehoshi/go-mp3 v0.3.2 // indirect github.com/oakmound/alsa v0.0.2 // indirect github.com/oakmound/libudev v0.2.1 // indirect github.com/oakmound/w32 v2.1.0+incompatible // indirect github.com/oov/directsound-go v0.0.0-20141101201356-e53e59c700bf // indirect - golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56 // indirect - golang.org/x/image v0.0.0-20210504121937-7319ad40d33e // indirect - golang.org/x/mobile v0.0.0-20220112015953-858099ff7816 // indirect + golang.org/x/exp/shiny v0.0.0-20220328175248-053ad81199eb // indirect + golang.org/x/image v0.0.0-20220321031419-a8550c1d254a // indirect + golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 // indirect golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d // indirect golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect - golang.org/x/sys v0.0.0-20220111092808-5a964db01320 // indirect + golang.org/x/sys v0.0.0-20220403205710-6acee93ad0eb // indirect golang.org/x/text v0.3.6 // indirect ) diff --git a/examples/svg/go.sum b/examples/svg/go.sum index 8ec8315c..00800265 100644 --- a/examples/svg/go.sum +++ b/examples/svg/go.sum @@ -5,14 +5,14 @@ github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc h1:7D+Bh06CRPCJO3gr github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 h1:O/r2Sj+8QcMF7V5IcmiE2sMFV2q3J47BEirxbXJAdzA= github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046/go.mod h1:uw9h2sd4WWHOPdJ13MQpwK5qYWKYDumDqxWWIknEQ+k= -github.com/disintegration/gift v1.2.0 h1:VMQeei2F+ZtsHjMgP6Sdt1kFjRhs2lGz8ljEOPeIR50= -github.com/disintegration/gift v1.2.0/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb h1:T6gaWBvRzJjuOrdCtg8fXXjKai2xSDqWTcKFUPuw8Tw= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/disintegration/gift v1.2.1 h1:Y005a1X4Z7Uc+0gLpSAsKhWi4qLtsdEcMIbbdvdZ6pc= +github.com/disintegration/gift v1.2.1/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958 h1:TL70PMkdPCt9cRhKTqsm+giRpgrd0IGEj763nNr2VFY= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= -github.com/hajimehoshi/go-mp3 v0.3.1 h1:pn/SKU1+/rfK8KaZXdGEC2G/KCB2aLRjbTCrwKcokao= -github.com/hajimehoshi/go-mp3 v0.3.1/go.mod h1:qMJj/CSDxx6CGHiZeCgbiq2DSUkbK0UbtXShQcnfyMM= +github.com/hajimehoshi/go-mp3 v0.3.2 h1:xSYNE2F3lxtOu9BRjCWHHceg7S91IHfXfXp5+LYQI7s= +github.com/hajimehoshi/go-mp3 v0.3.2/go.mod h1:qMJj/CSDxx6CGHiZeCgbiq2DSUkbK0UbtXShQcnfyMM= github.com/hajimehoshi/oto v0.6.1/go.mod h1:0QXGEkbuJRohbJaxr7ZQSxnju7hEhseiPx2hrh6raOI= github.com/jfreymuth/pulse v0.1.0 h1:KN38/9hoF9PJvP5DpEVhMRKNuwnJUonc8c9ARorRXUA= github.com/oakmound/alsa v0.0.2 h1:JbOUckkJqVvhABth7qy2JgAjqsWuBPggyoYOk1L6eK0= @@ -32,16 +32,17 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56 h1:estk1glOnSVeJ9tdEZZc5mAMDZk5lNJNyJ6DvrBkTEU= golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= +golang.org/x/exp/shiny v0.0.0-20220328175248-053ad81199eb h1:YIOQ8kg0z9XVF6z94NZocplll/YTlWBUNO8psuhfTYU= +golang.org/x/exp/shiny v0.0.0-20220328175248-053ad81199eb/go.mod h1:NtXcNtv5Wu0zUbBl574y/D5MMZvnQnV3sgjZxbs64Jo= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20210504121937-7319ad40d33e h1:PzJMNfFQx+QO9hrC1GwZ4BoPGeNGhfeQEgcQFArEjPk= -golang.org/x/image v0.0.0-20210504121937-7319ad40d33e/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20220321031419-a8550c1d254a h1:LnH9RNcpPv5Kzi15lXg42lYMPUf0x8CuPv1YnvBWZAg= +golang.org/x/image v0.0.0-20220321031419-a8550c1d254a/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190415191353-3e0bab5405d6/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mobile v0.0.0-20220112015953-858099ff7816 h1:jhDgkcu3yQ4tasBZ+1YwDmK7eFmuVf1w1k+NGGGxfmE= -golang.org/x/mobile v0.0.0-20220112015953-858099ff7816/go.mod h1:pe2sM7Uk+2Su1y7u/6Z8KJ24D7lepUjFZbhFOrmDfuQ= +golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 h1:ZDL7hDvJEQEcHVkoZawKmRUgbqn1pOIzb8EinBh5csU= +golang.org/x/mobile v0.0.0-20220325161704-447654d348e3/go.mod h1:pe2sM7Uk+2Su1y7u/6Z8KJ24D7lepUjFZbhFOrmDfuQ= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -59,8 +60,8 @@ golang.org/x/sys v0.0.0-20190429190828-d89cdac9e872/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220111092808-5a964db01320 h1:0jf+tOCoZ3LyutmCOWpVni1chK4VfFLhRsDK7MhqGRY= -golang.org/x/sys v0.0.0-20220111092808-5a964db01320/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220403205710-6acee93ad0eb h1:PVGECzEo9Y3uOidtkHGdd347NjLtITfJFO9BxFpmRoo= +golang.org/x/sys v0.0.0-20220403205710-6acee93ad0eb/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= From b471cdb9476e6cd27b0469feb4a1b25afb35d547 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Mon, 4 Apr 2022 12:45:18 -0500 Subject: [PATCH 062/146] window: split window into App and Window to explicitly delineate single-window and multi-window interfaces --- default.go | 48 ---------------------- default_desktop.go | 58 +++++++++++++++++++++++++++ scene/context.go | 3 +- scene/context_desktop.go | 8 ++++ scene/context_other.go | 8 ++++ shiny/driver/androiddriver/image.go | 2 +- shiny/driver/androiddriver/main.go | 2 +- shiny/driver/androiddriver/screen.go | 28 ++++++------- shiny/driver/androiddriver/texture.go | 4 +- shiny/driver/driver_android.go | 2 + shiny/driver/driver_fallback.go | 2 + shiny/driver/driver_js.go | 4 +- shiny/driver/driver_noop.go | 3 ++ shiny/driver/jsdriver/screen.go | 4 +- shiny/driver/jsdriver/window.go | 22 +++++----- shiny/driver/noop/noop.go | 20 ++++----- window.go | 2 +- window/window.go | 13 ++++-- 18 files changed, 137 insertions(+), 96 deletions(-) create mode 100644 default_desktop.go create mode 100644 scene/context_desktop.go create mode 100644 scene/context_other.go diff --git a/default.go b/default.go index 97d34cbb..47732101 100644 --- a/default.go +++ b/default.go @@ -67,48 +67,12 @@ func SetScreen(x, y int) { defaultWindow.SetScreen(x, y) } -// MoveWindow calls MoveWindow on the default window. -func MoveWindow(x, y, w, h int) error { - initDefaultWindow() - return defaultWindow.MoveWindow(x, y, w, h) -} - // UpdateViewSize calls UpdateViewSize on the default window. func UpdateViewSize(w, h int) error { initDefaultWindow() return defaultWindow.UpdateViewSize(w, h) } -// SetFullScreen calls SetFullScreen on the default window. -func SetFullScreen(fs bool) error { - initDefaultWindow() - return defaultWindow.SetFullScreen(fs) -} - -// SetBorderless calls SetBorderless on the default window. -func SetBorderless(bs bool) error { - initDefaultWindow() - return defaultWindow.SetBorderless(bs) -} - -// SetTopMost calls SetTopMost on the default window. -func SetTopMost(on bool) error { - initDefaultWindow() - return defaultWindow.SetTopMost(on) -} - -// SetTitle calls SetTitle on the default window. -func SetTitle(title string) error { - initDefaultWindow() - return defaultWindow.SetTitle(title) -} - -// SetIcon calls SetIcon on the default window. -func SetIcon(icon image.Image) error { - initDefaultWindow() - return defaultWindow.SetIcon(icon) -} - // ScreenShot calls ScreenShot on the default window. func ScreenShot() *image.RGBA { initDefaultWindow() @@ -150,15 +114,3 @@ func Height() int { initDefaultWindow() return defaultWindow.Height() } - -// HideCursor calls HideCursor on the default window. -func HideCursor() error { - initDefaultWindow() - return defaultWindow.HideCursor() -} - -// GetCursorPosition calls GetCursorPosition on the default window. -func GetCursorPosition() (x, y float64) { - initDefaultWindow() - return defaultWindow.GetCursorPosition() -} diff --git a/default_desktop.go b/default_desktop.go new file mode 100644 index 00000000..8c03f47f --- /dev/null +++ b/default_desktop.go @@ -0,0 +1,58 @@ +//go:build (windows || linux || osx) && !js && !android +// +build windows linux osx +// +build !js +// +build !android + +package oak + +import ( + "image" +) + +// MoveWindow calls MoveWindow on the default window. +func MoveWindow(x, y, w, h int) error { + initDefaultWindow() + return defaultWindow.MoveWindow(x, y, w, h) +} + +// SetFullScreen calls SetFullScreen on the default window. +func SetFullScreen(fs bool) error { + initDefaultWindow() + return defaultWindow.SetFullScreen(fs) +} + +// SetBorderless calls SetBorderless on the default window. +func SetBorderless(bs bool) error { + initDefaultWindow() + return defaultWindow.SetBorderless(bs) +} + +// SetTopMost calls SetTopMost on the default window. +func SetTopMost(on bool) error { + initDefaultWindow() + return defaultWindow.SetTopMost(on) +} + +// SetTitle calls SetTitle on the default window. +func SetTitle(title string) error { + initDefaultWindow() + return defaultWindow.SetTitle(title) +} + +// SetIcon calls SetIcon on the default window. +func SetIcon(icon image.Image) error { + initDefaultWindow() + return defaultWindow.SetIcon(icon) +} + +// HideCursor calls HideCursor on the default window. +func HideCursor() error { + initDefaultWindow() + return defaultWindow.HideCursor() +} + +// GetCursorPosition calls GetCursorPosition on the default window. +func GetCursorPosition() (x, y float64) { + initDefaultWindow() + return defaultWindow.GetCursorPosition() +} diff --git a/scene/context.go b/scene/context.go index 79e28aee..3ba0a48d 100644 --- a/scene/context.go +++ b/scene/context.go @@ -7,7 +7,6 @@ import ( "github.com/oakmound/oak/v3/event" "github.com/oakmound/oak/v3/key" "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/window" ) // A Context contains all transient engine components used in a scene, including @@ -24,7 +23,7 @@ type Context struct { event.Handler PreviousScene string SceneInput interface{} - Window window.Window + Window Window DrawStack *render.DrawStack diff --git a/scene/context_desktop.go b/scene/context_desktop.go new file mode 100644 index 00000000..79f2b866 --- /dev/null +++ b/scene/context_desktop.go @@ -0,0 +1,8 @@ +//go:build !js && !android +// +build !js,!android + +package scene + +import "github.com/oakmound/oak/v3/window" + +type Window = window.Window diff --git a/scene/context_other.go b/scene/context_other.go new file mode 100644 index 00000000..aca7cc3b --- /dev/null +++ b/scene/context_other.go @@ -0,0 +1,8 @@ +//go:build js || android +// +build js android + +package scene + +import "github.com/oakmound/oak/v3/window" + +type Window = window.App diff --git a/shiny/driver/androiddriver/image.go b/shiny/driver/androiddriver/image.go index e5d58786..c8fa2134 100644 --- a/shiny/driver/androiddriver/image.go +++ b/shiny/driver/androiddriver/image.go @@ -11,7 +11,7 @@ import ( ) type imageImpl struct { - screen *screenImpl + screen *Screen size image.Point img *glutil.Image deadLock sync.Mutex diff --git a/shiny/driver/androiddriver/main.go b/shiny/driver/androiddriver/main.go index 3f2e8aaf..20b9a5d9 100644 --- a/shiny/driver/androiddriver/main.go +++ b/shiny/driver/androiddriver/main.go @@ -20,7 +20,7 @@ import ( func Main(f func(screen.Screen)) { app.Main(func(a app.App) { - s := &screenImpl{ + s := &Screen{ app: a, } screenOnce := sync.Once{} diff --git a/shiny/driver/androiddriver/screen.go b/shiny/driver/androiddriver/screen.go index 8ab94970..6bde64f0 100644 --- a/shiny/driver/androiddriver/screen.go +++ b/shiny/driver/androiddriver/screen.go @@ -18,9 +18,9 @@ import ( "golang.org/x/mobile/gl" ) -var _ screen.Screen = &screenImpl{} +var _ screen.Screen = &Screen{} -type screenImpl struct { +type Screen struct { event.Deque app app.App @@ -32,7 +32,7 @@ type screenImpl struct { lastSz size.Event } -func (s *screenImpl) NewImage(size image.Point) (screen.Image, error) { +func (s *Screen) NewImage(size image.Point) (screen.Image, error) { img := &imageImpl{ screen: s, size: size, @@ -42,28 +42,28 @@ func (s *screenImpl) NewImage(size image.Point) (screen.Image, error) { return img, nil } -func (s *screenImpl) NewTexture(size image.Point) (screen.Texture, error) { +func (s *Screen) NewTexture(size image.Point) (screen.Texture, error) { return NewTexture(s, size), nil } -var _ screen.Window = &screenImpl{} +var _ screen.Window = &Screen{} -func (s *screenImpl) NewWindow(opts screen.WindowGenerator) (screen.Window, error) { +func (s *Screen) NewWindow(opts screen.WindowGenerator) (screen.Window, error) { // android does not support multiple windows return s, nil } -func (w *screenImpl) Publish() screen.PublishResult { +func (w *Screen) Publish() screen.PublishResult { return screen.PublishResult{} } -func (w *screenImpl) Release() {} -func (w *screenImpl) Upload(dp image.Point, src screen.Image, sr image.Rectangle) {} -func (w *screenImpl) Fill(dr image.Rectangle, src color.Color, op draw.Op) {} -func (w *screenImpl) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectangle, op draw.Op) {} -func (w *screenImpl) DrawUniform(src2dst f64.Aff3, src color.Color, sr image.Rectangle, op draw.Op) {} -func (w *screenImpl) Copy(dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) {} -func (w *screenImpl) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) { +func (w *Screen) Release() {} +func (w *Screen) Upload(dp image.Point, src screen.Image, sr image.Rectangle) {} +func (w *Screen) Fill(dr image.Rectangle, src color.Color, op draw.Op) {} +func (w *Screen) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectangle, op draw.Op) {} +func (w *Screen) DrawUniform(src2dst f64.Aff3, src color.Color, sr image.Rectangle, op draw.Op) {} +func (w *Screen) Copy(dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) {} +func (w *Screen) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) { t := src.(*textureImpl) t.img.img.Draw( w.lastSz, diff --git a/shiny/driver/androiddriver/texture.go b/shiny/driver/androiddriver/texture.go index 25748d6c..10ecc4d9 100644 --- a/shiny/driver/androiddriver/texture.go +++ b/shiny/driver/androiddriver/texture.go @@ -12,12 +12,12 @@ import ( ) type textureImpl struct { - screen *screenImpl + screen *Screen size image.Point img *imageImpl } -func NewTexture(s *screenImpl, size image.Point) *textureImpl { +func NewTexture(s *Screen, size image.Point) *textureImpl { return &textureImpl{ screen: s, size: size, diff --git a/shiny/driver/driver_android.go b/shiny/driver/driver_android.go index 1645acc5..706e0f88 100644 --- a/shiny/driver/driver_android.go +++ b/shiny/driver/driver_android.go @@ -22,3 +22,5 @@ func monitorSize() (int, int) { // GetSystemMetrics syscall return 0, 0 } + +type Window = androiddriver.Screen diff --git a/shiny/driver/driver_fallback.go b/shiny/driver/driver_fallback.go index c086af73..d44ed868 100644 --- a/shiny/driver/driver_fallback.go +++ b/shiny/driver/driver_fallback.go @@ -21,3 +21,5 @@ func main(f func(screen.Screen)) { func monitorSize() (int, int) { return 0, 0 } + +type Window = struct{} \ No newline at end of file diff --git a/shiny/driver/driver_js.go b/shiny/driver/driver_js.go index 53e73e30..2e661e61 100644 --- a/shiny/driver/driver_js.go +++ b/shiny/driver/driver_js.go @@ -1,5 +1,5 @@ //go:build js && !nooswindow && !windows && !darwin && !linux -// +build js,!nooswindow,!windows,!darwin,!linux,!android +// +build js,!nooswindow,!windows,!darwin,!linux package driver @@ -15,3 +15,5 @@ func main(f func(screen.Screen)) { func monitorSize() (int, int) { return 0, 0 } + +type Window = jsdriver.Window diff --git a/shiny/driver/driver_noop.go b/shiny/driver/driver_noop.go index 38516784..1d5d1e4a 100644 --- a/shiny/driver/driver_noop.go +++ b/shiny/driver/driver_noop.go @@ -1,3 +1,4 @@ +//go:build nooswindow // +build nooswindow package driver @@ -14,3 +15,5 @@ func main(f func(screen.Screen)) { func monitorSize() (int, int) { return 0, 0 } + +type Window = noop.Window diff --git a/shiny/driver/jsdriver/screen.go b/shiny/driver/jsdriver/screen.go index 806cfaaf..1b8b379c 100644 --- a/shiny/driver/jsdriver/screen.go +++ b/shiny/driver/jsdriver/screen.go @@ -18,7 +18,7 @@ func Main(f func(screen.Screen)) { } type screenImpl struct { - windows []*windowImpl + windows []*Window } func (s *screenImpl) NewImage(size image.Point) (screen.Image, error) { @@ -42,7 +42,7 @@ func (s *screenImpl) NewWindow(opts screen.WindowGenerator) (screen.Window, erro } cvs := NewCanvas2d(opts.Width, opts.Height) - w := &windowImpl{ + w := &Window{ cvs: cvs, screen: s, } diff --git a/shiny/driver/jsdriver/window.go b/shiny/driver/jsdriver/window.go index 111f24fc..c0e0d891 100644 --- a/shiny/driver/jsdriver/window.go +++ b/shiny/driver/jsdriver/window.go @@ -16,30 +16,30 @@ import ( "golang.org/x/mobile/event/mouse" ) -type windowImpl struct { +type Window struct { screen *screenImpl cvs *Canvas2D event.Deque } -func (w *windowImpl) Release() {} -func (w *windowImpl) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectangle, op draw.Op) {} -func (w *windowImpl) DrawUniform(src2dst f64.Aff3, src color.Color, sr image.Rectangle, op draw.Op) {} -func (w *windowImpl) Copy(dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) {} -func (w *windowImpl) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) { +func (w *Window) Release() {} +func (w *Window) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectangle, op draw.Op) {} +func (w *Window) DrawUniform(src2dst f64.Aff3, src color.Color, sr image.Rectangle, op draw.Op) {} +func (w *Window) Copy(dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) {} +func (w *Window) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) { rgba := src.(*textureImpl).rgba js.CopyBytesToJS(w.cvs.copybuff, rgba.Pix) w.cvs.imgData.Get("data").Call("set", w.cvs.copybuff) w.cvs.ctx.Call("putImageData", w.cvs.imgData, 0, 0) } -func (w *windowImpl) Upload(dp image.Point, src screen.Image, sr image.Rectangle) {} -func (w *windowImpl) Fill(dr image.Rectangle, src color.Color, op draw.Op) {} +func (w *Window) Upload(dp image.Point, src screen.Image, sr image.Rectangle) {} +func (w *Window) Fill(dr image.Rectangle, src color.Color, op draw.Op) {} -func (w *windowImpl) Publish() screen.PublishResult { +func (w *Window) Publish() screen.PublishResult { return screen.PublishResult{} } -func (w *windowImpl) sendMouseEvent(mouseEvent js.Value, dir mouse.Direction) { +func (w *Window) sendMouseEvent(mouseEvent js.Value, dir mouse.Direction) { x, y := mouseEvent.Get("offsetX"), mouseEvent.Get("offsetY") button := mouseEvent.Get("button") var mButton mouse.Button @@ -61,7 +61,7 @@ func (w *windowImpl) sendMouseEvent(mouseEvent js.Value, dir mouse.Direction) { }) } -func (w *windowImpl) sendKeyEvent(keyEvent js.Value, dir key.Direction) { +func (w *Window) sendKeyEvent(keyEvent js.Value, dir key.Direction) { var mods key.Modifiers if keyEvent.Get("shiftKey").Bool() { mods |= key.ModShift diff --git a/shiny/driver/noop/noop.go b/shiny/driver/noop/noop.go index 145e0e30..d11b04fa 100644 --- a/shiny/driver/noop/noop.go +++ b/shiny/driver/noop/noop.go @@ -31,7 +31,7 @@ func (screenImpl) NewTexture(size image.Point) (screen.Texture, error) { } func (screenImpl) NewWindow(opts screen.WindowGenerator) (screen.Window, error) { - return &windowImpl{}, nil + return &Window{}, nil } type imageImpl struct { @@ -69,18 +69,18 @@ func (textureImpl) Upload(dp image.Point, src screen.Image, sr image.Rectangle) func (textureImpl) Fill(dr image.Rectangle, src color.Color, op draw.Op) {} func (textureImpl) Release() {} -type windowImpl struct { +type Window struct { event.Deque } -func (*windowImpl) Release() {} -func (*windowImpl) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectangle, op draw.Op) {} -func (*windowImpl) DrawUniform(src2dst f64.Aff3, src color.Color, sr image.Rectangle, op draw.Op) {} -func (*windowImpl) Copy(dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) {} -func (*windowImpl) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) {} -func (*windowImpl) Upload(dp image.Point, src screen.Image, sr image.Rectangle) {} -func (*windowImpl) Fill(dr image.Rectangle, src color.Color, op draw.Op) {} +func (*Window) Release() {} +func (*Window) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectangle, op draw.Op) {} +func (*Window) DrawUniform(src2dst f64.Aff3, src color.Color, sr image.Rectangle, op draw.Op) {} +func (*Window) Copy(dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) {} +func (*Window) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) {} +func (*Window) Upload(dp image.Point, src screen.Image, sr image.Rectangle) {} +func (*Window) Fill(dr image.Rectangle, src color.Color, op draw.Op) {} -func (*windowImpl) Publish() screen.PublishResult { +func (*Window) Publish() screen.PublishResult { return screen.PublishResult{} } diff --git a/window.go b/window.go index 1ae4f74f..9a9fa480 100644 --- a/window.go +++ b/window.go @@ -21,7 +21,7 @@ import ( "github.com/oakmound/oak/v3/window" ) -var _ window.Window = &Window{} +var _ window.App = &Window{} func (w *Window) windowController(s screen.Screen, x, y, width, height int) (*driver.Window, error) { // TODO v4: can we update this interface to return our concrete driver.Window? diff --git a/window/window.go b/window/window.go index e74bf25b..09728144 100644 --- a/window/window.go +++ b/window/window.go @@ -8,8 +8,11 @@ import ( "github.com/oakmound/oak/v3/event" ) -// Window is an interface of methods on an oak.Window +// Window is an interface of methods on an oak.Window available on platforms which have distinct app windows +// (osx, linux, windows). It is not available on other platforms (js, android) type Window interface { + App + SetFullScreen(bool) error SetBorderless(bool) error SetTopMost(bool) error @@ -18,6 +21,12 @@ type Window interface { MoveWindow(x, y, w, h int) error HideCursor() error + ShiftScreen(int, int) + SetScreen(int, int) +} + +// App is an interface of methods available to all oak programs. +type App interface { Width() int Height() int Viewport() intgeom.Point2 @@ -27,8 +36,6 @@ type Window interface { GoToScene(string) InFocus() bool - ShiftScreen(int, int) - SetScreen(int, int) Quit() EventHandler() event.Handler From a2fc858dd27b20465f57a8f7db02b52c9ee5db58 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Mon, 4 Apr 2022 12:58:43 -0500 Subject: [PATCH 063/146] oak: add nooswindow build tags for app / window separation --- default_desktop.go | 3 ++- scene/context_desktop.go | 4 ++-- scene/context_other.go | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/default_desktop.go b/default_desktop.go index 8c03f47f..d822ec8a 100644 --- a/default_desktop.go +++ b/default_desktop.go @@ -1,7 +1,8 @@ -//go:build (windows || linux || osx) && !js && !android +//go:build (windows || linux || osx) && !js && !android && !nooswindow // +build windows linux osx // +build !js // +build !android +// +build !nooswindow package oak diff --git a/scene/context_desktop.go b/scene/context_desktop.go index 79f2b866..6f624c35 100644 --- a/scene/context_desktop.go +++ b/scene/context_desktop.go @@ -1,5 +1,5 @@ -//go:build !js && !android -// +build !js,!android +//go:build !js && !android && !nooswindow +// +build !js,!android,!nooswindow package scene diff --git a/scene/context_other.go b/scene/context_other.go index aca7cc3b..2572c27a 100644 --- a/scene/context_other.go +++ b/scene/context_other.go @@ -1,5 +1,5 @@ -//go:build js || android -// +build js android +//go:build js || android || nooswindow +// +build js android nooswindow package scene From 5259a848960d193b5d92aea73b1c1a44ab693ad9 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Mon, 4 Apr 2022 13:13:21 -0500 Subject: [PATCH 064/146] shiny/screen: drop most draw methods from window --- shiny/driver/androiddriver/screen.go | 10 +- shiny/driver/gldriver/buffer.go | 32 -- shiny/driver/gldriver/cocoa.go | 676 ------------------------- shiny/driver/gldriver/cocoa.m | 325 ------------ shiny/driver/gldriver/context.go | 37 -- shiny/driver/gldriver/egl.go | 106 ---- shiny/driver/gldriver/gldriver.go | 121 ----- shiny/driver/gldriver/other.go | 33 -- shiny/driver/gldriver/screen.go | 138 ----- shiny/driver/gldriver/texture.go | 160 ------ shiny/driver/gldriver/win32.go | 365 ------------- shiny/driver/gldriver/window.go | 398 --------------- shiny/driver/gldriver/x11.c | 337 ------------ shiny/driver/gldriver/x11.go | 322 ------------ shiny/driver/internal/drawer/drawer.go | 4 +- shiny/driver/jsdriver/window.go | 8 +- shiny/driver/mtldriver/window_amd64.go | 13 - shiny/driver/mtldriver/window_arm64.go | 13 - shiny/driver/noop/noop.go | 11 +- shiny/driver/windriver/window.go | 26 - shiny/screen/screen.go | 40 +- 21 files changed, 47 insertions(+), 3128 deletions(-) delete mode 100644 shiny/driver/gldriver/buffer.go delete mode 100644 shiny/driver/gldriver/cocoa.go delete mode 100644 shiny/driver/gldriver/cocoa.m delete mode 100644 shiny/driver/gldriver/context.go delete mode 100644 shiny/driver/gldriver/egl.go delete mode 100644 shiny/driver/gldriver/gldriver.go delete mode 100644 shiny/driver/gldriver/other.go delete mode 100644 shiny/driver/gldriver/screen.go delete mode 100644 shiny/driver/gldriver/texture.go delete mode 100644 shiny/driver/gldriver/win32.go delete mode 100644 shiny/driver/gldriver/window.go delete mode 100644 shiny/driver/gldriver/x11.c delete mode 100644 shiny/driver/gldriver/x11.go diff --git a/shiny/driver/androiddriver/screen.go b/shiny/driver/androiddriver/screen.go index 6bde64f0..9b84291a 100644 --- a/shiny/driver/androiddriver/screen.go +++ b/shiny/driver/androiddriver/screen.go @@ -5,12 +5,10 @@ package androiddriver import ( "image" - "image/color" "github.com/oakmound/oak/v3/shiny/driver/internal/event" "github.com/oakmound/oak/v3/shiny/screen" "golang.org/x/image/draw" - "golang.org/x/image/math/f64" "golang.org/x/mobile/app" "golang.org/x/mobile/event/size" "golang.org/x/mobile/exp/gl/glutil" @@ -57,12 +55,8 @@ func (w *Screen) Publish() screen.PublishResult { return screen.PublishResult{} } -func (w *Screen) Release() {} -func (w *Screen) Upload(dp image.Point, src screen.Image, sr image.Rectangle) {} -func (w *Screen) Fill(dr image.Rectangle, src color.Color, op draw.Op) {} -func (w *Screen) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectangle, op draw.Op) {} -func (w *Screen) DrawUniform(src2dst f64.Aff3, src color.Color, sr image.Rectangle, op draw.Op) {} -func (w *Screen) Copy(dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) {} +func (w *Screen) Release() {} +func (w *Screen) Upload(dp image.Point, src screen.Image, sr image.Rectangle) {} func (w *Screen) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) { t := src.(*textureImpl) t.img.img.Draw( diff --git a/shiny/driver/gldriver/buffer.go b/shiny/driver/gldriver/buffer.go deleted file mode 100644 index 38df52a0..00000000 --- a/shiny/driver/gldriver/buffer.go +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package gldriver - -import "image" - -type bufferImpl struct { - // buf should always be equal to (i.e. the same ptr, len, cap as) rgba.Pix. - // It is a separate, redundant field in order to detect modifications to - // the rgba field that are invalid as per the screen.Image documentation. - buf []byte - rgba image.RGBA - size image.Point -} - -func (b *bufferImpl) Release() {} -func (b *bufferImpl) Size() image.Point { return b.size } -func (b *bufferImpl) Bounds() image.Rectangle { return image.Rectangle{Max: b.size} } -func (b *bufferImpl) RGBA() *image.RGBA { return &b.rgba } - -func (b *bufferImpl) preUpload() { - // Check that the program hasn't tried to modify the rgba field via the - // pointer returned by the bufferImpl.RGBA method. This check doesn't catch - // 100% of all cases; it simply tries to detect some invalid uses of a - // screen.Image such as: - // *buffer.RGBA() = anotherImageRGBA - if len(b.buf) != 0 && len(b.rgba.Pix) != 0 && &b.buf[0] != &b.rgba.Pix[0] { - panic("gldriver: invalid Buffer.RGBA modification") - } -} diff --git a/shiny/driver/gldriver/cocoa.go b/shiny/driver/gldriver/cocoa.go deleted file mode 100644 index fb7e82f3..00000000 --- a/shiny/driver/gldriver/cocoa.go +++ /dev/null @@ -1,676 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin -// +build 386 amd64 -// +build !ios - -package gldriver - -/* -#cgo CFLAGS: -x objective-c -DGL_SILENCE_DEPRECATION -#cgo LDFLAGS: -framework Cocoa -framework OpenGL -#include -#import // for HIToolbox/Events.h -#import -#include -#include -#include - -void startDriver(); -void stopDriver(); -void makeCurrentContext(uintptr_t ctx); -void flushContext(uintptr_t ctx); -uintptr_t doNewWindow(int width, int height, char* title); -void doShowWindow(uintptr_t id); -void doCloseWindow(uintptr_t id); -uint64_t threadID(); -*/ -import "C" - -import ( - "errors" - "fmt" - "log" - "runtime" - "unsafe" - - "github.com/oakmound/oak/v3/shiny/driver/internal/lifecycler" - "github.com/oakmound/oak/v3/shiny/screen" - "golang.org/x/mobile/event/key" - "golang.org/x/mobile/event/mouse" - "golang.org/x/mobile/event/paint" - "golang.org/x/mobile/event/size" - "golang.org/x/mobile/geom" - "golang.org/x/mobile/gl" -) - -const useLifecycler = true - -// TODO: change this to true, after manual testing on OS X. -const handleSizeEventsAtChannelReceive = false - -var initThreadID C.uint64_t - -func init() { - // Lock the goroutine responsible for initialization to an OS thread. - // This means the goroutine running main (and calling startDriver below) - // is locked to the OS thread that started the program. This is - // necessary for the correct delivery of Cocoa events to the process. - // - // A discussion on this topic: - // https://groups.google.com/forum/#!msg/golang-nuts/IiWZ2hUuLDA/SNKYYZBelsYJ - runtime.LockOSThread() - initThreadID = C.threadID() -} - -func newWindow(opts screen.WindowGenerator) (uintptr, error) { - width, height := optsSize(opts) - - title := C.CString(opts.Title) - defer C.free(unsafe.Pointer(title)) - - return uintptr(C.doNewWindow(C.int(width), C.int(height), title)), nil -} - -func moveWindow(w *windowImpl, opts screen.WindowGenerator) error { - // todo - return nil -} - -func initWindow(w *windowImpl) { - w.glctx, w.worker = gl.NewContext() -} - -func showWindow(w *windowImpl) { - C.doShowWindow(C.uintptr_t(w.id)) -} - -//export preparedOpenGL -func preparedOpenGL(id, ctx, vba uintptr) { - theScreen.mu.Lock() - w := theScreen.windows[id] - theScreen.mu.Unlock() - - w.ctx = ctx - go drawLoop(w, vba) -} - -func closeWindow(id uintptr) { - C.doCloseWindow(C.uintptr_t(id)) -} - -var mainCallback func(screen.Screen) - -func main(f func(screen.Screen)) error { - if tid := C.threadID(); tid != initThreadID { - log.Fatalf("gldriver.Main called on thread %d, but gldriver.init ran on %d", tid, initThreadID) - } - - mainCallback = f - C.startDriver() - return nil -} - -//export driverStarted -func driverStarted() { - go func() { - mainCallback(theScreen) - C.stopDriver() - }() -} - -//export drawgl -func drawgl(id uintptr) { - theScreen.mu.Lock() - w := theScreen.windows[id] - theScreen.mu.Unlock() - - if w == nil { - return // closing window - } - - // TODO: is this necessary? - w.lifecycler.SetVisible(true) - w.lifecycler.SendEvent(w, w.glctx) - - w.Send(paint.Event{External: true}) - <-w.drawDone -} - -// drawLoop is the primary drawing loop. -// -// After Cocoa has created an NSWindow and called prepareOpenGL, -// it starts drawLoop on a locked goroutine to handle OpenGL calls. -// -// The screen is drawn every time a paint.Event is received, which can be -// triggered either by the user or by Cocoa via drawgl (for example, when -// the window is resized). -func drawLoop(w *windowImpl, vba uintptr) { - runtime.LockOSThread() - C.makeCurrentContext(C.uintptr_t(w.ctx.(uintptr))) - - // Starting in OS X 10.11 (El Capitan), the vertex array is - // occasionally getting unbound when the context changes threads. - // - // Avoid this by binding it again. - C.glBindVertexArray(C.GLuint(vba)) - if errno := C.glGetError(); errno != 0 { - panic(fmt.Sprintf("gldriver: glBindVertexArray failed: %d", errno)) - } - - workAvailable := w.worker.WorkAvailable() - - // TODO(crawshaw): exit this goroutine on Release. - for { - select { - case <-workAvailable: - w.worker.DoWork() - case <-w.publish: - loop: - for { - select { - case <-workAvailable: - w.worker.DoWork() - default: - break loop - } - } - C.flushContext(C.uintptr_t(w.ctx.(uintptr))) - w.publishDone <- screen.PublishResult{} - } - } -} - -//export setGeom -func setGeom(id uintptr, ppp float32, widthPx, heightPx int) { - theScreen.mu.Lock() - w := theScreen.windows[id] - theScreen.mu.Unlock() - - if w == nil { - return // closing window - } - - sz := size.Event{ - WidthPx: widthPx, - HeightPx: heightPx, - WidthPt: geom.Pt(float32(widthPx) / ppp), - HeightPt: geom.Pt(float32(heightPx) / ppp), - PixelsPerPt: ppp, - } - - if !handleSizeEventsAtChannelReceive { - w.szMu.Lock() - w.sz = sz - w.szMu.Unlock() - } - - w.Send(sz) -} - -//export windowClosing -func windowClosing(id uintptr) { - sendLifecycle(id, (*lifecycler.State).SetDead, true) -} - -func sendWindowEvent(id uintptr, e interface{}) { - theScreen.mu.Lock() - w := theScreen.windows[id] - theScreen.mu.Unlock() - - if w == nil { - return // closing window - } - w.Send(e) -} - -var mods = [...]struct { - flags uint32 - code uint16 - mod key.Modifiers -}{ - // Left and right variants of modifier keys have their own masks, - // but they are not documented. These were determined empirically. - {1<<17 | 0x102, C.kVK_Shift, key.ModShift}, - {1<<17 | 0x104, C.kVK_RightShift, key.ModShift}, - {1<<18 | 0x101, C.kVK_Control, key.ModControl}, - {33<<13 | 0x100, C.kVK_RightControl, key.ModControl}, - {1<<19 | 0x120, C.kVK_Option, key.ModAlt}, - {1<<19 | 0x140, C.kVK_RightOption, key.ModAlt}, - {1<<20 | 0x108, C.kVK_Command, key.ModMeta}, - {1<<20 | 0x110, 0x36 /* kVK_RightCommand */, key.ModMeta}, -} - -func cocoaMods(flags uint32) (m key.Modifiers) { - for _, mod := range mods { - if flags&mod.flags == mod.flags { - m |= mod.mod - } - } - return m -} - -func cocoaMouseDir(ty int32) mouse.Direction { - switch ty { - case C.NSLeftMouseDown, C.NSRightMouseDown, C.NSOtherMouseDown: - return mouse.DirPress - case C.NSLeftMouseUp, C.NSRightMouseUp, C.NSOtherMouseUp: - return mouse.DirRelease - default: // dragged - return mouse.DirNone - } -} - -func cocoaMouseButton(button int32) mouse.Button { - switch button { - case 0: - return mouse.ButtonLeft - case 1: - return mouse.ButtonRight - case 2: - return mouse.ButtonMiddle - default: - return mouse.ButtonNone - } -} - -//export mouseEvent -func mouseEvent(id uintptr, x, y, dx, dy float32, ty, button int32, flags uint32) { - cmButton := mouse.ButtonNone - switch ty { - default: - cmButton = cocoaMouseButton(button) - case C.NSMouseMoved, C.NSLeftMouseDragged, C.NSRightMouseDragged, C.NSOtherMouseDragged: - // No-op. - case C.NSScrollWheel: - // Note that the direction of scrolling is inverted by default - // on OS X by the "natural scrolling" setting. At the Cocoa - // level this inversion is applied to trackpads and mice behind - // the scenes, and the value of dy goes in the direction the OS - // wants scrolling to go. - // - // This means the same trackpad/mouse motion on OS X and Linux - // can produce wheel events in opposite directions, but the - // direction matches what other programs on the OS do. - // - // If we wanted to expose the physical device motion in the - // event we could use [NSEvent isDirectionInvertedFromDevice] - // to know if "natural scrolling" is enabled. - // - // TODO: On a trackpad, a scroll can be a drawn-out affair with a - // distinct beginning and end. Should the intermediate events be - // DirNone? - // - // TODO: handle horizontal scrolling - button := mouse.ButtonWheelUp - if dy < 0 { - dy = -dy - button = mouse.ButtonWheelDown - } - e := mouse.Event{ - X: x, - Y: y, - Button: button, - Direction: mouse.DirStep, - Modifiers: cocoaMods(flags), - } - for delta := int(dy); delta != 0; delta-- { - sendWindowEvent(id, e) - } - return - } - sendWindowEvent(id, mouse.Event{ - X: x, - Y: y, - Button: cmButton, - Direction: cocoaMouseDir(ty), - Modifiers: cocoaMods(flags), - }) -} - -//export keyEvent -func keyEvent(id uintptr, runeVal rune, dir uint8, code uint16, flags uint32) { - sendWindowEvent(id, key.Event{ - Rune: cocoaRune(runeVal), - Direction: key.Direction(dir), - Code: cocoaKeyCode(code), - Modifiers: cocoaMods(flags), - }) -} - -//export flagEvent -func flagEvent(id uintptr, flags uint32) { - for _, mod := range mods { - if flags&mod.flags == mod.flags && lastFlags&mod.flags != mod.flags { - keyEvent(id, -1, C.NSKeyDown, mod.code, flags) - } - if lastFlags&mod.flags == mod.flags && flags&mod.flags != mod.flags { - keyEvent(id, -1, C.NSKeyUp, mod.code, flags) - } - } - lastFlags = flags -} - -var lastFlags uint32 - -func sendLifecycle(id uintptr, setter func(*lifecycler.State, bool), val bool) { - theScreen.mu.Lock() - w := theScreen.windows[id] - theScreen.mu.Unlock() - - if w == nil { - return - } - setter(&w.lifecycler, val) - w.lifecycler.SendEvent(w, w.glctx) -} - -func sendLifecycleAll(dead bool) { - windows := []*windowImpl{} - - theScreen.mu.Lock() - for _, w := range theScreen.windows { - windows = append(windows, w) - } - theScreen.mu.Unlock() - - for _, w := range windows { - w.lifecycler.SetFocused(false) - w.lifecycler.SetVisible(false) - if dead { - w.lifecycler.SetDead(true) - } - w.lifecycler.SendEvent(w, w.glctx) - } -} - -//export lifecycleDeadAll -func lifecycleDeadAll() { sendLifecycleAll(true) } - -//export lifecycleHideAll -func lifecycleHideAll() { sendLifecycleAll(false) } - -//export lifecycleVisible -func lifecycleVisible(id uintptr, val bool) { - sendLifecycle(id, (*lifecycler.State).SetVisible, val) -} - -//export lifecycleFocused -func lifecycleFocused(id uintptr, val bool) { - sendLifecycle(id, (*lifecycler.State).SetFocused, val) -} - -// cocoaRune marks the Carbon/Cocoa private-range unicode rune representing -// a non-unicode key event to -1, used for Rune in the key package. -// -// http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/CORPCHAR.TXT -func cocoaRune(r rune) rune { - if '\uE000' <= r && r <= '\uF8FF' { - return -1 - } - return r -} - -// cocoaKeyCode converts a Carbon/Cocoa virtual key code number -// into the standard keycodes used by the key package. -// -// To get a sense of the key map, see the diagram on -// http://boredzo.org/blog/archives/2007-05-22/virtual-key-codes -func cocoaKeyCode(vkcode uint16) key.Code { - switch vkcode { - case C.kVK_ANSI_A: - return key.CodeA - case C.kVK_ANSI_B: - return key.CodeB - case C.kVK_ANSI_C: - return key.CodeC - case C.kVK_ANSI_D: - return key.CodeD - case C.kVK_ANSI_E: - return key.CodeE - case C.kVK_ANSI_F: - return key.CodeF - case C.kVK_ANSI_G: - return key.CodeG - case C.kVK_ANSI_H: - return key.CodeH - case C.kVK_ANSI_I: - return key.CodeI - case C.kVK_ANSI_J: - return key.CodeJ - case C.kVK_ANSI_K: - return key.CodeK - case C.kVK_ANSI_L: - return key.CodeL - case C.kVK_ANSI_M: - return key.CodeM - case C.kVK_ANSI_N: - return key.CodeN - case C.kVK_ANSI_O: - return key.CodeO - case C.kVK_ANSI_P: - return key.CodeP - case C.kVK_ANSI_Q: - return key.CodeQ - case C.kVK_ANSI_R: - return key.CodeR - case C.kVK_ANSI_S: - return key.CodeS - case C.kVK_ANSI_T: - return key.CodeT - case C.kVK_ANSI_U: - return key.CodeU - case C.kVK_ANSI_V: - return key.CodeV - case C.kVK_ANSI_W: - return key.CodeW - case C.kVK_ANSI_X: - return key.CodeX - case C.kVK_ANSI_Y: - return key.CodeY - case C.kVK_ANSI_Z: - return key.CodeZ - case C.kVK_ANSI_1: - return key.Code1 - case C.kVK_ANSI_2: - return key.Code2 - case C.kVK_ANSI_3: - return key.Code3 - case C.kVK_ANSI_4: - return key.Code4 - case C.kVK_ANSI_5: - return key.Code5 - case C.kVK_ANSI_6: - return key.Code6 - case C.kVK_ANSI_7: - return key.Code7 - case C.kVK_ANSI_8: - return key.Code8 - case C.kVK_ANSI_9: - return key.Code9 - case C.kVK_ANSI_0: - return key.Code0 - // TODO: move the rest of these codes to constants in key.go - // if we are happy with them. - case C.kVK_Return: - return key.CodeReturnEnter - case C.kVK_Escape: - return key.CodeEscape - case C.kVK_Delete: - return key.CodeDeleteBackspace - case C.kVK_Tab: - return key.CodeTab - case C.kVK_Space: - return key.CodeSpacebar - case C.kVK_ANSI_Minus: - return key.CodeHyphenMinus - case C.kVK_ANSI_Equal: - return key.CodeEqualSign - case C.kVK_ANSI_LeftBracket: - return key.CodeLeftSquareBracket - case C.kVK_ANSI_RightBracket: - return key.CodeRightSquareBracket - case C.kVK_ANSI_Backslash: - return key.CodeBackslash - // 50: Keyboard Non-US "#" and ~ - case C.kVK_ANSI_Semicolon: - return key.CodeSemicolon - case C.kVK_ANSI_Quote: - return key.CodeApostrophe - case C.kVK_ANSI_Grave: - return key.CodeGraveAccent - case C.kVK_ANSI_Comma: - return key.CodeComma - case C.kVK_ANSI_Period: - return key.CodeFullStop - case C.kVK_ANSI_Slash: - return key.CodeSlash - case C.kVK_CapsLock: - return key.CodeCapsLock - case C.kVK_F1: - return key.CodeF1 - case C.kVK_F2: - return key.CodeF2 - case C.kVK_F3: - return key.CodeF3 - case C.kVK_F4: - return key.CodeF4 - case C.kVK_F5: - return key.CodeF5 - case C.kVK_F6: - return key.CodeF6 - case C.kVK_F7: - return key.CodeF7 - case C.kVK_F8: - return key.CodeF8 - case C.kVK_F9: - return key.CodeF9 - case C.kVK_F10: - return key.CodeF10 - case C.kVK_F11: - return key.CodeF11 - case C.kVK_F12: - return key.CodeF12 - // 70: PrintScreen - // 71: Scroll Lock - // 72: Pause - // 73: Insert - case C.kVK_Home: - return key.CodeHome - case C.kVK_PageUp: - return key.CodePageUp - case C.kVK_ForwardDelete: - return key.CodeDeleteForward - case C.kVK_End: - return key.CodeEnd - case C.kVK_PageDown: - return key.CodePageDown - case C.kVK_RightArrow: - return key.CodeRightArrow - case C.kVK_LeftArrow: - return key.CodeLeftArrow - case C.kVK_DownArrow: - return key.CodeDownArrow - case C.kVK_UpArrow: - return key.CodeUpArrow - case C.kVK_ANSI_KeypadClear: - return key.CodeKeypadNumLock - case C.kVK_ANSI_KeypadDivide: - return key.CodeKeypadSlash - case C.kVK_ANSI_KeypadMultiply: - return key.CodeKeypadAsterisk - case C.kVK_ANSI_KeypadMinus: - return key.CodeKeypadHyphenMinus - case C.kVK_ANSI_KeypadPlus: - return key.CodeKeypadPlusSign - case C.kVK_ANSI_KeypadEnter: - return key.CodeKeypadEnter - case C.kVK_ANSI_Keypad1: - return key.CodeKeypad1 - case C.kVK_ANSI_Keypad2: - return key.CodeKeypad2 - case C.kVK_ANSI_Keypad3: - return key.CodeKeypad3 - case C.kVK_ANSI_Keypad4: - return key.CodeKeypad4 - case C.kVK_ANSI_Keypad5: - return key.CodeKeypad5 - case C.kVK_ANSI_Keypad6: - return key.CodeKeypad6 - case C.kVK_ANSI_Keypad7: - return key.CodeKeypad7 - case C.kVK_ANSI_Keypad8: - return key.CodeKeypad8 - case C.kVK_ANSI_Keypad9: - return key.CodeKeypad9 - case C.kVK_ANSI_Keypad0: - return key.CodeKeypad0 - case C.kVK_ANSI_KeypadDecimal: - return key.CodeKeypadFullStop - case C.kVK_ANSI_KeypadEquals: - return key.CodeKeypadEqualSign - case C.kVK_F13: - return key.CodeF13 - case C.kVK_F14: - return key.CodeF14 - case C.kVK_F15: - return key.CodeF15 - case C.kVK_F16: - return key.CodeF16 - case C.kVK_F17: - return key.CodeF17 - case C.kVK_F18: - return key.CodeF18 - case C.kVK_F19: - return key.CodeF19 - case C.kVK_F20: - return key.CodeF20 - // 116: Keyboard Execute - case C.kVK_Help: - return key.CodeHelp - // 118: Keyboard Menu - // 119: Keyboard Select - // 120: Keyboard Stop - // 121: Keyboard Again - // 122: Keyboard Undo - // 123: Keyboard Cut - // 124: Keyboard Copy - // 125: Keyboard Paste - // 126: Keyboard Find - case C.kVK_Mute: - return key.CodeMute - case C.kVK_VolumeUp: - return key.CodeVolumeUp - case C.kVK_VolumeDown: - return key.CodeVolumeDown - // 130: Keyboard Locking Caps Lock - // 131: Keyboard Locking Num Lock - // 132: Keyboard Locking Scroll Lock - // 133: Keyboard Comma - // 134: Keyboard Equal Sign - // ...: Bunch of stuff - case C.kVK_Control: - return key.CodeLeftControl - case C.kVK_Shift: - return key.CodeLeftShift - case C.kVK_Option: - return key.CodeLeftAlt - case C.kVK_Command: - return key.CodeLeftGUI - case C.kVK_RightControl: - return key.CodeRightControl - case C.kVK_RightShift: - return key.CodeRightShift - case C.kVK_RightOption: - return key.CodeRightAlt - // TODO key.CodeRightGUI - default: - return key.CodeUnknown - } -} - -func surfaceCreate() error { - return errors.New("gldriver: surface creation not implemented on darwin") -} diff --git a/shiny/driver/gldriver/cocoa.m b/shiny/driver/gldriver/cocoa.m deleted file mode 100644 index 8f9f7a3b..00000000 --- a/shiny/driver/gldriver/cocoa.m +++ /dev/null @@ -1,325 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build darwin -// +build 386 amd64 -// +build !ios - -#include "_cgo_export.h" -#include -#include - -#import -#import -#import - -// The variables did not exist on older OS X releases, -// we use the old variables deprecated on macOS to define them. -#if __MAC_OS_X_VERSION_MAX_ALLOWED < 101200 -enum -{ - NSEventTypeScrollWheel = NSScrollWheel, - NSEventTypeKeyDown = NSKeyDown -}; -enum -{ - NSWindowStyleMaskTitled = NSTitledWindowMask, - NSWindowStyleMaskResizable = NSResizableWindowMask, - NSWindowStyleMaskMiniaturizable = NSMiniaturizableWindowMask, - NSWindowStyleMaskClosable = NSClosableWindowMask -}; -#endif - -void makeCurrentContext(uintptr_t context) { - NSOpenGLContext* ctx = (NSOpenGLContext*)context; - [ctx makeCurrentContext]; - [ctx update]; -} - -void flushContext(uintptr_t context) { - NSOpenGLContext* ctx = (NSOpenGLContext*)context; - [ctx flushBuffer]; -} - -uint64 threadID() { - uint64 id; - if (pthread_threadid_np(pthread_self(), &id)) { - abort(); - } - return id; -} - -@interface ScreenGLView : NSOpenGLView -{ -} -@end - -@implementation ScreenGLView -- (void)prepareOpenGL { - [self setWantsBestResolutionOpenGLSurface:YES]; - GLint swapInt = 1; - NSOpenGLContext *ctx = [self openGLContext]; - [ctx setValues:&swapInt forParameter:NSOpenGLCPSwapInterval]; - - // Using attribute arrays in OpenGL 3.3 requires the use of a VBA. - // But VBAs don't exist in ES 2. So we bind a default one. - GLuint vba; - glGenVertexArrays(1, &vba); - glBindVertexArray(vba); - - preparedOpenGL((GoUintptr)self, (GoUintptr)ctx, (GoUintptr)vba); -} - -- (void)callSetGeom { - // Calculate screen PPI. - // - // Note that the backingScaleFactor converts from logical - // pixels to actual pixels, but both of these units vary - // independently from real world size. E.g. - // - // 13" Retina Macbook Pro, 2560x1600, 227ppi, backingScaleFactor=2, scale=3.15 - // 15" Retina Macbook Pro, 2880x1800, 220ppi, backingScaleFactor=2, scale=3.06 - // 27" iMac, 2560x1440, 109ppi, backingScaleFactor=1, scale=1.51 - // 27" Retina iMac, 5120x2880, 218ppi, backingScaleFactor=2, scale=3.03 - NSScreen *screen = self.window.screen; - double screenPixW = [screen frame].size.width * [screen backingScaleFactor]; - - CGDirectDisplayID display = (CGDirectDisplayID)[[[screen deviceDescription] valueForKey:@"NSScreenNumber"] intValue]; - CGSize screenSizeMM = CGDisplayScreenSize(display); // in millimeters - float ppi = 25.4 * screenPixW / screenSizeMM.width; - float pixelsPerPt = ppi/72.0; - - // The width and height reported to the geom package are the - // bounds of the OpenGL view. Several steps are necessary. - // First, [self bounds] gives us the number of logical pixels - // in the view. Multiplying this by the backingScaleFactor - // gives us the number of actual pixels. - NSRect r = [self bounds]; - int w = r.size.width * [screen backingScaleFactor]; - int h = r.size.height * [screen backingScaleFactor]; - - setGeom((GoUintptr)self, pixelsPerPt, w, h); -} - -- (void)reshape { - [super reshape]; - [self callSetGeom]; -} - -- (void)drawRect:(NSRect)theRect { - // Called during resize. Do an extra draw if we are visible. - // This gets rid of flicker when resizing. - drawgl((GoUintptr)self); -} - -- (void)mouseEventNS:(NSEvent *)theEvent { - NSPoint p = [theEvent locationInWindow]; - double h = self.frame.size.height; - - // Both h and p are measured in Cocoa pixels, which are a fraction of - // physical pixels, so we multiply by backingScaleFactor. - double scale = [self.window.screen backingScaleFactor]; - - double x = p.x * scale; - double y = (h - p.y) * scale - 1; // flip origin from bottom-left to top-left. - - double dx, dy; - if (theEvent.type == NSEventTypeScrollWheel) { - dx = theEvent.scrollingDeltaX; - dy = theEvent.scrollingDeltaY; - } - - mouseEvent((GoUintptr)self, x, y, dx, dy, theEvent.type, theEvent.buttonNumber, theEvent.modifierFlags); -} - -- (void)mouseMoved:(NSEvent *)theEvent { [self mouseEventNS:theEvent]; } -- (void)mouseDown:(NSEvent *)theEvent { [self mouseEventNS:theEvent]; } -- (void)mouseUp:(NSEvent *)theEvent { [self mouseEventNS:theEvent]; } -- (void)mouseDragged:(NSEvent *)theEvent { [self mouseEventNS:theEvent]; } -- (void)rightMouseDown:(NSEvent *)theEvent { [self mouseEventNS:theEvent]; } -- (void)rightMouseUp:(NSEvent *)theEvent { [self mouseEventNS:theEvent]; } -- (void)rightMouseDragged:(NSEvent *)theEvent { [self mouseEventNS:theEvent]; } -- (void)otherMouseDown:(NSEvent *)theEvent { [self mouseEventNS:theEvent]; } -- (void)otherMouseUp:(NSEvent *)theEvent { [self mouseEventNS:theEvent]; } -- (void)otherMouseDragged:(NSEvent *)theEvent { [self mouseEventNS:theEvent]; } -- (void)scrollWheel:(NSEvent *)theEvent { [self mouseEventNS:theEvent]; } - -// raw modifier key presses -- (void)flagsChanged:(NSEvent *)theEvent { - flagEvent((GoUintptr)self, theEvent.modifierFlags); -} - -// overrides special handling of escape and tab -- (BOOL)performKeyEquivalent:(NSEvent *)theEvent { - [self key:theEvent]; - return YES; -} - -- (void)keyDown:(NSEvent *)theEvent { [self key:theEvent]; } -- (void)keyUp:(NSEvent *)theEvent { [self key:theEvent]; } - -- (void)key:(NSEvent *)theEvent { - NSRange range = [theEvent.characters rangeOfComposedCharacterSequenceAtIndex:0]; - - uint8_t buf[4] = {0, 0, 0, 0}; - if (![theEvent.characters getBytes:buf - maxLength:4 - usedLength:nil - encoding:NSUTF32LittleEndianStringEncoding - options:NSStringEncodingConversionAllowLossy - range:range - remainingRange:nil]) { - NSLog(@"failed to read key event %@", theEvent); - return; - } - - uint32_t rune = (uint32_t)buf[0]<<0 | (uint32_t)buf[1]<<8 | (uint32_t)buf[2]<<16 | (uint32_t)buf[3]<<24; - - uint8_t direction; - if ([theEvent isARepeat]) { - direction = 0; - } else if (theEvent.type == NSEventTypeKeyDown) { - direction = 1; - } else { - direction = 2; - } - keyEvent((GoUintptr)self, (int32_t)rune, direction, theEvent.keyCode, theEvent.modifierFlags); -} - -- (void)windowDidChangeScreenProfile:(NSNotification *)notification { - [self callSetGeom]; -} - -// TODO: catch windowDidMiniaturize? - -- (void)windowDidExpose:(NSNotification *)notification { - lifecycleVisible((GoUintptr)self, true); -} - -- (void)windowDidBecomeKey:(NSNotification *)notification { - lifecycleFocused((GoUintptr)self, true); -} - -- (void)windowDidResignKey:(NSNotification *)notification { - lifecycleFocused((GoUintptr)self, false); - if ([NSApp isHidden]) { - lifecycleVisible((GoUintptr)self, false); - } -} - -- (void)windowWillClose:(NSNotification *)notification { - windowClosing((GoUintptr)self); - - if (self.window.nextResponder != NULL) { - [self.window.nextResponder release]; - self.window.nextResponder = NULL; - } -} -@end - -@interface AppDelegate : NSObject -{ -} -@end - -@implementation AppDelegate -- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { - driverStarted(); - [[NSRunningApplication currentApplication] activateWithOptions:(NSApplicationActivateAllWindows | NSApplicationActivateIgnoringOtherApps)]; -} - -- (void)applicationWillTerminate:(NSNotification *)aNotification { - lifecycleDeadAll(); -} - -- (void)applicationWillHide:(NSNotification *)aNotification { - lifecycleHideAll(); -} -@end - -uintptr_t doNewWindow(int width, int height, char* title) { - NSScreen *screen = [NSScreen mainScreen]; - double w = (double)width / [screen backingScaleFactor]; - double h = (double)height / [screen backingScaleFactor]; - __block ScreenGLView* view = NULL; - - dispatch_sync(dispatch_get_main_queue(), ^{ - id menuBar = [NSMenu new]; - id menuItem = [NSMenuItem new]; - [menuBar addItem:menuItem]; - [NSApp setMainMenu:menuBar]; - - id menu = [NSMenu new]; - NSString* name = [[NSString alloc] initWithUTF8String:title]; - - id hideMenuItem = [[NSMenuItem alloc] initWithTitle:@"Hide" - action:@selector(hide:) keyEquivalent:@"h"]; - [menu addItem:hideMenuItem]; - - id quitMenuItem = [[NSMenuItem alloc] initWithTitle:@"Quit" - action:@selector(terminate:) keyEquivalent:@"q"]; - [menu addItem:quitMenuItem]; - [menuItem setSubmenu:menu]; - - NSRect rect = NSMakeRect(0, 0, w, h); - - NSWindow* window = [[NSWindow alloc] initWithContentRect:rect - styleMask:NSWindowStyleMaskTitled - backing:NSBackingStoreBuffered - defer:NO]; - window.styleMask |= NSWindowStyleMaskResizable; - window.styleMask |= NSWindowStyleMaskMiniaturizable; - window.styleMask |= NSWindowStyleMaskClosable; - window.title = name; - window.displaysWhenScreenProfileChanges = YES; - [window cascadeTopLeftFromPoint:NSMakePoint(20,20)]; - [window setAcceptsMouseMovedEvents:YES]; - - NSOpenGLPixelFormatAttribute attr[] = { - NSOpenGLPFAOpenGLProfile, NSOpenGLProfileVersion3_2Core, - NSOpenGLPFAColorSize, 24, - NSOpenGLPFAAlphaSize, 8, - NSOpenGLPFADepthSize, 16, - NSOpenGLPFADoubleBuffer, - NSOpenGLPFAAllowOfflineRenderers, - 0 - }; - id pixFormat = [[NSOpenGLPixelFormat alloc] initWithAttributes:attr]; - view = [[ScreenGLView alloc] initWithFrame:rect pixelFormat:pixFormat]; - [window setContentView:view]; - [window setDelegate:view]; - [window makeFirstResponder:view]; - }); - - return (uintptr_t)view; -} - -void doShowWindow(uintptr_t viewID) { - ScreenGLView* view = (ScreenGLView*)viewID; - dispatch_async(dispatch_get_main_queue(), ^{ - [view.window makeKeyAndOrderFront:view.window]; - }); -} - -void doCloseWindow(uintptr_t viewID) { - ScreenGLView* view = (ScreenGLView*)viewID; - dispatch_sync(dispatch_get_main_queue(), ^{ - [view.window performClose:view]; - }); -} - -void startDriver() { - [NSAutoreleasePool new]; - [NSApplication sharedApplication]; - [NSApp setActivationPolicy:NSApplicationActivationPolicyRegular]; - AppDelegate* delegate = [[AppDelegate alloc] init]; - [NSApp setDelegate:delegate]; - [NSApp run]; -} - -void stopDriver() { - dispatch_async(dispatch_get_main_queue(), ^{ - [NSApp terminate:nil]; - }); -} diff --git a/shiny/driver/gldriver/context.go b/shiny/driver/gldriver/context.go deleted file mode 100644 index 197be350..00000000 --- a/shiny/driver/gldriver/context.go +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !android - -package gldriver - -import ( - "runtime" - - "golang.org/x/mobile/gl" -) - -// NewContext creates an OpenGL ES context with a dedicated processing thread. -func NewContext() (gl.Context, error) { - glctx, worker := gl.NewContext() - - errCh := make(chan error) - workAvailable := worker.WorkAvailable() - go func() { - runtime.LockOSThread() - err := surfaceCreate() - errCh <- err - if err != nil { - return - } - - for range workAvailable { - worker.DoWork() - } - }() - if err := <-errCh; err != nil { - return nil, err - } - return glctx, nil -} diff --git a/shiny/driver/gldriver/egl.go b/shiny/driver/gldriver/egl.go deleted file mode 100644 index 6f5d3d7b..00000000 --- a/shiny/driver/gldriver/egl.go +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package gldriver - -// These constants match the values found in the EGL 1.4 headers, -// egl.h, eglext.h, and eglplatform.h. -const ( - _EGL_DONT_CARE = -1 - - _EGL_NO_SURFACE = 0 - _EGL_NO_CONTEXT = 0 - _EGL_NO_DISPLAY = 0 - - _EGL_OPENGL_ES2_BIT = 0x04 // EGL_RENDERABLE_TYPE mask - _EGL_WINDOW_BIT = 0x04 // EGL_SURFACE_TYPE mask - - _EGL_OPENGL_ES_API = 0x30A0 - _EGL_RENDERABLE_TYPE = 0x3040 - _EGL_SURFACE_TYPE = 0x3033 - _EGL_BUFFER_SIZE = 0x3020 - _EGL_ALPHA_SIZE = 0x3021 - _EGL_BLUE_SIZE = 0x3022 - _EGL_GREEN_SIZE = 0x3023 - _EGL_RED_SIZE = 0x3024 - _EGL_DEPTH_SIZE = 0x3025 - _EGL_STENCIL_SIZE = 0x3026 - _EGL_SAMPLE_BUFFERS = 0x3032 - _EGL_CONFIG_CAVEAT = 0x3027 - _EGL_NONE = 0x3038 - - _EGL_CONTEXT_CLIENT_VERSION = 0x3098 -) - -// ANGLE specific options found in eglext.h -const ( - _EGL_PLATFORM_ANGLE_ANGLE = 0x3202 - _EGL_PLATFORM_ANGLE_TYPE_ANGLE = 0x3203 - _EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE = 0x3204 - _EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE = 0x3205 - _EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE = 0x3206 - - _EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE = 0x3207 - _EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE = 0x3208 - _EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE = 0x3209 - _EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE = 0x320A - _EGL_PLATFORM_ANGLE_DEVICE_TYPE_WARP_ANGLE = 0x320B - - _EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE = 0x320D - _EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE = 0x320E -) - -const ( - _EGL_SUCCESS = 0x3000 - _EGL_NOT_INITIALIZED = 0x3001 - _EGL_BAD_ACCESS = 0x3002 - _EGL_BAD_ALLOC = 0x3003 - _EGL_BAD_ATTRIBUTE = 0x3004 - _EGL_BAD_CONFIG = 0x3005 - _EGL_BAD_CONTEXT = 0x3006 - _EGL_BAD_CURRENT_SURFACE = 0x3007 - _EGL_BAD_DISPLAY = 0x3008 - _EGL_BAD_MATCH = 0x3009 - _EGL_BAD_NATIVE_PIXMAP = 0x300A - _EGL_BAD_NATIVE_WINDOW = 0x300B - _EGL_BAD_PARAMETER = 0x300C - _EGL_BAD_SURFACE = 0x300D - _EGL_CONTEXT_LOST = 0x300E -) - -func eglErrString(errno uintptr) string { - switch errno { - case _EGL_SUCCESS: - return "EGL_SUCCESS" - case _EGL_NOT_INITIALIZED: - return "EGL_NOT_INITIALIZED" - case _EGL_BAD_ACCESS: - return "EGL_BAD_ACCESS" - case _EGL_BAD_ALLOC: - return "EGL_BAD_ALLOC" - case _EGL_BAD_ATTRIBUTE: - return "EGL_BAD_ATTRIBUTE" - case _EGL_BAD_CONFIG: - return "EGL_BAD_CONFIG" - case _EGL_BAD_CONTEXT: - return "EGL_BAD_CONTEXT" - case _EGL_BAD_CURRENT_SURFACE: - return "EGL_BAD_CURRENT_SURFACE" - case _EGL_BAD_DISPLAY: - return "EGL_BAD_DISPLAY" - case _EGL_BAD_MATCH: - return "EGL_BAD_MATCH" - case _EGL_BAD_NATIVE_PIXMAP: - return "EGL_BAD_NATIVE_PIXMAP" - case _EGL_BAD_NATIVE_WINDOW: - return "EGL_BAD_NATIVE_WINDOW" - case _EGL_BAD_PARAMETER: - return "EGL_BAD_PARAMETER" - case _EGL_BAD_SURFACE: - return "EGL_BAD_SURFACE" - case _EGL_CONTEXT_LOST: - return "EGL_CONTEXT_LOST" - } - return "EGL: unknown error" -} diff --git a/shiny/driver/gldriver/gldriver.go b/shiny/driver/gldriver/gldriver.go deleted file mode 100644 index f9b0b27f..00000000 --- a/shiny/driver/gldriver/gldriver.go +++ /dev/null @@ -1,121 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package gldriver provides an OpenGL driver for accessing a screen. -package gldriver - -import ( - "encoding/binary" - "fmt" - "math" - - "github.com/oakmound/oak/v3/shiny/driver/internal/errscreen" - "github.com/oakmound/oak/v3/shiny/screen" - "golang.org/x/image/math/f64" - "golang.org/x/mobile/gl" -) - -// Main is called by the program's main function to run the graphical -// application. -// -// It calls f on the Screen, possibly in a separate goroutine, as some OS- -// specific libraries require being on 'the main thread'. It returns when f -// returns. -func Main(f func(screen.Screen)) { - if err := main(f); err != nil { - f(errscreen.Stub(err)) - } -} - -// writeAff3 must only be called while holding windowImpl.glctxMu. -func writeAff3(glctx gl.Context, u gl.Uniform, a f64.Aff3) { - var m [9]float32 - m[0*3+0] = float32(a[0*3+0]) - m[0*3+1] = float32(a[1*3+0]) - m[0*3+2] = 0 - m[1*3+0] = float32(a[0*3+1]) - m[1*3+1] = float32(a[1*3+1]) - m[1*3+2] = 0 - m[2*3+0] = float32(a[0*3+2]) - m[2*3+1] = float32(a[1*3+2]) - m[2*3+2] = 1 - glctx.UniformMatrix3fv(u, m[:]) -} - -// f32Bytes returns the byte representation of float32 values in the given byte -// order. byteOrder must be either binary.BigEndian or binary.LittleEndian. -func f32Bytes(byteOrder binary.ByteOrder, values ...float32) []byte { - le := false - switch byteOrder { - case binary.BigEndian: - case binary.LittleEndian: - le = true - default: - panic(fmt.Sprintf("invalid byte order %v", byteOrder)) - } - - b := make([]byte, 4*len(values)) - for i, v := range values { - u := math.Float32bits(v) - if le { - b[4*i+0] = byte(u >> 0) - b[4*i+1] = byte(u >> 8) - b[4*i+2] = byte(u >> 16) - b[4*i+3] = byte(u >> 24) - } else { - b[4*i+0] = byte(u >> 24) - b[4*i+1] = byte(u >> 16) - b[4*i+2] = byte(u >> 8) - b[4*i+3] = byte(u >> 0) - } - } - return b -} - -// compileProgram must only be called while holding windowImpl.glctxMu. -func compileProgram(glctx gl.Context, vSrc, fSrc string) (gl.Program, error) { - program := glctx.CreateProgram() - if program.Value == 0 { - return gl.Program{}, fmt.Errorf("gldriver: no programs available") - } - - vertexShader, err := compileShader(glctx, gl.VERTEX_SHADER, vSrc) - if err != nil { - return gl.Program{}, err - } - fragmentShader, err := compileShader(glctx, gl.FRAGMENT_SHADER, fSrc) - if err != nil { - glctx.DeleteShader(vertexShader) - return gl.Program{}, err - } - - glctx.AttachShader(program, vertexShader) - glctx.AttachShader(program, fragmentShader) - glctx.LinkProgram(program) - - // Flag shaders for deletion when program is unlinked. - glctx.DeleteShader(vertexShader) - glctx.DeleteShader(fragmentShader) - - if glctx.GetProgrami(program, gl.LINK_STATUS) == 0 { - defer glctx.DeleteProgram(program) - return gl.Program{}, fmt.Errorf("gldriver: program compile: %s", glctx.GetProgramInfoLog(program)) - } - return program, nil -} - -// compileShader must only be called while holding windowImpl.glctxMu. -func compileShader(glctx gl.Context, shaderType gl.Enum, src string) (gl.Shader, error) { - shader := glctx.CreateShader(shaderType) - if shader.Value == 0 { - return gl.Shader{}, fmt.Errorf("gldriver: could not create shader (type %v)", shaderType) - } - glctx.ShaderSource(shader, src) - glctx.CompileShader(shader) - if glctx.GetShaderi(shader, gl.COMPILE_STATUS) == 0 { - defer glctx.DeleteShader(shader) - return gl.Shader{}, fmt.Errorf("gldriver: shader compile: %s", glctx.GetShaderInfoLog(shader)) - } - return shader, nil -} diff --git a/shiny/driver/gldriver/other.go b/shiny/driver/gldriver/other.go deleted file mode 100644 index 538feb36..00000000 --- a/shiny/driver/gldriver/other.go +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !darwin !386,!amd64 ios -// +build !linux android -// +build !windows -// +build !openbsd - -package gldriver - -import ( - "fmt" - "runtime" - - "github.com/oakmound/oak/v3/shiny/screen" -) - -func newWindow(opts screen.WindowGenerator) (uintptr, error) { return 0, nil } - -func moveWindow(w *windowImpl, opts screen.WindowGenerator) error { return nil } - -const useLifecycler = true -const handleSizeEventsAtChannelReceive = true - -func initWindow(id *windowImpl) {} -func showWindow(id *windowImpl) {} -func closeWindow(id uintptr) {} -func drawLoop(w *windowImpl) {} - -func main(f func(screen.Screen)) error { - return fmt.Errorf("gldriver: unsupported GOOS/GOARCH %s/%s", runtime.GOOS, runtime.GOARCH) -} diff --git a/shiny/driver/gldriver/screen.go b/shiny/driver/gldriver/screen.go deleted file mode 100644 index 4e01ac7d..00000000 --- a/shiny/driver/gldriver/screen.go +++ /dev/null @@ -1,138 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package gldriver - -import ( - "fmt" - "image" - "sync" - - "github.com/oakmound/oak/v3/shiny/screen" - "golang.org/x/mobile/gl" -) - -var theScreen = &screenImpl{ - windows: make(map[uintptr]*windowImpl), -} - -type screenImpl struct { - texture struct { - program gl.Program - pos gl.Attrib - mvp gl.Uniform - uvp gl.Uniform - inUV gl.Attrib - sample gl.Uniform - quad gl.Buffer - } - fill struct { - program gl.Program - pos gl.Attrib - mvp gl.Uniform - color gl.Uniform - quad gl.Buffer - } - - mu sync.Mutex - windows map[uintptr]*windowImpl -} - -func (s *screenImpl) NewImage(size image.Point) (retBuf screen.Image, retErr error) { - m := image.NewRGBA(image.Rectangle{Max: size}) - return &bufferImpl{ - buf: m.Pix, - rgba: *m, - size: size, - }, nil -} - -func (s *screenImpl) NewTexture(size image.Point) (screen.Texture, error) { - // TODO: can we compile these programs eagerly instead of lazily? - - // Find a GL context for this texture. - // TODO: this might be correct. Some GL objects can be shared - // across contexts. But this needs a review of the spec to make - // sure it's correct, and some testing would be nice. - var w *windowImpl - - s.mu.Lock() - for _, window := range s.windows { - w = window - break - } - s.mu.Unlock() - - if w == nil { - return nil, fmt.Errorf("gldriver: no window available") - } - - w.glctxMu.Lock() - defer w.glctxMu.Unlock() - glctx := w.glctx - if glctx == nil { - return nil, fmt.Errorf("gldriver: no GL context available") - } - - if !glctx.IsProgram(s.texture.program) { - p, err := compileProgram(glctx, textureVertexSrc, textureFragmentSrc) - if err != nil { - return nil, err - } - s.texture.program = p - s.texture.pos = glctx.GetAttribLocation(p, "pos") - s.texture.mvp = glctx.GetUniformLocation(p, "mvp") - s.texture.uvp = glctx.GetUniformLocation(p, "uvp") - s.texture.inUV = glctx.GetAttribLocation(p, "inUV") - s.texture.sample = glctx.GetUniformLocation(p, "sample") - s.texture.quad = glctx.CreateBuffer() - - glctx.BindBuffer(gl.ARRAY_BUFFER, s.texture.quad) - glctx.BufferData(gl.ARRAY_BUFFER, quadCoords, gl.STATIC_DRAW) - } - - t := &textureImpl{ - w: w, - id: glctx.CreateTexture(), - size: size, - } - - glctx.BindTexture(gl.TEXTURE_2D, t.id) - glctx.TexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, size.X, size.Y, gl.RGBA, gl.UNSIGNED_BYTE, nil) - glctx.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR) - glctx.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR) - glctx.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE) - glctx.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE) - - return t, nil -} - -func (s *screenImpl) NewWindow(opts screen.WindowGenerator) (screen.Window, error) { - id, err := newWindow(opts) - if err != nil { - return nil, err - } - w := &windowImpl{ - s: s, - id: id, - publish: make(chan struct{}), - publishDone: make(chan screen.PublishResult), - drawDone: make(chan struct{}), - } - initWindow(w) - - s.mu.Lock() - s.windows[id] = w - s.mu.Unlock() - - if useLifecycler { - w.lifecycler.SendEvent(w, nil) - } - - showWindow(w) - - moveWindow(w, opts) - - return w, nil -} diff --git a/shiny/driver/gldriver/texture.go b/shiny/driver/gldriver/texture.go deleted file mode 100644 index 21b734ea..00000000 --- a/shiny/driver/gldriver/texture.go +++ /dev/null @@ -1,160 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package gldriver - -import ( - "encoding/binary" - "image" - "image/color" - "image/draw" - - "github.com/oakmound/oak/v3/shiny/screen" - "golang.org/x/mobile/gl" -) - -type textureImpl struct { - w *windowImpl - id gl.Texture - fb gl.Framebuffer - size image.Point -} - -func (t *textureImpl) Size() image.Point { return t.size } -func (t *textureImpl) Bounds() image.Rectangle { return image.Rectangle{Max: t.size} } - -func (t *textureImpl) Release() { - t.w.glctxMu.Lock() - defer t.w.glctxMu.Unlock() - - if t.fb.Value != 0 { - t.w.glctx.DeleteFramebuffer(t.fb) - t.fb = gl.Framebuffer{} - } - t.w.glctx.DeleteTexture(t.id) - t.id = gl.Texture{} -} - -func (t *textureImpl) Upload(dp image.Point, src screen.Image, sr image.Rectangle) { - buf := src.(*bufferImpl) - buf.preUpload() - - // src2dst is added to convert from the src coordinate space to the dst - // coordinate space. It is subtracted to convert the other way. - src2dst := dp.Sub(sr.Min) - - // Clip to the source. - sr = sr.Intersect(buf.Bounds()) - - // Clip to the destination. - dr := sr.Add(src2dst) - dr = dr.Intersect(t.Bounds()) - if dr.Empty() { - return - } - - // Bring dr.Min in dst-space back to src-space to get the pixel buffer offset. - pix := buf.rgba.Pix[buf.rgba.PixOffset(dr.Min.X-src2dst.X, dr.Min.Y-src2dst.Y):] - - t.w.glctxMu.Lock() - defer t.w.glctxMu.Unlock() - - t.w.glctx.BindTexture(gl.TEXTURE_2D, t.id) - - width := dr.Dx() - if width*4 == buf.rgba.Stride { - t.w.glctx.TexSubImage2D(gl.TEXTURE_2D, 0, dr.Min.X, dr.Min.Y, width, dr.Dy(), gl.RGBA, gl.UNSIGNED_BYTE, pix) - return - } - // TODO: can we use GL_UNPACK_ROW_LENGTH with glPixelStorei for stride in - // ES 3.0, instead of uploading the pixels row-by-row? - for y, p := dr.Min.Y, 0; y < dr.Max.Y; y++ { - t.w.glctx.TexSubImage2D(gl.TEXTURE_2D, 0, dr.Min.X, y, width, 1, gl.RGBA, gl.UNSIGNED_BYTE, pix[p:]) - p += buf.rgba.Stride - } -} - -func (t *textureImpl) Fill(dr image.Rectangle, src color.Color, op draw.Op) { - minX := float64(dr.Min.X) - minY := float64(dr.Min.Y) - maxX := float64(dr.Max.X) - maxY := float64(dr.Max.Y) - mvp := calcMVP( - t.size.X, t.size.Y, - minX, minY, - maxX, minY, - minX, maxY, - ) - - glctx := t.w.glctx - - t.w.glctxMu.Lock() - defer t.w.glctxMu.Unlock() - - create := t.fb.Value == 0 - if create { - t.fb = glctx.CreateFramebuffer() - } - glctx.BindFramebuffer(gl.FRAMEBUFFER, t.fb) - if create { - glctx.FramebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, t.id, 0) - } - - glctx.Viewport(0, 0, t.size.X, t.size.Y) - doFill(t.w.s, t.w.glctx, mvp, src, op) - - // We can't restore the GL state (i.e. bind the back buffer, also known as - // gl.Framebuffer{Value: 0}) right away, since we don't necessarily know - // the right viewport size yet. It is valid to call textureImpl.Fill before - // we've gotten our first size.Event. We bind it lazily instead. - t.w.backBufferBound = false -} - -var quadCoords = f32Bytes(binary.LittleEndian, - 0, 0, // top left - 1, 0, // top right - 0, 1, // bottom left - 1, 1, // bottom right -) - -const textureVertexSrc = `#version 100 -uniform mat3 mvp; -uniform mat3 uvp; -attribute vec3 pos; -attribute vec2 inUV; -varying vec2 uv; -void main() { - vec3 p = pos; - p.z = 1.0; - gl_Position = vec4(mvp * p, 1); - uv = (uvp * vec3(inUV, 1)).xy; -} -` - -const textureFragmentSrc = `#version 100 -precision mediump float; -varying vec2 uv; -uniform sampler2D sample; -void main() { - gl_FragColor = texture2D(sample, uv); -} -` - -const fillVertexSrc = `#version 100 -uniform mat3 mvp; -attribute vec3 pos; -void main() { - vec3 p = pos; - p.z = 1.0; - gl_Position = vec4(mvp * p, 1); -} -` - -const fillFragmentSrc = `#version 100 -precision mediump float; -uniform vec4 color; -void main() { - gl_FragColor = color; -} -` diff --git a/shiny/driver/gldriver/win32.go b/shiny/driver/gldriver/win32.go deleted file mode 100644 index d26fe143..00000000 --- a/shiny/driver/gldriver/win32.go +++ /dev/null @@ -1,365 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build windows - -package gldriver - -import ( - "errors" - "fmt" - "runtime" - "unsafe" - - "github.com/oakmound/oak/v3/shiny/driver/internal/win32" - "github.com/oakmound/oak/v3/shiny/screen" - "golang.org/x/mobile/event/key" - "golang.org/x/mobile/event/lifecycle" - "golang.org/x/mobile/event/mouse" - "golang.org/x/mobile/event/paint" - "golang.org/x/mobile/event/size" - "golang.org/x/mobile/gl" -) - -const useLifecycler = true -const handleSizeEventsAtChannelReceive = true - -var screenHWND win32.HWND - -func main(f func(screen.Screen)) error { - var err error - screenHWND, err = win32.NewScreen() - if err != nil { - return err - } - return win32.Main(screenHWND, func() { f(theScreen) }) -} - -var ( - eglGetPlatformDisplayEXT = gl.LibEGL.NewProc("eglGetPlatformDisplayEXT") - eglInitialize = gl.LibEGL.NewProc("eglInitialize") - eglChooseConfig = gl.LibEGL.NewProc("eglChooseConfig") - eglGetError = gl.LibEGL.NewProc("eglGetError") - eglBindAPI = gl.LibEGL.NewProc("eglBindAPI") - eglCreateWindowSurface = gl.LibEGL.NewProc("eglCreateWindowSurface") - eglCreateContext = gl.LibEGL.NewProc("eglCreateContext") - eglMakeCurrent = gl.LibEGL.NewProc("eglMakeCurrent") - eglSwapInterval = gl.LibEGL.NewProc("eglSwapInterval") - eglDestroySurface = gl.LibEGL.NewProc("eglDestroySurface") - eglSwapBuffers = gl.LibEGL.NewProc("eglSwapBuffers") -) - -type eglConfig uintptr // void* - -type eglInt int32 - -var rgb888 = [...]eglInt{ - _EGL_RENDERABLE_TYPE, _EGL_OPENGL_ES2_BIT, - _EGL_SURFACE_TYPE, _EGL_WINDOW_BIT, - _EGL_BLUE_SIZE, 8, - _EGL_GREEN_SIZE, 8, - _EGL_RED_SIZE, 8, - _EGL_DEPTH_SIZE, 16, - _EGL_STENCIL_SIZE, 8, - _EGL_NONE, -} - -type ctxWin32 struct { - ctx uintptr - display uintptr // EGLDisplay - surface uintptr // EGLSurface -} - -func newWindow(opts screen.WindowGenerator) (uintptr, error) { - w, err := win32.NewWindow(screenHWND, opts) - if err != nil { - return 0, err - } - - return uintptr(w), nil -} - -func moveWindow(w *windowImpl, opts screen.WindowGenerator) error { - return win32.ResizeClientRect(win32.HWND(w.id), opts) -} - -func initWindow(w *windowImpl) { - w.glctx, w.worker = gl.NewContext() -} - -func showWindow(w *windowImpl) { - // Show makes an initial call to sizeEvent (via win32.SizeEvent), where - // we setup the EGL surface and GL context. - win32.Show(win32.HWND(w.id)) -} - -func closeWindow(id uintptr) {} // TODO - -func drawLoop(w *windowImpl) { - runtime.LockOSThread() - - display := w.ctx.(ctxWin32).display - surface := w.ctx.(ctxWin32).surface - ctx := w.ctx.(ctxWin32).ctx - - if ret, _, _ := eglMakeCurrent.Call(display, surface, surface, ctx); ret == 0 { - panic(fmt.Sprintf("eglMakeCurrent failed: %v", eglErr())) - } - - // TODO(crawshaw): exit this goroutine on Release. - workAvailable := w.worker.WorkAvailable() - for { - select { - case <-workAvailable: - w.worker.DoWork() - case <-w.publish: - loop: - for { - select { - case <-workAvailable: - w.worker.DoWork() - default: - break loop - } - } - if ret, _, _ := eglSwapBuffers.Call(display, surface); ret == 0 { - panic(fmt.Sprintf("eglSwapBuffers failed: %v", eglErr())) - } - w.publishDone <- screen.PublishResult{} - } - } -} - -func init() { - win32.SizeEvent = sizeEvent - win32.PaintEvent = paintEvent - win32.MouseEvent = mouseEvent - win32.KeyEvent = keyEvent - win32.LifecycleEvent = lifecycleEvent -} - -func lifecycleEvent(hwnd win32.HWND, to lifecycle.Stage) { - theScreen.mu.Lock() - w := theScreen.windows[uintptr(hwnd)] - theScreen.mu.Unlock() - - if w.lifecycleStage == to { - return - } - w.Send(lifecycle.Event{ - From: w.lifecycleStage, - To: to, - DrawContext: w.glctx, - }) - w.lifecycleStage = to -} - -func mouseEvent(hwnd win32.HWND, e mouse.Event) { - theScreen.mu.Lock() - w := theScreen.windows[uintptr(hwnd)] - theScreen.mu.Unlock() - - w.Send(e) -} - -func keyEvent(hwnd win32.HWND, e key.Event) { - theScreen.mu.Lock() - w := theScreen.windows[uintptr(hwnd)] - theScreen.mu.Unlock() - - w.Send(e) -} - -func paintEvent(hwnd win32.HWND, e paint.Event) { - theScreen.mu.Lock() - w := theScreen.windows[uintptr(hwnd)] - theScreen.mu.Unlock() - - if w.ctx == nil { - // Sometimes a paint event comes in before initial - // window size is set. Ignore it. - return - } - - // TODO: the paint.Event should have External: true. - w.Send(paint.Event{}) -} - -func sizeEvent(hwnd win32.HWND, e size.Event) { - theScreen.mu.Lock() - w := theScreen.windows[uintptr(hwnd)] - theScreen.mu.Unlock() - - if w.ctx == nil { - // This is the initial size event on window creation. - // Create an EGL surface and spin up a GL context. - if err := createEGLSurface(hwnd, w); err != nil { - panic(err) - } - go drawLoop(w) - } - - if !handleSizeEventsAtChannelReceive { - w.szMu.Lock() - w.sz = e - w.szMu.Unlock() - } - - w.Send(e) - - if handleSizeEventsAtChannelReceive { - return - } - - // Screen is dirty, generate a paint event. - // - // The sizeEvent function is called on the goroutine responsible for - // calling the GL worker.DoWork. When compiling with -tags gldebug, - // these GL calls are blocking (so we can read the error message), so - // to make progress they need to happen on another goroutine. - go func() { - // TODO: this call to Viewport is not right, but is very hard to - // do correctly with our async events channel model. We want - // the call to Viewport to be made the instant before the - // paint.Event is received. - w.glctxMu.Lock() - w.glctx.Viewport(0, 0, e.WidthPx, e.HeightPx) - w.glctx.ClearColor(0, 0, 0, 1) - w.glctx.Clear(gl.COLOR_BUFFER_BIT) - w.glctxMu.Unlock() - - w.Send(paint.Event{}) - }() -} - -func eglErr() error { - if ret, _, _ := eglGetError.Call(); ret != _EGL_SUCCESS { - return errors.New(eglErrString(ret)) - } - return nil -} - -func createEGLSurface(hwnd win32.HWND, w *windowImpl) error { - var displayAttribPlatforms = [][]eglInt{ - // Default - { - _EGL_PLATFORM_ANGLE_TYPE_ANGLE, - _EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE, - _EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE, _EGL_DONT_CARE, - _EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE, _EGL_DONT_CARE, - _EGL_NONE, - }, - // Direct3D 11 - { - _EGL_PLATFORM_ANGLE_TYPE_ANGLE, - _EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, - _EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE, _EGL_DONT_CARE, - _EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE, _EGL_DONT_CARE, - _EGL_NONE, - }, - // Direct3D 9 - { - _EGL_PLATFORM_ANGLE_TYPE_ANGLE, - _EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE, - _EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE, _EGL_DONT_CARE, - _EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE, _EGL_DONT_CARE, - _EGL_NONE, - }, - // Direct3D 11 with WARP - // https://msdn.microsoft.com/en-us/library/windows/desktop/gg615082.aspx - { - _EGL_PLATFORM_ANGLE_TYPE_ANGLE, - _EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, - _EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE, - _EGL_PLATFORM_ANGLE_DEVICE_TYPE_WARP_ANGLE, - _EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE, _EGL_DONT_CARE, - _EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE, _EGL_DONT_CARE, - _EGL_NONE, - }, - } - - dc, err := win32.GetDC(hwnd) - if err != nil { - return fmt.Errorf("win32.GetDC failed: %v", err) - } - - var display uintptr = _EGL_NO_DISPLAY - for i, displayAttrib := range displayAttribPlatforms { - lastTry := i == len(displayAttribPlatforms)-1 - - display, _, _ = eglGetPlatformDisplayEXT.Call( - _EGL_PLATFORM_ANGLE_ANGLE, - uintptr(dc), - uintptr(unsafe.Pointer(&displayAttrib[0])), - ) - - if display == _EGL_NO_DISPLAY { - if !lastTry { - continue - } - return fmt.Errorf("eglGetPlatformDisplayEXT failed: %v", eglErr()) - } - - if ret, _, _ := eglInitialize.Call(display, 0, 0); ret == 0 { - if !lastTry { - continue - } - return fmt.Errorf("eglInitialize failed: %v", eglErr()) - } - } - - eglBindAPI.Call(_EGL_OPENGL_ES_API) - if err := eglErr(); err != nil { - return err - } - - var numConfigs eglInt - var config eglConfig - ret, _, _ := eglChooseConfig.Call( - display, - uintptr(unsafe.Pointer(&rgb888[0])), - uintptr(unsafe.Pointer(&config)), - 1, - uintptr(unsafe.Pointer(&numConfigs)), - ) - if ret == 0 { - return fmt.Errorf("eglChooseConfig failed: %v", eglErr()) - } - if numConfigs <= 0 { - return errors.New("eglChooseConfig found no valid config") - } - - surface, _, _ := eglCreateWindowSurface.Call(display, uintptr(config), uintptr(hwnd), 0, 0) - if surface == _EGL_NO_SURFACE { - return fmt.Errorf("eglCreateWindowSurface failed: %v", eglErr()) - } - - contextAttribs := [...]eglInt{ - _EGL_CONTEXT_CLIENT_VERSION, 2, - _EGL_NONE, - } - context, _, _ := eglCreateContext.Call( - display, - uintptr(config), - _EGL_NO_CONTEXT, - uintptr(unsafe.Pointer(&contextAttribs[0])), - ) - if context == _EGL_NO_CONTEXT { - return fmt.Errorf("eglCreateContext failed: %v", eglErr()) - } - - eglSwapInterval.Call(display, 1) - - w.ctx = ctxWin32{ - ctx: context, - display: display, - surface: surface, - } - - return nil -} - -func surfaceCreate() error { - return errors.New("gldriver: surface creation not implemented on windows") -} diff --git a/shiny/driver/gldriver/window.go b/shiny/driver/gldriver/window.go deleted file mode 100644 index ea614f88..00000000 --- a/shiny/driver/gldriver/window.go +++ /dev/null @@ -1,398 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package gldriver - -import ( - "image" - "image/color" - "image/draw" - "sync" - - "github.com/oakmound/oak/v3/shiny/driver/internal/drawer" - "github.com/oakmound/oak/v3/shiny/driver/internal/event" - "github.com/oakmound/oak/v3/shiny/driver/internal/lifecycler" - "github.com/oakmound/oak/v3/shiny/screen" - "golang.org/x/image/math/f64" - "golang.org/x/mobile/event/lifecycle" - "golang.org/x/mobile/event/size" - "golang.org/x/mobile/gl" -) - -type windowImpl struct { - s *screenImpl - - // id is an OS-specific data structure for the window. - // - Cocoa: ScreenGLView* - // - X11: Window - // - Windows: win32.HWND - id uintptr - - // ctx is a C data structure for the GL context. - // - Cocoa: uintptr holding a NSOpenGLContext*. - // - X11: uintptr holding an EGLSurface. - // - Windows: ctxWin32 - ctx interface{} - - lifecycler lifecycler.State - // TODO: Delete the field below (and the useLifecycler constant), and use - // the field above for cocoa and win32. - lifecycleStage lifecycle.Stage // current stage - - event.Deque - publish chan struct{} - publishDone chan screen.PublishResult - drawDone chan struct{} - - // glctxMu is a mutex that enforces the atomicity of methods like - // Texture.Upload or Window.Draw that are conceptually one operation - // but are implemented by multiple OpenGL calls. OpenGL is a stateful - // API, so interleaving OpenGL calls from separate higher-level - // operations causes inconsistencies. - glctxMu sync.Mutex - glctx gl.Context - worker gl.Worker - // backBufferBound is whether the default Framebuffer, with ID 0, also - // known as the back buffer or the window's Framebuffer, is bound and its - // viewport is known to equal the window size. It can become false when we - // bind to a texture's Framebuffer or when the window size changes. - backBufferBound bool - - // szMu protects only sz. If you need to hold both glctxMu and szMu, the - // lock ordering is to lock glctxMu first (and unlock it last). - szMu sync.Mutex - sz size.Event -} - -// NextEvent implements the screen.EventDeque interface. -func (w *windowImpl) NextEvent() interface{} { - e := w.Deque.NextEvent() - if handleSizeEventsAtChannelReceive { - if sz, ok := e.(size.Event); ok { - w.glctxMu.Lock() - w.backBufferBound = false - w.szMu.Lock() - w.sz = sz - w.szMu.Unlock() - w.glctxMu.Unlock() - } - } - return e -} - -func (w *windowImpl) Release() { - // There are two ways a window can be closed: the Operating System or - // Desktop Environment can initiate (e.g. in response to a user clicking a - // red button), or the Go app can programatically close the window (by - // calling Window.Release). - // - // When the OS closes a window: - // - Cocoa: Obj-C's windowWillClose calls Go's windowClosing. - // - X11: the X11 server sends a WM_DELETE_WINDOW message. - // - Windows: TODO: implement and document this. - // - // This should send a lifecycle event (To: StageDead) to the Go app's event - // loop, which should respond by calling Window.Release (this method). - // Window.Release is where system resources are actually cleaned up. - // - // When Window.Release is called, the closeWindow call below: - // - Cocoa: calls Obj-C's performClose, which emulates the red button - // being clicked. (TODO: document how this actually cleans up - // resources??) - // - X11: calls C's XDestroyWindow. - // - Windows: TODO: implement and document this. - // - // On Cocoa, if these two approaches race, experiments suggest that the - // race is won by performClose (which is called serially on the main - // thread). Even if that isn't true, the windowWillClose handler is - // idempotent. - - theScreen.mu.Lock() - delete(theScreen.windows, w.id) - theScreen.mu.Unlock() - - closeWindow(w.id) -} - -func (w *windowImpl) Upload(dp image.Point, src screen.Image, sr image.Rectangle) { - originalSRMin := sr.Min - sr = sr.Intersect(src.Bounds()) - if sr.Empty() { - return - } - dp = dp.Add(sr.Min.Sub(originalSRMin)) - // TODO: keep a texture around for this purpose? - t, err := w.s.NewTexture(sr.Size()) - if err != nil { - panic(err) - } - t.Upload(image.Point{}, src, sr) - w.Draw(f64.Aff3{ - 1, 0, float64(dp.X), - 0, 1, float64(dp.Y), - }, t, t.Bounds(), draw.Src) - t.Release() -} - -func useOp(glctx gl.Context, op draw.Op) { - if op == draw.Over { - glctx.Enable(gl.BLEND) - glctx.BlendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA) - } else { - glctx.Disable(gl.BLEND) - } -} - -func (w *windowImpl) bindBackBuffer() { - w.szMu.Lock() - sz := w.sz - w.szMu.Unlock() - - w.backBufferBound = true - w.glctx.BindFramebuffer(gl.FRAMEBUFFER, gl.Framebuffer{Value: 0}) - w.glctx.Viewport(0, 0, sz.WidthPx, sz.HeightPx) -} - -func (w *windowImpl) fill(mvp f64.Aff3, src color.Color, op draw.Op) { - w.glctxMu.Lock() - defer w.glctxMu.Unlock() - - if !w.backBufferBound { - w.bindBackBuffer() - } - - doFill(w.s, w.glctx, mvp, src, op) -} - -func doFill(s *screenImpl, glctx gl.Context, mvp f64.Aff3, src color.Color, op draw.Op) { - useOp(glctx, op) - if !glctx.IsProgram(s.fill.program) { - p, err := compileProgram(glctx, fillVertexSrc, fillFragmentSrc) - if err != nil { - // TODO: initialize this somewhere else we can better handle the error. - panic(err.Error()) - } - s.fill.program = p - s.fill.pos = glctx.GetAttribLocation(p, "pos") - s.fill.mvp = glctx.GetUniformLocation(p, "mvp") - s.fill.color = glctx.GetUniformLocation(p, "color") - s.fill.quad = glctx.CreateBuffer() - - glctx.BindBuffer(gl.ARRAY_BUFFER, s.fill.quad) - glctx.BufferData(gl.ARRAY_BUFFER, quadCoords, gl.STATIC_DRAW) - } - glctx.UseProgram(s.fill.program) - - writeAff3(glctx, s.fill.mvp, mvp) - - r, g, b, a := src.RGBA() - glctx.Uniform4f( - s.fill.color, - float32(r)/65535, - float32(g)/65535, - float32(b)/65535, - float32(a)/65535, - ) - - glctx.BindBuffer(gl.ARRAY_BUFFER, s.fill.quad) - glctx.EnableVertexAttribArray(s.fill.pos) - glctx.VertexAttribPointer(s.fill.pos, 2, gl.FLOAT, false, 0, 0) - - glctx.DrawArrays(gl.TRIANGLE_STRIP, 0, 4) - - glctx.DisableVertexAttribArray(s.fill.pos) -} - -func (w *windowImpl) Fill(dr image.Rectangle, src color.Color, op draw.Op) { - minX := float64(dr.Min.X) - minY := float64(dr.Min.Y) - maxX := float64(dr.Max.X) - maxY := float64(dr.Max.Y) - w.fill(w.mvp( - minX, minY, - maxX, minY, - minX, maxY, - ), src, op) -} - -func (w *windowImpl) DrawUniform(src2dst f64.Aff3, src color.Color, sr image.Rectangle, op draw.Op) { - minX := float64(sr.Min.X) - minY := float64(sr.Min.Y) - maxX := float64(sr.Max.X) - maxY := float64(sr.Max.Y) - w.fill(w.mvp( - src2dst[0]*minX+src2dst[1]*minY+src2dst[2], - src2dst[3]*minX+src2dst[4]*minY+src2dst[5], - src2dst[0]*maxX+src2dst[1]*minY+src2dst[2], - src2dst[3]*maxX+src2dst[4]*minY+src2dst[5], - src2dst[0]*minX+src2dst[1]*maxY+src2dst[2], - src2dst[3]*minX+src2dst[4]*maxY+src2dst[5], - ), src, op) -} - -func (w *windowImpl) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectangle, op draw.Op) { - t := src.(*textureImpl) - sr = sr.Intersect(t.Bounds()) - if sr.Empty() { - return - } - - w.glctxMu.Lock() - defer w.glctxMu.Unlock() - - if !w.backBufferBound { - w.bindBackBuffer() - } - - useOp(w.glctx, op) - w.glctx.UseProgram(w.s.texture.program) - - // Start with src-space left, top, right and bottom. - srcL := float64(sr.Min.X) - srcT := float64(sr.Min.Y) - srcR := float64(sr.Max.X) - srcB := float64(sr.Max.Y) - // Transform to dst-space via the src2dst matrix, then to a MVP matrix. - writeAff3(w.glctx, w.s.texture.mvp, w.mvp( - src2dst[0]*srcL+src2dst[1]*srcT+src2dst[2], - src2dst[3]*srcL+src2dst[4]*srcT+src2dst[5], - src2dst[0]*srcR+src2dst[1]*srcT+src2dst[2], - src2dst[3]*srcR+src2dst[4]*srcT+src2dst[5], - src2dst[0]*srcL+src2dst[1]*srcB+src2dst[2], - src2dst[3]*srcL+src2dst[4]*srcB+src2dst[5], - )) - - // OpenGL's fragment shaders' UV coordinates run from (0,0)-(1,1), - // unlike vertex shaders' XY coordinates running from (-1,+1)-(+1,-1). - // - // We are drawing a rectangle PQRS, defined by two of its - // corners, onto the entire texture. The two quads may actually - // be equal, but in the general case, PQRS can be smaller. - // - // (0,0) +---------------+ (1,0) - // | P +-----+ Q | - // | | | | - // | S +-----+ R | - // (0,1) +---------------+ (1,1) - // - // The PQRS quad is always axis-aligned. First of all, convert - // from pixel space to texture space. - tw := float64(t.size.X) - th := float64(t.size.Y) - px := float64(sr.Min.X-0) / tw - py := float64(sr.Min.Y-0) / th - qx := float64(sr.Max.X-0) / tw - sy := float64(sr.Max.Y-0) / th - // Due to axis alignment, qy = py and sx = px. - // - // The simultaneous equations are: - // 0 + 0 + a02 = px - // 0 + 0 + a12 = py - // a00 + 0 + a02 = qx - // a10 + 0 + a12 = qy = py - // 0 + a01 + a02 = sx = px - // 0 + a11 + a12 = sy - writeAff3(w.glctx, w.s.texture.uvp, f64.Aff3{ - qx - px, 0, px, - 0, sy - py, py, - }) - - w.glctx.ActiveTexture(gl.TEXTURE0) - w.glctx.BindTexture(gl.TEXTURE_2D, t.id) - w.glctx.Uniform1i(w.s.texture.sample, 0) - - w.glctx.BindBuffer(gl.ARRAY_BUFFER, w.s.texture.quad) - w.glctx.EnableVertexAttribArray(w.s.texture.pos) - w.glctx.VertexAttribPointer(w.s.texture.pos, 2, gl.FLOAT, false, 0, 0) - - w.glctx.BindBuffer(gl.ARRAY_BUFFER, w.s.texture.quad) - w.glctx.EnableVertexAttribArray(w.s.texture.inUV) - w.glctx.VertexAttribPointer(w.s.texture.inUV, 2, gl.FLOAT, false, 0, 0) - - w.glctx.DrawArrays(gl.TRIANGLE_STRIP, 0, 4) - - w.glctx.DisableVertexAttribArray(w.s.texture.pos) - w.glctx.DisableVertexAttribArray(w.s.texture.inUV) -} - -func (w *windowImpl) Copy(dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) { - drawer.Copy(w, dp, src, sr, op) -} - -func (w *windowImpl) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) { - drawer.Scale(w, dr, src, sr, op) -} - -func (w *windowImpl) mvp(tlx, tly, trx, try, blx, bly float64) f64.Aff3 { - w.szMu.Lock() - sz := w.sz - w.szMu.Unlock() - - return calcMVP(sz.WidthPx, sz.HeightPx, tlx, tly, trx, try, blx, bly) -} - -// calcMVP returns the Model View Projection matrix that maps the quadCoords -// unit square, (0, 0) to (1, 1), to a quad QV, such that QV in vertex shader -// space corresponds to the quad QP in pixel space, where QP is defined by -// three of its four corners - the arguments to this function. The three -// corners are nominally the top-left, top-right and bottom-left, but there is -// no constraint that e.g. tlx < trx. -// -// In pixel space, the window ranges from (0, 0) to (widthPx, heightPx). The -// Y-axis points downwards. -// -// In vertex shader space, the window ranges from (-1, +1) to (+1, -1), which -// is a 2-unit by 2-unit square. The Y-axis points upwards. -func calcMVP(widthPx, heightPx int, tlx, tly, trx, try, blx, bly float64) f64.Aff3 { - // Convert from pixel coords to vertex shader coords. - invHalfWidth := +2 / float64(widthPx) - invHalfHeight := -2 / float64(heightPx) - tlx = tlx*invHalfWidth - 1 - tly = tly*invHalfHeight + 1 - trx = trx*invHalfWidth - 1 - try = try*invHalfHeight + 1 - blx = blx*invHalfWidth - 1 - bly = bly*invHalfHeight + 1 - - // The resultant affine matrix: - // - maps (0, 0) to (tlx, tly). - // - maps (1, 0) to (trx, try). - // - maps (0, 1) to (blx, bly). - return f64.Aff3{ - trx - tlx, blx - tlx, tlx, - try - tly, bly - tly, tly, - } -} - -func (w *windowImpl) Publish() screen.PublishResult { - // gl.Flush is a lightweight (on modern GL drivers) blocking call - // that ensures all GL functions pending in the gl package have - // been passed onto the GL driver before the app package attempts - // to swap the screen buffer. - // - // This enforces that the final receive (for this paint cycle) on - // gl.WorkAvailable happens before the send on publish. - w.glctxMu.Lock() - w.glctx.Flush() - w.glctxMu.Unlock() - - w.publish <- struct{}{} - res := <-w.publishDone - - select { - case w.drawDone <- struct{}{}: - default: - } - - return res -} - -func (w *windowImpl) MoveWindow(x, y, width, height int32) error { - return moveWindow(w, screen.WindowGenerator{ - X: x, - Y: y, - Width: int(width), - Height: int(height), - }) -} diff --git a/shiny/driver/gldriver/x11.c b/shiny/driver/gldriver/x11.c deleted file mode 100644 index 4edd6640..00000000 --- a/shiny/driver/gldriver/x11.c +++ /dev/null @@ -1,337 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build linux,!android openbsd - -#include "_cgo_export.h" -#include -#include -#include -#include - -Atom net_wm_name; -Atom utf8_string; -Atom wm_delete_window; -Atom wm_protocols; -Atom wm_take_focus; - -EGLConfig e_config; -EGLContext e_ctx; -EGLDisplay e_dpy; -Colormap x_colormap; -Display *x_dpy; -XVisualInfo *x_visual_info; -Window x_root; - -// TODO: share code with eglErrString -char * -eglGetErrorStr() { - switch (eglGetError()) { - case EGL_SUCCESS: - return "EGL_SUCCESS"; - case EGL_NOT_INITIALIZED: - return "EGL_NOT_INITIALIZED"; - case EGL_BAD_ACCESS: - return "EGL_BAD_ACCESS"; - case EGL_BAD_ALLOC: - return "EGL_BAD_ALLOC"; - case EGL_BAD_ATTRIBUTE: - return "EGL_BAD_ATTRIBUTE"; - case EGL_BAD_CONFIG: - return "EGL_BAD_CONFIG"; - case EGL_BAD_CONTEXT: - return "EGL_BAD_CONTEXT"; - case EGL_BAD_CURRENT_SURFACE: - return "EGL_BAD_CURRENT_SURFACE"; - case EGL_BAD_DISPLAY: - return "EGL_BAD_DISPLAY"; - case EGL_BAD_MATCH: - return "EGL_BAD_MATCH"; - case EGL_BAD_NATIVE_PIXMAP: - return "EGL_BAD_NATIVE_PIXMAP"; - case EGL_BAD_NATIVE_WINDOW: - return "EGL_BAD_NATIVE_WINDOW"; - case EGL_BAD_PARAMETER: - return "EGL_BAD_PARAMETER"; - case EGL_BAD_SURFACE: - return "EGL_BAD_SURFACE"; - case EGL_CONTEXT_LOST: - return "EGL_CONTEXT_LOST"; - } - return "unknown EGL error"; -} - -void -startDriver() { - x_dpy = XOpenDisplay(NULL); - if (!x_dpy) { - fprintf(stderr, "XOpenDisplay failed\n"); - exit(1); - } - e_dpy = eglGetDisplay(x_dpy); - if (!e_dpy) { - fprintf(stderr, "eglGetDisplay failed: %s\n", eglGetErrorStr()); - exit(1); - } - EGLint e_major, e_minor; - if (!eglInitialize(e_dpy, &e_major, &e_minor)) { - fprintf(stderr, "eglInitialize failed: %s\n", eglGetErrorStr()); - exit(1); - } - if (!eglBindAPI(EGL_OPENGL_ES_API)) { - fprintf(stderr, "eglBindAPI failed: %s\n", eglGetErrorStr()); - exit(1); - } - - static const EGLint attribs[] = { - EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, - EGL_SURFACE_TYPE, EGL_WINDOW_BIT, - EGL_BLUE_SIZE, 8, - EGL_GREEN_SIZE, 8, - EGL_RED_SIZE, 8, - EGL_DEPTH_SIZE, 16, - EGL_CONFIG_CAVEAT, EGL_NONE, - EGL_NONE - }; - EGLint num_configs; - if (!eglChooseConfig(e_dpy, attribs, &e_config, 1, &num_configs)) { - fprintf(stderr, "eglChooseConfig failed: %s\n", eglGetErrorStr()); - exit(1); - } - EGLint vid; - if (!eglGetConfigAttrib(e_dpy, e_config, EGL_NATIVE_VISUAL_ID, &vid)) { - fprintf(stderr, "eglGetConfigAttrib failed: %s\n", eglGetErrorStr()); - exit(1); - } - - XVisualInfo visTemplate; - visTemplate.visualid = vid; - int num_visuals; - x_visual_info = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); - if (!x_visual_info) { - fprintf(stderr, "XGetVisualInfo failed\n"); - exit(1); - } - - x_root = RootWindow(x_dpy, DefaultScreen(x_dpy)); - x_colormap = XCreateColormap(x_dpy, x_root, x_visual_info->visual, AllocNone); - if (!x_colormap) { - fprintf(stderr, "XCreateColormap failed\n"); - exit(1); - } - - static const EGLint ctx_attribs[] = { - EGL_CONTEXT_CLIENT_VERSION, 3, - EGL_NONE - }; - e_ctx = eglCreateContext(e_dpy, e_config, EGL_NO_CONTEXT, ctx_attribs); - if (!e_ctx) { - fprintf(stderr, "eglCreateContext failed: %s\n", eglGetErrorStr()); - exit(1); - } - - net_wm_name = XInternAtom(x_dpy, "_NET_WM_NAME", False); - utf8_string = XInternAtom(x_dpy, "UTF8_STRING", False); - wm_delete_window = XInternAtom(x_dpy, "WM_DELETE_WINDOW", False); - wm_protocols = XInternAtom(x_dpy, "WM_PROTOCOLS", False); - wm_take_focus = XInternAtom(x_dpy, "WM_TAKE_FOCUS", False); - - const int key_lo = 8; - const int key_hi = 255; - int keysyms_per_keycode; - KeySym *keysyms = XGetKeyboardMapping(x_dpy, key_lo, key_hi-key_lo+1, &keysyms_per_keycode); - if (keysyms_per_keycode < 2) { - fprintf(stderr, "XGetKeyboardMapping returned too few keysyms per keycode: %d\n", keysyms_per_keycode); - exit(1); - } - int k; - for (k = key_lo; k <= key_hi; k++) { - onKeysym(k, - keysyms[(k-key_lo)*keysyms_per_keycode + 0], - keysyms[(k-key_lo)*keysyms_per_keycode + 1]); - } - //TODO: use GetModifierMapping to figure out which modifier is the numlock modifier. -} - -void -processEvents() { - while (XPending(x_dpy)) { - XEvent ev; - XNextEvent(x_dpy, &ev); - switch (ev.type) { - case KeyPress: - case KeyRelease: - onKey(ev.xkey.window, ev.xkey.state, ev.xkey.keycode, ev.type == KeyPress ? 1 : 2); - break; - case ButtonPress: - case ButtonRelease: - onMouse(ev.xbutton.window, ev.xbutton.x, ev.xbutton.y, ev.xbutton.state, ev.xbutton.button, - ev.type == ButtonPress ? 1 : 2); - break; - case MotionNotify: - onMouse(ev.xmotion.window, ev.xmotion.x, ev.xmotion.y, ev.xmotion.state, 0, 0); - break; - case FocusIn: - case FocusOut: - onFocus(ev.xmotion.window, ev.type == FocusIn); - break; - case Expose: - // A non-zero Count means that there are more expose events coming. For - // example, a non-rectangular exposure (e.g. from a partially overlapped - // window) will result in multiple expose events whose dirty rectangles - // combine to define the dirty region. Go's paint events do not provide - // dirty regions, so we only pass on the final X11 expose event. - if (ev.xexpose.count == 0) { - onExpose(ev.xexpose.window); - } - break; - case ConfigureNotify: - onConfigure(ev.xconfigure.window, ev.xconfigure.x, ev.xconfigure.y, - ev.xconfigure.width, ev.xconfigure.height, - DisplayWidth(x_dpy, DefaultScreen(x_dpy)), - DisplayWidthMM(x_dpy, DefaultScreen(x_dpy))); - break; - case ClientMessage: - if ((ev.xclient.message_type != wm_protocols) || (ev.xclient.format != 32)) { - break; - } - Atom a = ev.xclient.data.l[0]; - if (a == wm_delete_window) { - onDeleteWindow(ev.xclient.window); - } else if (a == wm_take_focus) { - XSetInputFocus(x_dpy, ev.xclient.window, RevertToParent, ev.xclient.data.l[1]); - } - break; - } - } -} - -void -makeCurrent(uintptr_t surface) { - EGLSurface surf = (EGLSurface)(surface); - if (!eglMakeCurrent(e_dpy, surf, surf, e_ctx)) { - fprintf(stderr, "eglMakeCurrent failed: %s\n", eglGetErrorStr()); - exit(1); - } -} - -void -swapBuffers(uintptr_t surface) { - EGLSurface surf = (EGLSurface)(surface); - if (!eglSwapBuffers(e_dpy, surf)) { - fprintf(stderr, "eglSwapBuffers failed: %s\n", eglGetErrorStr()); - exit(1); - } -} - -void -doCloseWindow(uintptr_t id) { - Window win = (Window)(id); - XDestroyWindow(x_dpy, win); -} - -uintptr_t -doNewWindow(int x, int y, int width, int height, char* title, int title_len) { - XSetWindowAttributes attr; - attr.colormap = x_colormap; - attr.event_mask = - KeyPressMask | - KeyReleaseMask | - ButtonPressMask | - ButtonReleaseMask | - PointerMotionMask | - ExposureMask | - StructureNotifyMask | - FocusChangeMask; - - Window win = XCreateWindow( - x_dpy, x_root, x, y, width, height, 0, x_visual_info->depth, InputOutput, - x_visual_info->visual, CWColormap | CWEventMask, &attr); - - XSizeHints sizehints; - sizehints.width = width; - sizehints.height = height; - sizehints.flags = USSize; - XSetNormalHints(x_dpy, win, &sizehints); - - Atom atoms[2]; - atoms[0] = wm_delete_window; - atoms[1] = wm_take_focus; - XSetWMProtocols(x_dpy, win, atoms, 2); - - XSetStandardProperties(x_dpy, win, "", "App", None, (char **)NULL, 0, &sizehints); - XChangeProperty(x_dpy, win, net_wm_name, utf8_string, 8, PropModeReplace, title, title_len); - - return win; -} - -void -doConfigureWindow(uintptr_t id, int x, int y, int width, int height) { - Window win = (Window)(id); - unsigned int mask = CWX | CWY | CWWidth | CWHeight; - XWindowChanges values = {x,y,width,height,0,0,0}; - - XConfigureWindow(x_dpy, win, mask, &values); -} - -uintptr_t -doShowWindow(uintptr_t id) { - Window win = (Window)(id); - XMapWindow(x_dpy, win); - EGLSurface surf = eglCreateWindowSurface(e_dpy, e_config, win, NULL); - if (!surf) { - fprintf(stderr, "eglCreateWindowSurface failed: %s\n", eglGetErrorStr()); - exit(1); - } - return (uintptr_t)(surf); -} - -uintptr_t -surfaceCreate() { - static const EGLint ctx_attribs[] = { - EGL_CONTEXT_CLIENT_VERSION, 3, - EGL_NONE - }; - EGLContext ctx = eglCreateContext(e_dpy, e_config, EGL_NO_CONTEXT, ctx_attribs); - if (!ctx) { - fprintf(stderr, "surface eglCreateContext failed: %s\n", eglGetErrorStr()); - return 0; - } - - static const EGLint cfg_attribs[] = { - EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, - EGL_SURFACE_TYPE, EGL_PBUFFER_BIT, - EGL_BLUE_SIZE, 8, - EGL_GREEN_SIZE, 8, - EGL_RED_SIZE, 8, - EGL_DEPTH_SIZE, 16, - EGL_CONFIG_CAVEAT, EGL_NONE, - EGL_NONE - }; - EGLConfig cfg; - EGLint num_configs; - if (!eglChooseConfig(e_dpy, cfg_attribs, &cfg, 1, &num_configs)) { - fprintf(stderr, "gldriver: surface eglChooseConfig failed: %s\n", eglGetErrorStr()); - return 0; - } - - // TODO: use the size of the monitor as a bound for texture size. - static const EGLint attribs[] = { - EGL_WIDTH, 4096, - EGL_HEIGHT, 3072, - EGL_NONE - }; - EGLSurface surface = eglCreatePbufferSurface(e_dpy, cfg, attribs); - if (!surface) { - fprintf(stderr, "gldriver: surface eglCreatePbufferSurface failed: %s\n", eglGetErrorStr()); - return 0; - } - - if (!eglMakeCurrent(e_dpy, surface, surface, ctx)) { - fprintf(stderr, "gldriver: surface eglMakeCurrent failed: %s\n", eglGetErrorStr()); - return 0; - } - - return (uintptr_t)surface; -} diff --git a/shiny/driver/gldriver/x11.go b/shiny/driver/gldriver/x11.go deleted file mode 100644 index 23e6cc81..00000000 --- a/shiny/driver/gldriver/x11.go +++ /dev/null @@ -1,322 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build linux,!android openbsd - -package gldriver - -/* -#cgo LDFLAGS: -lEGL -lGLESv2 -lX11 - -#include -#include -#include - -char *eglGetErrorStr(); -void startDriver(); -void processEvents(); -void makeCurrent(uintptr_t ctx); -void swapBuffers(uintptr_t ctx); -void doCloseWindow(uintptr_t id); -void doConfigureWindow(uintptr_t id, int x, int y, int width, int height); -uintptr_t doNewWindow(int x, int y, int width, int height, char* title, int title_len); -uintptr_t doShowWindow(uintptr_t id); -uintptr_t surfaceCreate(); -*/ -import "C" -import ( - "errors" - "runtime" - "time" - "unsafe" - - "github.com/oakmound/oak/v3/shiny/driver/internal/x11key" - "github.com/oakmound/oak/v3/shiny/screen" - "golang.org/x/mobile/event/key" - "golang.org/x/mobile/event/mouse" - "golang.org/x/mobile/event/paint" - "golang.org/x/mobile/event/size" - "golang.org/x/mobile/geom" - "golang.org/x/mobile/gl" -) - -const useLifecycler = true - -const handleSizeEventsAtChannelReceive = true - -var theKeysyms x11key.KeysymTable - -func init() { - // It might not be necessary, but it probably doesn't hurt to try to make - // 'the main thread' be 'the X11 / OpenGL thread'. - runtime.LockOSThread() -} - -func newWindow(opts screen.WindowGenerator) (uintptr, error) { - width, height := optsSize(opts) - - title := opts.Title - ctitle := C.CString(title) - defer C.free(unsafe.Pointer(ctitle)) - - retc := make(chan uintptr) - uic <- uiClosure{ - f: func() uintptr { - return uintptr(C.doNewWindow(C.int(opts.X), C.int(opts.Y), C.int(width), C.int(height), ctitle, C.int(len(title)))) - }, - retc: retc, - } - return <-retc, nil -} - -func moveWindow(w *windowImpl, opts screen.WindowGenerator) error { - width, height := optsSize(opts) - C.doConfigureWindow(C.uintptr_t(w.id), C.int(opts.X), C.int(opts.Y), C.int(width), C.int(height)) - return nil -} - -func initWindow(w *windowImpl) { - w.glctx, w.worker = glctx, worker -} - -func showWindow(w *windowImpl) { - retc := make(chan uintptr) - uic <- uiClosure{ - f: func() uintptr { - return uintptr(C.doShowWindow(C.uintptr_t(w.id))) - }, - retc: retc, - } - w.ctx = <-retc - go drawLoop(w) -} - -func closeWindow(id uintptr) { - uic <- uiClosure{ - f: func() uintptr { - C.doCloseWindow(C.uintptr_t(id)) - return 0 - }, - } -} - -func drawLoop(w *windowImpl) { - glcontextc <- w.ctx.(uintptr) - go func() { - for range w.publish { - publishc <- w - } - }() -} - -var ( - glcontextc = make(chan uintptr) - publishc = make(chan *windowImpl) - uic = make(chan uiClosure) - - // TODO: don't assume that there is only one window, and hence only - // one (global) GL context. - // - // TODO: should we be able to make a shiny.Texture before having a - // shiny.Window's GL context? Should something like gl.IsProgram be a - // method instead of a function, and have each shiny.Window have its own - // gl.Context? - glctx gl.Context - worker gl.Worker -) - -// uiClosure is a closure to be run on C's UI thread. -type uiClosure struct { - f func() uintptr - retc chan uintptr -} - -func main(f func(screen.Screen)) error { - if gl.Version() == "GL_ES_2_0" { - return errors.New("gldriver: ES 3 required on X11") - } - C.startDriver() - glctx, worker = gl.NewContext() - - closec := make(chan struct{}) - go func() { - f(theScreen) - close(closec) - }() - - // heartbeat is a channel that, at regular intervals, directs the select - // below to also consider X11 events, not just Go events (channel - // communications). - // - // TODO: select instead of poll. Note that knowing whether to call - // C.processEvents needs to select on a file descriptor, and the other - // cases below select on Go channels. - heartbeat := time.NewTicker(time.Second / 60) - workAvailable := worker.WorkAvailable() - - for { - select { - case <-closec: - return nil - case ctx := <-glcontextc: - // TODO: do we need to synchronize with seeing a size event for - // this window's context before or after calling makeCurrent? - // Otherwise, are we racing with the gl.Viewport call? I've - // occasionally seen a stale viewport, if the window manager sets - // the window width and height to something other than that - // requested by XCreateWindow, but it's not easily reproducible. - C.makeCurrent(C.uintptr_t(ctx)) - case w := <-publishc: - C.swapBuffers(C.uintptr_t(w.ctx.(uintptr))) - w.publishDone <- screen.PublishResult{} - case req := <-uic: - ret := req.f() - if req.retc != nil { - req.retc <- ret - } - case <-heartbeat.C: - C.processEvents() - case <-workAvailable: - worker.DoWork() - } - } -} - -//export onExpose -func onExpose(id uintptr) { - theScreen.mu.Lock() - w := theScreen.windows[id] - theScreen.mu.Unlock() - - if w == nil { - return - } - - w.Send(paint.Event{External: true}) -} - -//export onKeysym -func onKeysym(k, unshifted, shifted uint32) { - theKeysyms[k][0] = unshifted - theKeysyms[k][1] = shifted -} - -//export onKey -func onKey(id uintptr, state uint16, detail, dir uint8) { - theScreen.mu.Lock() - w := theScreen.windows[id] - theScreen.mu.Unlock() - - if w == nil { - return - } - - r, c := theKeysyms.Lookup(detail, state, 0) - w.Send(key.Event{ - Rune: r, - Code: c, - Modifiers: x11key.KeyModifiers(state), - Direction: key.Direction(dir), - }) -} - -//export onMouse -func onMouse(id uintptr, x, y int32, state uint16, button, dir uint8) { - theScreen.mu.Lock() - w := theScreen.windows[id] - theScreen.mu.Unlock() - - if w == nil { - return - } - - // TODO: should a mouse.Event have a separate MouseModifiers field, for - // which buttons are pressed during a mouse move? - btn := mouse.Button(button) - switch btn { - case 4: - btn = mouse.ButtonWheelUp - case 5: - btn = mouse.ButtonWheelDown - case 6: - btn = mouse.ButtonWheelLeft - case 7: - btn = mouse.ButtonWheelRight - } - if btn.IsWheel() { - if dir != uint8(mouse.DirPress) { - return - } - dir = uint8(mouse.DirStep) - } - w.Send(mouse.Event{ - X: float32(x), - Y: float32(y), - Button: btn, - Modifiers: x11key.KeyModifiers(state), - Direction: mouse.Direction(dir), - }) -} - -//export onFocus -func onFocus(id uintptr, focused bool) { - theScreen.mu.Lock() - w := theScreen.windows[id] - theScreen.mu.Unlock() - - if w == nil { - return - } - - w.lifecycler.SetFocused(focused) - w.lifecycler.SendEvent(w, w.glctx) -} - -//export onConfigure -func onConfigure(id uintptr, x, y, width, height, displayWidth, displayWidthMM int32) { - theScreen.mu.Lock() - w := theScreen.windows[id] - theScreen.mu.Unlock() - - if w == nil { - return - } - - w.lifecycler.SetVisible(x+width > 0 && y+height > 0) - w.lifecycler.SendEvent(w, w.glctx) - - const ( - mmPerInch = 25.4 - ptPerInch = 72 - ) - pixelsPerMM := float32(displayWidth) / float32(displayWidthMM) - w.Send(size.Event{ - WidthPx: int(width), - HeightPx: int(height), - WidthPt: geom.Pt(width), - HeightPt: geom.Pt(height), - PixelsPerPt: pixelsPerMM * mmPerInch / ptPerInch, - }) -} - -//export onDeleteWindow -func onDeleteWindow(id uintptr) { - theScreen.mu.Lock() - w := theScreen.windows[id] - theScreen.mu.Unlock() - - if w == nil { - return - } - - w.lifecycler.SetDead(true) - w.lifecycler.SendEvent(w, w.glctx) -} - -func surfaceCreate() error { - if C.surfaceCreate() == 0 { - return errors.New("gldriver: surface creation failed") - } - return nil -} diff --git a/shiny/driver/internal/drawer/drawer.go b/shiny/driver/internal/drawer/drawer.go index e981eb3f..c9bd4d21 100644 --- a/shiny/driver/internal/drawer/drawer.go +++ b/shiny/driver/internal/drawer/drawer.go @@ -15,7 +15,7 @@ import ( // Copy implements the Copy method of the screen.Drawer interface by calling // the Draw method of that same interface. -func Copy(dst screen.Drawer, dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) { +func Copy(dst screen.SimpleDrawer, dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) { dst.Draw(f64.Aff3{ 1, 0, float64(dp.X - sr.Min.X), 0, 1, float64(dp.Y - sr.Min.Y), @@ -24,7 +24,7 @@ func Copy(dst screen.Drawer, dp image.Point, src screen.Texture, sr image.Rectan // Scale implements the Scale method of the screen.Drawer interface by calling // the Draw method of that same interface. -func Scale(dst screen.Drawer, dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) { +func Scale(dst screen.SimpleDrawer, dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) { rx := float64(dr.Dx()) / float64(sr.Dx()) ry := float64(dr.Dy()) / float64(sr.Dy()) dst.Draw(f64.Aff3{ diff --git a/shiny/driver/jsdriver/window.go b/shiny/driver/jsdriver/window.go index c0e0d891..4b892172 100644 --- a/shiny/driver/jsdriver/window.go +++ b/shiny/driver/jsdriver/window.go @@ -5,13 +5,11 @@ package jsdriver import ( "image" - "image/color" "image/draw" "syscall/js" "github.com/oakmound/oak/v3/shiny/driver/internal/event" "github.com/oakmound/oak/v3/shiny/screen" - "golang.org/x/image/math/f64" "golang.org/x/mobile/event/key" "golang.org/x/mobile/event/mouse" ) @@ -22,10 +20,7 @@ type Window struct { event.Deque } -func (w *Window) Release() {} -func (w *Window) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectangle, op draw.Op) {} -func (w *Window) DrawUniform(src2dst f64.Aff3, src color.Color, sr image.Rectangle, op draw.Op) {} -func (w *Window) Copy(dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) {} +func (w *Window) Release() {} func (w *Window) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) { rgba := src.(*textureImpl).rgba js.CopyBytesToJS(w.cvs.copybuff, rgba.Pix) @@ -33,7 +28,6 @@ func (w *Window) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangl w.cvs.ctx.Call("putImageData", w.cvs.imgData, 0, 0) } func (w *Window) Upload(dp image.Point, src screen.Image, sr image.Rectangle) {} -func (w *Window) Fill(dr image.Rectangle, src color.Color, op draw.Op) {} func (w *Window) Publish() screen.PublishResult { return screen.PublishResult{} diff --git a/shiny/driver/mtldriver/window_amd64.go b/shiny/driver/mtldriver/window_amd64.go index ef13782a..ba06d764 100644 --- a/shiny/driver/mtldriver/window_amd64.go +++ b/shiny/driver/mtldriver/window_amd64.go @@ -5,7 +5,6 @@ package mtldriver import ( "image" - "image/color" "github.com/oakmound/oak/v3/shiny/driver/internal/drawer" "github.com/oakmound/oak/v3/shiny/screen" @@ -17,22 +16,10 @@ func (w *Window) Upload(dp image.Point, src screen.Image, sr image.Rectangle) { draw.Draw(w.bgra, sr.Sub(sr.Min).Add(dp), src.RGBA(), sr.Min, draw.Src) } -func (w *Window) Fill(dr image.Rectangle, src color.Color, op draw.Op) { - draw.Draw(w.bgra, dr, &image.Uniform{src}, image.Point{}, op) -} - func (w *Window) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectangle, op draw.Op) { draw.NearestNeighbor.Transform(w.bgra, src2dst, src.(*textureImpl).rgba, sr, op, nil) } -func (w *Window) DrawUniform(src2dst f64.Aff3, src color.Color, sr image.Rectangle, op draw.Op) { - draw.NearestNeighbor.Transform(w.bgra, src2dst, &image.Uniform{src}, sr, op, nil) -} - -func (w *Window) Copy(dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) { - drawer.Copy(w, dp, src, sr, op) -} - func (w *Window) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) { drawer.Scale(w, dr, src, sr, op) } diff --git a/shiny/driver/mtldriver/window_arm64.go b/shiny/driver/mtldriver/window_arm64.go index fa653391..cf64640f 100644 --- a/shiny/driver/mtldriver/window_arm64.go +++ b/shiny/driver/mtldriver/window_arm64.go @@ -5,7 +5,6 @@ package mtldriver import ( "image" - "image/color" "github.com/oakmound/oak/v3/shiny/driver/internal/drawer" "github.com/oakmound/oak/v3/shiny/screen" @@ -45,22 +44,10 @@ func (w *Window) Upload(dp image.Point, srcImg screen.Image, sr image.Rectangle) } } -func (w *Window) Fill(dr image.Rectangle, src color.Color, op draw.Op) { - // Unimplemented -} - func (w *Window) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectangle, op draw.Op) { nnInterpolator{}.Transform(w.bgra, src2dst, src.(*textureImpl).rgba, sr) } -func (w *Window) DrawUniform(src2dst f64.Aff3, src color.Color, sr image.Rectangle, op draw.Op) { - // Unimplemented -} - -func (w *Window) Copy(dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) { - drawer.Copy(w, dp, src, sr, draw.Over) -} - func (w *Window) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) { drawer.Scale(w, dr, src, sr, draw.Over) } diff --git a/shiny/driver/noop/noop.go b/shiny/driver/noop/noop.go index d11b04fa..fbd09111 100644 --- a/shiny/driver/noop/noop.go +++ b/shiny/driver/noop/noop.go @@ -8,7 +8,6 @@ import ( "github.com/oakmound/oak/v3/shiny/driver/internal/event" "github.com/oakmound/oak/v3/shiny/screen" - "golang.org/x/image/math/f64" ) func Main(f func(screen.Screen)) { @@ -73,13 +72,9 @@ type Window struct { event.Deque } -func (*Window) Release() {} -func (*Window) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectangle, op draw.Op) {} -func (*Window) DrawUniform(src2dst f64.Aff3, src color.Color, sr image.Rectangle, op draw.Op) {} -func (*Window) Copy(dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) {} -func (*Window) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) {} -func (*Window) Upload(dp image.Point, src screen.Image, sr image.Rectangle) {} -func (*Window) Fill(dr image.Rectangle, src color.Color, op draw.Op) {} +func (*Window) Release() {} +func (*Window) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) {} +func (*Window) Upload(dp image.Point, src screen.Image, sr image.Rectangle) {} func (*Window) Publish() screen.PublishResult { return screen.PublishResult{} diff --git a/shiny/driver/windriver/window.go b/shiny/driver/windriver/window.go index 19f2358b..dbedde13 100644 --- a/shiny/driver/windriver/window.go +++ b/shiny/driver/windriver/window.go @@ -91,15 +91,6 @@ func (w *Window) Upload(dp image.Point, src screen.Image, sr image.Rectangle) { }) } -func (w *Window) Fill(dr image.Rectangle, src color.Color, op draw.Op) { - w.execCmd(&cmd{ - id: cmdFill, - dr: dr, - color: src, - op: op, - }) -} - func (w *Window) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectangle, op draw.Op) { if op != draw.Src && op != draw.Over { // TODO: @@ -114,19 +105,6 @@ func (w *Window) Draw(src2dst f64.Aff3, src screen.Texture, sr image.Rectangle, }) } -func (w *Window) DrawUniform(src2dst f64.Aff3, src color.Color, sr image.Rectangle, op draw.Op) { - if op != draw.Src && op != draw.Over { - return - } - w.execCmd(&cmd{ - id: cmdDrawUniform, - src2dst: src2dst, - color: src, - sr: sr, - op: op, - }) -} - func (w *Window) SetTitle(title string) error { win32.SetWindowText(w.hwnd, title) return nil @@ -378,10 +356,6 @@ func drawWindow(dc win32.HDC, src2dst f64.Aff3, src interface{}, sr image.Rectan return fmt.Errorf("unsupported type %T", src) } -func (w *Window) Copy(dp image.Point, src screen.Texture, sr image.Rectangle, op draw.Op) { - drawer.Copy(w, dp, src, sr, op) -} - func (w *Window) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) { drawer.Scale(w, dr, src, sr, op) } diff --git a/shiny/screen/screen.go b/shiny/screen/screen.go index 248bc40f..4bc871bd 100644 --- a/shiny/screen/screen.go +++ b/shiny/screen/screen.go @@ -54,6 +54,9 @@ package screen import ( "image" + "image/draw" + + "golang.org/x/image/math/f64" ) // Screen creates Images, Textures and Windows. @@ -80,7 +83,29 @@ type Window interface { EventDeque - Drawer + // Scale scales the sub-Texture defined by src and sr to the destination + // (the method receiver), such that sr in src-space is mapped to dr in + // dst-space. + Scale(dr image.Rectangle, src Texture, sr image.Rectangle, op draw.Op) + + // Upload uploads the sub-Buffer defined by src and sr to the destination + // (the method receiver), such that sr.Min in src-space aligns with dp in + // dst-space. The destination's contents are overwritten; the draw operator + // is implicitly draw.Src. + // + // It is valid to upload a Buffer while another upload of the same Buffer + // is in progress, but a Buffer's image.RGBA pixel contents should not be + // accessed while it is uploading. A Buffer is re-usable, in that its pixel + // contents can be further modified, once all outstanding calls to Upload + // have returned. + // + // TODO: make it optional that a Buffer's contents is preserved after + // Upload? Undoing a swizzle is a non-trivial amount of work, and can be + // redundant if the next paint cycle starts by clearing the buffer. + // + // When uploading to a Window, there will not be any visible effect until + // Publish is called. + Upload(dp image.Point, src Image, sr image.Rectangle) // Publish flushes any pending Upload and Draw calls to the window, and // swaps the back buffer to the front. @@ -93,3 +118,16 @@ type PublishResult struct { // preserved. If false, the contents are undefined. BackBufferPreserved bool } + +type SimpleDrawer interface { + // Draw draws the sub-Texture defined by src and sr to the destination (the + // method receiver). src2dst defines how to transform src coordinates to + // dst coordinates. For example, if src2dst is the matrix + // + // m00 m01 m02 + // m10 m11 m12 + // + // then the src-space point (sx, sy) maps to the dst-space point + // (m00*sx + m01*sy + m02, m10*sx + m11*sy + m12). + Draw(src2dst f64.Aff3, src Texture, sr image.Rectangle, op draw.Op) +} From a4bafb1414924c67bd84590c11b3bb87bced1da1 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Mon, 4 Apr 2022 13:15:41 -0500 Subject: [PATCH 065/146] shiny/screen: drop PublishResult We do not use this and if we ever did, I do not know what we would do with the knowledge that a os level back buffer was preserved or not. --- shiny/driver/androiddriver/screen.go | 4 +--- shiny/driver/jsdriver/window.go | 4 +--- shiny/driver/mtldriver/window.go | 7 +++---- shiny/driver/noop/noop.go | 4 +--- shiny/driver/windriver/window.go | 5 +---- shiny/driver/x11driver/window.go | 4 +--- shiny/screen/screen.go | 9 +-------- 7 files changed, 9 insertions(+), 28 deletions(-) diff --git a/shiny/driver/androiddriver/screen.go b/shiny/driver/androiddriver/screen.go index 9b84291a..2e80dc5d 100644 --- a/shiny/driver/androiddriver/screen.go +++ b/shiny/driver/androiddriver/screen.go @@ -51,9 +51,7 @@ func (s *Screen) NewWindow(opts screen.WindowGenerator) (screen.Window, error) { return s, nil } -func (w *Screen) Publish() screen.PublishResult { - return screen.PublishResult{} -} +func (w *Screen) Publish() {} func (w *Screen) Release() {} func (w *Screen) Upload(dp image.Point, src screen.Image, sr image.Rectangle) {} diff --git a/shiny/driver/jsdriver/window.go b/shiny/driver/jsdriver/window.go index 4b892172..78389d8a 100644 --- a/shiny/driver/jsdriver/window.go +++ b/shiny/driver/jsdriver/window.go @@ -29,9 +29,7 @@ func (w *Window) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangl } func (w *Window) Upload(dp image.Point, src screen.Image, sr image.Rectangle) {} -func (w *Window) Publish() screen.PublishResult { - return screen.PublishResult{} -} +func (w *Window) Publish() {} func (w *Window) sendMouseEvent(mouseEvent js.Value, dir mouse.Direction) { x, y := mouseEvent.Get("offsetX"), mouseEvent.Get("offsetY") diff --git a/shiny/driver/mtldriver/window.go b/shiny/driver/mtldriver/window.go index 5aeeca81..11ecfc39 100644 --- a/shiny/driver/mtldriver/window.go +++ b/shiny/driver/mtldriver/window.go @@ -16,7 +16,6 @@ import ( "github.com/oakmound/oak/v3/shiny/driver/internal/event" "github.com/oakmound/oak/v3/shiny/driver/internal/lifecycler" "github.com/oakmound/oak/v3/shiny/driver/mtldriver/internal/coreanim" - "github.com/oakmound/oak/v3/shiny/screen" "golang.org/x/mobile/event/size" ) @@ -185,7 +184,7 @@ func (w *Window) NextEvent() interface{} { return e } -func (w *Window) Publish() screen.PublishResult { +func (w *Window) Publish() { // Copy w.rgba pixels into a texture. region := mtl.RegionMake2D(0, 0, w.texture.Width, w.texture.Height) bytesPerRow := 4 * w.texture.Width @@ -194,7 +193,7 @@ func (w *Window) Publish() screen.PublishResult { drawable, err := w.ml.NextDrawable() if err != nil { log.Println("Window.Publish: couldn't get the next drawable:", err) - return screen.PublishResult{} + return } cb := w.cq.MakeCommandBuffer() @@ -213,5 +212,5 @@ func (w *Window) Publish() screen.PublishResult { cb.PresentDrawable(drawable) cb.Commit() - return screen.PublishResult{} + return } diff --git a/shiny/driver/noop/noop.go b/shiny/driver/noop/noop.go index fbd09111..9f0f127a 100644 --- a/shiny/driver/noop/noop.go +++ b/shiny/driver/noop/noop.go @@ -76,6 +76,4 @@ func (*Window) Release() func (*Window) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangle, op draw.Op) {} func (*Window) Upload(dp image.Point, src screen.Image, sr image.Rectangle) {} -func (*Window) Publish() screen.PublishResult { - return screen.PublishResult{} -} +func (*Window) Publish() {} diff --git a/shiny/driver/windriver/window.go b/shiny/driver/windriver/window.go index dbedde13..8297d1fb 100644 --- a/shiny/driver/windriver/window.go +++ b/shiny/driver/windriver/window.go @@ -360,10 +360,7 @@ func (w *Window) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangl drawer.Scale(w, dr, src, sr, op) } -func (w *Window) Publish() screen.PublishResult { - // NOP - return screen.PublishResult{} -} +func (w *Window) Publish() {} func init() { send := func(hwnd win32.HWND, e interface{}) { diff --git a/shiny/driver/x11driver/window.go b/shiny/driver/x11driver/window.go index cd3f984a..cede7306 100644 --- a/shiny/driver/x11driver/window.go +++ b/shiny/driver/x11driver/window.go @@ -95,7 +95,7 @@ func (w *Window) Scale(dr image.Rectangle, src screen.Texture, sr image.Rectangl drawer.Scale(w, dr, src, sr, op) } -func (w *Window) Publish() screen.PublishResult { +func (w *Window) Publish() { // TODO: implement a back buffer, and copy or flip that here to the front // buffer. @@ -107,8 +107,6 @@ func (w *Window) Publish() screen.PublishResult { // client could easily end up sending work at a faster rate than the X11 // server can serve. w.s.xc.Sync() - - return screen.PublishResult{} } func (w *Window) SetFullScreen(fullscreen bool) error { diff --git a/shiny/screen/screen.go b/shiny/screen/screen.go index 4bc871bd..3eca3e4a 100644 --- a/shiny/screen/screen.go +++ b/shiny/screen/screen.go @@ -109,14 +109,7 @@ type Window interface { // Publish flushes any pending Upload and Draw calls to the window, and // swaps the back buffer to the front. - Publish() PublishResult -} - -// PublishResult is the result of an Window.Publish call. -type PublishResult struct { - // BackBufferPreserved is whether the contents of the back buffer was - // preserved. If false, the contents are undefined. - BackBufferPreserved bool + Publish() } type SimpleDrawer interface { From ad19967624e2cffcecaf647b26d914e3211604ab Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Tue, 5 Apr 2022 13:12:09 -0500 Subject: [PATCH 066/146] audio: combine audio and pcm libraries --- audio/audio.go | 133 -------- audio/audio_test.go | 69 ---- audio/doc.go | 2 - audio/{pcm => }/driver.go | 16 +- audio/driver_test.go | 16 + audio/ears.go | 67 ---- audio/error_test.go | 15 - audio/{cache.go => file_cache.go} | 21 +- audio/file_formats.go | 33 ++ audio/{load.go => file_load.go} | 81 ++--- audio/flac/flac.go | 46 --- audio/font/audio.go | 58 ---- audio/font/font.go | 45 --- audio/{font => format}/ceol/ceol.go | 0 .../{font => format}/ceol/testdata/test.ceol | 0 audio/{font => format}/dls/dls.go | 2 +- .../dls/testdata/SanbikiSCC.dls | Bin audio/format/flac/flac.go | 50 +++ audio/format/mp3/mp3.go | 26 ++ audio/{font => format}/riff/info.go | 0 audio/{font => format}/riff/riff.go | 0 audio/{pcm => format/wav}/testdata/test.wav | Bin audio/{ => format}/wav/wav.go | 65 +--- audio/{pcm => }/init_nix.go | 2 +- .../dsound}/dsound.go | 6 +- audio/klang/audio.go | 53 ---- audio/klang/audio_windows.go | 96 ------ audio/klang/encode_fallback.go | 51 --- audio/klang/encode_linux.go | 216 ------------- audio/klang/encode_windows.go | 76 ----- audio/klang/encoding.go | 53 ---- audio/klang/filter.go | 24 -- audio/klang/filter/data.go | 19 -- audio/klang/filter/encoding.go | 62 ---- audio/klang/filter/fourier.go | 94 ------ audio/klang/filter/guarantees.go | 16 - audio/klang/filter/loop.go | 34 -- audio/klang/filter/pan.go | 76 ----- audio/klang/filter/pitchshift.go | 297 ------------------ audio/klang/filter/resample.go | 23 -- audio/klang/filter/sampleRate.go | 27 -- audio/klang/filter/supports/supports.go | 39 --- audio/klang/filter/supports/unsupported.go | 20 -- audio/klang/filter/volume.go | 66 ---- audio/klang/format.go | 29 -- audio/klang/internal/manip/convert.go | 10 - audio/klang/internal/manip/math.go | 38 --- audio/klang/multi.go | 108 ------- audio/klang/skip_devices.go | 19 -- audio/load_test.go | 18 -- audio/mp3/mp3.go | 40 --- audio/{pcm => }/pcm.go | 6 +- audio/pcm/format.go | 26 -- audio/pcm/interface.go | 63 ++++ audio/pcm/writer.go | 20 -- audio/{pcm => }/pcm_test.go | 40 +-- audio/play.go | 28 -- audio/play_test.go | 38 --- audio/posFilter.go | 52 --- audio/posFilter_test.go | 60 ---- audio/{pcm => }/reader.go | 68 ++-- audio/sequence/sequence.go | 32 +- audio/synth/source.go | 11 +- audio/synth/waves.go | 276 ++++------------ audio/wav/testdata/test.wav | Bin 368684 -> 0 bytes audio/writer.go | 10 + .../writer_windows.go => writer_dsound.go} | 11 +- audio/{pcm => }/writer_other.go | 2 +- audio/{pcm => }/writer_pulse.go | 2 +- examples/piano/main.go | 52 ++- go.mod | 24 +- 71 files changed, 466 insertions(+), 2712 deletions(-) delete mode 100644 audio/audio.go delete mode 100644 audio/audio_test.go delete mode 100644 audio/doc.go rename audio/{pcm => }/driver.go (70%) create mode 100644 audio/driver_test.go delete mode 100644 audio/ears.go delete mode 100644 audio/error_test.go rename audio/{cache.go => file_cache.go} (59%) create mode 100644 audio/file_formats.go rename audio/{load.go => file_load.go} (56%) delete mode 100644 audio/flac/flac.go delete mode 100644 audio/font/audio.go delete mode 100644 audio/font/font.go rename audio/{font => format}/ceol/ceol.go (100%) rename audio/{font => format}/ceol/testdata/test.ceol (100%) rename audio/{font => format}/dls/dls.go (98%) rename audio/{font => format}/dls/testdata/SanbikiSCC.dls (100%) create mode 100644 audio/format/flac/flac.go create mode 100644 audio/format/mp3/mp3.go rename audio/{font => format}/riff/info.go (100%) rename audio/{font => format}/riff/riff.go (100%) rename audio/{pcm => format/wav}/testdata/test.wav (100%) rename audio/{ => format}/wav/wav.go (61%) rename audio/{pcm => }/init_nix.go (98%) rename audio/{wininternal => internal/dsound}/dsound.go (81%) delete mode 100644 audio/klang/audio.go delete mode 100644 audio/klang/audio_windows.go delete mode 100644 audio/klang/encode_fallback.go delete mode 100644 audio/klang/encode_linux.go delete mode 100644 audio/klang/encode_windows.go delete mode 100644 audio/klang/encoding.go delete mode 100644 audio/klang/filter.go delete mode 100644 audio/klang/filter/data.go delete mode 100644 audio/klang/filter/encoding.go delete mode 100644 audio/klang/filter/fourier.go delete mode 100644 audio/klang/filter/guarantees.go delete mode 100644 audio/klang/filter/loop.go delete mode 100644 audio/klang/filter/pan.go delete mode 100644 audio/klang/filter/pitchshift.go delete mode 100644 audio/klang/filter/resample.go delete mode 100644 audio/klang/filter/sampleRate.go delete mode 100644 audio/klang/filter/supports/supports.go delete mode 100644 audio/klang/filter/supports/unsupported.go delete mode 100644 audio/klang/filter/volume.go delete mode 100644 audio/klang/format.go delete mode 100644 audio/klang/internal/manip/convert.go delete mode 100644 audio/klang/internal/manip/math.go delete mode 100644 audio/klang/multi.go delete mode 100644 audio/klang/skip_devices.go delete mode 100644 audio/load_test.go delete mode 100644 audio/mp3/mp3.go rename audio/{pcm => }/pcm.go (96%) delete mode 100644 audio/pcm/format.go create mode 100644 audio/pcm/interface.go delete mode 100644 audio/pcm/writer.go rename audio/{pcm => }/pcm_test.go (76%) delete mode 100644 audio/play.go delete mode 100644 audio/play_test.go delete mode 100644 audio/posFilter.go delete mode 100644 audio/posFilter_test.go rename audio/{pcm => }/reader.go (65%) delete mode 100644 audio/wav/testdata/test.wav create mode 100644 audio/writer.go rename audio/{pcm/writer_windows.go => writer_dsound.go} (95%) rename audio/{pcm => }/writer_other.go (95%) rename audio/{pcm => }/writer_pulse.go (99%) diff --git a/audio/audio.go b/audio/audio.go deleted file mode 100644 index 535c7d31..00000000 --- a/audio/audio.go +++ /dev/null @@ -1,133 +0,0 @@ -package audio - -import ( - "fmt" - - "github.com/oakmound/oak/v3/audio/font" - "github.com/oakmound/oak/v3/audio/klang" - "github.com/oakmound/oak/v3/oakerr" -) - -// Audio is a struct of some audio data and the variables -// required to filter it through a sound font. -type Audio struct { - *font.Audio - toStop klang.Audio - X, Y *float64 - setVolume int32 -} - -// New returns an audio from a font, some audio data, and optional -// positional coordinates -func New(f *font.Font, d Data, coords ...*float64) *Audio { - a := new(Audio) - a.Audio = font.NewAudio(f, d) - if len(coords) > 0 { - a.X = coords[0] - if len(coords) > 1 { - a.Y = coords[1] - } - } - return a -} - -// SetVolume attempts to set the volume of the underlying OS audio. -func (a *Audio) SetVolume(v int32) error { - a.setVolume = v - if a.toStop != nil { - return a.toStop.SetVolume(v) - } - return nil -} - -// Play begin's an audio's playback -func (a *Audio) Play() <-chan error { - a2, err := a.Copy() - if err != nil { - return errChannel(err) - } - a3, err := a2.Filter(a.Font.Filters...) - if err != nil { - return errChannel(err) - } - a4, err := a3.(*Audio).FullAudio.Copy() - if err != nil { - return errChannel(err) - } - a.toStop = a4 - err = a.toStop.SetVolume(a.setVolume) - if err != nil { - return errChannel(err) - } - return a4.Play() -} - -func errChannel(err error) <-chan error { - ch := make(chan error) - go func() { - ch <- err - }() - return ch -} - -// Stop stops an audio's playback -func (a *Audio) Stop() error { - if a == nil || a.toStop == nil { - return oakerr.NilInput{InputName: "Audio"} - } - return a.toStop.Stop() -} - -// Copy returns a copy of the audio -func (a *Audio) Copy() (klang.Audio, error) { - a2, err := a.Audio.Copy() - if err != nil { - return nil, err - } - return New(a.Audio.Font, a2.(klang.FullAudio), a.X, a.Y), nil -} - -// MustCopy acts like Copy, but panics on an error. -func (a *Audio) MustCopy() klang.Audio { - return New(a.Audio.Font, a.Audio.MustCopy().(klang.FullAudio), a.X, a.Y) -} - -// Filter returns the audio with some set of filters applied to it. -func (a *Audio) Filter(fs ...klang.Filter) (klang.Audio, error) { - var ad klang.Audio = a - var err, consErr error - for _, f := range fs { - ad, err = f.Apply(ad) - if err != nil { - if consErr == nil { - consErr = err - } else { - consErr = fmt.Errorf("%w, %v", err, consErr) - } - } - } - return ad, consErr -} - -// MustFilter acts like Filter but ignores errors. -func (a *Audio) MustFilter(fs ...klang.Filter) klang.Audio { - ad, _ := a.Filter(fs...) - return ad -} - -// Xp returns a pointer to the x position of this audio, if it has one. -// It has no position, this returns nil. -func (a *Audio) Xp() *float64 { - return a.X -} - -// Yp returns a pointer to the y position of this audio, if it has one. -// It has no position, this returns nil. If This is not nil, Xp will not be nil. -func (a *Audio) Yp() *float64 { - return a.Y -} - -var ( - // Guarantee that Audio can have positional filters applied to it - _ SupportsPos = &Audio{} -) diff --git a/audio/audio_test.go b/audio/audio_test.go deleted file mode 100644 index 54ec7e61..00000000 --- a/audio/audio_test.go +++ /dev/null @@ -1,69 +0,0 @@ -package audio - -import ( - "testing" - "time" - - "github.com/oakmound/oak/v3/audio/klang/filter" - "github.com/oakmound/oak/v3/audio/synth" -) - -func TestAudioFuncs(t *testing.T) { - kla, err := synth.Int16.Sin() - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - a := New(DefaultFont, kla.(Data)) - err = a.SetVolume(0) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - err = <-a.Play() - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - time.Sleep(a.PlayLength()) - // Assert audio is playing - <-a.Play() - err = a.Stop() - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - time.Sleep(a.PlayLength()) - // Assert audio is not playing - kla, err = a.Copy() - a = kla.(*Audio) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - a.Play() - time.Sleep(a.PlayLength()) - // Assert audio is playing - a = a.MustCopy().(*Audio) - if a.Xp() != nil { - t.Fatalf("audio without position had x pointer") - } - if a.Yp() != nil { - t.Fatalf("audio without position had y pointer") - } - kla, err = a.Filter(filter.Volume(.5)) - a = kla.(*Audio) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - a.Play() - time.Sleep(a.PlayLength()) - // Assert quieter audio is playing - a = a.MustFilter(filter.Volume(.5)).(*Audio) - a.Play() - time.Sleep(a.PlayLength()) - // Assert yet quieter audio is playing - err = a.SetVolume(-2000) - if err != nil { - t.Fatalf("unexpected error on set volume: %v", err) - } - a.Play() - time.Sleep(a.PlayLength()) - // Assert yet quieter audio is playing - -} diff --git a/audio/doc.go b/audio/doc.go deleted file mode 100644 index 2eb2fe27..00000000 --- a/audio/doc.go +++ /dev/null @@ -1,2 +0,0 @@ -// Package audio provides audio playing utilities. -package audio diff --git a/audio/pcm/driver.go b/audio/driver.go similarity index 70% rename from audio/pcm/driver.go rename to audio/driver.go index 7d11af01..7e62d528 100644 --- a/audio/pcm/driver.go +++ b/audio/driver.go @@ -1,4 +1,4 @@ -package pcm +package audio // A Driver defines the underlying interface that should be used for initializing PCM audio writers // by this package. @@ -12,12 +12,12 @@ const ( DriverDirectSound ) +var driverNames = map[Driver]string{ + DriverPulse: "pulseaudio", + DriverDirectSound: "directsound", + DriverDefault: "default", +} + func (d Driver) String() string { - switch d { - case DriverPulse: - return "pulseaudio" - case DriverDirectSound: - return "directsound" - } - return "" + return driverNames[d] } diff --git a/audio/driver_test.go b/audio/driver_test.go new file mode 100644 index 00000000..ff7add27 --- /dev/null +++ b/audio/driver_test.go @@ -0,0 +1,16 @@ +package audio + +import "testing" + +func TestDriver_String(t *testing.T) { + drivers := []Driver{ + DriverDefault, + DriverDirectSound, + DriverPulse, + } + for _, d := range drivers { + if d.String() == "" { + t.Errorf("driver %d had no defined string", d) + } + } +} diff --git a/audio/ears.go b/audio/ears.go deleted file mode 100644 index 9ab30ac9..00000000 --- a/audio/ears.go +++ /dev/null @@ -1,67 +0,0 @@ -package audio - -import ( - "github.com/oakmound/oak/v3/physics" -) - -// ScaleType should be moved to a different package that handles global -// scale varieties -type ScaleType int - -const ( - // LINEAR is the only ScaleType right now. - LINEAR ScaleType = iota -) - -// Ears are assisting variables and some position in the game world where -// audio should be 'heard' from, like the player character. Passing in that -// position's x and y as pointers then will allow for sounds further away from -// that point to be quieter and sounds to the left / right of that point to -// be panned left and right. -type Ears struct { - X *float64 - Y *float64 - PanWidth float64 - SilenceRadius float64 - // VolumeScale and PanScale are currently ignored because there is only - // one scale type - VolumeScale ScaleType - PanScale ScaleType -} - -// NewEars returns a new set of ears to hear pan/volume modified audio from -func NewEars(x, y *float64, panWidth float64, silentRadius float64) *Ears { - ears := new(Ears) - ears.X = x - ears.Y = y - ears.PanWidth = panWidth - ears.SilenceRadius = silentRadius - return ears -} - -// CalculatePan converts PanWidth and two x positions into a left / right pan -// value. -func (e *Ears) CalculatePan(x2 float64) float64 { - v := (x2 - *e.X) / e.PanWidth - if v < -1 { - return -1 - } else if v > 1 { - return 1 - } - return v -} - -// CalculateVolume converts two vector positions and SilenceRadius into a -// volume scale -func (e *Ears) CalculateVolume(v physics.Vector) float64 { - v2 := physics.NewVector(*e.X, *e.Y) - dist := v2.Distance(v) - - // Ignore scaling variable - lin := (e.SilenceRadius - dist) / e.SilenceRadius - if lin < 0 { - lin = 0 - } - - return lin -} diff --git a/audio/error_test.go b/audio/error_test.go deleted file mode 100644 index 5eaaea5b..00000000 --- a/audio/error_test.go +++ /dev/null @@ -1,15 +0,0 @@ -package audio - -import ( - "testing" - - "github.com/oakmound/oak/v3/oakerr" -) - -func TestErrorChannel(t *testing.T) { - err := oakerr.ExistingElement{} - err2 := <-errChannel(err) - if err != err2 { - t.Fatalf("err channel did not propagate error") - } -} diff --git a/audio/cache.go b/audio/file_cache.go similarity index 59% rename from audio/cache.go rename to audio/file_cache.go index f1e30a19..229b98f2 100644 --- a/audio/cache.go +++ b/audio/file_cache.go @@ -3,6 +3,8 @@ package audio import ( "path/filepath" "sync" + + "github.com/oakmound/oak/v3/audio/pcm" ) // DefaultCache is the receiver for package level loading operations. @@ -11,20 +13,20 @@ var DefaultCache = NewCache() // Cache is a simple audio data cache type Cache struct { mu sync.RWMutex - data map[string]Data + data map[string]*BytesReader } // NewCache returns an empty Cache func NewCache() *Cache { return &Cache{ - data: make(map[string]Data), + data: make(map[string]*BytesReader), } } // ClearAll will remove all elements from a Cache func (c *Cache) ClearAll() { c.mu.Lock() - c.data = make(map[string]Data) + c.data = make(map[string]*BytesReader) c.mu.Unlock() } @@ -35,19 +37,22 @@ func (c *Cache) Clear(key string) { c.mu.Unlock() } -func (c *Cache) setLoaded(file string, data Data) { +func (c *Cache) setLoaded(file string, r pcm.Reader) { + // This ReadAll and .Copy() on Cache.Read ensure that multiple loads from the cache do not + // change the data that will be read on future reads. + br := ReadAll(r) c.mu.Lock() - c.data[file] = data - c.data[filepath.Base(file)] = data + c.data[file] = br + c.data[filepath.Base(file)] = br c.mu.Unlock() } // Load calls Load on the Default Cache. -func Load(file string) (Data, error) { +func Load(file string) (pcm.Reader, error) { return DefaultCache.Load(file) } // Get calls Get on the Default Cache. -func Get(file string) (Data, error) { +func Get(file string) (pcm.Reader, error) { return DefaultCache.Get(file) } diff --git a/audio/file_formats.go b/audio/file_formats.go new file mode 100644 index 00000000..38284083 --- /dev/null +++ b/audio/file_formats.go @@ -0,0 +1,33 @@ +package audio + +import ( + "io" + "sync" + + "github.com/oakmound/oak/v3/audio/format/flac" + "github.com/oakmound/oak/v3/audio/format/mp3" + "github.com/oakmound/oak/v3/audio/format/wav" + "github.com/oakmound/oak/v3/audio/pcm" +) + +type fileLoader func(r io.Reader) (pcm.Reader, error) + +var fileLoadersLock sync.RWMutex +var fileLoaders = map[string]func(r io.Reader) (pcm.Reader, error){ + "mp3": mp3.Load, + "wav": wav.Load, + "flac": flac.Load, +} + +func RegisterFormat(extension string, fn fileLoader) { + fileLoadersLock.Lock() + fileLoaders[extension] = fn + fileLoadersLock.Unlock() +} + +func LoaderForExtension(extension string) (fileLoader, bool) { + fileLoadersLock.RLock() + defer fileLoadersLock.RUnlock() + loader, ok := fileLoaders[extension] + return loader, ok +} diff --git a/audio/load.go b/audio/file_load.go similarity index 56% rename from audio/load.go rename to audio/file_load.go index bc751599..843d1fa1 100644 --- a/audio/load.go +++ b/audio/file_load.go @@ -2,59 +2,52 @@ package audio import ( "path/filepath" + "strings" - audio "github.com/oakmound/oak/v3/audio/klang" - "github.com/oakmound/oak/v3/audio/mp3" - "github.com/oakmound/oak/v3/audio/wav" "golang.org/x/sync/errgroup" + "github.com/oakmound/oak/v3/audio/pcm" "github.com/oakmound/oak/v3/dlog" "github.com/oakmound/oak/v3/fileutil" "github.com/oakmound/oak/v3/oakerr" ) -// Data is an alias for an interface supporting the built in filters in our -// underlying audio library -type Data audio.FullAudio - // Get will read cached audio data from Load, or error if the given // file is not in the cache. -func (c *Cache) Get(file string) (Data, error) { +func (c *Cache) Get(file string) (pcm.Reader, error) { c.mu.RLock() data, ok := c.data[file] c.mu.RUnlock() if !ok { return nil, oakerr.NotFound{InputName: file} } - return data, nil + return data.Copy(), nil } // Load loads the given file and caches it by two keys: // the full file name given and the final element of the file's // path. If the file cannot be found or if its extension is not // supported an error will be returned. -func (c *Cache) Load(file string) (Data, error) { +func (c *Cache) Load(file string) (pcm.Reader, error) { dlog.Verb("Loading", file) f, err := fileutil.Open(file) if err != nil { return nil, err } defer f.Close() - var buffer audio.Audio - switch filepath.Ext(file) { - case ".wav": - buffer, err = wav.Load(f) - case ".mp3": - buffer, err = mp3.Load(f) - default: + + ext := filepath.Ext(file) + ext = strings.ToLower(ext) + reader, ok := LoaderForExtension(ext) + if !ok { return nil, oakerr.UnsupportedFormat{Format: filepath.Ext(file)} } + r, err := reader(f) if err != nil { return nil, err } - data := buffer.(audio.FullAudio) - c.setLoaded(file, data) - return data, nil + c.setLoaded(file, r) + return r, nil } // BatchLoad attempts to load all files within a given directory @@ -80,43 +73,31 @@ func batchLoad(baseFolder string, blankOut bool) error { for _, file := range files { if !file.IsDir() { fileName := file.Name() - switch filepath.Ext(fileName) { - case ".wav", ".mp3": - eg.Go(func() error { - var err error - if blankOut { - dlog.Verb("blank loading file") - err = blankLoad(fileName) - } else { - _, err = DefaultCache.Load(filepath.Join(baseFolder, fileName)) - } + eg.Go(func() error { + if blankOut { + blankLoad(fileName) + } else { + _, err := DefaultCache.Load(filepath.Join(baseFolder, fileName)) if err != nil { return err } - return nil - }) - } + } + return nil + }) } } err = eg.Wait() return err } -func blankLoad(filename string) error { - mformat := audio.Format{ - SampleRate: 44000, - Bits: 16, - Channels: 2, - } - buffer, err := audio.EncodeBytes( - audio.Encoding{ - Format: mformat, - Data: []byte{0, 0, 0, 0}, - }) - if err != nil { - return err - } - data := buffer.(audio.FullAudio) - DefaultCache.setLoaded(filename, data) - return nil +func blankLoad(filename string) { + dlog.Verb("blank loading file %v", filename) + DefaultCache.setLoaded(filename, &BytesReader{ + Format: pcm.Format{ + SampleRate: 44000, + Bits: 16, + Channels: 2, + }, + Buffer: []byte{0, 0, 0, 0}, + }) } diff --git a/audio/flac/flac.go b/audio/flac/flac.go deleted file mode 100644 index 757f3364..00000000 --- a/audio/flac/flac.go +++ /dev/null @@ -1,46 +0,0 @@ -// Package flac provides functionality to handle .flac files and .flac encoded data. -package flac - -import ( - "fmt" - "io" - - "github.com/eaburns/flac" - audio "github.com/oakmound/oak/v3/audio/klang" -) - -// def flac format -var format = audio.Format{ - SampleRate: 44100, - Bits: 16, - Channels: 2, -} - -// Load loads flac data from the incoming reader as an audio -func Load(r io.Reader) (audio.Audio, error) { - data, meta, err := flac.Decode(r) - if err != nil { - return nil, fmt.Errorf("failed to load flac: %w", err) - } - - fformat := audio.Format{ - SampleRate: uint32(meta.SampleRate), - Channels: uint16(meta.NChannels), - Bits: uint16(meta.BitsPerSample), - } - return audio.EncodeBytes( - audio.Encoding{ - Data: data, - Format: fformat, - }) -} - -// Save will eventually save an audio encoded as flac to the given writer -func Save(r io.ReadWriter, a audio.Audio) error { - return fmt.Errorf("unsupported Functionality") -} - -// Format returns the default flac formatting -func Format() audio.Format { - return format -} diff --git a/audio/font/audio.go b/audio/font/audio.go deleted file mode 100644 index 1a081566..00000000 --- a/audio/font/audio.go +++ /dev/null @@ -1,58 +0,0 @@ -package font - -import audio "github.com/oakmound/oak/v3/audio/klang" - -// Audio is an ease-of-use wrapper around an audio -// with an attached font, so that the audio can be played -// with .Play() but can take in the remotely variable -// font filter options. -// -// Note that it is a conscious choice for both Font and -// Audio to have a Filter(...Filter) function, so that when -// a FontAudio is in use the user needs to specify which -// element they want to apply a filter on. The alternative would -// be to have two similarly named functions, and its believed -// that fa.Font.Filter(...) and fa.Audio.Filter(...) is -// more or less equivalent to whatever those names would be. -type Audio struct { - *Font - audio.FullAudio - toStop audio.Audio -} - -// NewAudio returns a *FontAudio. -// For preparation against API changes, using NewAudio over Audio{} -// is recommended. -func NewAudio(f *Font, a audio.FullAudio) *Audio { - return &Audio{f, a, nil} -} - -// Play is equivalent to Audio.Font.Play(a.Audio) -func (ad *Audio) Play() <-chan error { - a2, err := ad.FullAudio.Copy() - if err != nil { - ch := make(chan error) - go func() { - ch <- err - }() - return ch - } - _, err = a2.Filter(ad.Font.Filters...) - if err != nil { - ch := make(chan error) - go func() { - ch <- err - }() - return ch - } - ad.toStop = a2 - return a2.Play() -} - -// Stop stops a font.Audio's playback -func (ad *Audio) Stop() error { - if ad.toStop != nil { - return ad.toStop.Stop() - } - return nil -} diff --git a/audio/font/font.go b/audio/font/font.go deleted file mode 100644 index 9d2f8d2a..00000000 --- a/audio/font/font.go +++ /dev/null @@ -1,45 +0,0 @@ -// Package font provides utilities to package together audio manipulations as -// a 'font'. -package font - -import audio "github.com/oakmound/oak/v3/audio/klang" - -// Font represents some group of settings which modify how an Audio -// should be played. The name is derived from the concept of a SoundFont -type Font struct { - Filters []audio.Filter -} - -// New returns a *Font. -// It is recommended for future API changes to avoid &Font{} and use NewFont instead -func New() *Font { - return &Font{} -} - -// Filter on a font is applied to all audios as they are played. -// Each call of Filter will completely reset a Font's filters -func (f *Font) Filter(fs ...audio.Filter) *Font { - f.Filters = fs - return f -} - -// Play on a font is equivalent to Audio.Copy().Filter(Font.GetFilters()).Play() -func (f *Font) Play(a audio.Audio) <-chan error { - a2, err := a.Copy() - if err != nil { - ch := make(chan error) - go func() { - ch <- err - }() - return ch - } - _, err = a2.Filter(f.Filters...) - if err != nil { - ch := make(chan error) - go func() { - ch <- err - }() - return ch - } - return a2.Play() -} diff --git a/audio/font/ceol/ceol.go b/audio/format/ceol/ceol.go similarity index 100% rename from audio/font/ceol/ceol.go rename to audio/format/ceol/ceol.go diff --git a/audio/font/ceol/testdata/test.ceol b/audio/format/ceol/testdata/test.ceol similarity index 100% rename from audio/font/ceol/testdata/test.ceol rename to audio/format/ceol/testdata/test.ceol diff --git a/audio/font/dls/dls.go b/audio/format/dls/dls.go similarity index 98% rename from audio/font/dls/dls.go rename to audio/format/dls/dls.go index 67b73b63..ed9fa9b4 100644 --- a/audio/font/dls/dls.go +++ b/audio/format/dls/dls.go @@ -1,7 +1,7 @@ // Package dls contains data structures for DLS (.dls) file types. package dls -import "github.com/oakmound/oak/v3/audio/font/riff" +import "github.com/oakmound/oak/v3/audio/format/riff" // The DLS is the major struct we care about in this package // DLS files contain instrument and wave sample information, and diff --git a/audio/font/dls/testdata/SanbikiSCC.dls b/audio/format/dls/testdata/SanbikiSCC.dls similarity index 100% rename from audio/font/dls/testdata/SanbikiSCC.dls rename to audio/format/dls/testdata/SanbikiSCC.dls diff --git a/audio/format/flac/flac.go b/audio/format/flac/flac.go new file mode 100644 index 00000000..46858383 --- /dev/null +++ b/audio/format/flac/flac.go @@ -0,0 +1,50 @@ +// Package flac provides functionality to handle .flac files and .flac encoded data. +package flac + +import ( + "fmt" + "io" + + "github.com/eaburns/flac" + "github.com/oakmound/oak/v3/audio/pcm" +) + +// Load loads flac data from the incoming reader as an audio +func Load(r io.Reader) (pcm.Reader, error) { + d, err := flac.NewDecoder(r) + if err != nil { + return nil, fmt.Errorf("failed to load flac: %w", err) + } + + return &pcm.IOReader{ + Format: pcm.Format{ + SampleRate: uint32(d.SampleRate), + Channels: uint16(d.NChannels), + Bits: uint16(d.BitsPerSample), + }, + Reader: &reader{d: d}, + }, nil +} + +type reader struct { + d *flac.Decoder + readAhead []byte +} + +func (r *reader) Read(data []byte) (int, error) { + if len(r.readAhead) == 0 { + read, err := r.d.Next() + if err != nil { + return 0, err + } + r.readAhead = read + } + copy(data, r.readAhead) + if len(r.readAhead) < len(data) { + n := len(r.readAhead) + r.readAhead = []byte{} + return n, nil + } + r.readAhead = r.readAhead[len(data):] + return len(data), nil +} diff --git a/audio/format/mp3/mp3.go b/audio/format/mp3/mp3.go new file mode 100644 index 00000000..c19a721d --- /dev/null +++ b/audio/format/mp3/mp3.go @@ -0,0 +1,26 @@ +// Package mp3 provides functionality to handle .mp3 files and .mp3 encoded data. +package mp3 + +import ( + "io" + + "github.com/oakmound/oak/v3/audio/pcm" + + "github.com/hajimehoshi/go-mp3" +) + +// Load loads an mp3-encoded reader into an audio +func Load(r io.Reader) (pcm.Reader, error) { + d, err := mp3.NewDecoder(r) + if err != nil { + return nil, err + } + return &pcm.IOReader{ + Format: pcm.Format{ + SampleRate: uint32(d.SampleRate()), + Bits: 16, + Channels: 2, + }, + Reader: d, + }, nil +} diff --git a/audio/font/riff/info.go b/audio/format/riff/info.go similarity index 100% rename from audio/font/riff/info.go rename to audio/format/riff/info.go diff --git a/audio/font/riff/riff.go b/audio/format/riff/riff.go similarity index 100% rename from audio/font/riff/riff.go rename to audio/format/riff/riff.go diff --git a/audio/pcm/testdata/test.wav b/audio/format/wav/testdata/test.wav similarity index 100% rename from audio/pcm/testdata/test.wav rename to audio/format/wav/testdata/test.wav diff --git a/audio/wav/wav.go b/audio/format/wav/wav.go similarity index 61% rename from audio/wav/wav.go rename to audio/format/wav/wav.go index fa735469..03a19362 100644 --- a/audio/wav/wav.go +++ b/audio/format/wav/wav.go @@ -2,55 +2,35 @@ package wav import ( - "errors" "io" "encoding/binary" - audio "github.com/oakmound/oak/v3/audio/klang" + "github.com/oakmound/oak/v3/audio/pcm" ) -// Load loads wav data from the incoming reader as an audio -func Load(r io.Reader) (audio.Audio, error) { - wav, err := Read(r) - if err != nil { - return nil, err - } - return audio.EncodeBytes( - audio.Encoding{ - Data: wav.Data, - Format: audio.Format{ - SampleRate: wav.SampleRate, - Channels: wav.NumChannels, - Bits: wav.BitsPerSample, - }, - }) -} - -// Save will eventually save an audio encoded as a wav to the given writer -func Save(r io.ReadWriter, a audio.Audio) error { - return errors.New("Unsupported Functionality") -} - // Read reads a WAV header from the provided reader, returning the PCM format and // leaving the PCM data in the reader available for consumption. -func ReadFormat(r io.Reader) (audio.Format, error) { - data, err := ReadData(r) +func Load(r io.Reader) (pcm.Reader, error) { + data, err := readData(r) if err != nil { - return audio.Format{}, err + return nil, err } - return audio.Format{ - SampleRate: data.SampleRate, - Channels: data.NumChannels, - Bits: data.BitsPerSample, + return &pcm.IOReader{ + Format: pcm.Format{ + SampleRate: data.SampleRate, + Channels: data.NumChannels, + Bits: data.BitsPerSample, + }, + Reader: r, }, nil } -// The following is a "fork" of verdverm's go-wav library +// The following is a fork of verdverm's go-wav library -// Data stores the raw information contained in a wav file -type Data struct { +// data stores the raw information contained in a wav file +type data struct { bChunkID [4]byte // B ChunkSize uint32 // L bFormat [4]byte // B @@ -70,8 +50,8 @@ type Data struct { Data []byte // L } -func ReadData(r io.Reader) (Data, error) { - data := Data{} +func readData(r io.Reader) (data, error) { + data := data{} err := binary.Read(r, binary.BigEndian, &data.bChunkID) if err != nil { @@ -129,16 +109,3 @@ func ReadData(r io.Reader) (Data, error) { } return data, nil } - -// Read returns raw wav data from an input reader -func Read(r io.Reader) (Data, error) { - data, err := ReadData(r) - if err != nil { - return data, err - } - - data.Data = make([]byte, data.Subchunk2Size) - err = binary.Read(r, binary.LittleEndian, &data.Data) - - return data, err -} diff --git a/audio/pcm/init_nix.go b/audio/init_nix.go similarity index 98% rename from audio/pcm/init_nix.go rename to audio/init_nix.go index 84853163..61f4bc90 100644 --- a/audio/pcm/init_nix.go +++ b/audio/init_nix.go @@ -1,6 +1,6 @@ //go:build linux || darwin -package pcm +package audio import ( "github.com/jfreymuth/pulse" diff --git a/audio/wininternal/dsound.go b/audio/internal/dsound/dsound.go similarity index 81% rename from audio/wininternal/dsound.go rename to audio/internal/dsound/dsound.go index ba27ea22..96472a3f 100644 --- a/audio/wininternal/dsound.go +++ b/audio/internal/dsound/dsound.go @@ -1,10 +1,6 @@ //go:build windows -// Package wininternal defines common initialization steps for audio on windows. It must be -// a common library because windows will not allow the same application to initialize direct -// sound twice, but it must not be an `internal` directory because of how the audio packages -// are structured for backwards compatibility. TODO: oak v4: move to an internal package -package wininternal +package dsound import ( "strings" diff --git a/audio/klang/audio.go b/audio/klang/audio.go deleted file mode 100644 index fcf34147..00000000 --- a/audio/klang/audio.go +++ /dev/null @@ -1,53 +0,0 @@ -// Package klang provides audio playing and encoding support -package klang - -import ( - "time" - - "github.com/oakmound/oak/v3/audio/klang/filter/supports" -) - -// Audio represents playable, filterable audio data. -type Audio interface { - // Play returns a channel that will signal when it finishes playing. - // Looping audio will never send on this channel! - // The value sent will always be true. - Play() <-chan error - // Filter will return an audio with some desired filters applied - Filter(...Filter) (Audio, error) - MustFilter(...Filter) Audio - // Stop will stop an ongoing audio - Stop() error - - // Implementing struct-- encoding - Copy() (Audio, error) - MustCopy() Audio - PlayLength() time.Duration - - // SetVolume sets the volume of an audio at an OS level, - // post filters. It multiplies with any volume filters. - // It takes a value from 0 to -10000, and can only reduce - // volume from the raw input. - SetVolume(int32) error -} - -// FullAudio supports all the built in filters -type FullAudio interface { - Audio - supports.Encoding - supports.Loop -} - -// Stream represents an audio stream. unlike Audio, the length of the -// stream is unknown. Copy is also not supported. -type Stream interface { - // Play returns a channel that will signal when it finishes playing. - // Looping audio will never send on this channel! - // The value sent will always be true. - Play() <-chan error - // Filter will return an audio with some desired filters applied - Filter(...Filter) (Audio, error) - MustFilter(...Filter) Audio - // Stop will stop an ongoing audio - Stop() error -} diff --git a/audio/klang/audio_windows.go b/audio/klang/audio_windows.go deleted file mode 100644 index 4268c3a0..00000000 --- a/audio/klang/audio_windows.go +++ /dev/null @@ -1,96 +0,0 @@ -//go:build windows -// +build windows - -package klang - -import ( - "errors" - - "github.com/oov/directsound-go/dsound" -) - -type dsAudio struct { - *Encoding - *dsound.IDirectSoundBuffer - flags dsound.BufferPlayFlag -} - -func (ds *dsAudio) Play() <-chan error { - ch := make(chan error) - if ds.Loop { - ds.flags = dsound.DSBPLAY_LOOPING - } - go func(dsbuff *dsound.IDirectSoundBuffer, flags dsound.BufferPlayFlag, ch chan error) { - err := dsbuff.SetCurrentPosition(0) - if err != nil { - select { - case ch <- err: - default: - } - } else { - err = dsbuff.Play(0, flags) - if err != nil { - select { - case ch <- err: - default: - } - } else { - select { - case ch <- nil: - default: - } - } - } - }(ds.IDirectSoundBuffer, ds.flags, ch) - return ch -} - -func (ds *dsAudio) Stop() error { - err := ds.IDirectSoundBuffer.Stop() - if err != nil { - return err - } - return ds.IDirectSoundBuffer.SetCurrentPosition(0) -} - -// SetVolume uses an underlying directsound command to set -// the volume of the audio. Applies multiplicatively with volume -// filters. Accepts int32s from -10000 to 0, 0 being the max and -// default volume. -func (ds *dsAudio) SetVolume(vol int32) error { - return ds.IDirectSoundBuffer.SetVolume(vol) -} - -func (ds *dsAudio) Filter(fs ...Filter) (Audio, error) { - var a Audio = ds - var err, consErr error - for _, f := range fs { - a, err = f.Apply(a) - if err != nil { - if consErr == nil { - consErr = err - } else { - consErr = errors.New(err.Error() + ":" + consErr.Error()) - } - } - } - // Consider: this is a significant amount - // of work to do just to make this an in-place filter. - // would it be worth it to offer both in place and non-inplace - // filter functions? - a2, err2 := EncodeBytes(*ds.Encoding) - if err2 != nil { - return nil, err2 - } - // reassign the contents of ds to be that of the - // new audio, so that this filters in place - *ds = *a2.(*dsAudio) - return ds, consErr -} - -// MustFilter acts like Filter, but ignores errors (it does not panic, -// as filter errors are expected to be non-fatal) -func (ds *dsAudio) MustFilter(fs ...Filter) Audio { - a, _ := ds.Filter(fs...) - return a -} diff --git a/audio/klang/encode_fallback.go b/audio/klang/encode_fallback.go deleted file mode 100644 index a3055e37..00000000 --- a/audio/klang/encode_fallback.go +++ /dev/null @@ -1,51 +0,0 @@ -//+build !linux -//+build !windows - -package klang - -import "errors" - -type darwinNopAudio struct { - Encoding -} - -func (dna *darwinNopAudio) Play() <-chan error { - ch := make(chan error) - go func() { - ch <- errors.New("Playback on Darwin is not supported") - }() - return ch -} - -func (dna *darwinNopAudio) Stop() error { - return errors.New("Playback on Darwin is not supported") -} - -func (dna *darwinNopAudio) SetVolume(int32) error { - return errors.New("SetVolume on Darwin is not supported") -} - -func (dna *darwinNopAudio) Filter(fs ...Filter) (Audio, error) { - var a Audio = dna - var err, consErr error - for _, f := range fs { - a, err = f.Apply(a) - if err != nil { - if consErr == nil { - consErr = err - } else { - consErr = errors.New(err.Error() + ":" + consErr.Error()) - } - } - } - return dna, consErr -} - -func (dna *darwinNopAudio) MustFilter(fs ...Filter) Audio { - a, _ := dna.Filter(fs...) - return a -} - -func EncodeBytes(enc Encoding) (Audio, error) { - return &darwinNopAudio{enc}, nil -} diff --git a/audio/klang/encode_linux.go b/audio/klang/encode_linux.go deleted file mode 100644 index d35e97b9..00000000 --- a/audio/klang/encode_linux.go +++ /dev/null @@ -1,216 +0,0 @@ -//+build linux - -package klang - -import ( - "errors" - "strings" - "sync" - - "github.com/oakmound/alsa" -) - -type alsaAudio struct { - *Encoding - *alsa.Device - playAmount int - playProgress int - stopCh chan struct{} - playing bool - playCh chan error - period int -} - -func (aa *alsaAudio) Play() <-chan error { - // If currently playing, restart - if aa.playing { - aa.playProgress = 0 - return aa.playCh - } - aa.playing = true - aa.playCh = make(chan error) - go func() { - for { - var data []byte - if len(aa.Encoding.Data)-aa.playProgress <= aa.playAmount { - data = aa.Encoding.Data[aa.playProgress:] - if aa.Loop { - delta := aa.playAmount - (len(aa.Encoding.Data) - aa.playProgress) - data = append(data, aa.Encoding.Data[:delta]...) - } - } else { - data = aa.Encoding.Data[aa.playProgress : aa.playProgress+aa.playAmount] - } - if len(data) != 0 { - err := aa.Device.Write(data, aa.period) - if err != nil { - select { - case aa.playCh <- err: - default: - } - break - } - } - aa.playProgress += aa.playAmount - if aa.playProgress > len(aa.Encoding.Data) { - if aa.Loop { - aa.playProgress %= len(aa.Encoding.Data) - } else { - select { - case aa.playCh <- nil: - default: - } - break - } - } - select { - case <-aa.stopCh: - select { - case aa.playCh <- nil: - default: - } - break - default: - } - } - aa.playing = false - aa.playProgress = 0 - }() - return aa.playCh -} - -func (aa *alsaAudio) Stop() error { - if aa.playing { - go func() { - aa.stopCh <- struct{}{} - }() - } else { - return errors.New("Audio not playing, cannot stop") - } - return nil -} - -func (aa *alsaAudio) SetVolume(int32) error { - return errors.New("SetVolume on Linux is not supported") -} - -func (aa *alsaAudio) Filter(fs ...Filter) (Audio, error) { - var a Audio = aa - var err, consErr error - for _, f := range fs { - a, err = f.Apply(a) - if err != nil { - if consErr == nil { - consErr = err - } else { - consErr = errors.New(err.Error() + ":" + consErr.Error()) - } - } - } - return aa, consErr -} - -// MustFilter acts like Filter, but ignores errors (it does not panic, -// as filter errors are expected to be non-fatal) -func (aa *alsaAudio) MustFilter(fs ...Filter) Audio { - a, _ := aa.Filter(fs...) - return a -} - -func EncodeBytes(enc Encoding) (Audio, error) { - handle, err := openDevice() - if err != nil { - return nil, err - } - // Todo: annotate these errors with more info - format, err := alsaFormat(enc.Bits) - if err != nil { - return nil, err - } - _, err = handle.NegotiateFormat(format) - if err != nil { - return nil, err - } - _, err = handle.NegotiateRate(int(enc.SampleRate)) - if err != nil { - return nil, err - } - _, err = handle.NegotiateChannels(int(enc.Channels)) - if err != nil { - return nil, err - } - // Default value at recommendation of library - period, err := handle.NegotiatePeriodSize(2048) - if err != nil { - return nil, err - } - _, err = handle.NegotiateBufferSize(4096) - if err != nil { - return nil, err - } - err = handle.Prepare() - if err != nil { - return nil, err - } - return &alsaAudio{ - playAmount: period * int(enc.Bits) / 4, - period: period, - Encoding: &enc, - Device: handle, - stopCh: make(chan struct{}), - }, nil -} - -var ( - // Todo: support more customized audio device usage - openDeviceLock sync.Mutex - openedDevice *alsa.Device -) - -func openDevice() (*alsa.Device, error) { - openDeviceLock.Lock() - defer openDeviceLock.Unlock() - - if openedDevice != nil { - return openedDevice, nil - } - cards, err := alsa.OpenCards() - if err != nil { - return nil, err - } - defer alsa.CloseCards(cards) - for i, c := range cards { - dvcs, err := c.Devices() - if err != nil { - continue - } - for _, d := range dvcs { - if d.Type != alsa.PCM || !d.Play { - continue - } - if strings.Contains(d.Title, SkipDevicesContaining) { - continue - } - d.Close() - err := d.Open() - if err != nil { - continue - } - // We've a found a device we can hypothetically use - cards = append(cards[:i], cards[i+1:]...) - openedDevice = d - return d, nil - } - } - return nil, errors.New("No valid device found") -} - -func alsaFormat(bits uint16) (alsa.FormatType, error) { - switch bits { - case 8: - return alsa.S8, nil - case 16: - return alsa.S16_LE, nil - } - return 0, errors.New("Undefined alsa format for encoding bits") -} diff --git a/audio/klang/encode_windows.go b/audio/klang/encode_windows.go deleted file mode 100644 index ea5fdeb5..00000000 --- a/audio/klang/encode_windows.go +++ /dev/null @@ -1,76 +0,0 @@ -//go:build windows -// +build windows - -package klang - -import ( - "syscall" - - "github.com/oakmound/oak/v3/audio/wininternal" - "github.com/oov/directsound-go/dsound" -) - -var ( - user32 = syscall.NewLazyDLL("user32") - getDesktopWindow = user32.NewProc("GetDesktopWindow") - dsoundInterface *dsound.IDirectSound - initErr error -) - -func init() { - cfg, err := wininternal.Init() - if err != nil { - initErr = err - return - } - dsoundInterface = cfg.Interface -} - -// EncodeBytes converts an encoding to Audio -func EncodeBytes(enc Encoding) (Audio, error) { - // An error here would be an error from init() - if initErr != nil { - return nil, initErr - } - - // Create the object which stores the wav data in a playable format - blockAlign := enc.Channels * enc.Bits / 8 - dsbuff, err := dsoundInterface.CreateSoundBuffer(&dsound.BufferDesc{ - // These flags cover everything we should ever want to do - Flags: dsound.DSBCAPS_GLOBALFOCUS | dsound.DSBCAPS_GETCURRENTPOSITION2 | dsound.DSBCAPS_CTRLVOLUME | dsound.DSBCAPS_CTRLPAN | dsound.DSBCAPS_CTRLFREQUENCY | dsound.DSBCAPS_LOCDEFER, - Format: &dsound.WaveFormatEx{ - FormatTag: dsound.WAVE_FORMAT_PCM, - Channels: enc.Channels, - SamplesPerSec: enc.SampleRate, - BitsPerSample: enc.Bits, - BlockAlign: blockAlign, - AvgBytesPerSec: enc.SampleRate * uint32(blockAlign), - ExtSize: 0, - }, - BufferBytes: uint32(len(enc.Data)), - }) - if err != nil { - return nil, err - } - - // Reserve some space in the sound buffer object to write to. - // The Lock function (and by extension LockBytes) actually - // reserves two spaces, but we ignore the second. - by1, by2, err := dsbuff.LockBytes(0, uint32(len(enc.Data)), 0) - if err != nil { - return nil, err - } - - // Write to the pointer we were given. - copy(by1, enc.Data) - - // Update the buffer object with the new data. - err = dsbuff.UnlockBytes(by1, by2) - if err != nil { - return nil, err - } - return &dsAudio{ - Encoding: &enc, - IDirectSoundBuffer: dsbuff, - }, nil -} diff --git a/audio/klang/encoding.go b/audio/klang/encoding.go deleted file mode 100644 index e579f70c..00000000 --- a/audio/klang/encoding.go +++ /dev/null @@ -1,53 +0,0 @@ -package klang - -import "time" - -// Encoding contains all information required to convert raw data -// (currently assumed PCM data but that may/will change) into playable Audio -type Encoding struct { - // Consider: non []byte data? - // Consider: should Data be a type just like Format and CanLoop? - Data []byte - Format - CanLoop -} - -// Copy returns an audio encoded from this encoding. -// Consider: Copy might be tied to HasEncoding -func (enc *Encoding) Copy() (Audio, error) { - return EncodeBytes(*enc.copy()) -} - -// MustCopy acts like Copy, but will panic if err != nil -func (enc *Encoding) MustCopy() Audio { - a, err := EncodeBytes(*enc.copy()) - if err != nil { - panic(err) - } - return a -} - -// GetData satisfies filter.SupportsData -func (enc *Encoding) GetData() *[]byte { - return &enc.Data -} - -// PlayLength returns how long this encoding will play its data for -func (enc *Encoding) PlayLength() time.Duration { - return time.Duration( - 1000000000*float64(len(enc.Data))/ - float64(enc.SampleRate)/ - float64(enc.Channels)/ - float64(enc.Bits/8)) * time.Nanosecond -} - -// copy for an encoding just copies the encoding data, -// it does not return an audio. -func (enc *Encoding) copy() *Encoding { - newEnc := new(Encoding) - newEnc.Format = enc.Format - newEnc.CanLoop = enc.CanLoop - newEnc.Data = make([]byte, len(enc.Data)) - copy(newEnc.Data, enc.Data) - return newEnc -} diff --git a/audio/klang/filter.go b/audio/klang/filter.go deleted file mode 100644 index 271191be..00000000 --- a/audio/klang/filter.go +++ /dev/null @@ -1,24 +0,0 @@ -package klang - -// A Filter takes an input audio and returns some new Audio from them. -// This usage implies that Audios can be copied, and that Audios have -// available information to be generically modified by a Filter. The -// functions for these capabilities are yet fleshed out. It's worth -// considering whether a Filter modifies in place. The answer is -// probably yes: -// a.Filter(fs) would modify a in place -// a.Copy().Filter(fs) would return a new audio -// Specific audio implementations could not follow this, however. -type Filter interface { - Apply(Audio) (Audio, error) -} - -// CanLoop offers composable looping -type CanLoop struct { - Loop bool -} - -// GetLoop allows CanLoop to satisfy the SupportsLoop interface -func (cl *CanLoop) GetLoop() *bool { - return &cl.Loop -} diff --git a/audio/klang/filter/data.go b/audio/klang/filter/data.go deleted file mode 100644 index 6dfadeee..00000000 --- a/audio/klang/filter/data.go +++ /dev/null @@ -1,19 +0,0 @@ -package filter - -import ( - "github.com/oakmound/oak/v3/audio/klang" - "github.com/oakmound/oak/v3/audio/klang/filter/supports" -) - -// Data filters are functions on []byte types -type Data func(*[]byte) - -// Apply checks that the given audio supports Data, filters if it -// can, then returns -func (df Data) Apply(a klang.Audio) (klang.Audio, error) { - if sd, ok := a.(supports.Data); ok { - df(sd.GetData()) - return a, nil - } - return a, supports.NewUnsupported([]string{"Data"}) -} diff --git a/audio/klang/filter/encoding.go b/audio/klang/filter/encoding.go deleted file mode 100644 index b25a68f1..00000000 --- a/audio/klang/filter/encoding.go +++ /dev/null @@ -1,62 +0,0 @@ -package filter - -import ( - "github.com/oakmound/oak/v3/audio/klang" - "github.com/oakmound/oak/v3/audio/klang/filter/supports" - "github.com/oakmound/oak/v3/audio/klang/internal/manip" -) - -// Encoding filters are functions on any combination of the values -// in an audio.Encoding -type Encoding func(supports.Encoding) - -// Apply checks that the given audio supports Encoding, filters if it -// can, then returns -func (enc Encoding) Apply(a klang.Audio) (klang.Audio, error) { - if senc, ok := a.(supports.Encoding); ok { - enc(senc) - return a, nil - } - return a, supports.NewUnsupported([]string{"Encoding"}) -} - -// AssertStereo does nothing to audio that has two channels, but will convert -// mono audio to two-channeled audio with the same data on both channels -func AssertStereo() Encoding { - return func(enc supports.Encoding) { - chs := enc.GetChannels() - if *chs > 1 { - // We can't really do this for non-mono audio - return - } - *chs = 2 - data := enc.GetData() - d := *data - newData := make([]byte, len(d)*2) - byteDepth := int(*enc.GetBitDepth() / 8) - for i := 0; i < len(d); i += 2 { - for j := 0; j < byteDepth; j++ { - newData[i*2+j] = d[i+j] - newData[i*2+j+byteDepth] = d[i+j] - } - } - *data = newData - } -} - -func mod(init, inc int, modFn func(float64) float64) Encoding { - return func(enc supports.Encoding) { - data := enc.GetData() - d := *data - byteDepth := int(*enc.GetBitDepth() / 8) - switch byteDepth { - case 2: - for i := byteDepth * init; i < len(d); i += byteDepth * inc { - manip.SetInt16(d, i, manip.Round(modFn(float64(manip.GetInt16(d, i))))) - } - default: - // log unsupported byte depth - } - *data = d - } -} diff --git a/audio/klang/filter/fourier.go b/audio/klang/filter/fourier.go deleted file mode 100644 index b39ba70a..00000000 --- a/audio/klang/filter/fourier.go +++ /dev/null @@ -1,94 +0,0 @@ -package filter - -// these fourier functions did not work for me. -// In case I can fix them, I leave them here. -// Credit Arnaud Gatouillat - -// fourier1 has a bad name -// fourier1 is a helper function that does some kind of fourier transform math -// What are nn and isign? -// func fourier1(data []float64, nn, isign int) { -// n := nn << 1 -// j := 1 -// for i := 1; i < n; i += 2 { -// if j > i { -// data[j], data[i] = data[i], data[j] -// data[j+1], data[i+1] = data[i+1], data[j+1] -// } -// m := n >> 1 -// for m >= 2 && j > m { -// j -= m -// m >>= 1 -// } -// j += m -// } -// mmax := 2 -// for n > mmax { -// stp := 2 * mmax -// theta := math.Pi * 2 / float64(isign*mmax) -// wpr, wpi := wprWpi(theta) -// wr := 1.0 -// wi := 0.0 -// for m := 1; m < mmax; m += 2 { -// for i := m; i <= n; i += stp { -// tr := wr*data[j] - wi*data[j+1] -// ti := wr*data[j+1] - wi*data[i] -// data[j] = data[i] - tr -// data[j+1] = data[i+1] - ti -// data[i] += tr -// data[i+1] += ti -// } -// wt := wr -// wr = wr*wpr - wi*wpi + wr -// wi = wi*wpr + wt*wpi + wi -// } -// mmax = stp -// } -// } - -// func RealFourierTransform(data []float64, n, isign int) { -// theta := math.Pi / float64(n) -// var c2 float64 -// if isign == 1 { -// c2 = -.5 -// fourier1(data, n, 1) -// } else { -// c2 = .5 -// theta *= -1 -// } -// wpr, wpi := wprWpi(theta) -// wr := 1.0 + wpr -// wi := wpi -// // Wow what a great name for this variable -// n2p3 := 2*n + 3 -// for i := 2; i <= n/2; i++ { -// i1 := i + i - 1 -// i2 := i1 + 1 -// i3 := n2p3 - i2 -// i4 := i3 + 1 -// h1r := .5 * (data[i1] + data[i3]) -// h1i := .5 * (data[i2] - data[i4]) -// h2r := -c2 * (data[i2] + data[i4]) -// h2i := c2 * (data[i1] - data[i3]) -// data[i1] = h1r + wr*h2r - wi*h2i -// data[i2] = h1i + wr*h2i + wi*h2r -// data[i3] = h1r - wr*h2r + wi*h2i -// data[i4] = -h1i + wr*h2i + wi*h2r -// wt := wr -// wr = wr*wpr - wi*wpi + wr -// wi = wi*wpr + wt*wpi + wi -// } -// if isign == 1 { -// data[1], data[2] = (data[1] + data[2]), (data[1] - data[2]) -// } else { -// data[1], data[2] = .5*(data[1]+data[2]), .5*(data[1]-data[2]) -// fourier1(data, n, -1) -// } -// } - -// func wprWpi(theta float64) (float64, float64) { -// w := math.Sin(0.5 * theta) -// wpr := -2 * math.Pow(w, 2) -// wpi := math.Sin(theta) -// return wpr, wpi -// } diff --git a/audio/klang/filter/guarantees.go b/audio/klang/filter/guarantees.go deleted file mode 100644 index 0ac71174..00000000 --- a/audio/klang/filter/guarantees.go +++ /dev/null @@ -1,16 +0,0 @@ -// Package filter provides various audio filters to be applied to audios through the -// Filter function. -package filter - -import ( - "github.com/oakmound/oak/v3/audio/klang" - "github.com/oakmound/oak/v3/audio/klang/filter/supports" -) - -// These declarations guarantee that the filters in this package satisfy the filter interface -var ( - _ klang.Filter = SampleRate(func(*uint32) {}) - _ klang.Filter = Data(func(*[]byte) {}) - _ klang.Filter = Loop(func(*bool) {}) - _ klang.Filter = Encoding(func(supports.Encoding) {}) -) diff --git a/audio/klang/filter/loop.go b/audio/klang/filter/loop.go deleted file mode 100644 index 9cf8d28c..00000000 --- a/audio/klang/filter/loop.go +++ /dev/null @@ -1,34 +0,0 @@ -package filter - -import ( - "github.com/oakmound/oak/v3/audio/klang" - "github.com/oakmound/oak/v3/audio/klang/filter/supports" -) - -// Loop functions modify a boolean, with the intention that that boolean -// is a loop variable -type Loop func(*bool) - -// Apply checks that the given audio supports Loop, filters if it -// can, then returns -func (lf Loop) Apply(a klang.Audio) (klang.Audio, error) { - if sl, ok := a.(supports.Loop); ok { - lf(sl.GetLoop()) - return a, nil - } - return a, supports.NewUnsupported([]string{"Loop"}) -} - -// LoopOn sets the loop to happen -func LoopOn() Loop { - return func(b *bool) { - *b = true - } -} - -// LoopOff sets the loop to not happen -func LoopOff() Loop { - return func(b *bool) { - *b = false - } -} diff --git a/audio/klang/filter/pan.go b/audio/klang/filter/pan.go deleted file mode 100644 index 8e6913bf..00000000 --- a/audio/klang/filter/pan.go +++ /dev/null @@ -1,76 +0,0 @@ -package filter - -import "github.com/oakmound/oak/v3/audio/klang/filter/supports" - -// LeftPan filters audio to only play on the left speaker -func LeftPan() Encoding { - return func(enc supports.Encoding) { - data := enc.GetData() - // Right/Left only makes sense for 2 channel - if *enc.GetChannels() != 2 { - return - } - // Zero out one channel - swtch := int((*enc.GetBitDepth()) / 8) - d := *data - for i := 0; i < len(d); i += (2 * swtch) { - for j := 0; j < swtch; j++ { - d[i+j] = byte((int(d[i+j]) + int(d[i+j+swtch])) / 2) - d[i+j+swtch] = 0 - } - } - *data = d - } -} - -// RightPan filters audio to only play on the right speaker -func RightPan() Encoding { - return func(enc supports.Encoding) { - data := enc.GetData() - // Right/Left only makes sense for 2 channel - if *enc.GetChannels() != 2 { - return - } - // Zero out one channel - swtch := int((*enc.GetBitDepth()) / 8) - d := *data - for i := 0; i < len(d); i += (2 * swtch) { - for j := 0; j < swtch; j++ { - d[i+j+swtch] = byte((int(d[i+j]) + int(d[i+j+swtch])) / 2) - d[i+j] = 0 - } - } - *data = d - } -} - -// Pan takes -1 <= f <= 1. -// An f of -1 represents a full pan to the left, a pan of 1 represents -// a full pan to the right. -func Pan(f float64) Encoding { - // Todo: test this is accurate - if f > 0 { - return VolumeBalance(1-f, 1) - } else if f < 0 { - return VolumeBalance(1, 1-(-1*f)) - } else { - return func(enc supports.Encoding) { - data := enc.GetData() - // Right/Left only makes sense for 2 channel - if *enc.GetChannels() != 2 { - return - } - // Zero out one channel - swtch := int((*enc.GetBitDepth()) / 8) - d := *data - for i := 0; i < len(d); i += (2 * swtch) { - for j := 0; j < swtch; j++ { - v := byte((int(d[i+j]) + int(d[i+j+swtch])) / 2) - d[i+j+swtch] = v - d[i+j] = v - } - } - *data = d - } - } -} diff --git a/audio/klang/filter/pitchshift.go b/audio/klang/filter/pitchshift.go deleted file mode 100644 index 67a41e72..00000000 --- a/audio/klang/filter/pitchshift.go +++ /dev/null @@ -1,297 +0,0 @@ -package filter - -import ( - "math" - - "github.com/oakmound/oak/v3/audio/klang/filter/supports" - "github.com/oakmound/oak/v3/audio/klang/internal/manip" -) - -/***************************************************************************** -* HOME URL: http://blogs.zynaptiq.com/bernsee -* KNOWN BUGS: none -* -* SYNOPSIS: Routine for doing pitch shifting while maintaining -* duration using the Short Time Fourier Transform. -* -* DESCRIPTION: The routine takes a pitchShift factor value which is between 0.5 -* (one octave down) and 2. (one octave up). A value of exactly 1 does not change -* the pitch. numSampsToProcess tells the routine how many samples in indata[0... -* numSampsToProcess-1] should be pitch shifted and moved to outdata[0 ... -* numSampsToProcess-1]. The two buffers can be identical (ie. it can process the -* data in-place). fftFrameSize defines the FFT frame size used for the -* processing. Typical values are 1024, 2048 and 4096. It may be any value <= -* MAX_FRAME_LENGTH but it MUST be a power of 2. osamp is the STFT -* oversampling factor which also determines the overlap between adjacent STFT -* frames. It should at least be 4 for moderate scaling ratios. A value of 32 is -* recommended for best quality. sampleRate takes the sample rate for the signal -* in unit Hz, ie. 44100 for 44.1 kHz audio. The data passed to the routine in -* indata[] should be in the range [-1.0, 1.0), which is also the output range -* for the data, make sure you scale the data accordingly (for 16bit signed integers -* you would have to divide (and multiply) by 32768). -* -* COPYRIGHT 1999-2015 Stephan M. Bernsee -* -* The Wide Open License (WOL) -* -* Permission to use, copy, modify, distribute and sell this software and its -* documentation for any purpose is hereby granted without fee, provided that -* the above copyright notice and this license appear in all source copies. -* THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF -* ANY KIND. See http://www.dspguru.com/wol.htm for more information. -* -*****************************************************************************/ -// As is standard with translations of this code to other languages, -// Go translation copyright Patrick Stephen 2017 -// To be clear, the PitchShift function + FFT is what had to be translated - -// A PitchShifter has an encoding function that will shift -// a pitch up to an octave up or down (0.5 -> octave down, 2.0 -> octave up) -// these are for lower-level use, and a similar type that takes in steps to -// shift by (and eventually pitches to set to) will follow. -type PitchShifter interface { - PitchShift(float64) Encoding -} - -// FFTShifter holds buffers and settings for performing a pitch shift on PCM audio -type FFTShifter struct { - fftFrameSize int - oversampling int - step int - latency int - stack, frame []float64 - workBuffer []float64 - magnitudes, frequencies []float64 - synthMagnitudes, synthFrequencies []float64 - lastPhase, sumPhase []float64 - outAcc []float64 - expected float64 - window, windowFactors []float64 -} - -// These are built in shifters with some common inputs -var ( - LowQualityShifter, _ = NewFFTShifter(1024, 8) - HighQualityShifter, _ = NewFFTShifter(1024, 32) -) - -// NewFFTShifter returns a pitch shifter that uses fast fourier transforms -func NewFFTShifter(fftFrameSize int, oversampling int) (PitchShifter, error) { - // Todo: check that the frame size and oversampling rate make sense - ps := FFTShifter{} - ps.fftFrameSize = fftFrameSize - ps.oversampling = oversampling - ps.step = fftFrameSize / oversampling - ps.latency = fftFrameSize - ps.step - ps.stack = make([]float64, fftFrameSize) - ps.workBuffer = make([]float64, 2*fftFrameSize) - ps.magnitudes = make([]float64, fftFrameSize) - ps.frequencies = make([]float64, fftFrameSize) - ps.synthMagnitudes = make([]float64, fftFrameSize) - ps.synthFrequencies = make([]float64, fftFrameSize) - ps.lastPhase = make([]float64, fftFrameSize/2+1) - ps.sumPhase = make([]float64, fftFrameSize/2+1) - ps.outAcc = make([]float64, 2*fftFrameSize) - - ps.expected = 2 * math.Pi * float64(ps.step) / float64(fftFrameSize) - - ps.window = make([]float64, fftFrameSize) - ps.windowFactors = make([]float64, fftFrameSize) - t := 0.0 - for i := 0; i < fftFrameSize; i++ { - w := -0.5*math.Cos(t) + .5 - ps.window[i] = w - ps.windowFactors[i] = w * (2.0 / float64(fftFrameSize*oversampling)) - t += (math.Pi * 2) / float64(fftFrameSize) - } - - ps.frame = make([]float64, fftFrameSize) - return ps, nil -} - -// PitchShift modifies filtered audio by the input float, between 0.5 and 2.0, -// each end of the spectrum representing octave down and up respectively -func (ps FFTShifter) PitchShift(shiftBy float64) Encoding { - return func(senc supports.Encoding) { - data := *senc.GetData() - bitDepth := *senc.GetBitDepth() - byteDepth := bitDepth / 8 - sampleRate := *senc.GetSampleRate() - channels := *senc.GetChannels() - - // Jeeez - out := make([]byte, len(data)) - copy(out, data) - - freqPerBin := float64(sampleRate) / float64(ps.fftFrameSize) - frameIndex := ps.latency - - // End jeeeez - - // for each channel individually - for c := 0; c < int(channels); c++ { - // convert this to a channel-specific float64 buffer - f64in := manip.BytesToF64(data, channels, bitDepth, c) - f64out := f64in - - for i := 0; i < len(f64in); i++ { - // Get a frame - ps.frame[frameIndex] = f64in[i] - // Bug here for early i values: they'll all be 0! - f64out[i] = ps.stack[frameIndex-ps.latency] - frameIndex++ - - // A full frame has been obtained - if frameIndex >= ps.fftFrameSize { - frameIndex = ps.latency - - // Windowing - for k := 0; k < ps.fftFrameSize; k++ { - ps.workBuffer[2*k] = ps.frame[k] * ps.window[k] - ps.workBuffer[(2*k)+1] = 0 - } - - ShortTimeFourierTransform(ps.workBuffer, ps.fftFrameSize, -1) - - // Analysis - for k := 0; k <= ps.fftFrameSize/2; k++ { - real := ps.workBuffer[2*k] - imag := ps.workBuffer[(2*k)+1] - - magn := 2 * math.Sqrt(real*real+imag*imag) - ps.magnitudes[k] = magn - - phase := math.Atan2(imag, real) - - diff := phase - ps.lastPhase[k] - ps.lastPhase[k] = phase - - diff -= float64(k) * ps.expected - - deltaPhase := int(diff * (1 / math.Pi)) - if deltaPhase >= 0 { - deltaPhase += deltaPhase & 1 - } else { - deltaPhase -= deltaPhase & 1 - } - - diff -= math.Pi * float64(deltaPhase) - diff *= float64(ps.oversampling) / (math.Pi * 2) - diff = (float64(k) + diff) * freqPerBin - - ps.frequencies[k] = diff - } - - // Processing - for k := 0; k < ps.fftFrameSize; k++ { - ps.synthMagnitudes[k] = 0 - ps.synthFrequencies[k] = 0 - } - - for k := 0; k < ps.fftFrameSize/2; k++ { - l := int(float64(k) * shiftBy) - if l < ps.fftFrameSize/2 { - ps.synthMagnitudes[l] += ps.magnitudes[k] - ps.synthFrequencies[l] = ps.frequencies[k] * shiftBy - } - } - - // Synthesis - for k := 0; k <= ps.fftFrameSize/2; k++ { - magn := ps.synthMagnitudes[k] - tmp := ps.synthFrequencies[k] - tmp -= float64(k) * freqPerBin - tmp /= freqPerBin - tmp *= 2 * math.Pi / float64(ps.oversampling) - tmp += float64(k) * ps.expected - ps.sumPhase[k] += tmp - - ps.workBuffer[2*k] = magn * math.Cos(ps.sumPhase[k]) - ps.workBuffer[(2*k)+1] = magn * math.Sin(ps.sumPhase[k]) - } - - // Remove negative frequencies - // I don't get how we know these ones are negative - // also this looks like it's going to overflow the slice - for k := ps.fftFrameSize + 2; k < 2*ps.fftFrameSize; k++ { - ps.workBuffer[k] = 0.0 - } - - ShortTimeFourierTransform(ps.workBuffer, ps.fftFrameSize, 1) - - // Windowing - for k := 0; k < ps.fftFrameSize; k++ { - ps.outAcc[k] += ps.windowFactors[k] * ps.workBuffer[2*k] - } - for k := 0; k < ps.step; k++ { - ps.stack[k] = ps.outAcc[k] - } - - // Shift accumulator, shift frame - for k := 0; k < ps.fftFrameSize; k++ { - ps.outAcc[k] = ps.outAcc[k+ps.step] - } - - for k := 0; k < ps.latency; k++ { - ps.frame[k] = ps.frame[k+ps.step] - } - } - } - // remap this f64in to the output - for i := c * int(byteDepth); i < len(data); i += int(byteDepth * 2) { - manip.SetInt16F64(out, i, f64in[i/int(byteDepth*2)]) - } - } - datap := senc.GetData() - *datap = out - } -} - -// ShortTimeFourierTransform : FFT routine, (C)1996 S.M.Bernsee. Sign = -1 is FFT, 1 is iFFT (inverse) -// Fills fftBuffer[0...2*fftFrameSize-1] with the Fourier transform of the -// time domain data in fftBuffer[0...2*fftFrameSize-1]. The FFT array takes -// and returns the cosine and sine parts in an interleaved manner, ie. -// fftBuffer[0] = cosPart[0], fftBuffer[1] = sinPart[0], asf. fftFrameSize -// must be a power of 2. It expects a complex input signal (see footnote 2), -// ie. when working with 'common' audio signals our input signal has to be -// passed as {in[0],0.,in[1],0.,in[2],0.,...} asf. In that case, the transform -// of the frequencies of interest is in fftBuffer[0...fftFrameSize]. -func ShortTimeFourierTransform(data []float64, fftFrameSize, sign int) { - for i := 2; i < 2*(fftFrameSize-2); i += 2 { - j := 0 - for bitm := 2; bitm < 2*fftFrameSize; bitm <<= 1 { - if (i & bitm) != 0 { - j++ - } - j <<= 1 - } - if i < j { - data[j], data[i] = data[i], data[j] - data[j+1], data[i+1] = data[i+1], data[j+1] - } - } - max := int(math.Log(float64(fftFrameSize))/math.Log(2) + .5) - le := 2 - for k := 0; k < max; k++ { - le <<= 1 - le2 := le >> 1 - ur := 1.0 - ui := 0.0 - arg := math.Pi / float64(le2>>1) - wr := math.Cos(arg) - wi := float64(sign) * math.Sin(arg) - for j := 0; j < le2; j += 2 { - for i := j; i < 2*fftFrameSize; i += le { - tr := data[i+le2]*ur - data[i+le2+1]*ui - ti := data[i+le2]*ui + data[i+le2+1]*ur - data[i+le2] = data[i] - tr - data[i+le2+1] = data[i+1] - ti - data[i] += tr - data[i+1] += ti - } - tmp := ur*wr - ui*wi - ui = ur*wi + ui*wr - ur = tmp - } - } -} diff --git a/audio/klang/filter/resample.go b/audio/klang/filter/resample.go deleted file mode 100644 index 1dce410d..00000000 --- a/audio/klang/filter/resample.go +++ /dev/null @@ -1,23 +0,0 @@ -package filter - -import ( - "github.com/oakmound/oak/v3/audio/klang/filter/supports" -) - -// Speed modifies the filtered audio by a speed ratio, changing its sample rate -// in the process while maintaining pitch. -func Speed(ratio float64, pitchShifter PitchShifter) Encoding { - return func(senc supports.Encoding) { - r := ratio - for r < .5 { - r *= 2 - pitchShifter.PitchShift(.5)(senc) - } - for r > 2.0 { - r /= 2 - pitchShifter.PitchShift(2.0)(senc) - } - pitchShifter.PitchShift(1 / r)(senc) - ModSampleRate(ratio)(senc.GetSampleRate()) - } -} diff --git a/audio/klang/filter/sampleRate.go b/audio/klang/filter/sampleRate.go deleted file mode 100644 index 6400f528..00000000 --- a/audio/klang/filter/sampleRate.go +++ /dev/null @@ -1,27 +0,0 @@ -package filter - -import ( - "github.com/oakmound/oak/v3/audio/klang" - "github.com/oakmound/oak/v3/audio/klang/filter/supports" -) - -// A SampleRate is a function that takes in uint32 SampleRates -type SampleRate func(*uint32) - -// Apply checks that the given audio supports SampleRate, filters if it -// can, then returns -func (srf SampleRate) Apply(a klang.Audio) (klang.Audio, error) { - if ssr, ok := a.(supports.SampleRate); ok { - srf(ssr.GetSampleRate()) - return a, nil - } - return a, supports.NewUnsupported([]string{"SampleRate"}) -} - -// ModSampleRate might slow down or speed up a sample, but this will -// effect the perceived pitch of the sample. See Speed. -func ModSampleRate(mult float64) SampleRate { - return func(sr *uint32) { - *sr = uint32(float64(*sr) * mult) - } -} diff --git a/audio/klang/filter/supports/supports.go b/audio/klang/filter/supports/supports.go deleted file mode 100644 index 87221d32..00000000 --- a/audio/klang/filter/supports/supports.go +++ /dev/null @@ -1,39 +0,0 @@ -// Package supports holds interface types for filter supports. -package supports - -// Data types support filters that manipulate their raw audio data -type Data interface { - GetData() *[]byte -} - -// Loop types support filters that manipulate whether they loop -type Loop interface { - GetLoop() *bool -} - -// SampleRate types support filters that manipulate their SampleRate -type SampleRate interface { - GetSampleRate() *uint32 -} - -// BitDepth types support filters that manipulate bit depth. Probably -// only useful in combination as an encoding -type BitDepth interface { - GetBitDepth() *uint16 -} - -// Channels types support filters that manipulate channels. Probably -// only useful in combination as an encoding -type Channels interface { - GetChannels() *uint16 -} - -// Encoding types can get any variable on an audio.Encoding. They do -// not just return an audio.Encoding because that would be an import -// loop or another package to avoid said import loop. -type Encoding interface { - SampleRate - BitDepth - Data - Channels -} diff --git a/audio/klang/filter/supports/unsupported.go b/audio/klang/filter/supports/unsupported.go deleted file mode 100644 index 9fd2b875..00000000 --- a/audio/klang/filter/supports/unsupported.go +++ /dev/null @@ -1,20 +0,0 @@ -package supports - -// Unsupported is an error type reporting that a filter was not supported -// by the Audio type it was used on -type Unsupported struct { - filters []string -} - -// NewUnsupported returns an Unsupported error with the input filters -func NewUnsupported(filters []string) Unsupported { - return Unsupported{filters} -} - -func (un Unsupported) Error() string { - s := "Unsupported filters: " - for _, f := range un.filters { - s += f + " " - } - return s -} diff --git a/audio/klang/filter/volume.go b/audio/klang/filter/volume.go deleted file mode 100644 index 48ad79af..00000000 --- a/audio/klang/filter/volume.go +++ /dev/null @@ -1,66 +0,0 @@ -package filter - -import ( - "github.com/oakmound/oak/v3/audio/klang/filter/supports" - "github.com/oakmound/oak/v3/audio/klang/internal/manip" -) - -// Volume will magnify the data by mult, increasing or reducing the volume -// of the output sound. For mult <= 1 this should have no unexpected behavior, -// although for mult ~= 1 it might not have any effect. More importantly for -// mult > 1, values may result in the output data clipping over integer overflows, -// which is presumably not desired behavior. -func Volume(mult float64) Encoding { - return vol(0, 1, mult) -} - -// VolumeLeft acts like volume but reduces left channel volume only -func VolumeLeft(mult float64) Encoding { - return vol(0, 2, mult) -} - -// VolumeRight acts like volume but reduces left channel volume only -func VolumeRight(mult float64) Encoding { - return vol(1, 2, mult) -} - -func vol(init, inc int, mult float64) Encoding { - return mod(init, inc, func(f float64) float64 { - return f * mult - }) -} - -// VolumeBalance will filter audio on two channels such that the left channel -// is (l+r)/2 * lMult, and the right channel is (l+r)/2 * rMult -func VolumeBalance(lMult, rMult float64) Encoding { - return func(enc supports.Encoding) { - if *enc.GetChannels() != 2 { - return - } - data := enc.GetData() - d := *data - byteDepth := int(*enc.GetBitDepth() / 8) - switch byteDepth { - case 2: - for i := 0; i < len(d); i += (byteDepth * 2) { - var v int16 - var shift uint16 - for j := 0; j < byteDepth; j++ { - v += int16(int(d[i+j])+int(d[i+j+byteDepth])) / 2 << shift - shift += 8 - } - l := manip.Round(float64(v) * lMult) - r := manip.Round(float64(v) * rMult) - for j := 0; j < byteDepth; j++ { - d[i+j] = byte(l & 255) - d[i+j+byteDepth] = byte(r & 255) - l >>= 8 - r >>= 8 - } - } - default: - // log unsupported bit depth - } - *data = d - } -} diff --git a/audio/klang/format.go b/audio/klang/format.go deleted file mode 100644 index 04d1d271..00000000 --- a/audio/klang/format.go +++ /dev/null @@ -1,29 +0,0 @@ -package klang - -// Format stores the variables which are presumably -// constant for any given type of audio (wav / mp3 / flac ...) -type Format struct { - SampleRate uint32 - Channels uint16 - Bits uint16 -} - -// GetSampleRate satisfies supports.SampleRate -func (f *Format) GetSampleRate() *uint32 { - return &f.SampleRate -} - -// GetChannels satisfies supports.Channels -func (f *Format) GetChannels() *uint16 { - return &f.Channels -} - -// GetBitDepth satisfied supports.BitDepth -func (f *Format) GetBitDepth() *uint16 { - return &f.Bits -} - -// Wave takes in raw bytes and encodes them according to this format -func (f *Format) Wave(b []byte) (Audio, error) { - return EncodeBytes(Encoding{b, *f, CanLoop{}}) -} diff --git a/audio/klang/internal/manip/convert.go b/audio/klang/internal/manip/convert.go deleted file mode 100644 index 8fa912a1..00000000 --- a/audio/klang/internal/manip/convert.go +++ /dev/null @@ -1,10 +0,0 @@ -package manip - -func BytesToF64(data []byte, channels, bitRate uint16, channel int) []float64 { - byteDepth := bitRate / 8 - out := make([]float64, (len(data)/int(byteDepth*channels))+1) - for i := channel * int(byteDepth); i < len(data); i += int(byteDepth * channels) { - out[i/int(byteDepth*channels)] = GetFloat64(data, i, byteDepth) - } - return out -} diff --git a/audio/klang/internal/manip/math.go b/audio/klang/internal/manip/math.go deleted file mode 100644 index 54ba95e5..00000000 --- a/audio/klang/internal/manip/math.go +++ /dev/null @@ -1,38 +0,0 @@ -package manip - -func SetInt16(d []byte, i int, in int64) { - for j := 0; j < 2; j++ { - d[i+j] = byte(in & 255) - in >>= 8 - } -} - -func GetInt16(d []byte, i int) (out int16) { - var shift uint16 - for j := 0; j < 2; j++ { - out += int16(d[i+j]) << shift - shift += 8 - } - return -} - -func GetFloat64(d []byte, i int, byteDepth uint16) float64 { - switch byteDepth { - case 1: - return float64(int8(d[i])) / 128.0 - case 2: - return float64(GetInt16(d, i)) / 32768.0 - } - return 0.0 -} - -func SetInt16F64(d []byte, i int, in float64) { - SetInt16(d, i, int64(in*32768)) -} - -func Round(f float64) int64 { - if f < 0 { - return int64(f - .5) - } - return int64(f + .5) -} diff --git a/audio/klang/multi.go b/audio/klang/multi.go deleted file mode 100644 index 8f6726bd..00000000 --- a/audio/klang/multi.go +++ /dev/null @@ -1,108 +0,0 @@ -package klang - -import ( - "errors" - "time" -) - -// A Multi lets lists of audios be used simultaneously -type Multi struct { - Audios []Audio -} - -// NewMulti returns a new multi -func NewMulti(as ...Audio) *Multi { - return &Multi{Audios: as} -} - -// Play plays all audios in the Multi ASAP -func (m *Multi) Play() <-chan error { - extCh := make(chan error) - go func() { - // Todo: Propagating N errors? - for _, a := range m.Audios { - a.Play() - } - extCh <- nil - }() - return extCh -} - -// Filter applies all the given filters on everything in the Multi -func (m *Multi) Filter(fs ...Filter) (Audio, error) { - var err, consErr error - for i, a := range m.Audios { - m.Audios[i], err = a.Filter(fs...) - if err != nil { - consErr = errors.New(err.Error() + ":" + consErr.Error()) - } - } - return m, consErr -} - -// MustFilter acts like filter but ignores errors. -func (m *Multi) MustFilter(fs ...Filter) Audio { - a, _ := m.Filter(fs...) - return a -} - -func (m *Multi) SetVolume(vol int32) error { - for _, a := range m.Audios { - err := a.SetVolume(vol) - if err != nil { - return err - } - } - return nil -} - -// Stop stops all audios in the Multi. Any that fail will report an error. -func (m *Multi) Stop() error { - var err, consErr error - for _, a := range m.Audios { - err = a.Stop() - if err != nil { - if consErr == nil { - consErr = err - } else { - consErr = errors.New(err.Error() + ":" + consErr.Error()) - } - } - } - return consErr -} - -// Copy returns a copy of this Multi -func (m *Multi) Copy() (Audio, error) { - var err error - newAudios := make([]Audio, len(m.Audios)) - for i, a := range m.Audios { - newAudios[i], err = a.Copy() - if err != nil { - return nil, err - } - } - return &Multi{newAudios}, nil - -} - -// MustCopy acts like Copy but panics if error != nil -func (m *Multi) MustCopy() Audio { - m2, err := m.Copy() - if err != nil { - panic(err) - } - return m2 -} - -// PlayLength returns how long this audio will play for -func (m *Multi) PlayLength() time.Duration { - var d time.Duration - for _, a := range m.Audios { - d2 := a.PlayLength() - if d < d2 { - d = d2 - } - } - return d -} diff --git a/audio/klang/skip_devices.go b/audio/klang/skip_devices.go deleted file mode 100644 index b9008725..00000000 --- a/audio/klang/skip_devices.go +++ /dev/null @@ -1,19 +0,0 @@ -package klang - -import ( - "os" -) - -// SkipDevicesContaining is a environment variable controlled value -// which will cause audio devices containing the given string to be -// skipped when finding an audio device to play audio through. -// Currently only supported on linux. -// Todo: find a more elegant fix for bad audio devices being chosen -var SkipDevicesContaining = "HDMI" - -func init() { - skipDevices := os.Getenv("KGS_AUDIO_SKIP_DEVICES") - if skipDevices != "" { - SkipDevicesContaining = skipDevices - } -} diff --git a/audio/load_test.go b/audio/load_test.go deleted file mode 100644 index 0b16434f..00000000 --- a/audio/load_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package audio - -import "testing" - -func TestBatchLoad(t *testing.T) { - err := BatchLoad("testdata") - if err != nil { - t.Fatalf("expected batchload on valid path to succeed") - } - err = BlankBatchLoad("testdata") - if err != nil { - t.Fatalf("expected blank batchload on valid path to succeed: %v", err) - } - err = BatchLoad("GarbagePath") - if err == nil { - t.Fatalf("expected batchload on nonexistant path to fail") - } -} diff --git a/audio/mp3/mp3.go b/audio/mp3/mp3.go deleted file mode 100644 index 7e84b947..00000000 --- a/audio/mp3/mp3.go +++ /dev/null @@ -1,40 +0,0 @@ -// Package mp3 provides functionality to handle .mp3 files and .mp3 encoded data. -package mp3 - -import ( - "bytes" - "errors" - "io" - - audio "github.com/oakmound/oak/v3/audio/klang" - - haj "github.com/hajimehoshi/go-mp3" -) - -// Load loads an mp3-encoded reader into an audio -func Load(r io.ReadCloser) (audio.Audio, error) { - d, err := haj.NewDecoder(r) - if err != nil { - return nil, err - } - buf := bytes.NewBuffer(make([]byte, 0, d.Length())) - _, err = io.Copy(buf, d) - if err != nil { - return nil, err - } - mformat := audio.Format{ - SampleRate: uint32(d.SampleRate()), - Bits: 16, - Channels: 2, - } - return audio.EncodeBytes( - audio.Encoding{ - Data: buf.Bytes(), - Format: mformat, - }) -} - -// Save will eventually save an audio encoded as an MP3 to r -func Save(r io.ReadWriter, a audio.Audio) error { - return errors.New("Unsupported Functionality") -} diff --git a/audio/pcm/pcm.go b/audio/pcm.go similarity index 96% rename from audio/pcm/pcm.go rename to audio/pcm.go index ab78284e..ea0454c2 100644 --- a/audio/pcm/pcm.go +++ b/audio/pcm.go @@ -1,4 +1,4 @@ -package pcm +package audio import ( "context" @@ -6,6 +6,8 @@ import ( "fmt" "io" "time" + + "github.com/oakmound/oak/v3/audio/pcm" ) // WriterBufferLengthInSeconds defines how much data os-level writers provided by this package will rotate through @@ -61,7 +63,7 @@ var ErrMismatchedPCMFormat = fmt.Errorf("source and destination have differing P // cursor and write cursor; immediately upon this write, the writer should begin playback. Following this setup, a // sub-second amount of data will streamed from src to dst after waiting that same duration. These wait times can // be configured via PlayOptions. -func Play(ctx context.Context, dst Writer, src Reader, options ...PlayOption) error { +func Play(ctx context.Context, dst pcm.Writer, src pcm.Reader, options ...PlayOption) error { opts := defaultPlayOptions() for _, o := range options { o(&opts) diff --git a/audio/pcm/format.go b/audio/pcm/format.go deleted file mode 100644 index dd43e4f2..00000000 --- a/audio/pcm/format.go +++ /dev/null @@ -1,26 +0,0 @@ -package pcm - -// Format is a PCM format. Equivalent to klang.Format. -type Format struct { - SampleRate uint32 - Channels uint16 - Bits uint16 -} - -// PCMFormat returns this format. -func (f Format) PCMFormat() Format { - return f -} - -// The Formatted interface represents types that are aware of a PCM Format they expect or provide. -type Formatted interface { - // PCMFormat will return the Format used by an encoded audio or expected by an audio consumer. - // Implementations can embed a Format struct to simplify this. - PCMFormat() Format -} - -// BytesPerSecond returns how many bytes this format would be encoded into per second in an audio stream. -func (f Format) BytesPerSecond() uint32 { - blockAlign := f.Channels * f.Bits / 8 - return f.SampleRate * uint32(blockAlign) -} diff --git a/audio/pcm/interface.go b/audio/pcm/interface.go new file mode 100644 index 00000000..a449ac5a --- /dev/null +++ b/audio/pcm/interface.go @@ -0,0 +1,63 @@ +package pcm + +import "io" + +var _ Reader = &IOReader{} + +// A Reader mimics io.Reader for pcm data. +type Reader interface { + Formatted + ReadPCM(b []byte) (n int, err error) +} + +// An IOReader converts an io.Reader into a pcm.Reader +type IOReader struct { + Format + io.Reader +} + +func (ior *IOReader) ReadPCM(p []byte) (n int, err error) { + return ior.Read(p) +} + +// A Writer can have PCM formatted audio data written to it. It mimics io.Writer. +type Writer interface { + io.Closer + Formatted + // WritePCM expects PCM bytes matching the format this speaker was initialized with. + // WritePCM will block until all of the bytes are consumed. + WritePCM([]byte) (n int, err error) + // Reset must clear out any written data from buffers, without stopping playback + // TODO: do we need this? + Reset() error +} + +// The Formatted interface represents types that are aware of a PCM Format they expect or provide. +type Formatted interface { + // PCMFormat will return the Format used by an encoded audio or expected by an audio consumer. + // Implementations can embed a Format struct to simplify this. + PCMFormat() Format +} + +// Format is a PCM format; it defines how binary audio data should be converted into real audio. +type Format struct { + // SampleRate defines how many times per second a consumer should read a single value. An example + // of a common value for this is 44100 or 44.1khz. + SampleRate uint32 + // Channels defines how many concurrent audio channels are present in audio data. Common values are + // 1 for mono and 2 for stereo. + Channels uint16 + // Bits determines how many bits a single sample value takes up. 8, 16, and 32 are common values. + Bits uint16 +} + +// PCMFormat returns this format. +func (f Format) PCMFormat() Format { + return f +} + +// BytesPerSecond returns how many bytes this format would be encoded into per second in an audio stream. +func (f Format) BytesPerSecond() uint32 { + blockAlign := f.Channels * f.Bits / 8 + return f.SampleRate * uint32(blockAlign) +} diff --git a/audio/pcm/writer.go b/audio/pcm/writer.go deleted file mode 100644 index 375570bc..00000000 --- a/audio/pcm/writer.go +++ /dev/null @@ -1,20 +0,0 @@ -package pcm - -import "io" - -// NewWriter returns a writer which can accept audio streamed matching the given format -func NewWriter(f Format) (Writer, error) { - return newWriter(f) -} - -// A Writer can have PCM formatted audio data written to it. It mimics io.Writer. -type Writer interface { - io.Closer - Formatted - // WritePCM expects PCM bytes matching the format this speaker was initialized with. - // WritePCM will block until all of the bytes are consumed. - WritePCM([]byte) (n int, err error) - // Reset must clear out any written data from buffers, without stopping playback - // TODO: do we need this? - Reset() error -} diff --git a/audio/pcm/pcm_test.go b/audio/pcm_test.go similarity index 76% rename from audio/pcm/pcm_test.go rename to audio/pcm_test.go index 17598fae..630d72ae 100644 --- a/audio/pcm/pcm_test.go +++ b/audio/pcm_test.go @@ -1,4 +1,4 @@ -package pcm_test +package audio_test import ( "context" @@ -9,13 +9,14 @@ import ( "testing" "time" + "github.com/oakmound/oak/v3/audio" + "github.com/oakmound/oak/v3/audio/format/wav" "github.com/oakmound/oak/v3/audio/pcm" "github.com/oakmound/oak/v3/audio/synth" - "github.com/oakmound/oak/v3/audio/wav" ) func TestMain(m *testing.M) { - err := pcm.InitDefault() + err := audio.InitDefault() if err != nil { fmt.Println(err) os.Exit(1) @@ -29,31 +30,26 @@ func TestLoopingWav(t *testing.T) { t.Fatalf("failed to open test file: %v", err) } defer f.Close() - kfmt, err := wav.ReadFormat(f) + wavReader, err := wav.Load(f) if err != nil { t.Fatalf("failed to read wav header in file: %v", err) } - format := pcm.Format{ - SampleRate: kfmt.SampleRate, - Channels: kfmt.Channels, - Bits: kfmt.Bits, - } - w, err := pcm.NewWriter(format) + w, err := audio.NewWriter(wavReader.PCMFormat()) if err != nil { t.Fatalf("failed to create pcm writer: %v", err) } - r := pcm.LoopReader(&pcm.IOReader{ - Format: format, - Reader: f, - }) ctx, cancel := context.WithCancel(context.Background()) go func() { - err = pcm.Play(ctx, w, r) + err = audio.Play(ctx, w, audio.LoopReader(wavReader)) if err != nil { t.Errorf("failed to play: %v", err) } }() - time.Sleep(10 * time.Second) + if testing.Short() { + time.Sleep(100 * time.Millisecond) + } else { + time.Sleep(10 * time.Second) + } fmt.Println("stopping") cancel() time.Sleep(1 * time.Second) @@ -65,7 +61,7 @@ func TestLoopingSin(t *testing.T) { Channels: 2, Bits: 16, } - w, err := pcm.NewWriter(format) + w, err := audio.NewWriter(format) if err != nil { t.Fatalf("failed to create pcm writer: %v", err) } @@ -78,18 +74,22 @@ func TestLoopingSin(t *testing.T) { wave[i] = int16(s.Volume * math.Sin(s.Phase(i))) } b := bytesFromInts(wave, int(s.Channels)) - r := pcm.LoopReader(&pcm.BytesReader{ + r := audio.LoopReader(&audio.BytesReader{ Buffer: b, Format: format, }) ctx, cancel := context.WithCancel(context.Background()) go func() { - err = pcm.Play(ctx, w, r) + err = audio.Play(ctx, w, r) if err != nil { t.Errorf("failed to play: %v", err) } }() - time.Sleep(10 * time.Second) + if testing.Short() { + time.Sleep(100 * time.Millisecond) + } else { + time.Sleep(10 * time.Second) + } fmt.Println("stopping") cancel() time.Sleep(1 * time.Second) diff --git a/audio/play.go b/audio/play.go deleted file mode 100644 index f2ce1fb1..00000000 --- a/audio/play.go +++ /dev/null @@ -1,28 +0,0 @@ -package audio - -import ( - "github.com/oakmound/oak/v3/audio/font" - "github.com/oakmound/oak/v3/dlog" -) - -// DefaultFont is the font used for default functions. It can be publicly -// modified to apply a default font to generated audios through def -// methods. If it is not modified, it is a font of zero filters. -var DefaultFont = font.New() - -// Play is shorthand for Get followed by Play on the DefaultCache. -func Play(f *font.Font, filename string) error { - ad, err := DefaultCache.Get(filename) - if err == nil { - a := New(f, ad) - a.Play() - } else { - dlog.Error(err) - } - return err -} - -// DefaultPlay is shorthand for Play(DefaultFont, filename) -func DefaultPlay(filename string) error { - return Play(DefaultFont, filename) -} diff --git a/audio/play_test.go b/audio/play_test.go deleted file mode 100644 index 46e53d6e..00000000 --- a/audio/play_test.go +++ /dev/null @@ -1,38 +0,0 @@ -package audio - -import ( - "path/filepath" - "testing" - "time" -) - -func TestPlayAndLoad(t *testing.T) { - _, err := Load(filepath.Join("testdata", "test.wav")) - if err != nil { - t.Fatalf("failed to load test.wav") - } - _, err = Load("badfile.wav") - if err == nil { - t.Fatalf("expected loading badfile to fail") - } - _, err = Load("play_test.go") - if err == nil { - t.Fatalf("expected loading non-wav file to fail") - } - err = Play(DefaultFont, "test.wav") - if err != nil { - t.Fatalf("failed to play test.wav (1)") - } - time.Sleep(1 * time.Second) - err = DefaultPlay("test.wav") - if err != nil { - t.Fatalf("failed to play test.wav (2)") - } - time.Sleep(1 * time.Second) - // Assert something was played twice - DefaultCache.Clear("test.wav") - err = Play(DefaultFont, "test.wav") - if err == nil { - t.Fatalf("expected playing unloaded test.wav to fail") - } -} diff --git a/audio/posFilter.go b/audio/posFilter.go deleted file mode 100644 index 7efa15ed..00000000 --- a/audio/posFilter.go +++ /dev/null @@ -1,52 +0,0 @@ -package audio - -import ( - "github.com/oakmound/oak/v3/audio/klang" - "github.com/oakmound/oak/v3/audio/klang/filter" - "github.com/oakmound/oak/v3/audio/klang/filter/supports" - "github.com/oakmound/oak/v3/physics" -) - -// SupportsPos is a type used by filters to check that the audio they are given -// has a position. -type SupportsPos interface { - supports.Encoding - Xp() *float64 - Yp() *float64 -} - -var ( - _ klang.Filter = Pos(func(SupportsPos) {}) -) - -// Pos functions are filters that require a SupportsPos interface -type Pos func(SupportsPos) - -// Apply is a function allowing Pos to satisfy the audio.Filter interface. -// Pos applies itself to any audio it is given that supports it. -func (xp Pos) Apply(a klang.Audio) (klang.Audio, error) { - if sxp, ok := a.(SupportsPos); ok { - xp(sxp) - return a, nil - } - return a, nil //, supports.NewUnsupported([]string{"Pos"}) -} - -// PosFilter is the only Pos generating function right now. It takes in ears -// to listen from and changes incoming audio to be quiter and panned based -// on positional relation to those ears. -func PosFilter(e *Ears) Pos { - return func(sp SupportsPos) { - filter.AssertStereo()(sp) - x := sp.Xp() - if x != nil { - p := e.CalculatePan(*x) - filter.Pan(p)(sp) - y := sp.Yp() - if y != nil { - v := e.CalculateVolume(physics.NewVector(*x, *y)) - filter.Volume(v)(sp) - } - } - } -} diff --git a/audio/posFilter_test.go b/audio/posFilter_test.go deleted file mode 100644 index 05f49eeb..00000000 --- a/audio/posFilter_test.go +++ /dev/null @@ -1,60 +0,0 @@ -package audio - -import ( - "testing" - "time" - - "github.com/oakmound/oak/v3/audio/font" - "github.com/oakmound/oak/v3/audio/synth" -) - -func TestPosFilter(t *testing.T) { - kla, err := synth.Int16.Sin() - if err != nil { - t.Fatalf("expected sin wave creation to succeed") - } - x, y := new(float64), new(float64) - a := New(DefaultFont, kla.(Data), x, y) - x2 := 100.0 - y2 := 100.0 - DefaultFont.Filter(PosFilter(NewEars(&x2, &y2, 100, 300))) - err = <-a.Play() - if err != nil { - t.Fatalf("expected playing sin wave to succeed") - } - time.Sleep(a.PlayLength()) - // Assert left ear hears audio - x2 -= 200 - err = <-a.Play() - if err != nil { - t.Fatalf("expected playing sin wave (2) to succeed") - } - time.Sleep(a.PlayLength()) - // Assert right ear hears audio - y2 += 500 - err = <-a.Play() - if err != nil { - t.Fatalf("expected playing sin wave (3) to succeed") - } - time.Sleep(a.PlayLength()) - // Assert nothing is heard - *DefaultFont = *font.New() - DefaultFont.Filter(PosFilter(NewEars(&x2, &y2, 100, 2000))) - x2 -= 200 - err = <-a.Play() - if err != nil { - t.Fatalf("expected playing sin wave (4) to succeed") - } - time.Sleep(a.PlayLength()) - // Assert right ear hears audio - x2 += 1000 - err = <-a.Play() - if err != nil { - t.Fatalf("expected playing sin wave (5) to succeed") - } - time.Sleep(a.PlayLength()) - // Assert left ear hears audio - - _, _ = kla.Filter(PosFilter(NewEars(&x2, &y2, 0, 0))) - // assert.NotNil(t, err) -} diff --git a/audio/pcm/reader.go b/audio/reader.go similarity index 65% rename from audio/pcm/reader.go rename to audio/reader.go index be973946..12b777a5 100644 --- a/audio/pcm/reader.go +++ b/audio/reader.go @@ -1,22 +1,17 @@ -package pcm +package audio import ( "errors" "io" -) -var _ Reader = &LoopingReader{} -var _ Reader = &BytesReader{} -var _ Reader = &IOReader{} + "github.com/oakmound/oak/v3/audio/pcm" +) -// A Reader mimics io.Reader for pcm data. -type Reader interface { - Formatted - ReadPCM(b []byte) (n int, err error) -} +var _ pcm.Reader = &LoopingReader{} +var _ pcm.Reader = &BytesReader{} // LoopReader will cache read bytes as they are read and resend them after the reader returns EOF. -func LoopReader(r Reader) Reader { +func LoopReader(r pcm.Reader) pcm.Reader { return &LoopingReader{Reader: r} } @@ -24,7 +19,7 @@ func LoopReader(r Reader) Reader { // from the reader will be cached after read within the LoopingReader structure, potentially inflating memory // if provided a large stream. type LoopingReader struct { - Reader + pcm.Reader buffer []byte bufferPos int eofReached bool @@ -59,7 +54,7 @@ func (l *LoopingReader) ReadPCM(p []byte) (n int, err error) { // A BytesReader acts like a bytes.Buffer for converting raw []bytes into pcm Readers. type BytesReader struct { - Format + pcm.Format Buffer []byte Offset int } @@ -74,15 +69,49 @@ func (b *BytesReader) ReadPCM(p []byte) (n int, err error) { return len(p), nil } +func (b *BytesReader) Copy() *BytesReader { + copyBuff := make([]byte, len(b.Buffer)) + copy(b.Buffer, copyBuff) + return &BytesReader{ + Format: b.Format, + Buffer: b.Buffer, + Offset: b.Offset, + } +} + +// ReadAll will read all of the content within a reader and convert it into a BytesReader. Use carefully; use on +// a LoopingReader or reader which generates its data (e.g. synth types) will likely read until OOM. +func ReadAll(r pcm.Reader) *BytesReader { + b := make([]byte, 0, 512) + for { + if len(b) == cap(b) { + // Add more capacity (let append pick how much). + b = append(b, 0)[:len(b)] + } + n, err := r.ReadPCM(b[len(b):cap(b)]) + b = b[:len(b)+n] + if err != nil { + if err == io.EOF { + err = nil + } + break + } + } + return &BytesReader{ + Format: r.PCMFormat(), + Buffer: b, + } +} + // ReadFull acts like io.ReadFull with a pcm Reader. It will read until the provided buffer // is competely populated by the reader. -func ReadFull(r Reader, buf []byte) (n int, err error) { +func ReadFull(r pcm.Reader, buf []byte) (n int, err error) { return ReadAtLeast(r, buf, len(buf)) } // ReadAtLeast acts like io.ReadAtLeast with a pcm Reader. It will read until at least min // bytes have been read into the provided buffer. -func ReadAtLeast(r Reader, buf []byte, min int) (n int, err error) { +func ReadAtLeast(r pcm.Reader, buf []byte, min int) (n int, err error) { if len(buf) < min { return 0, io.ErrShortBuffer } @@ -99,12 +128,3 @@ func ReadAtLeast(r Reader, buf []byte, min int) (n int, err error) { return } -// An IOReader converts an io.Reader into a pcm.Reader -type IOReader struct { - Format - io.Reader -} - -func (ior *IOReader) ReadPCM(p []byte) (n int, err error) { - return ior.Read(p) -} diff --git a/audio/sequence/sequence.go b/audio/sequence/sequence.go index 4cb14b66..642a4e8d 100644 --- a/audio/sequence/sequence.go +++ b/audio/sequence/sequence.go @@ -5,7 +5,7 @@ import ( "errors" "time" - audio "github.com/oakmound/oak/v3/audio/klang" + "github.com/oakmound/oak/v3/audio" ) // A Sequence is a timed pattern of simultaneously played audios. @@ -13,7 +13,7 @@ type Sequence struct { // Sequences play patterns of audio // everything at Pattern[0] will be simultaneously Play()ed at // Sequence.Play() - Pattern []*audio.Multi + Pattern []audio.Reader patternIndex int // Every tick, the next index in Pattern will be played by a Sequence // until the pattern is over. @@ -51,38 +51,10 @@ func (s *Sequence) Play() <-chan error { return ch } -// Filter for a sequence does nothing yet -func (s *Sequence) Filter(fs ...audio.Filter) (audio.Audio, error) { - // Filter on a sequence just applies the filter to all audios.. - // but it can't do that always, what if the filter is Loop? - // this implies two kinds of filters? - // this doesn't work because FIlter is not an interface - // for _, f := range fs { - // if _, ok := f.(audio.Loop); ok { - // s.loop = true - // } else if _, ok := f.(audio.NoLoop); ok { - // s.loop = false - // } else { - // for _, col := range s.Pattern { - // for _, a := range col { - // a.Filter(f) - // } - // } - // } - // } - return s, nil -} - func (s *Sequence) SetVolume(int32) error { return errors.New("unsupported") } -// MustFilter acts as filter, but does not respect errors. -func (s *Sequence) MustFilter(fs ...audio.Filter) audio.Audio { - a, _ := s.Filter(fs...) - return a -} - // Stop stops a sequence func (s *Sequence) Stop() error { s.stopCh <- nil diff --git a/audio/synth/source.go b/audio/synth/source.go index 52777157..2c643486 100644 --- a/audio/synth/source.go +++ b/audio/synth/source.go @@ -3,12 +3,12 @@ package synth import ( "time" - audio "github.com/oakmound/oak/v3/audio/klang" + "github.com/oakmound/oak/v3/audio/pcm" ) -// A Source stores necessary information for generating audio and waveform data +// A Source stores necessary information for generating waveform data type Source struct { - audio.Format + pcm.Format Pitch Pitch // Volume, between 0.0 -> 1.0 Volume float64 @@ -38,10 +38,11 @@ func (s Source) Update(opts ...Option) Source { var ( // Int16 is a default source for building 16-bit audio Int16 = Source{ - Format: audio.Format{ + Format: pcm.Format{ SampleRate: 44100, Channels: 2, - Bits: 16, + // within a source, if Bits is not specified, it'll default to 16. + Bits: 16, }, Pitch: A4, Volume: .25, diff --git a/audio/synth/waves.go b/audio/synth/waves.go index 7834457c..11e8aefd 100644 --- a/audio/synth/waves.go +++ b/audio/synth/waves.go @@ -4,79 +4,26 @@ package synth import ( "math" - audio "github.com/oakmound/oak/v3/audio/klang" "github.com/oakmound/oak/v3/audio/pcm" - "github.com/oakmound/oak/v3/oakerr" ) // Wave functions take a set of options and return an audio -type Wave func(opts ...Option) (audio.Audio, error) +type Wave func(opts ...Option) pcm.Reader // Sourced from https://en.wikibooks.org/wiki/Sound_Synthesis_Theory/Oscillators_and_Wavetables func phase(freq Pitch, i int, sampleRate uint32) float64 { return float64(freq) * (float64(i) / float64(sampleRate)) * 2 * math.Pi } -func bytesFromInts(is []int16, channels int) []byte { - wave := make([]byte, len(is)*channels*2) - for i := 0; i < len(wave); i += channels * 2 { - wave[i] = byte(is[i/4] % 256) - wave[i+1] = byte(is[i/4] >> 8) - // duplicate the contents across all channels - for c := 1; c < channels; c++ { - wave[i+(2*c)] = wave[i] - wave[i+(2*c)+1] = wave[i+1] - } - } - wave = append(wave, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) - return wave -} - // Sin produces a Sin wave // __ // -- -- // / \ //--__-- --__-- -func (s Source) Sin(opts ...Option) (audio.Audio, error) { - s = s.Update(opts...) - var b []byte - switch s.Bits { - case 16: - s.Volume *= math.MaxInt16 - wave := make([]int16, int(s.Seconds*float64(s.SampleRate))) - for i := 0; i < len(wave); i++ { - wave[i] = int16(s.sinAtIndex(i)) - } - b = bytesFromInts(wave, int(s.Channels)) - } - return s.Wave(b) -} - -// SinPCM acts like Sin, but returns a PCM type instead of a klang type. -func (s Source) SinPCM(opts ...Option) (pcm.Reader, error) { - switch s.Bits { - case 16: - s.Volume *= math.MaxInt16 - return &Wave16Reader{ - Source: s.Update(opts...), - waveFunc: func(s Source, idx int) int16 { - return int16(s.sinAtIndex(idx)) - }, - }, nil - case 32: - s.Volume *= math.MaxInt32 - return &Wave32Reader{ - Source: s.Update(opts...), - waveFunc: func(s Source, idx int) int32 { - return int32(s.sinAtIndex(idx)) - }, - }, nil - } - return nil, oakerr.InvalidInput{InputName: "s.Bits"} -} - -func (s Source) sinAtIndex(idx int) float64 { - return s.Volume * math.Sin(s.modPhase(idx)) +func (s Source) Sin(opts ...Option) pcm.Reader { + return s.Wave(func(s Source, idx int) float64 { + return s.Volume * math.Sin(s.modPhase(idx)) + }, opts...) } // Pulse acts like Square when given a pulse of 2, when given any lesser @@ -86,176 +33,101 @@ func (s Source) sinAtIndex(idx int) float64 { // __ __ // || || // ____||____||____ -func (s Source) Pulse(pulse float64) Wave { +func (s Source) Pulse(pulse float64) func(opts ...Option) pcm.Reader { pulseSwitch := 1 - 2/pulse - return func(opts ...Option) (audio.Audio, error) { - s = s.Update(opts...) - - var b []byte - switch s.Bits { - case 16: - wave := make([]int16, int(s.Seconds*float64(s.SampleRate))) - for i := range wave { - // alternatively phase % 2pi - if math.Sin(s.Phase(i)) > pulseSwitch { - wave[i] = int16(s.Volume) - } else { - wave[i] = int16(-s.Volume) - } + return func(opts ...Option) pcm.Reader { + return s.Wave(func(s Source, idx int) float64 { + if math.Sin(s.Phase(idx)) > pulseSwitch { + return s.Volume } - b = bytesFromInts(wave, int(s.Channels)) - } - return s.Wave(b) - } -} - -// PulsePCM acts like Pulse, but returns a PCM type instead of a klang type. -func (s Source) PulsePCM(pulse float64) func(opts ...Option) (pcm.Reader, error) { - switch s.Bits { - case 16: - s.Volume *= math.MaxInt16 - case 32: - s.Volume *= math.MaxInt32 - } - pulseSwitch := 1 - 2/pulse - return func(opts ...Option) (pcm.Reader, error) { - switch s.Bits { - case 16: - return &Wave16Reader{ - Source: s.Update(opts...), - waveFunc: func(s Source, idx int) int16 { - if math.Sin(s.Phase(idx)) > pulseSwitch { - return int16(s.Volume) - } - return int16(-s.Volume) - }, - }, nil - case 32: - return &Wave32Reader{ - Source: s.Update(opts...), - waveFunc: func(s Source, idx int) int32 { - if math.Sin(s.Phase(idx)) > pulseSwitch { - return int32(s.Volume) - } - return int32(-s.Volume) - }, - }, nil - } - return nil, oakerr.InvalidInput{InputName: "s.Bits"} + return -s.Volume + }, opts...) } } -// Square produces a Square wave -// -// _________ -// | | -// ______| |________ -func (s Source) Square(opts ...Option) (audio.Audio, error) { - return s.Pulse(2)(opts...) -} - // Saw produces a saw wave // // ^ ^ ^ // / | / | / // / |/ |/ -func (s Source) Saw(opts ...Option) (audio.Audio, error) { - s = s.Update(opts...) +func (s Source) Saw(opts ...Option) pcm.Reader { + return s.Wave(func(s Source, idx int) float64 { + return s.Volume - (s.Volume / math.Pi * math.Mod(s.Phase(idx), 2*math.Pi)) + }, opts...) +} - var b []byte - switch s.Bits { - case 16: - s.Volume *= math.MaxInt16 - wave := make([]int16, int(s.Seconds*float64(s.SampleRate))) - for i := range wave { - wave[i] = int16(s.Volume - (s.Volume / math.Pi * math.Mod(s.Phase(i), 2*math.Pi))) +// Triangle produces a Triangle wave +// +// ^ ^ +// / \ / \ +// v v v +func (s Source) Triangle(opts ...Option) pcm.Reader { + return s.Wave(func(s Source, idx int) float64 { + p := s.modPhase(idx) + m := p * (2 * s.Volume / math.Pi) + if math.Sin(p) > 0 { + return -s.Volume + m + } + return 3*s.Volume - m + }, opts...) +} + +func (s Source) modPhase(idx int) float64 { + return math.Mod(s.Phase(idx), 2*math.Pi) +} + +// Could have pulse triangle + +type Wave8Reader struct { + Source + lastIndex int + waveFunc func(s Source, idx int) int8 +} + +func (pr *Wave8Reader) ReadPCM(b []byte) (n int, err error) { + bytesPerI8 := int(pr.Channels) + for i := 0; i+bytesPerI8 <= len(b); i += bytesPerI8 { + i8 := pr.waveFunc(pr.Source, pr.lastIndex) + pr.lastIndex++ + for c := 0; c < int(pr.Channels); c++ { + b[i+c] = byte(i8) } - b = bytesFromInts(wave, int(s.Channels)) + n += bytesPerI8 } - return s.Wave(b) + return } -// SawPCM acts like Saw, but returns a PCM type instead of a klang type. -func (s Source) SawPCM(opts ...Option) (pcm.Reader, error) { +func (s Source) Wave(waveFn func(s Source, idx int) float64, opts ...Option) pcm.Reader { switch s.Bits { - case 16: - s.Volume *= math.MaxInt16 - return &Wave16Reader{ + case 8: + s.Volume *= math.MaxInt8 + return &Wave8Reader{ Source: s.Update(opts...), - waveFunc: func(s Source, idx int) int16 { - return int16(s.Volume - (s.Volume / math.Pi * math.Mod(s.Phase(idx), 2*math.Pi))) + waveFunc: func(s Source, idx int) int8 { + return int8(waveFn(s, idx)) }, - }, nil + } case 32: s.Volume *= math.MaxInt32 return &Wave32Reader{ Source: s.Update(opts...), waveFunc: func(s Source, idx int) int32 { - return int32(s.Volume - (s.Volume / math.Pi * math.Mod(s.Phase(idx), 2*math.Pi))) + return int32(waveFn(s, idx)) }, - }, nil - } - return nil, oakerr.InvalidInput{InputName: "s.Bits"} -} - -// Triangle produces a Triangle wave -// -// ^ ^ -// / \ / \ -// v v v -func (s Source) Triangle(opts ...Option) (audio.Audio, error) { - s = s.Update(opts...) - var b []byte - switch s.Bits { - case 16: - s.Volume *= math.MaxInt16 - wave := make([]int16, int(s.Seconds*float64(s.SampleRate))) - for i := range wave { - wave[i] = int16(s.triangleAtIndex(i)) } - b = bytesFromInts(wave, int(s.Channels)) - } - return s.Wave(b) -} - -// TrianglePCM acts like Triangle, but returns a PCM type instead of a klang type. -func (s Source) TrianglePCM(opts ...Option) (pcm.Reader, error) { - switch s.Bits { case 16: + fallthrough + default: s.Volume *= math.MaxInt16 return &Wave16Reader{ Source: s.Update(opts...), waveFunc: func(s Source, idx int) int16 { - return int16(s.triangleAtIndex(idx)) - }, - }, nil - case 32: - s.Volume *= math.MaxInt32 - return &Wave32Reader{ - Source: s.Update(opts...), - waveFunc: func(s Source, idx int) int32 { - return int32(s.triangleAtIndex(idx)) + return int16(waveFn(s, idx)) }, - }, nil - } - return nil, oakerr.InvalidInput{InputName: "s.Bits"} -} - -func (s Source) triangleAtIndex(idx int) float64 { - p := s.modPhase(idx) - m := p * (2 * s.Volume / math.Pi) - if math.Sin(p) > 0 { - return -s.Volume + m + } } - return 3*s.Volume - m } -func (s Source) modPhase(idx int) float64 { - return math.Mod(s.Phase(idx), 2*math.Pi) -} - -// Could have pulse triangle - type Wave16Reader struct { Source lastIndex int @@ -276,14 +148,6 @@ func (pr *Wave16Reader) ReadPCM(b []byte) (n int, err error) { return } -func (pr *Wave16Reader) PCMFormat() pcm.Format { - return pcm.Format{ - SampleRate: pr.SampleRate, - Channels: pr.Channels, - Bits: pr.Bits, - } -} - type Wave32Reader struct { Source lastIndex int @@ -305,11 +169,3 @@ func (pr *Wave32Reader) ReadPCM(b []byte) (n int, err error) { } return } - -func (pr *Wave32Reader) PCMFormat() pcm.Format { - return pcm.Format{ - SampleRate: pr.SampleRate, - Channels: pr.Channels, - Bits: pr.Bits, - } -} diff --git a/audio/wav/testdata/test.wav b/audio/wav/testdata/test.wav deleted file mode 100644 index 85eabf659597078d73eb8579de2bbe4cfc9c7672..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368684 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

eilEA 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 z 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%0D~riWS(@vIqDAPi)RR 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

5xXZP9;{MGj` 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 kN_VK&28|wLj=Y#zkHSwlfomic) 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 NdJ;H;a17XY_#dRjfOr4^ diff --git a/audio/writer.go b/audio/writer.go new file mode 100644 index 00000000..0fd773c7 --- /dev/null +++ b/audio/writer.go @@ -0,0 +1,10 @@ +package audio + +import ( + "github.com/oakmound/oak/v3/audio/pcm" +) + +// NewWriter returns a writer which can accept audio streamed matching the given format +func NewWriter(f pcm.Format) (pcm.Writer, error) { + return newWriter(f) +} diff --git a/audio/pcm/writer_windows.go b/audio/writer_dsound.go similarity index 95% rename from audio/pcm/writer_windows.go rename to audio/writer_dsound.go index b7b1cff8..ae803783 100644 --- a/audio/pcm/writer_windows.go +++ b/audio/writer_dsound.go @@ -1,13 +1,14 @@ //go:build windows -package pcm +package audio import ( "fmt" "io" "sync" - "github.com/oakmound/oak/v3/audio/wininternal" + intdsound "github.com/oakmound/oak/v3/audio/internal/dsound" + "github.com/oakmound/oak/v3/audio/pcm" "github.com/oakmound/oak/v3/oakerr" "github.com/oov/directsound-go/dsound" ) @@ -23,7 +24,7 @@ func initOS(driver Driver) error { Operation: "pcm.Init:" + driver.String(), } } - cfg, err := wininternal.Init() + cfg, err := intdsound.Init() if err != nil { return err } @@ -33,7 +34,7 @@ func initOS(driver Driver) error { var directSoundInterface *dsound.IDirectSound -func newWriter(f Format) (Writer, error) { +func newWriter(f pcm.Format) (pcm.Writer, error) { if directSoundInterface == nil { return nil, oakerr.NotFound{ InputName: "directSoundInterface", @@ -69,7 +70,7 @@ func newWriter(f Format) (Writer, error) { type directSoundWriter struct { sync.Mutex - Format + pcm.Format buff *dsound.IDirectSoundBuffer lockedOffset uint32 bufferSize uint32 diff --git a/audio/pcm/writer_other.go b/audio/writer_other.go similarity index 95% rename from audio/pcm/writer_other.go rename to audio/writer_other.go index adebd1fe..70b53202 100644 --- a/audio/pcm/writer_other.go +++ b/audio/writer_other.go @@ -1,6 +1,6 @@ //go:build !windows && !linux && !darwin -package pcm +package audio import "github.com/oakmound/oak/v3/oakerr" diff --git a/audio/pcm/writer_pulse.go b/audio/writer_pulse.go similarity index 99% rename from audio/pcm/writer_pulse.go rename to audio/writer_pulse.go index 98355bc1..5d85b719 100644 --- a/audio/pcm/writer_pulse.go +++ b/audio/writer_pulse.go @@ -1,6 +1,6 @@ //go:build linux || darwin -package pcm +package audio import ( "bytes" diff --git a/examples/piano/main.go b/examples/piano/main.go index ef045b8e..4dbb67c0 100644 --- a/examples/piano/main.go +++ b/examples/piano/main.go @@ -10,7 +10,7 @@ import ( "sync" "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/audio/klang" + "github.com/oakmound/oak/v3/audio" "github.com/oakmound/oak/v3/audio/pcm" "github.com/oakmound/oak/v3/audio/synth" "github.com/oakmound/oak/v3/dlog" @@ -142,7 +142,7 @@ var keycharOrder = []key.Code{ var playLock sync.Mutex var cancelFuncs = map[synth.Pitch]func(){} -var synthKind func(...synth.Option) (pcm.Reader, error) +var synthKind synth.Wave func playPitch(ctx *scene.Context, pitch synth.Pitch) { playLock.Lock() @@ -150,10 +150,10 @@ func playPitch(ctx *scene.Context, pitch synth.Pitch) { if cancel, ok := cancelFuncs[pitch]; ok { cancel() } - a, _ := synthKind(synth.AtPitch(pitch)) - toPlay := pcm.LoopReader(a) + a := synthKind(synth.AtPitch(pitch)) + toPlay := audio.LoopReader(a) format := toPlay.PCMFormat() - speaker, err := pcm.NewWriter(format) + speaker, err := audio.NewWriter(format) if err != nil { fmt.Println("new writer failed:", err) return @@ -163,7 +163,7 @@ func playPitch(ctx *scene.Context, pitch synth.Pitch) { render.Draw(monitor) gctx, cancel := context.WithCancel(ctx) go func() { - err = pcm.Play(gctx, monitor, toPlay) + err = audio.Play(gctx, monitor, toPlay) if err != nil { fmt.Println("play error:", err) } @@ -183,7 +183,7 @@ func releasePitch(pitch synth.Pitch) { } func main() { - err := pcm.InitDefault() + err := audio.InitDefault() if err != nil { fmt.Println("init failed:", err) os.Exit(1) @@ -192,12 +192,12 @@ func main() { oak.AddScene("piano", scene.Scene{ Start: func(ctx *scene.Context) { src := synth.Int16 - src.Format = klang.Format{ - SampleRate: 40000, + src.Format = pcm.Format{ + SampleRate: 80000, Channels: 2, Bits: 32, } - synthKind = src.SinPCM + synthKind = src.Sin pitch := synth.C3 kc := keyColorWhite x := 20.0 @@ -223,16 +223,18 @@ func main() { i++ } // Consider: Adding volume control - codeKinds := map[key.Code]func(...synth.Option) (pcm.Reader, error){ - key.S: src.SinPCM, - key.W: src.SawPCM, - key.T: src.TrianglePCM, - key.P: src.PulsePCM(2), + codeKinds := map[key.Code]func(src synth.Source) synth.Wave{ + key.S: func(src synth.Source) synth.Wave { return src.Sin }, + key.W: func(src synth.Source) synth.Wave { return src.Saw }, + key.T: func(src synth.Source) synth.Wave { return src.Triangle }, + key.P: func(src synth.Source) synth.Wave { return src.Pulse(2) }, } for kc, synfn := range codeKinds { + kc := kc + synfn := synfn event.GlobalBind(ctx, key.Down(kc), func(ev key.Event) event.Response { if ev.Modifiers&key.ModShift == key.ModShift { - synthKind = synfn + synthKind = synfn(src) } return 0 }) @@ -255,6 +257,19 @@ func main() { globalMagnification += 0.05 return 0 }) + event.GlobalBind(ctx, key.Down(key.Keypad0), func(_ key.Event) event.Response { + // TODO: synth all sound like pulse waves at 8 bit + src.Bits = 8 + return 0 + }) + event.GlobalBind(ctx, key.Down(key.Keypad1), func(_ key.Event) event.Response { + src.Bits = 16 + return 0 + }) + event.GlobalBind(ctx, key.Down(key.Keypad2), func(_ key.Event) event.Response { + src.Bits = 32 + return 0 + }) }, }) oak.Init("piano", func(c oak.Config) (oak.Config, error) { @@ -282,7 +297,7 @@ func newPCMMonitor(ctx *scene.Context, w pcm.Writer) *pcmMonitor { Writer: w, Format: w.PCMFormat(), LayeredPoint: render.NewLayeredPoint(0, 0, 0), - written: make([]byte, fmt.BytesPerSecond()*pcm.WriterBufferLengthInSeconds), + written: make([]byte, fmt.BytesPerSecond()*audio.WriterBufferLengthInSeconds), } return pm } @@ -316,6 +331,9 @@ func (pm *pcmMonitor) Draw(buf draw.Image, xOff, yOff float64) { var val int16 switch pm.Format.Bits { + case 8: + val8 := pm.written[wIndex] + val = int16(val8) << 8 case 16: wIndex -= wIndex % 2 val = int16(pm.written[wIndex+1])<<8 + diff --git a/go.mod b/go.mod index f8b12964..db3449b1 100644 --- a/go.mod +++ b/go.mod @@ -3,19 +3,19 @@ module github.com/oakmound/oak/v3 go 1.18 require ( - dmitri.shuralyov.com/gpu/mtl v0.0.0-20201218220906-28db891af037 - github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc - github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 - github.com/disintegration/gift v1.2.0 - github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1 - github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb + dmitri.shuralyov.com/gpu/mtl v0.0.0-20201218220906-28db891af037 // osx, shiny + github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc // linux, shiny + github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 // linux, shiny + github.com/disintegration/gift v1.2.0 // render + github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1 + github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb // osx, shiny github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 - github.com/hajimehoshi/go-mp3 v0.3.1 - github.com/jfreymuth/pulse v0.1.0 - github.com/oakmound/alsa v0.0.2 - github.com/oakmound/libudev v0.2.1 - github.com/oakmound/w32 v2.1.0+incompatible - github.com/oov/directsound-go v0.0.0-20141101201356-e53e59c700bf + github.com/hajimehoshi/go-mp3 v0.3.1 + github.com/jfreymuth/pulse v0.1.0 // linux, audio + github.com/oakmound/alsa v0.0.2 // linux, audio + github.com/oakmound/libudev v0.2.1 // linux, joystick + github.com/oakmound/w32 v2.1.0+incompatible // windows, shiny + github.com/oov/directsound-go v0.0.0-20141101201356-e53e59c700bf // windows, audio golang.org/x/image v0.0.0-20201208152932-35266b937fa6 golang.org/x/mobile v0.0.0-20220112015953-858099ff7816 golang.org/x/sync v0.0.0-20210220032951-036812b2e83c From 32bee02dc6b2b399b846b28b36578e85d94d2d8a Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Tue, 5 Apr 2022 14:00:09 -0500 Subject: [PATCH 067/146] audio: add work in progress alsa driver option --- audio/driver.go | 2 + audio/driver_test.go | 1 + audio/{init_nix.go => init_darwin.go} | 10 +- audio/init_linux.go | 53 +++++++++ audio/writer_alsa.go | 150 ++++++++++++++++++++++++++ audio/writer_js.go | 142 ++++++++++++++++++++++++ audio/writer_pulse.go | 6 +- 7 files changed, 361 insertions(+), 3 deletions(-) rename audio/{init_nix.go => init_darwin.go} (75%) create mode 100644 audio/init_linux.go create mode 100644 audio/writer_alsa.go create mode 100644 audio/writer_js.go diff --git a/audio/driver.go b/audio/driver.go index 7e62d528..fb860a86 100644 --- a/audio/driver.go +++ b/audio/driver.go @@ -10,12 +10,14 @@ const ( DriverDefault Driver = iota DriverPulse DriverDirectSound + DriverALSA ) var driverNames = map[Driver]string{ DriverPulse: "pulseaudio", DriverDirectSound: "directsound", DriverDefault: "default", + DriverALSA: "alsa", } func (d Driver) String() string { diff --git a/audio/driver_test.go b/audio/driver_test.go index ff7add27..befb7baf 100644 --- a/audio/driver_test.go +++ b/audio/driver_test.go @@ -7,6 +7,7 @@ func TestDriver_String(t *testing.T) { DriverDefault, DriverDirectSound, DriverPulse, + DriverALSA, } for _, d := range drivers { if d.String() == "" { diff --git a/audio/init_nix.go b/audio/init_darwin.go similarity index 75% rename from audio/init_nix.go rename to audio/init_darwin.go index 61f4bc90..cd4c922b 100644 --- a/audio/init_nix.go +++ b/audio/init_darwin.go @@ -1,10 +1,13 @@ -//go:build linux || darwin +//go:build darwin package audio import ( + "fmt" + "github.com/jfreymuth/pulse" "github.com/oakmound/oak/v3/oakerr" + "github.com/oakmound/oak/v3/audio/pcm" ) func initOS(driver Driver) error { @@ -26,6 +29,7 @@ func initOS(driver Driver) error { if err != nil { return err } + newWriter = newPulseWriter default: return oakerr.UnsupportedPlatform{ Operation: "pcm.Init:" + driver.String(), @@ -33,3 +37,7 @@ func initOS(driver Driver) error { } return nil } + +var newWriter = func(f pcm.Format) (pcm.Writer, error) { + return nil, fmt.Errorf("this package has not been initialized") +} diff --git a/audio/init_linux.go b/audio/init_linux.go new file mode 100644 index 00000000..33646b18 --- /dev/null +++ b/audio/init_linux.go @@ -0,0 +1,53 @@ +//go:build linux + +package audio + +import ( + "fmt" + "os" + + "github.com/jfreymuth/pulse" + "github.com/oakmound/oak/v3/audio/pcm" + "github.com/oakmound/oak/v3/oakerr" +) + +func initOS(driver Driver) error { + switch driver { + case DriverDefault: + fallthrough + case DriverPulse: + // Sanity check that pulse is installed and a sink is defined + client, err := pulse.NewClient() + if err != nil { + // osx: brew install pulseaudio + // linux: sudo apt install pulseaudio + return oakerr.UnsupportedPlatform{ + Operation: "pcm.Init:" + driver.String(), + } + } + defer client.Close() + _, err = client.DefaultSink() + if err != nil { + return err + } + newWriter = newPulseWriter + case DriverALSA: + //??? + newWriter = newALSAWriter + if skipDevices := os.Getenv("OAK_SKIP_AUDIO_DEVICES"); skipDevices != "" { + SkipDevicesContaining = skipDevices + } + default: + return oakerr.UnsupportedPlatform{ + Operation: "pcm.Init:" + driver.String(), + } + } + return nil +} + +var newWriter = func(f pcm.Format) (pcm.Writer, error) { + return nil, fmt.Errorf("this package has not been initialized") +} + +// TODO: do other drivers need this? Can we pick devices more intelligently? +var SkipDevicesContaining string = "HDMI" diff --git a/audio/writer_alsa.go b/audio/writer_alsa.go new file mode 100644 index 00000000..3ef5421d --- /dev/null +++ b/audio/writer_alsa.go @@ -0,0 +1,150 @@ +//go:build linux +// +build linux + +package audio + +import ( + "errors" + "strings" + "sync" + + "github.com/oakmound/alsa" + "github.com/oakmound/oak/v3/audio/pcm" +) + +func newALSAWriter(f pcm.Format) (pcm.Writer, error) { + handle, err := openDevice() + if err != nil { + return nil, err + } + // Todo: annotate these errors with more info + format, err := alsaFormat(f.Bits) + if err != nil { + return nil, err + } + _, err = handle.NegotiateFormat(format) + if err != nil { + return nil, err + } + _, err = handle.NegotiateRate(int(f.SampleRate)) + if err != nil { + return nil, err + } + _, err = handle.NegotiateChannels(int(f.Channels)) + if err != nil { + return nil, err + } + // Default value at recommendation of library + period, err := handle.NegotiatePeriodSize(2048) + if err != nil { + return nil, err + } + _, err = handle.NegotiateBufferSize(4096) + if err != nil { + return nil, err + } + err = handle.Prepare() + if err != nil { + return nil, err + } + return &alsaWriter{ + Format: f, + period: period, + Device: handle, + }, nil +} + +type alsaWriter struct { + sync.Mutex + pcm.Format + *alsa.Device + playing bool + period int +} + +var ( + // Todo: support more customized audio device usage + openDeviceLock sync.Mutex + openedDevice *alsa.Device +) + +func openDevice() (*alsa.Device, error) { + openDeviceLock.Lock() + defer openDeviceLock.Unlock() + + if openedDevice != nil { + return openedDevice, nil + } + cards, err := alsa.OpenCards() + if err != nil { + return nil, err + } + defer alsa.CloseCards(cards) + for i, c := range cards { + devices, err := c.Devices() + if err != nil { + continue + } + for _, d := range devices { + if d.Type != alsa.PCM || !d.Play { + continue + } + if strings.Contains(d.Title, SkipDevicesContaining) { + continue + } + d.Close() + err := d.Open() + if err != nil { + continue + } + // We've a found a device we can hypothetically use + // don't close this card + cards = append(cards[:i], cards[i+1:]...) + openedDevice = d + return d, nil + } + } + return nil, errors.New("No valid device found") +} + +func alsaFormat(bits uint16) (alsa.FormatType, error) { + switch bits { + case 8: + return alsa.S8, nil + case 16: + return alsa.S16_LE, nil + case 32: + return alsa.S32_LE, nil + } + return 0, errors.New("Undefined alsa format for encoding bits") +} + +func (aw *alsaWriter) Close() error { + aw.Lock() + defer aw.Unlock() + var err error + if aw.playing { + aw.playing = false + } + return err +} + +func (aw *alsaWriter) Reset() error { + aw.Lock() + defer aw.Unlock() + // ??? + return nil +} + +func (aw *alsaWriter) WritePCM(data []byte) (n int, err error) { + aw.Lock() + defer aw.Unlock() + err = aw.Device.Write(data, aw.period) + if err != nil { + return 0, err + } + if !aw.playing { + aw.playing = true + } + return len(data), err +} diff --git a/audio/writer_js.go b/audio/writer_js.go new file mode 100644 index 00000000..cc7d6ef5 --- /dev/null +++ b/audio/writer_js.go @@ -0,0 +1,142 @@ +//go:build js + +package audio + +import ( + "fmt" + "math" + "sync" + "sync/atomic" + "syscall/js" + + "github.com/oakmound/oak/v3/oakerr" +) + +func initOS() error { + return nil +} + +var processorIndex int32 + +func newWriter(f Format) (Writer, error) { + if f.Bits != 32 { + return nil, oakerr.InvalidInput{ + InputName: "f.Bits", + } + } + window := js.Global() + actxConstruct := window.Get("AudioContext") + if actxConstruct.IsUndefined() || actxConstruct.IsNull() { + actxConstruct = window.Get("webkitAudioContext") + } + audioCtx := actxConstruct.New(map[string]interface{}{ + "latencyHint": "interactive", + "sampleRate": f.SampleRate, + }) + + processorName := "oakPCM" + strconv.Itoa(int(atomic.Add(&processorIndex, 1))) + window.Call("registerProcessor", processorName, "js class?") + audioCtx.Get("audioWorklet").Call("addModule", processorName) + + audioBuffer := audioCtx.Call("createBuffer", f.Channels, f.SampleRate*WriterBufferLengthInSeconds, f.SampleRate) + source := audioCtx.Call("createBufferSource") + + channelData := make([]js.Value, f.Channels) + for i := 0; i < int(f.Channels); i++ { + channelData[i] = audioBuffer.Call("getChannelData", i) + + } + + return &jsWriter{ + Format: f, + bufferSize: f.BytesPerSecond() * WriterBufferLengthInSeconds, + audioCtx: audioCtx, + buffer: audioBuffer, + channelData: channelData, + source: source, + }, nil +} + +type jsWriter struct { + sync.Mutex + Format + buffer js.Value + channelData []js.Value // Float32Array + source js.Value + audioCtx js.Value + lockedOffset uint32 + bufferSize uint32 + writeChannel int + writeOffset int + playing bool +} + +func (jsw *jsWriter) Close() error { + jsw.Lock() + defer jsw.Unlock() + + // we can't release this object? + if jsw.playing { + jsw.source.Call("stop") + } + return nil +} + +func (jsw *jsWriter) Reset() error { + jsw.Lock() + defer jsw.Unlock() + // emptyBuff := make([]byte, jsw.bufferSize) + // a, b, err := jsw.buff.LockBytes(0, jsw.bufferSize, 0) + // if err != nil { + // return err + // } + // copy(a, emptyBuff) + // if len(b) != 0 { + // copy(b, emptyBuff) + // } + // err = jsw.buff.UnlockBytes(a, b) + // jsw.Seek(0, io.SeekStart) + + //jsw.audioBuffer.Call("copyToChannel") + // make it a []float32 array somehow // then a byte array? or just convert + // from byte to float32 adaptively + return nil +} + +func (jsw *jsWriter) WritePCM(data []byte) (n int, err error) { + jsw.Lock() + defer jsw.Unlock() + + // we cannot write less than four bytes -- float32 + readAt := 0 + for len(data[readAt:]) >= 4 { + u32 := uint32(data[readAt]) + + uint32(data[readAt+1])<<8 + + uint32(data[readAt+2])<<16 + + uint32(data[readAt+3])<<24 + f32 := float32(u32) / float32(math.MaxInt32) + + jsw.channelData[jsw.writeChannel].SetIndex(jsw.writeOffset, f32) + + readAt += 4 + jsw.writeChannel++ + jsw.writeChannel %= int(jsw.Channels) + if jsw.writeChannel == 0 { + jsw.writeOffset++ + if jsw.writeOffset >= int((jsw.bufferSize/4)/uint32(jsw.Channels)) { + jsw.writeOffset = 0 + } + } + } + + jsw.source.Set("buffer", jsw.buffer) + if !jsw.playing { + fmt.Println("start playing") + jsw.playing = true + jsw.source.Set("loop", true) + jsw.source.Call("connect", jsw.audioCtx.Get("destination")) + jsw.source.Call("start") + } + + return readAt, nil +} diff --git a/audio/writer_pulse.go b/audio/writer_pulse.go index 5d85b719..2ed5e51e 100644 --- a/audio/writer_pulse.go +++ b/audio/writer_pulse.go @@ -10,12 +10,14 @@ import ( "github.com/jfreymuth/pulse" "github.com/jfreymuth/pulse/proto" + + "github.com/oakmound/oak/v3/audio/pcm" ) // This mutex may be unneeded var newWriterMutex sync.Mutex -func newWriter(f Format) (Writer, error) { +func newPulseWriter(f pcm.Format) (pcm.Writer, error) { newWriterMutex.Lock() defer newWriterMutex.Unlock() // TODO: @@ -89,7 +91,7 @@ func (m *eofFReader) Read(b []byte) (n int, err error) { type pulseWriter struct { sync.Mutex - Format + pcm.Format handOver *eofFReader playBack *pulse.PlaybackStream client *pulse.Client From fdf9eef2ab39dff4ca7c135c13d285572957d6f9 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Tue, 5 Apr 2022 15:51:54 -0500 Subject: [PATCH 068/146] audio: add detuning and fading --- audio/fade.go | 146 ++++++++++++++++++++++++++++ audio/{pcm.go => play.go} | 31 +++++- audio/{pcm_test.go => play_test.go} | 0 audio/synth/filter.go | 22 +++++ audio/synth/filter_test.go | 41 ++++++++ audio/writer.go | 9 ++ audio/writer_dsound.go | 2 +- examples/piano/main.go | 6 +- 8 files changed, 252 insertions(+), 5 deletions(-) create mode 100644 audio/fade.go rename audio/{pcm.go => play.go} (84%) rename audio/{pcm_test.go => play_test.go} (100%) create mode 100644 audio/synth/filter.go create mode 100644 audio/synth/filter_test.go diff --git a/audio/fade.go b/audio/fade.go new file mode 100644 index 00000000..8abc91e2 --- /dev/null +++ b/audio/fade.go @@ -0,0 +1,146 @@ +package audio + +import ( + "time" + + "github.com/oakmound/oak/v3/audio/pcm" +) + +func FadeIn(dur time.Duration, in pcm.Reader) pcm.Reader { + perSec := in.PCMFormat().BytesPerSecond() + bytesToFadeIn := int((time.Duration(perSec) / 1000) * (dur / time.Millisecond)) + + return &fadeInReader{ + Reader: in, + toFadeIn: bytesToFadeIn, + totalToFadeIn: bytesToFadeIn, + } +} + +type fadeInReader struct { + pcm.Reader + toFadeIn, totalToFadeIn int +} + +func (fir *fadeInReader) ReadPCM(b []byte) (n int, err error) { + if fir.toFadeIn == 0 { + return fir.Reader.ReadPCM(b) + } + read, err := fir.Reader.ReadPCM(b) + if err != nil { + return read, err + } + format := fir.PCMFormat() + switch format.Bits { + case 8: + for i, byt := range b[:read] { + fadeInPercent := (float64(fir.totalToFadeIn) - float64(fir.toFadeIn)) / float64(fir.totalToFadeIn) + if fadeInPercent >= 1 { + fadeInPercent = 1 + } + b[i] = byte(int8(float64(int8(byt)) * fadeInPercent)) + fir.toFadeIn-- + } + case 16: + for i := 0; i+2 <= read; i += 2 { + fadeInPercent := (float64(fir.totalToFadeIn) - float64(fir.toFadeIn)) / float64(fir.totalToFadeIn) + if fadeInPercent >= 1 { + fadeInPercent = 1 + } + i16 := int16(b[i]) + (int16(b[i+1]) << 8) + new16 := int16(float64(i16) * fadeInPercent) + b[i] = byte(new16) + b[i+1] = byte(new16 >> 8) + fir.toFadeIn -= 2 + } + case 32: + for i := 0; i+4 <= read; i += 4 { + fadeInPercent := (float64(fir.totalToFadeIn) - float64(fir.toFadeIn)) / float64(fir.totalToFadeIn) + if fadeInPercent >= 1 { + fadeInPercent = 1 + } + i32 := int32(b[i]) + + (int32(b[i+1]) << 8) + + (int32(b[i+2]) << 16) + + (int32(b[i+3]) << 24) + new32 := int32(float64(i32) * fadeInPercent) + b[i] = byte(new32) + b[i+1] = byte(new32 >> 8) + b[i+2] = byte(new32 >> 16) + b[i+3] = byte(new32 >> 24) + fir.toFadeIn -= 4 + } + } + return read, nil +} + +func FadeOut(dur time.Duration, in pcm.Reader) pcm.Reader { + perSec := in.PCMFormat().BytesPerSecond() + bytestoFadeOut := int((time.Duration(perSec) / 1000) * (dur / time.Millisecond)) + + return &fadeOutReader{ + Reader: in, + toFadeOut: bytestoFadeOut, + totaltoFadeOut: bytestoFadeOut, + } +} + +type fadeOutReader struct { + pcm.Reader + toFadeOut, totaltoFadeOut int +} + +func (fir *fadeOutReader) ReadPCM(b []byte) (n int, err error) { + if fir.toFadeOut == 0 { + return fir.Reader.ReadPCM(b) + } + read, err := fir.Reader.ReadPCM(b) + if err != nil { + return read, err + } + format := fir.PCMFormat() + switch format.Bits { + case 8: + for i, byt := range b[:read] { + fadeOutPercent := float64(fir.toFadeOut) / float64(fir.totaltoFadeOut) + if fadeOutPercent <= 0 { + fadeOutPercent = 0 + } + b[i] = byte(int8(float64(int8(byt)) * fadeOutPercent)) + fir.toFadeOut-- + } + case 16: + for i := 0; i+2 <= read; i += 2 { + fadeOutPercent := float64(fir.toFadeOut) / float64(fir.totaltoFadeOut) + if fadeOutPercent <= 0 { + fadeOutPercent = 0 + } + i16 := int16(b[i]) + (int16(b[i+1]) << 8) + new16 := int16(float64(i16) * fadeOutPercent) + b[i] = byte(new16) + b[i+1] = byte(new16 >> 8) + fir.toFadeOut -= 2 + } + case 32: + for i := 0; i+4 <= read; i += 4 { + fadeOutPercent := float64(fir.toFadeOut) / float64(fir.totaltoFadeOut) + if fadeOutPercent <= 0 { + fadeOutPercent = 0 + } + i32 := int32(b[i]) + + (int32(b[i+1]) << 8) + + (int32(b[i+2]) << 16) + + (int32(b[i+3]) << 24) + new32 := int32(float64(i32) * fadeOutPercent) + b[i] = byte(new32) + b[i+1] = byte(new32 >> 8) + b[i+2] = byte(new32 >> 16) + b[i+3] = byte(new32 >> 24) + fir.toFadeOut -= 4 + } + } + return read, nil +} + +var _ pcm.Reader = &fadeOutReader{} +var _ pcm.Reader = &fadeInReader{} diff --git a/audio/pcm.go b/audio/play.go similarity index 84% rename from audio/pcm.go rename to audio/play.go index ea0454c2..5cf096fa 100644 --- a/audio/pcm.go +++ b/audio/play.go @@ -12,7 +12,7 @@ import ( // WriterBufferLengthInSeconds defines how much data os-level writers provided by this package will rotate through // in a theoretical circular buffer. -const WriterBufferLengthInSeconds = 1 +const WriterBufferLengthInSeconds float64 = 1 // InitDefault calls Init with the following value by OS: // windows: DriverDirectSound @@ -45,12 +45,15 @@ type PlayOptions struct { // If AllowMismatchedFormats is false, Play will error when a reader's PCM format // disagrees with a writer's expected PCM format. Defaults to false. AllowMismatchedFormats bool + + FadeOutOnStop time.Duration } func defaultPlayOptions() PlayOptions { return PlayOptions{ CopyIncrement: 125 * time.Millisecond, ChaseIncrements: 2, + FadeOutOnStop: 200 * time.Millisecond, } } @@ -98,7 +101,31 @@ func Play(ctx context.Context, dst pcm.Writer, src pcm.Reader, options ...PlayOp for { select { case <-ctx.Done(): - return nil + if opts.FadeOutOnStop == 0 { + return nil + } else { + src = FadeOut(opts.FadeOutOnStop, src) + stopAt := time.NewTimer(opts.FadeOutOnStop * 2) + defer stopAt.Stop() + for { + select { + case <-stopAt.C: + return nil + case <-tick.C: + _, err := ReadFull(src, buf) + if errors.Is(err, io.EOF) { + return nil + } + if err != nil { + return fmt.Errorf("failed to read: %w", err) + } + _, err = dst.WritePCM(buf) + if err != nil { + return fmt.Errorf("failed to write: %w", err) + } + } + } + } case <-tick.C: _, err := ReadFull(src, buf) if errors.Is(err, io.EOF) { diff --git a/audio/pcm_test.go b/audio/play_test.go similarity index 100% rename from audio/pcm_test.go rename to audio/play_test.go diff --git a/audio/synth/filter.go b/audio/synth/filter.go new file mode 100644 index 00000000..40c863db --- /dev/null +++ b/audio/synth/filter.go @@ -0,0 +1,22 @@ +package synth + +// Detune detunes between -1.0 and 1.0, 1.0 representing a half step up. +// Q: What is detuning? A: It's taking the pitch of the audio and adjusting it less than +// a single tone up or down. If you detune too far, you've just made the next pitch, +// but if you detune a little, you get a resonant sound. +func Detune(percent float64) func(src Source) Source { + return func(src Source) Source { + curPitch := src.Pitch + var nextPitch Pitch + if percent > 0 { + nextPitch = curPitch.Up(HalfStep) + } else { + nextPitch = curPitch.Down(HalfStep) + } + rawDelta := float64(int16(curPitch) - int16(nextPitch)) + delta := rawDelta * percent + // TODO: does pitch need to be a float? + src.Pitch = Pitch(float64(curPitch) + delta) + return src + } +} diff --git a/audio/synth/filter_test.go b/audio/synth/filter_test.go new file mode 100644 index 00000000..acfd67ae --- /dev/null +++ b/audio/synth/filter_test.go @@ -0,0 +1,41 @@ +package synth + +import ( + "context" + "os" + "testing" + "time" + + "github.com/oakmound/oak/v3/audio" +) + +func TestMain(m *testing.M) { + err := audio.InitDefault() + if err != nil { + panic(err) + } + os.Exit(m.Run()) +} + +func TestFilters(t *testing.T) { + src := Int16 + // Todo: really gotta fix the sample rate evenness thing + src.SampleRate = 40000 + src.Volume = .07 + + fadeInFrames := time.Second + + w := audio.MustNewWriter(src.PCMFormat()) + loopSrc := audio.FadeIn(fadeInFrames, audio.LoopReader(src.Saw())) + go audio.Play(context.Background(), w, loopSrc) + + w2 := audio.MustNewWriter(src.PCMFormat()) + loopSrc2 := audio.FadeIn(fadeInFrames, audio.LoopReader(src.Saw(Detune(.04)))) + go audio.Play(context.Background(), w2, loopSrc2) + + w3 := audio.MustNewWriter(src.PCMFormat()) + loopSrc3 := audio.FadeIn(fadeInFrames, audio.LoopReader(src.Saw(Detune(.05)))) + go audio.Play(context.Background(), w3, loopSrc3) + + time.Sleep(3 * time.Second) +} diff --git a/audio/writer.go b/audio/writer.go index 0fd773c7..2af11c4c 100644 --- a/audio/writer.go +++ b/audio/writer.go @@ -8,3 +8,12 @@ import ( func NewWriter(f pcm.Format) (pcm.Writer, error) { return newWriter(f) } + +// MustNewWriter calls NewWriter and panics if an error is returned. +func MustNewWriter(f pcm.Format) pcm.Writer { + w, err := NewWriter(f) + if err != nil { + panic(err) + } + return w +} diff --git a/audio/writer_dsound.go b/audio/writer_dsound.go index ae803783..aef8a814 100644 --- a/audio/writer_dsound.go +++ b/audio/writer_dsound.go @@ -42,7 +42,7 @@ func newWriter(f pcm.Format) (pcm.Writer, error) { } blockAlign := f.Channels * f.Bits / 8 - bufferSize := f.BytesPerSecond() * WriterBufferLengthInSeconds + bufferSize := uint32(float64(f.BytesPerSecond()) * WriterBufferLengthInSeconds) dsbuff, err := directSoundInterface.CreateSoundBuffer(&dsound.BufferDesc{ // These flags cover everything we should ever want to do diff --git a/examples/piano/main.go b/examples/piano/main.go index 4dbb67c0..f36bbd0a 100644 --- a/examples/piano/main.go +++ b/examples/piano/main.go @@ -8,6 +8,7 @@ import ( "math" "os" "sync" + "time" "github.com/oakmound/oak/v3" "github.com/oakmound/oak/v3/audio" @@ -163,7 +164,8 @@ func playPitch(ctx *scene.Context, pitch synth.Pitch) { render.Draw(monitor) gctx, cancel := context.WithCancel(ctx) go func() { - err = audio.Play(gctx, monitor, toPlay) + fadeIn := audio.FadeIn(100*time.Millisecond, toPlay) + err = audio.Play(gctx, monitor, fadeIn) if err != nil { fmt.Println("play error:", err) } @@ -297,7 +299,7 @@ func newPCMMonitor(ctx *scene.Context, w pcm.Writer) *pcmMonitor { Writer: w, Format: w.PCMFormat(), LayeredPoint: render.NewLayeredPoint(0, 0, 0), - written: make([]byte, fmt.BytesPerSecond()*audio.WriterBufferLengthInSeconds), + written: make([]byte, int(float64(fmt.BytesPerSecond())*audio.WriterBufferLengthInSeconds)), } return pm } From 73beaca0d0f3f5aec9c222d3f8e6982efa297558 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Tue, 5 Apr 2022 16:15:43 -0500 Subject: [PATCH 069/146] audio/synth: add noise generator --- audio/synth/waves.go | 15 +++++++++++++++ examples/piano/main.go | 1 + 2 files changed, 16 insertions(+) diff --git a/audio/synth/waves.go b/audio/synth/waves.go index 11e8aefd..8cce79fc 100644 --- a/audio/synth/waves.go +++ b/audio/synth/waves.go @@ -3,10 +3,19 @@ package synth import ( "math" + "math/rand" "github.com/oakmound/oak/v3/audio/pcm" ) +// TODO: for super saw +// De tune +// Fine tune +// Voice unison +// Pitch up +// High pass filter +// Noise generator + // Wave functions take a set of options and return an audio type Wave func(opts ...Option) pcm.Reader @@ -72,6 +81,12 @@ func (s Source) Triangle(opts ...Option) pcm.Reader { }, opts...) } +func (s Source) Noise(opts ...Option) pcm.Reader { + return s.Wave(func(s Source, idx int) float64 { + return ((rand.Float64() * 2) - 1) * s.Volume + }, opts...) +} + func (s Source) modPhase(idx int) float64 { return math.Mod(s.Phase(idx), 2*math.Pi) } diff --git a/examples/piano/main.go b/examples/piano/main.go index f36bbd0a..198fb372 100644 --- a/examples/piano/main.go +++ b/examples/piano/main.go @@ -230,6 +230,7 @@ func main() { key.W: func(src synth.Source) synth.Wave { return src.Saw }, key.T: func(src synth.Source) synth.Wave { return src.Triangle }, key.P: func(src synth.Source) synth.Wave { return src.Pulse(2) }, + key.N: func(src synth.Source) synth.Wave { return src.Noise }, } for kc, synfn := range codeKinds { kc := kc From 5682f7c177d38c07a84627a615274b0ae3d4a5bd Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Tue, 5 Apr 2022 19:07:53 -0500 Subject: [PATCH 070/146] audio: refine interface to reduce clipping on windows --- audio/pcm/interface.go | 3 -- audio/play.go | 45 ++++++++++++++----- audio/play_test.go | 13 +----- audio/synth/filter_test.go | 17 +++---- audio/writer_alsa.go | 7 --- audio/writer_dsound.go | 36 --------------- audio/writer_pulse.go | 7 --- examples/piano/main.go | 92 ++++++++++++++++++++++++++------------ 8 files changed, 107 insertions(+), 113 deletions(-) diff --git a/audio/pcm/interface.go b/audio/pcm/interface.go index a449ac5a..d60d38b1 100644 --- a/audio/pcm/interface.go +++ b/audio/pcm/interface.go @@ -27,9 +27,6 @@ type Writer interface { // WritePCM expects PCM bytes matching the format this speaker was initialized with. // WritePCM will block until all of the bytes are consumed. WritePCM([]byte) (n int, err error) - // Reset must clear out any written data from buffers, without stopping playback - // TODO: do we need this? - Reset() error } // The Formatted interface represents types that are aware of a PCM Format they expect or provide. diff --git a/audio/play.go b/audio/play.go index 5cf096fa..d38f4e11 100644 --- a/audio/play.go +++ b/audio/play.go @@ -12,7 +12,7 @@ import ( // WriterBufferLengthInSeconds defines how much data os-level writers provided by this package will rotate through // in a theoretical circular buffer. -const WriterBufferLengthInSeconds float64 = 1 +const WriterBufferLengthInSeconds float64 = .5 // InitDefault calls Init with the following value by OS: // windows: DriverDirectSound @@ -31,6 +31,10 @@ type PlayOption func(*PlayOptions) // PlayOptions define ways to configure how playback of some audio proceeds type PlayOptions struct { + FadeOutOnStop time.Duration + + Destination pcm.Writer + // The span of data that should be copied from reader to writer // at a time. If too low, may lose accuracy on windows. If too high, // may require manual resets when changing audio sources. @@ -46,14 +50,15 @@ type PlayOptions struct { // disagrees with a writer's expected PCM format. Defaults to false. AllowMismatchedFormats bool - FadeOutOnStop time.Duration + ClearBufferOnStop bool } func defaultPlayOptions() PlayOptions { return PlayOptions{ - CopyIncrement: 125 * time.Millisecond, - ChaseIncrements: 2, - FadeOutOnStop: 200 * time.Millisecond, + CopyIncrement: 50 * time.Millisecond, + ChaseIncrements: 2, + FadeOutOnStop: 75 * time.Millisecond, + ClearBufferOnStop: true, } } @@ -66,18 +71,25 @@ var ErrMismatchedPCMFormat = fmt.Errorf("source and destination have differing P // cursor and write cursor; immediately upon this write, the writer should begin playback. Following this setup, a // sub-second amount of data will streamed from src to dst after waiting that same duration. These wait times can // be configured via PlayOptions. -func Play(ctx context.Context, dst pcm.Writer, src pcm.Reader, options ...PlayOption) error { +func Play(ctx context.Context, src pcm.Reader, options ...PlayOption) error { opts := defaultPlayOptions() for _, o := range options { o(&opts) } - format := dst.PCMFormat() + if opts.Destination == nil { + var err error + opts.Destination, err = NewWriter(src.PCMFormat()) + if err != nil { + return err + } + defer opts.Destination.Close() + } + format := opts.Destination.PCMFormat() if !opts.AllowMismatchedFormats { if srcFormat := src.PCMFormat(); srcFormat != format { return ErrMismatchedPCMFormat } } - defer dst.Reset() buf := make([]byte, format.BytesPerSecond()/uint32(time.Second/opts.CopyIncrement)) for i := 0; i < opts.ChaseIncrements; i++ { // TODO: some formats may expect a minimum buffer size (synth waveforms expect a buffer size of @@ -90,7 +102,7 @@ func Play(ctx context.Context, dst pcm.Writer, src pcm.Reader, options ...PlayOp if err != nil { return fmt.Errorf("failed to read: %w", err) } - _, err = dst.WritePCM(buf) + _, err = opts.Destination.WritePCM(buf) if err != nil { return fmt.Errorf("failed to write: %w", err) } @@ -98,6 +110,17 @@ func Play(ctx context.Context, dst pcm.Writer, src pcm.Reader, options ...PlayOp tick := time.NewTicker(opts.CopyIncrement) defer tick.Stop() + // Once we're done, keep writing empty data until the buffer is cleared, unless told not to + // Do not clear this buffer immediately! You will clear audio data that is actively playing, which will clip! + if opts.ClearBufferOnStop { + defer func() { + buf = make([]byte, format.BytesPerSecond()/uint32(time.Second/opts.CopyIncrement)) + for totalDur := time.Duration(0); totalDur < time.Duration(float64(time.Second)*WriterBufferLengthInSeconds); totalDur += opts.CopyIncrement { + <-tick.C + opts.Destination.WritePCM(buf) + } + }() + } for { select { case <-ctx.Done(): @@ -119,7 +142,7 @@ func Play(ctx context.Context, dst pcm.Writer, src pcm.Reader, options ...PlayOp if err != nil { return fmt.Errorf("failed to read: %w", err) } - _, err = dst.WritePCM(buf) + _, err = opts.Destination.WritePCM(buf) if err != nil { return fmt.Errorf("failed to write: %w", err) } @@ -134,7 +157,7 @@ func Play(ctx context.Context, dst pcm.Writer, src pcm.Reader, options ...PlayOp if err != nil { return fmt.Errorf("failed to read: %w", err) } - _, err = dst.WritePCM(buf) + _, err = opts.Destination.WritePCM(buf) if err != nil { return fmt.Errorf("failed to write: %w", err) } diff --git a/audio/play_test.go b/audio/play_test.go index 630d72ae..5042f82e 100644 --- a/audio/play_test.go +++ b/audio/play_test.go @@ -34,13 +34,9 @@ func TestLoopingWav(t *testing.T) { if err != nil { t.Fatalf("failed to read wav header in file: %v", err) } - w, err := audio.NewWriter(wavReader.PCMFormat()) - if err != nil { - t.Fatalf("failed to create pcm writer: %v", err) - } ctx, cancel := context.WithCancel(context.Background()) go func() { - err = audio.Play(ctx, w, audio.LoopReader(wavReader)) + err = audio.Play(ctx, audio.LoopReader(wavReader)) if err != nil { t.Errorf("failed to play: %v", err) } @@ -61,11 +57,6 @@ func TestLoopingSin(t *testing.T) { Channels: 2, Bits: 16, } - w, err := audio.NewWriter(format) - if err != nil { - t.Fatalf("failed to create pcm writer: %v", err) - } - s := synth.Int16 s.Volume *= 65535 / 4 @@ -80,7 +71,7 @@ func TestLoopingSin(t *testing.T) { }) ctx, cancel := context.WithCancel(context.Background()) go func() { - err = audio.Play(ctx, w, r) + err := audio.Play(ctx, r) if err != nil { t.Errorf("failed to play: %v", err) } diff --git a/audio/synth/filter_test.go b/audio/synth/filter_test.go index acfd67ae..ef078d3f 100644 --- a/audio/synth/filter_test.go +++ b/audio/synth/filter_test.go @@ -25,17 +25,14 @@ func TestFilters(t *testing.T) { fadeInFrames := time.Second - w := audio.MustNewWriter(src.PCMFormat()) - loopSrc := audio.FadeIn(fadeInFrames, audio.LoopReader(src.Saw())) - go audio.Play(context.Background(), w, loopSrc) + unison := 4 - w2 := audio.MustNewWriter(src.PCMFormat()) - loopSrc2 := audio.FadeIn(fadeInFrames, audio.LoopReader(src.Saw(Detune(.04)))) - go audio.Play(context.Background(), w2, loopSrc2) - - w3 := audio.MustNewWriter(src.PCMFormat()) - loopSrc3 := audio.FadeIn(fadeInFrames, audio.LoopReader(src.Saw(Detune(.05)))) - go audio.Play(context.Background(), w3, loopSrc3) + for i := 0; i < unison; i++ { + go audio.Play(context.Background(), audio.FadeIn(fadeInFrames, audio.LoopReader(src.Saw()))) + go audio.Play(context.Background(), audio.FadeIn(fadeInFrames, audio.LoopReader(src.Saw(Detune(.04))))) + go audio.Play(context.Background(), audio.FadeIn(fadeInFrames, audio.LoopReader(src.Saw(Detune(-.05))))) + } + go audio.Play(context.Background(), audio.FadeIn(fadeInFrames, audio.LoopReader(src.Noise()))) time.Sleep(3 * time.Second) } diff --git a/audio/writer_alsa.go b/audio/writer_alsa.go index 3ef5421d..aeebbe2a 100644 --- a/audio/writer_alsa.go +++ b/audio/writer_alsa.go @@ -129,13 +129,6 @@ func (aw *alsaWriter) Close() error { return err } -func (aw *alsaWriter) Reset() error { - aw.Lock() - defer aw.Unlock() - // ??? - return nil -} - func (aw *alsaWriter) WritePCM(data []byte) (n int, err error) { aw.Lock() defer aw.Unlock() diff --git a/audio/writer_dsound.go b/audio/writer_dsound.go index aef8a814..cf28decf 100644 --- a/audio/writer_dsound.go +++ b/audio/writer_dsound.go @@ -83,7 +83,6 @@ func (dsw *directSoundWriter) Close() error { var err error if dsw.playing { - dsw.capOffAudio() err = dsw.buff.Stop() dsw.playing = false } @@ -91,41 +90,6 @@ func (dsw *directSoundWriter) Close() error { return err } -// this attempts to reduce the amount of noise incurred by stopping a playing audio -// it is not completely effective, a blip can still be heard -func (dsw *directSoundWriter) capOffAudio() { - // 10k zero bytes - cap := make([]byte, 10000) - a, b, err := dsw.buff.LockBytes(dsw.lockedOffset, 10000, 0) - if err != nil { - // should not happen, but if it does, we can't proceed - return - } - copy(a, cap) - if len(b) != 0 { - copy(b, cap[len(a):]) - } - dsw.buff.UnlockBytes(a, b) - dsw.buff.SetCurrentPosition(dsw.lockedOffset) -} - -func (dsw *directSoundWriter) Reset() error { - dsw.Lock() - defer dsw.Unlock() - emptyBuff := make([]byte, dsw.bufferSize) - a, b, err := dsw.buff.LockBytes(0, dsw.bufferSize, 0) - if err != nil { - return err - } - copy(a, emptyBuff) - if len(b) != 0 { - copy(b, emptyBuff) - } - err = dsw.buff.UnlockBytes(a, b) - dsw.Seek(0, io.SeekStart) - return err -} - func (dsw *directSoundWriter) Seek(offset int64, whence int) (position int64, err error) { switch whence { case io.SeekStart: diff --git a/audio/writer_pulse.go b/audio/writer_pulse.go index 2ed5e51e..fc892648 100644 --- a/audio/writer_pulse.go +++ b/audio/writer_pulse.go @@ -116,13 +116,6 @@ func (dsw *pulseWriter) Close() error { return err } -func (dsw *pulseWriter) Reset() error { - dsw.Lock() - defer dsw.Unlock() - // ??? - return nil -} - func (dsw *pulseWriter) WritePCM(data []byte) (n int, err error) { dsw.Lock() defer dsw.Unlock() diff --git a/examples/piano/main.go b/examples/piano/main.go index 198fb372..78474b1a 100644 --- a/examples/piano/main.go +++ b/examples/piano/main.go @@ -143,7 +143,7 @@ var keycharOrder = []key.Code{ var playLock sync.Mutex var cancelFuncs = map[synth.Pitch]func(){} -var synthKind synth.Wave +var makeSynth func(ctx context.Context, pitch synth.Pitch) func playPitch(ctx *scene.Context, pitch synth.Pitch) { playLock.Lock() @@ -151,26 +151,10 @@ func playPitch(ctx *scene.Context, pitch synth.Pitch) { if cancel, ok := cancelFuncs[pitch]; ok { cancel() } - a := synthKind(synth.AtPitch(pitch)) - toPlay := audio.LoopReader(a) - format := toPlay.PCMFormat() - speaker, err := audio.NewWriter(format) - if err != nil { - fmt.Println("new writer failed:", err) - return - } - monitor := newPCMMonitor(ctx, speaker) - monitor.SetPos(0, 0) - render.Draw(monitor) + gctx, cancel := context.WithCancel(ctx) go func() { - fadeIn := audio.FadeIn(100*time.Millisecond, toPlay) - err = audio.Play(gctx, monitor, fadeIn) - if err != nil { - fmt.Println("play error:", err) - } - speaker.Close() - monitor.Undraw() + makeSynth(gctx, pitch) }() cancelFuncs[pitch] = cancel } @@ -193,13 +177,34 @@ func main() { oak.AddScene("piano", scene.Scene{ Start: func(ctx *scene.Context) { - src := synth.Int16 + var src = new(synth.Source) + *src = synth.Int16 src.Format = pcm.Format{ SampleRate: 80000, Channels: 2, Bits: 32, } - synthKind = src.Sin + playWithMonitor := func(gctx context.Context, r pcm.Reader) { + speaker, err := audio.NewWriter(r.PCMFormat()) + if err != nil { + fmt.Println("new writer failed:", err) + return + } + monitor := newPCMMonitor(ctx, speaker) + monitor.SetPos(0, 0) + render.Draw(monitor) + + audio.Play(gctx, r, func(po *audio.PlayOptions) { + po.Destination = monitor + }) + speaker.Close() + monitor.Undraw() + } + makeSynth = func(gctx context.Context, pitch synth.Pitch) { + toPlay := audio.LoopReader(src.Sin(synth.AtPitch(pitch))) + fadeIn := audio.FadeIn(100*time.Millisecond, toPlay) + playWithMonitor(gctx, fadeIn) + } pitch := synth.C3 kc := keyColorWhite x := 20.0 @@ -225,19 +230,50 @@ func main() { i++ } // Consider: Adding volume control - codeKinds := map[key.Code]func(src synth.Source) synth.Wave{ - key.S: func(src synth.Source) synth.Wave { return src.Sin }, - key.W: func(src synth.Source) synth.Wave { return src.Saw }, - key.T: func(src synth.Source) synth.Wave { return src.Triangle }, - key.P: func(src synth.Source) synth.Wave { return src.Pulse(2) }, - key.N: func(src synth.Source) synth.Wave { return src.Noise }, + codeKinds := map[key.Code]func(ctx context.Context, pitch synth.Pitch){ + key.S: func(gctx context.Context, pitch synth.Pitch) { + toPlay := audio.LoopReader(src.Sin(synth.AtPitch(pitch))) + fadeIn := audio.FadeIn(100*time.Millisecond, toPlay) + playWithMonitor(gctx, fadeIn) + }, + key.W: func(gctx context.Context, pitch synth.Pitch) { + toPlay := audio.LoopReader(src.Saw(synth.AtPitch(pitch))) + fadeIn := audio.FadeIn(100*time.Millisecond, toPlay) + playWithMonitor(gctx, fadeIn) + }, + key.Q: func(gctx context.Context, pitch synth.Pitch) { + unison := 4 + for i := 0; i < unison; i++ { + go playWithMonitor(gctx, audio.FadeIn(100*time.Millisecond, audio.LoopReader(src.Saw(synth.AtPitch(pitch))))) + go playWithMonitor(gctx, audio.FadeIn(100*time.Millisecond, audio.LoopReader(src.Saw(synth.AtPitch(pitch), synth.Detune(.04))))) + go playWithMonitor(gctx, audio.FadeIn(100*time.Millisecond, audio.LoopReader(src.Saw(synth.AtPitch(pitch), synth.Detune(-.05))))) + } + playWithMonitor(gctx, audio.FadeIn(100*time.Millisecond, audio.LoopReader(src.Saw(synth.AtPitch(pitch))))) + + //playWithMonitor(gctx, audio.FadeIn(100*time.Millisecond, audio.LoopReader(src.Noise()))) + }, + key.T: func(gctx context.Context, pitch synth.Pitch) { + toPlay := audio.LoopReader(src.Triangle(synth.AtPitch(pitch))) + fadeIn := audio.FadeIn(100*time.Millisecond, toPlay) + playWithMonitor(gctx, fadeIn) + }, + key.P: func(gctx context.Context, pitch synth.Pitch) { + toPlay := audio.LoopReader(src.Pulse(2)(synth.AtPitch(pitch))) + fadeIn := audio.FadeIn(100*time.Millisecond, toPlay) + playWithMonitor(gctx, fadeIn) + }, + key.N: func(gctx context.Context, pitch synth.Pitch) { + toPlay := audio.LoopReader(src.Noise(synth.AtPitch(pitch))) + fadeIn := audio.FadeIn(100*time.Millisecond, toPlay) + playWithMonitor(gctx, fadeIn) + }, } for kc, synfn := range codeKinds { kc := kc synfn := synfn event.GlobalBind(ctx, key.Down(kc), func(ev key.Event) event.Response { if ev.Modifiers&key.ModShift == key.ModShift { - synthKind = synfn(src) + makeSynth = synfn } return 0 }) From 7ffde6f3115aa6235a2dbec4be08309c07949da8 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Tue, 5 Apr 2022 19:20:04 -0500 Subject: [PATCH 071/146] audio/sequence: strip package of functionality until we re-evaulate it with the new interface --- audio/sequence/sequence.go | 123 +------------------------------- audio/sequence/waveGenerator.go | 93 ------------------------ 2 files changed, 2 insertions(+), 214 deletions(-) delete mode 100644 audio/sequence/waveGenerator.go diff --git a/audio/sequence/sequence.go b/audio/sequence/sequence.go index 642a4e8d..cb9dfafd 100644 --- a/audio/sequence/sequence.go +++ b/audio/sequence/sequence.go @@ -2,10 +2,9 @@ package sequence import ( - "errors" "time" - "github.com/oakmound/oak/v3/audio" + "github.com/oakmound/oak/v3/audio/pcm" ) // A Sequence is a timed pattern of simultaneously played audios. @@ -13,7 +12,7 @@ type Sequence struct { // Sequences play patterns of audio // everything at Pattern[0] will be simultaneously Play()ed at // Sequence.Play() - Pattern []audio.Reader + Pattern []pcm.Reader patternIndex int // Every tick, the next index in Pattern will be played by a Sequence // until the pattern is over. @@ -24,121 +23,3 @@ type Sequence struct { stopCh chan error loop bool } - -// Play on a sequence plays the pattern encoded in the sequence until stopped -func (s *Sequence) Play() <-chan error { - ch := make(chan error) - go func() { - for { - s.patternIndex = 0 - for s.patternIndex < len(s.Pattern) { - s.Pattern[s.patternIndex].Play() - select { - case <-s.stopCh: - s.stopCh <- s.Pattern[s.patternIndex].Stop() - ch <- nil - return - case <-s.Ticker.C: - } - s.patternIndex++ - } - if !s.loop { - ch <- nil - return - } - } - }() - return ch -} - -func (s *Sequence) SetVolume(int32) error { - return errors.New("unsupported") -} - -// Stop stops a sequence -func (s *Sequence) Stop() error { - s.stopCh <- nil - return <-s.stopCh -} - -// Copy copies a sequence -func (s *Sequence) Copy() (audio.Audio, error) { - var err error - s2 := &Sequence{ - Pattern: make([]*audio.Multi, len(s.Pattern)), - Ticker: time.NewTicker(s.tickDuration), - tickDuration: s.tickDuration, - stopCh: make(chan error), - loop: s.loop, - } - for i := range s2.Pattern { - s2.Pattern[i] = new(audio.Multi) - s2.Pattern[i].Audios = make([]audio.Audio, len(s.Pattern[i].Audios)) - for j := range s2.Pattern[i].Audios { - // This could make a sequence that reuses the same - // audio use a lot more memory when copied-- a better route - // would involve identifying all unique audios - // and making a copy for each of those, but that - // requires producing unique IDs for each audio - // (which would probably be a hash of their encoding? - // but that raises issues for audios that don't want - // to follow real encoding rules (like this one!)) - s2.Pattern[i].Audios[j], err = s.Pattern[i].Audios[j].Copy() - if err != nil { - return nil, err - } - } - } - return s2, nil -} - -// MustCopy acts as copy but panics on errors -func (s *Sequence) MustCopy() audio.Audio { - a, err := s.Copy() - if err != nil { - panic(err) - } - return a -} - -// PlayLength returns how long this sequence will play before looping or stopping. -// This does not include how long the last note is held beyond the tick duration -func (s *Sequence) PlayLength() time.Duration { - return time.Duration(len(s.Pattern)) * s.tickDuration -} - -// Mix combines two sequences -func (s *Sequence) Mix(s2 *Sequence) (*Sequence, error) { - // Todo: we should be able to combine not-too-disparate - // sequences like one that ticks on .5 seconds and one that ticks - // on .25 seconds - if s.tickDuration != s2.tickDuration { - return nil, errors.New("Incompatible sequences") - } - seq, err := s.Copy() - if err != nil { - return nil, err - } - s3 := seq.(*Sequence) - for i, col := range s2.Pattern { - s3.Pattern[i].Audios = append(s3.Pattern[i].Audios, col.Audios...) - } - return s3, nil -} - -// Append creates a sequence by combining two sequences in order -func (s *Sequence) Append(s2 *Sequence) (*Sequence, error) { - // Todo: we should be able to combine not-too-disparate - // sequences like one that ticks on .5 seconds and one that ticks - // on .25 seconds - if s.tickDuration != s2.tickDuration { - return nil, errors.New("Incompatible sequences") - } - seq, err := s.Copy() - if err != nil { - return nil, err - } - s3 := seq.(*Sequence) - s3.Pattern = append(s3.Pattern, s2.Pattern...) - return s3, nil -} diff --git a/audio/sequence/waveGenerator.go b/audio/sequence/waveGenerator.go deleted file mode 100644 index d51d32fa..00000000 --- a/audio/sequence/waveGenerator.go +++ /dev/null @@ -1,93 +0,0 @@ -package sequence - -import ( - "time" - - audio "github.com/oakmound/oak/v3/audio/klang" - "github.com/oakmound/oak/v3/audio/synth" -) - -// A WaveGenerator composes sets of simple waveforms as a sequence -type WaveGenerator struct { - ChordPattern - PitchPattern - WavePattern - VolumePattern - HoldPattern - Length - Tick - Loop -} - -// NewWaveGenerator uses optional variadic syntax to enable -// any variant of a generator to be made -func NewWaveGenerator(opts ...Option) *WaveGenerator { - wg := &WaveGenerator{} - for _, opt := range opts { - opt(wg) - } - return wg -} - -// Generate generates a sequence from this wave generator -func (wg *WaveGenerator) Generate() *Sequence { - sq := &Sequence{} - sq.Ticker = time.NewTicker(time.Duration(wg.Tick)) - sq.tickDuration = time.Duration(wg.Tick) - sq.loop = bool(wg.Loop) - sq.stopCh = make(chan error) - if wg.Length == 0 { - if len(wg.PitchPattern) != 0 { - wg.Length = Length(len(wg.PitchPattern)) - } else if len(wg.ChordPattern.Pitches) != 0 { - wg.Length = Length(len(wg.ChordPattern.Pitches)) - } - // else whoops, there's no length - } - if len(wg.HoldPattern) == 0 { - wg.HoldPattern = []time.Duration{sq.tickDuration} - } - sq.Pattern = make([]*audio.Multi, wg.Length) - - volumeIndex := 0 - waveIndex := 0 - if len(wg.PitchPattern) != 0 { - pitchIndex := 0 - holdIndex := 0 - for i := range sq.Pattern { - p := wg.PitchPattern[pitchIndex] - if p != synth.Rest { - a, _ := wg.WavePattern[waveIndex]( - synth.AtPitch(p), - synth.Duration(wg.HoldPattern[holdIndex]), - synth.Volume(wg.VolumePattern[volumeIndex]), - ) - sq.Pattern[i] = audio.NewMulti(a) - } else { - sq.Pattern[i] = audio.NewMulti() - } - pitchIndex = (pitchIndex + 1) % len(wg.PitchPattern) - volumeIndex = (volumeIndex + 1) % len(wg.VolumePattern) - waveIndex = (waveIndex + 1) % len(wg.WavePattern) - holdIndex = (holdIndex + 1) % len(wg.HoldPattern) - } - } else if len(wg.ChordPattern.Pitches) != 0 { - chordIndex := 0 - for i := range sq.Pattern { - mult := audio.NewMulti() - for j, p := range wg.ChordPattern.Pitches[chordIndex] { - a, _ := wg.WavePattern[waveIndex]( - synth.AtPitch(p), - synth.Duration(wg.ChordPattern.Holds[chordIndex][j]), - synth.Volume(wg.VolumePattern[volumeIndex]), - ) - mult.Audios = append(mult.Audios, a) - } - sq.Pattern[i] = mult - waveIndex = (waveIndex + 1) % len(wg.WavePattern) - volumeIndex = (volumeIndex + 1) % len(wg.VolumePattern) - chordIndex = (chordIndex + 1) % len(wg.ChordPattern.Pitches) - } - } - return sq -} From 77ae8ee527de6bc20f7f4c5b712a19f4b54f2b3e Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Tue, 5 Apr 2022 19:39:53 -0500 Subject: [PATCH 072/146] oak: go mod tidy --- examples/clipboard/go.mod | 21 +++++++++++++++++++++ examples/clipboard/go.sum | 2 ++ examples/fallback-font/go.mod | 22 ++++++++++++++++++++++ examples/fallback-font/go.sum | 2 ++ examples/svg/go.mod | 3 +++ examples/svg/go.sum | 5 +++++ go.mod | 4 ++-- 7 files changed, 57 insertions(+), 2 deletions(-) diff --git a/examples/clipboard/go.mod b/examples/clipboard/go.mod index 15d5fc95..31160072 100644 --- a/examples/clipboard/go.mod +++ b/examples/clipboard/go.mod @@ -8,4 +8,25 @@ require ( golang.org/x/mobile v0.0.0-20220112015953-858099ff7816 ) +require ( + dmitri.shuralyov.com/gpu/mtl v0.0.0-20201218220906-28db891af037 // indirect + github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc // indirect + github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 // indirect + github.com/disintegration/gift v1.2.0 // indirect + github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d // indirect + github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1 // indirect + github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb // indirect + github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect + github.com/hajimehoshi/go-mp3 v0.3.1 // indirect + github.com/jfreymuth/pulse v0.1.0 // indirect + github.com/oakmound/alsa v0.0.2 // indirect + github.com/oakmound/libudev v0.2.1 // indirect + github.com/oakmound/w32 v2.1.0+incompatible // indirect + github.com/oov/directsound-go v0.0.0-20141101201356-e53e59c700bf // indirect + golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56 // indirect + golang.org/x/image v0.0.0-20201208152932-35266b937fa6 // indirect + golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect + golang.org/x/sys v0.0.0-20220111092808-5a964db01320 // indirect +) + replace github.com/oakmound/oak/v3 => ../.. diff --git a/examples/clipboard/go.sum b/examples/clipboard/go.sum index a91dcd3d..24b57c40 100644 --- a/examples/clipboard/go.sum +++ b/examples/clipboard/go.sum @@ -9,7 +9,9 @@ github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= github.com/disintegration/gift v1.2.0 h1:VMQeei2F+ZtsHjMgP6Sdt1kFjRhs2lGz8ljEOPeIR50= github.com/disintegration/gift v1.2.0/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI= +github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d h1:HB5J9+f1xpkYLgWQ/RqEcbp3SEufyOIMYLoyKNKiG7E= github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d/go.mod h1:CHkHWWZ4kbGY6jEy1+qlitDaCtRgNvCOQdakj/1Yl/Q= +github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1 h1:wl/ggSfTHqAy46hyzw1IlrUYwjqmXYvbJyPdH3rT7YE= github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1/go.mod h1:frG94byMNy+1CgGrQ25dZ+17tf98EN+OYBQL4Zh612M= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb h1:T6gaWBvRzJjuOrdCtg8fXXjKai2xSDqWTcKFUPuw8Tw= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= diff --git a/examples/fallback-font/go.mod b/examples/fallback-font/go.mod index bc069ee2..52ad1773 100644 --- a/examples/fallback-font/go.mod +++ b/examples/fallback-font/go.mod @@ -7,4 +7,26 @@ require ( github.com/oakmound/oak/v3 v3.0.0-alpha.1 ) +require ( + dmitri.shuralyov.com/gpu/mtl v0.0.0-20201218220906-28db891af037 // indirect + github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc // indirect + github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 // indirect + github.com/disintegration/gift v1.2.0 // indirect + github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d // indirect + github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1 // indirect + github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb // indirect + github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect + github.com/hajimehoshi/go-mp3 v0.3.1 // indirect + github.com/jfreymuth/pulse v0.1.0 // indirect + github.com/oakmound/alsa v0.0.2 // indirect + github.com/oakmound/libudev v0.2.1 // indirect + github.com/oakmound/w32 v2.1.0+incompatible // indirect + github.com/oov/directsound-go v0.0.0-20141101201356-e53e59c700bf // indirect + golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56 // indirect + golang.org/x/image v0.0.0-20201208152932-35266b937fa6 // indirect + golang.org/x/mobile v0.0.0-20220112015953-858099ff7816 // indirect + golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect + golang.org/x/sys v0.0.0-20220111092808-5a964db01320 // indirect +) + replace github.com/oakmound/oak/v3 => ../.. diff --git a/examples/fallback-font/go.sum b/examples/fallback-font/go.sum index fe44f8be..0cadaf3b 100644 --- a/examples/fallback-font/go.sum +++ b/examples/fallback-font/go.sum @@ -7,7 +7,9 @@ github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 h1:O/r2Sj+8QcMF github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046/go.mod h1:uw9h2sd4WWHOPdJ13MQpwK5qYWKYDumDqxWWIknEQ+k= github.com/disintegration/gift v1.2.0 h1:VMQeei2F+ZtsHjMgP6Sdt1kFjRhs2lGz8ljEOPeIR50= github.com/disintegration/gift v1.2.0/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI= +github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d h1:HB5J9+f1xpkYLgWQ/RqEcbp3SEufyOIMYLoyKNKiG7E= github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d/go.mod h1:CHkHWWZ4kbGY6jEy1+qlitDaCtRgNvCOQdakj/1Yl/Q= +github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1 h1:wl/ggSfTHqAy46hyzw1IlrUYwjqmXYvbJyPdH3rT7YE= github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1/go.mod h1:frG94byMNy+1CgGrQ25dZ+17tf98EN+OYBQL4Zh612M= github.com/flopp/go-findfont v0.0.0-20201114153133-e7393a00c15b h1:/wqXgpZNTP8qV1dPEApjJXlDQd5N/F9U/WEvy5SawUI= github.com/flopp/go-findfont v0.0.0-20201114153133-e7393a00c15b/go.mod h1:wKKxRDjD024Rh7VMwoU90i6ikQRCr+JTHB5n4Ejkqvw= diff --git a/examples/svg/go.mod b/examples/svg/go.mod index 0f091b98..0a50e438 100644 --- a/examples/svg/go.mod +++ b/examples/svg/go.mod @@ -13,9 +13,12 @@ require ( github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc // indirect github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 // indirect github.com/disintegration/gift v1.2.0 // indirect + github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d // indirect + github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1 // indirect github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb // indirect github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect github.com/hajimehoshi/go-mp3 v0.3.1 // indirect + github.com/jfreymuth/pulse v0.1.0 // indirect github.com/oakmound/alsa v0.0.2 // indirect github.com/oakmound/libudev v0.2.1 // indirect github.com/oakmound/w32 v2.1.0+incompatible // indirect diff --git a/examples/svg/go.sum b/examples/svg/go.sum index 8ec8315c..378711ea 100644 --- a/examples/svg/go.sum +++ b/examples/svg/go.sum @@ -7,6 +7,10 @@ github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 h1:O/r2Sj+8QcMF github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046/go.mod h1:uw9h2sd4WWHOPdJ13MQpwK5qYWKYDumDqxWWIknEQ+k= github.com/disintegration/gift v1.2.0 h1:VMQeei2F+ZtsHjMgP6Sdt1kFjRhs2lGz8ljEOPeIR50= github.com/disintegration/gift v1.2.0/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI= +github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d h1:HB5J9+f1xpkYLgWQ/RqEcbp3SEufyOIMYLoyKNKiG7E= +github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d/go.mod h1:CHkHWWZ4kbGY6jEy1+qlitDaCtRgNvCOQdakj/1Yl/Q= +github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1 h1:wl/ggSfTHqAy46hyzw1IlrUYwjqmXYvbJyPdH3rT7YE= +github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1/go.mod h1:frG94byMNy+1CgGrQ25dZ+17tf98EN+OYBQL4Zh612M= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb h1:T6gaWBvRzJjuOrdCtg8fXXjKai2xSDqWTcKFUPuw8Tw= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= @@ -15,6 +19,7 @@ github.com/hajimehoshi/go-mp3 v0.3.1 h1:pn/SKU1+/rfK8KaZXdGEC2G/KCB2aLRjbTCrwKco github.com/hajimehoshi/go-mp3 v0.3.1/go.mod h1:qMJj/CSDxx6CGHiZeCgbiq2DSUkbK0UbtXShQcnfyMM= github.com/hajimehoshi/oto v0.6.1/go.mod h1:0QXGEkbuJRohbJaxr7ZQSxnju7hEhseiPx2hrh6raOI= github.com/jfreymuth/pulse v0.1.0 h1:KN38/9hoF9PJvP5DpEVhMRKNuwnJUonc8c9ARorRXUA= +github.com/jfreymuth/pulse v0.1.0/go.mod h1:cpYspI6YljhkUf1WLXLLDmeaaPFc3CnGLjDZf9dZ4no= github.com/oakmound/alsa v0.0.2 h1:JbOUckkJqVvhABth7qy2JgAjqsWuBPggyoYOk1L6eK0= github.com/oakmound/alsa v0.0.2/go.mod h1:wx+ehwqFnNL7foTwxxu2bKQlaUmD2oXd4ka1UBSgWAo= github.com/oakmound/libudev v0.2.1 h1:gaXuw7Pbt3RSRxbUakAjl0dSW6Wo3TZWpwS5aMq8+EA= diff --git a/go.mod b/go.mod index db3449b1..9b49e90c 100644 --- a/go.mod +++ b/go.mod @@ -7,10 +7,10 @@ require ( github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc // linux, shiny github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 // linux, shiny github.com/disintegration/gift v1.2.0 // render - github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1 + github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1 github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb // osx, shiny github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 - github.com/hajimehoshi/go-mp3 v0.3.1 + github.com/hajimehoshi/go-mp3 v0.3.1 github.com/jfreymuth/pulse v0.1.0 // linux, audio github.com/oakmound/alsa v0.0.2 // linux, audio github.com/oakmound/libudev v0.2.1 // linux, joystick From 3040b1f3710b2d8d46d395eaa86616809e5ddcee Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Wed, 6 Apr 2022 09:14:45 -0500 Subject: [PATCH 073/146] entities: overhaul api The former API optimized for a consumer that cared about having the smallest thing possible that met their use case. This new API optimizes for ease of use-- offering a single thing instead of 6 slightly different things-- removing choice paralysis. Optimizers would probably prefer writing their own structs anyway. --- entities/doodad.go | 66 ------------- entities/entity.go | 201 ++++++++++++++++++++++++++++++++++++++++ entities/interactive.go | 37 -------- entities/moving.go | 74 --------------- entities/opts_gen.go | 92 ++++++++++++++++++ entities/point.go | 42 --------- entities/reactive.go | 102 -------------------- entities/solid.go | 124 ------------------------- 8 files changed, 293 insertions(+), 445 deletions(-) delete mode 100644 entities/doodad.go create mode 100644 entities/entity.go delete mode 100644 entities/interactive.go delete mode 100644 entities/moving.go create mode 100644 entities/opts_gen.go delete mode 100644 entities/point.go delete mode 100644 entities/reactive.go delete mode 100644 entities/solid.go diff --git a/entities/doodad.go b/entities/doodad.go deleted file mode 100644 index 807d9685..00000000 --- a/entities/doodad.go +++ /dev/null @@ -1,66 +0,0 @@ -package entities - -import ( - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/render" -) - -// A Doodad is an entity composed of a position, a renderable, and a CallerID. -type Doodad struct { - Point - event.CallerID - R render.Renderable -} - -// NewDoodad returns a new doodad that is not drawn but is initialized. -// Passing a CID of 0 will initialize the entity as a Doodad. Passing -// any other CID will assume that the struct containing this doodad has -// already been initialized to the passed in CID. -// This applies to ALL NewX functions in entities which take in a CID. -func NewDoodad(x, y float64, r render.Renderable, cid event.CallerID) *Doodad { - if r != nil { - r.SetPos(x, y) - } - d := &Doodad{} - d.Point = *NewPoint(x, y) - d.R = r - if cid == 0 { - d.CallerID = event.DefaultCallerMap.Register(d) - } else { - d.CallerID = cid - } - return d -} - -func (d *Doodad) CID() event.CallerID { - return d.CallerID -} - -// Destroy cleans up the events, renderable and -// entity mapping for this Doodad -func (d *Doodad) Destroy() { - if d.R != nil { - d.R.Undraw() - } - event.DefaultBus.UnbindAllFrom(d.CallerID) - event.DefaultCallerMap.RemoveEntity(d.CallerID) -} - -// Overwrites - -// SetPos both Sets logical position and renderable position -// The need for this sort of function is lessened with the introduction -// of vector attachment. -func (d *Doodad) SetPos(x, y float64) { - d.SetLogicPos(x, y) - if d.R != nil { - d.R.SetPos(x, y) - } -} - -// GetRenmderable retrieves the renderable. -// Mainly used to satisfy upper level interfaces. -// TODO: remove along with entity rework -func (d *Doodad) GetRenderable() render.Renderable { - return d.R -} diff --git a/entities/entity.go b/entities/entity.go new file mode 100644 index 00000000..5310c64c --- /dev/null +++ b/entities/entity.go @@ -0,0 +1,201 @@ +package entities + +import ( + "image/color" + + "github.com/oakmound/oak/v3/alg/floatgeom" + "github.com/oakmound/oak/v3/collision" + "github.com/oakmound/oak/v3/dlog" + "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v3/render" + "github.com/oakmound/oak/v3/render/mod" + "github.com/oakmound/oak/v3/scene" +) + +type Generator struct { + Position floatgeom.Point2 + Dimensions floatgeom.Point2 + Speed floatgeom.Point2 + + Parent event.Caller + + Color color.Color + Renderable render.Renderable + + ScaleRenderable *mod.Resampling + + Label collision.Label + + DrawLayers []int + + UseMouseTree bool + WithoutCollision bool +} + +func And(opts ...Option) Option { + return func(g Generator) Generator { + for _, o := range opts { + g = o(g) + } + return g + } +} + +func WithRect(v floatgeom.Rect2) Option { + return func(s Generator) Generator { + s.Position = v.Min + s.Dimensions = v.Max.Sub(v.Min) + return s + } +} + +var defaultGenerator = Generator{ + Dimensions: floatgeom.Point2{1, 1}, +} + +type Entity struct { + event.CallerID + + ctx *scene.Context + + Rect floatgeom.Rect2 + Speed floatgeom.Point2 + Delta floatgeom.Point2 + + Renderable render.Renderable + + collision.Phase + + Space *collision.Space + Tree *collision.Tree +} + +func (e Entity) CID() event.CallerID { + return e.CallerID.CID() +} + +func (e Entity) X() float64 { + return e.Rect.Min.X() +} +func (e Entity) Y() float64 { + return e.Rect.Min.Y() +} +func (e Entity) W() float64 { + return e.Rect.W() +} +func (e Entity) H() float64 { + return e.Rect.H() +} + +func (e *Entity) ShiftDelta() { + e.Shift(e.Delta) +} + +func (e *Entity) Shift(delta floatgeom.Point2) { + // TODO: attachment? + // TODO: helper + e.Renderable.ShiftX(delta.X()) + e.Renderable.ShiftY(delta.Y()) + e.Rect = e.Rect.Shift(delta) + if e.Tree != nil { + e.Tree.UpdateSpace( + e.X(), e.Y(), e.W(), e.H(), e.Space, + ) + } +} + +func (e *Entity) ShiftX(x float64) { + e.Renderable.ShiftX(x) + e.Rect = e.Rect.Shift(floatgeom.Point2{x, 0}) + if e.Tree != nil { + e.Tree.UpdateSpace( + e.X(), e.Y(), e.W(), e.H(), e.Space, + ) + } +} + +func (e *Entity) ShiftY(y float64) { + e.Renderable.ShiftY(y) + e.Rect = e.Rect.Shift(floatgeom.Point2{0, y}) + if e.Tree != nil { + e.Tree.UpdateSpace( + e.X(), e.Y(), e.W(), e.H(), e.Space, + ) + } +} + +func (e *Entity) SetPos(p floatgeom.Point2) { + w, h := e.W(), e.H() + e.Rect = floatgeom.NewRect2WH(p.X(), p.Y(), w, h) + e.Renderable.SetPos(p.X(), p.Y()) + if e.Tree != nil { + e.Tree.UpdateSpace( + e.X(), e.Y(), e.W(), e.H(), e.Space, + ) + } +} + +func (e *Entity) Destroy() { + e.Renderable.Undraw() + e.Tree.Remove(e.Space) + e.ctx.UnbindAllFrom(e.CallerID) +} + +func New(ctx *scene.Context, opts ...Option) *Entity { + g := defaultGenerator + for _, o := range opts { + g = o(g) + } + + e := &Entity{ + ctx: ctx, + Rect: floatgeom.NewRect2WH( + g.Position[0], + g.Position[1], + g.Dimensions[0], + g.Dimensions[1], + ), + Renderable: g.Renderable, + Speed: g.Speed, + } + + if g.Renderable == nil && g.Color != nil { + e.Renderable = render.NewColorBox(int(e.W()), int(e.H()), g.Color) + } + + if g.ScaleRenderable != nil { + if m, ok := g.Renderable.(render.Modifiable); ok { + e.Renderable = m.Modify(mod.Resize(int(g.Dimensions[0]), int(g.Dimensions[1]), *g.ScaleRenderable)) + } + } + + e.Renderable.SetPos(e.X(), e.Y()) + + if g.Parent == nil { + cid := ctx.CallerMap.Register(e) + e.CallerID = cid + } else { + e.CallerID = g.Parent.CID() + if e.CallerID == 0 { + dlog.Error("entity created with uninitialized parent caller ID") + } + } + + if !g.WithoutCollision { + e.Tree = ctx.CollisionTree + if g.UseMouseTree { + e.Tree = ctx.MouseTree + } + e.Space = collision.NewSpace( + e.X(), e.Y(), e.W(), e.H(), e.CallerID, + ) + e.Space.Label = g.Label + e.Tree.Add(e.Space) + } + + if len(g.DrawLayers) != 0 { + ctx.Draw(e.Renderable, g.DrawLayers...) + } + + return e +} diff --git a/entities/interactive.go b/entities/interactive.go deleted file mode 100644 index 1a24c77c..00000000 --- a/entities/interactive.go +++ /dev/null @@ -1,37 +0,0 @@ -package entities - -import ( - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/physics" - "github.com/oakmound/oak/v3/render" -) - -// Interactive parallels Moving, but for Reactive instead of Solid -type Interactive struct { - Reactive - vMoving -} - -// NewInteractive returns a new Interactive -func NewInteractive(x, y, w, h float64, r render.Renderable, tree *collision.Tree, - cid event.CallerID, friction float64) *Interactive { - - i := &Interactive{} - if cid == 0 { - i.CallerID = event.DefaultCallerMap.Register(i) - } else { - i.CallerID = cid - } - i.Reactive = *NewReactive(x, y, w, h, r, tree, i.CallerID) - i.vMoving = vMoving{ - Delta: physics.NewVector(0, 0), - Speed: physics.NewVector(0, 0), - Friction: friction, - } - return i -} - -func (i *Interactive) CID() event.CallerID { - return i.CallerID -} diff --git a/entities/moving.go b/entities/moving.go deleted file mode 100644 index 62b3a575..00000000 --- a/entities/moving.go +++ /dev/null @@ -1,74 +0,0 @@ -package entities - -import ( - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/physics" - "github.com/oakmound/oak/v3/render" -) - -// A Moving is a Solid that also keeps track of a speed and a delta vector -type Moving struct { - Solid - vMoving -} - -// NewMoving returns a new Moving -func NewMoving(x, y, w, h float64, r render.Renderable, tree *collision.Tree, cid event.CallerID, friction float64) *Moving { - m := &Moving{} - if cid == 0 { - m.CallerID = event.DefaultCallerMap.Register(m) - } else { - m.CallerID = cid - } - m.Solid = *NewSolid(x, y, w, h, r, tree, m.CallerID) - m.vMoving = vMoving{ - Delta: physics.NewVector(0, 0), - Speed: physics.NewVector(0, 0), - Friction: friction, - } - return m -} - -func (m *Moving) CID() event.CallerID { - return m.CallerID -} - -// ShiftVector probably shouldn't be on moving but it lets you -// ShiftPos by a given vector -func (m *Moving) ShiftVector(v physics.Vector) { - m.Solid.ShiftPos(v.X(), v.Y()) -} - -// ApplyFriction modifies a moving's delta by combining -// environmental friction with the moving's base friction -// and scaling down the delta by the combined result. -func (v *vMoving) ApplyFriction(outsideFriction float64) { - //Absolute friction is 1 - frictionScaler := 1 - (v.Friction * outsideFriction) - if frictionScaler > 1 { - frictionScaler = 1 - } else if frictionScaler < 0 { - frictionScaler = 0 - } - v.Delta.Scale(frictionScaler) - if v.Delta.Magnitude() < .01 { - v.Delta.Zero() - } -} - -type vMoving struct { - Delta physics.Vector - Speed physics.Vector - Friction float64 -} - -// GetDelta returns this moving's delta -func (v vMoving) GetDelta() physics.Vector { - return v.Delta -} - -// GetSpeed returns this moving's speed -func (v vMoving) GetSpeed() physics.Vector { - return v.Speed -} diff --git a/entities/opts_gen.go b/entities/opts_gen.go new file mode 100644 index 00000000..b580408c --- /dev/null +++ b/entities/opts_gen.go @@ -0,0 +1,92 @@ +// Code generated by foptgen; DO NOT EDIT. + +package entities + +import ( + "image/color" + + "github.com/oakmound/oak/v3/alg/floatgeom" + "github.com/oakmound/oak/v3/collision" + "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v3/render" + "github.com/oakmound/oak/v3/render/mod" +) + +type Option func(Generator) Generator + +func WithPosition(v floatgeom.Point2) Option { + return func(s Generator) Generator { + s.Position = v + return s + } +} + +func WithDimensions(v floatgeom.Point2) Option { + return func(s Generator) Generator { + s.Dimensions = v + return s + } +} + +func WithSpeed(v floatgeom.Point2) Option { + return func(s Generator) Generator { + s.Speed = v + return s + } +} + +func WithParent(v event.Caller) Option { + return func(s Generator) Generator { + s.Parent = v + return s + } +} + +func WithColor(v color.Color) Option { + return func(s Generator) Generator { + s.Color = v + return s + } +} + +func WithRenderable(v render.Renderable) Option { + return func(s Generator) Generator { + s.Renderable = v + return s + } +} + +func WithScaleRenderable(v *mod.Resampling) Option { + return func(s Generator) Generator { + s.ScaleRenderable = v + return s + } +} + +func WithLabel(v collision.Label) Option { + return func(s Generator) Generator { + s.Label = v + return s + } +} + +func WithDrawLayers(v []int) Option { + return func(s Generator) Generator { + s.DrawLayers = v + return s + } +} + +func WithUseMouseTree(v bool) Option { + return func(s Generator) Generator { + s.UseMouseTree = v + return s + } +} + +func WithWithoutCollision(v bool) Option { + return func(s Generator) Generator { + s.WithoutCollision = v + return s + } +} diff --git a/entities/point.go b/entities/point.go deleted file mode 100644 index ec4a900e..00000000 --- a/entities/point.go +++ /dev/null @@ -1,42 +0,0 @@ -package entities - -import ( - "github.com/oakmound/oak/v3/physics" -) - -// A Point is a wrapper around a physics vector. -type Point struct { - physics.Vector -} - -// NewPoint returns a new point -func NewPoint(x, y float64) *Point { - return &Point{physics.NewVector(x, y)} -} - -// GetLogicPos returns the logical position of an entity. See SetLogicPos. -func (p *Point) GetLogicPos() (float64, float64) { - return p.X(), p.Y() -} - -// ShiftLogicPos shifts a point's underlying position by both x and y -func (p *Point) ShiftLogicPos(x, y float64) { - p.Vector.SetPos(p.X()+x, p.Y()+y) -} - -// SetLogicPos is an explicit declaration for setting just the logical -// position of an entity. On a Point there is no distinction as there is nothing -// but the logical position but this is important for other entity types -func (p *Point) SetLogicPos(x, y float64) { - p.Vector.SetPos(x, y) -} - -// DistanceTo returns the euclidean distance to (x,y) -func (p *Point) DistanceTo(x, y float64) float64 { - return p.Distance(physics.NewVector(x, y)) -} - -// DistanceToPoint returns the euclidean distance to p2.GetLogicPos() -func (p *Point) DistanceToPoint(p2 Point) float64 { - return p.Distance(p2.Vector) -} diff --git a/entities/reactive.go b/entities/reactive.go deleted file mode 100644 index d6f0a85f..00000000 --- a/entities/reactive.go +++ /dev/null @@ -1,102 +0,0 @@ -package entities - -import ( - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/render" -) - -// Reactive is parallel to Solid, but has a Reactive collision space instead of -// a regular collision space -type Reactive struct { - Doodad - W, H float64 - RSpace *collision.ReactiveSpace - Tree *collision.Tree -} - -// NewReactive returns a new Reactive struct. The added space will -// be added to the input tree, or DefTree if none is given. -func NewReactive(x, y, w, h float64, r render.Renderable, tree *collision.Tree, cid event.CallerID) *Reactive { - rct := &Reactive{} - if cid == 0 { - rct.CallerID = event.DefaultCallerMap.Register(rct) - } else { - rct.CallerID = cid - } - rct.Doodad = *NewDoodad(x, y, r, rct.CallerID) - rct.W = w - rct.H = h - rct.RSpace = collision.NewReactiveSpace(collision.NewSpace(x, y, w, h, cid), map[collision.Label]collision.OnHit{}) - if tree == nil { - tree = collision.DefaultTree - } - rct.RSpace.Tree = tree - rct.Tree = tree - rct.Tree.Add(rct.RSpace.Space) - return rct -} - -// SetDim sets the dimensions of this reactive's space and it's logical dimensions -func (r *Reactive) SetDim(w, h float64) { - r.SetLogicDim(w, h) - r.RSpace.SetDim(w, h) -} - -// GetLogicDim returns this Reactive's width and height -// todo: move wh into their own struct to compose into solid and reactive -func (r *Reactive) GetLogicDim() (float64, float64) { - return r.W, r.H -} - -// SetLogicDim sets the logical width and height of this reactive -// without changing the real dimensions of its collision space -func (r *Reactive) SetLogicDim(w, h float64) { - r.W = w - r.H = h -} - -// SetSpace sets this reactive's collision space to the given reactive space, -// updating it's collision tree to include it. -func (r *Reactive) SetSpace(sp *collision.ReactiveSpace) { - r.Tree.Remove(r.RSpace.Space) - r.RSpace = sp - r.Tree.Add(r.RSpace.Space) -} - -// GetSpace returns this reactive's space underlying its RSpace -func (r *Reactive) GetSpace() *collision.Space { - return r.RSpace.Space -} - -// GetReactiveSpace returns this reactive's RSpace -func (r *Reactive) GetReactiveSpace() *collision.ReactiveSpace { - return r.RSpace -} - -// Overwrites - -func (r *Reactive) CID() event.CallerID { - return r.CallerID -} - -// ShiftPos acts like SetPos if given r.X()+x, r.Y()+y -func (r *Reactive) ShiftPos(x, y float64) { - r.SetPos(r.X()+x, r.Y()+y) -} - -// SetPos sets this reactive's logical, renderable, and collision position to be x,y -func (r *Reactive) SetPos(x, y float64) { - r.SetLogicPos(x, y) - if r.R != nil { - r.R.SetPos(x, y) - } - r.Tree.UpdateSpace(r.X(), r.Y(), r.W, r.H, r.RSpace.Space) -} - -// Destroy destroys this reactive's doodad component and removes its space -// from it's collision tree -func (r *Reactive) Destroy() { - r.Tree.Remove(r.RSpace.Space) - r.Doodad.Destroy() -} diff --git a/entities/solid.go b/entities/solid.go deleted file mode 100644 index 357f374c..00000000 --- a/entities/solid.go +++ /dev/null @@ -1,124 +0,0 @@ -package entities - -import ( - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/render" -) - -// A Solid is a Doodad with a width, height, and collision space. -type Solid struct { - Doodad - W, H float64 - Space *collision.Space - Tree *collision.Tree -} - -// NewSolid returns an initialized Solid that is not drawn and whose space -// belongs to the given collision tree. If nil is given as the tree, it will -// belong to collision.DefTree -func NewSolid(x, y, w, h float64, r render.Renderable, tree *collision.Tree, cid event.CallerID) *Solid { - s := &Solid{} - if cid == 0 { - s.CallerID = event.DefaultCallerMap.Register(s) - } else { - s.CallerID = cid - } - s.Doodad = *NewDoodad(x, y, r, s.CallerID) - s.W = w - s.H = h - if tree == nil { - tree = collision.DefaultTree - } - s.Tree = tree - s.Space = collision.NewSpace(x, y, w, h, s.CallerID) - s.Tree.Add(s.Space) - return s -} - -func (s *Solid) CID() event.CallerID { - return s.CallerID -} - -// SetDim sets the logical dimensions of the solid and the real -// dimensions on the solid's space -func (s *Solid) SetDim(w, h float64) { - s.SetLogicDim(w, h) - s.Space.SetDim(w, h) -} - -// GetLogicDim will return the width and height of the Solid -func (s *Solid) GetLogicDim() (float64, float64) { - return s.W, s.H -} - -// SetLogicDim sets the width and height of the solid -func (s *Solid) SetLogicDim(w, h float64) { - s.W = w - s.H = h -} - -// SetSpace assigns a solid a collision space and puts it in this Solid's Tree -func (s *Solid) SetSpace(sp *collision.Space) { - s.Tree.Remove(s.Space) - s.Space = sp - s.Tree.Add(s.Space) -} - -// GetSpace returns a solid's collision space -func (s *Solid) GetSpace() *collision.Space { - return s.Space -} - -// ShiftX moves a solid by x along the x axis -func (s *Solid) ShiftX(x float64) { - s.SetPos(s.X()+x, s.Y()) -} - -// ShiftY moves a solid by y along the y axis -func (s *Solid) ShiftY(y float64) { - s.SetPos(s.X(), s.Y()+y) -} - -// ShiftPos moves a solid by (x,y) -func (s *Solid) ShiftPos(x, y float64) { - s.SetPos(s.X()+x, s.Y()+y) -} - -// UpdateLabel will update it's label in this solid's -// collision tree. -func (s *Solid) UpdateLabel(classtype collision.Label) { - s.Tree.UpdateLabel(classtype, s.Space) -} - -// ShiftSpace will shift this solid's collision space -// by (x,y) -func (s *Solid) ShiftSpace(x, y float64) { - s.Tree.UpdateSpace(s.X()+x, s.Y()+y, s.W, s.H, s.Space) -} - -// HitLabel will return the first space that this solid -// collides with matching the given label that it finds, -// or nil if it finds nothing. -func (s *Solid) HitLabel(classtype collision.Label) *collision.Space { - return s.Tree.HitLabel(s.Space, classtype) -} - -// Overwrites - -// SetPos sets the position of the collision space, the logical position, -// and the renderable position of the solid. -func (s *Solid) SetPos(x float64, y float64) { - s.SetLogicPos(x, y) - if s.R != nil { - s.R.SetPos(x, y) - } - s.Tree.UpdateSpace(s.X(), s.Y(), s.W, s.H, s.Space) -} - -// Destroy removes this solid's collision space from it's Tree -// and destroys the doodad portion of the solid. -func (s *Solid) Destroy() { - s.Doodad.Destroy() - s.Tree.Remove(s.Space) -} From af8c0de24530fb4f30e2d3f9352014ff98cdca70 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Wed, 6 Apr 2022 09:15:16 -0500 Subject: [PATCH 074/146] examples/pong: rewrite for entities v4 --- examples/pong/main.go | 89 ++++++++++++++++++++++--------------------- 1 file changed, 45 insertions(+), 44 deletions(-) diff --git a/examples/pong/main.go b/examples/pong/main.go index 5ae43bcc..c84af099 100644 --- a/examples/pong/main.go +++ b/examples/pong/main.go @@ -6,6 +6,7 @@ import ( "math/rand" oak "github.com/oakmound/oak/v3" + "github.com/oakmound/oak/v3/alg/floatgeom" "github.com/oakmound/oak/v3/collision" "github.com/oakmound/oak/v3/entities" "github.com/oakmound/oak/v3/event" @@ -29,70 +30,70 @@ func main() { newPaddle(ctx, 20, 200, 1) newPaddle(ctx, 600, 200, 2) newBall(ctx, 320, 240) - render.Draw(render.DefaultFont().NewIntText(&score2, 200, 20), 3) - render.Draw(render.DefaultFont().NewIntText(&score1, 400, 20), 3) + ctx.Draw(render.NewIntText(&score2, 200, 20), 3) + ctx.Draw(render.NewIntText(&score1, 400, 20), 3) }}) - oak.Init("pong", func(c oak.Config) (oak.Config, error) { - c.DrawFrameRate = 120 - return c, nil - }) + oak.Init("pong") +} + +func newBallDelta() floatgeom.Point2 { + d := floatgeom.Point2{(rand.Float64() - 0.5) * 4, (rand.Float64() - 0.5) * 16} + if math.Abs(d.X()) < 0.5 { + d[0] *= 5 + } + return d } func newBall(ctx *scene.Context, x, y float64) { - b := entities.NewMoving(x, y, 10, 10, render.NewColorBoxR(10, 10, color.RGBA{255, 255, 255, 255}), nil, 0, 0) - render.Draw(b.R, 2) - event.GlobalBind(ctx, event.Enter, func(_ event.EnterPayload) event.Response { - if b.Delta.X() == 0 && b.Delta.Y() == 0 { - b.Delta.SetY((rand.Float64() - 0.5) * 4) - b.Delta.SetX((rand.Float64() - 0.5) * 16) - if math.Abs(b.Delta.X()) < 0.1 { - b.Delta.SetX(8) - } - } - b.ShiftPos(b.Delta.X(), b.Delta.Y()) - if collision.HitLabel(b.Space, hitPaddle) != nil { - b.Delta.SetX(-1.1 * b.Delta.X()) - b.Delta.SetY(b.Delta.Y() + (rand.Float64()-0.5)*8) + ball := entities.New(ctx, + entities.WithRect(floatgeom.NewRect2WH(x, y, 10, 10)), + entities.WithColor(color.RGBA{255, 255, 255, 255}), + entities.WithDrawLayers([]int{2}), + ) + ball.Delta = newBallDelta() + event.Bind(ctx, event.Enter, ball, func(ball *entities.Entity, _ event.EnterPayload) event.Response { + ball.ShiftDelta() + if collision.HitLabel(ball.Space, hitPaddle) != nil { + ball.Delta[0] *= -1.1 + ball.Delta[1] += (rand.Float64() - 0.5) * 8 } - if b.X() < 0 || b.X() > 640 { - if b.X() < 0 { + if ball.X() < 0 || ball.X() > 640 { + if ball.X() < 0 { score1++ } else { score2++ } - b.Delta.SetX(0) - b.Delta.SetY(0) - b.SetPos(320, 240) - } else if b.Y() < 0 || b.Y() > 480-b.H { - b.Delta.SetY(-1 * b.Delta.Y()) + ball.Delta = newBallDelta() + ball.SetPos(floatgeom.Point2{320, 240}) + } else if ball.Y() < 0 || ball.Y() > 480-ball.H() { + ball.Delta[1] = -1 * ball.Delta.Y() } return 0 }) } func newPaddle(ctx *scene.Context, x, y float64, player int) { - p := entities.NewMoving(x, y, 20, 100, render.NewColorBoxR(20, 100, color.RGBA{255, 255, 255, 255}), nil, 0, 0) - p.Speed.SetY(8) - render.Draw(p.R, 1) - p.Space.UpdateLabel(hitPaddle) - if player == 1 { - event.Bind(ctx, event.Enter, p, enterPaddle(key.UpArrow, key.DownArrow)) + paddle := entities.New(ctx, + entities.WithRect(floatgeom.NewRect2WH(x, y, 20, 100)), + entities.WithColor(color.RGBA{255, 255, 255, 255}), + entities.WithDrawLayers([]int{1}), + entities.WithLabel(hitPaddle), + ) + if player == 2 { + event.Bind(ctx, event.Enter, paddle, enterPaddle(key.UpArrow, key.DownArrow)) } else { - event.Bind(ctx, event.Enter, p, enterPaddle(key.W, key.S)) + event.Bind(ctx, event.Enter, paddle, enterPaddle(key.W, key.S)) } } -func enterPaddle(up, down key.Code) func(*entities.Moving, event.EnterPayload) event.Response { - return func(p *entities.Moving, _ event.EnterPayload) event.Response { - p.Delta.SetY(0) +func enterPaddle(up, down key.Code) func(*entities.Entity, event.EnterPayload) event.Response { + return func(p *entities.Entity, _ event.EnterPayload) event.Response { if oak.IsDown(up) { - p.Delta.SetY(-p.Speed.Y()) - } else if oak.IsDown(down) { - p.Delta.SetY(p.Speed.Y()) - } - p.ShiftY(p.Delta.Y()) - if p.Y() < 0 || p.Y() > (480-p.H) { - p.ShiftY(-p.Delta.Y()) + if p.Y() > 0 { + p.ShiftY(-8) + } + } else if oak.IsDown(down) && p.Y() < (480-p.H()) { + p.ShiftY(8) } return 0 } From a919230a771b2eb84df35c6106415162d18cabfe Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Wed, 6 Apr 2022 09:16:00 -0500 Subject: [PATCH 075/146] examples/collision-demo: rewrite for entities v4 --- examples/collision-demo/main.go | 90 ++++++++++++++++----------------- 1 file changed, 43 insertions(+), 47 deletions(-) diff --git a/examples/collision-demo/main.go b/examples/collision-demo/main.go index d5374005..80a49339 100644 --- a/examples/collision-demo/main.go +++ b/examples/collision-demo/main.go @@ -3,7 +3,8 @@ package main import ( "image/color" - oak "github.com/oakmound/oak/v3" + "github.com/oakmound/oak/v3" + "github.com/oakmound/oak/v3/alg/floatgeom" "github.com/oakmound/oak/v3/collision" "github.com/oakmound/oak/v3/entities" "github.com/oakmound/oak/v3/event" @@ -23,40 +24,35 @@ const ( func main() { oak.AddScene("demo", scene.Scene{Start: func(ctx *scene.Context) { act := &AttachCollisionTest{} - act.Solid = entities.NewSolid(50, 50, 50, 50, render.NewColorBox(50, 50, color.RGBA{0, 0, 0, 255}), nil, ctx.CallerMap.Register(act)) - - collision.Attach(act.Vector, act.Space, nil, 0, 0) + act.CallerID = ctx.Register(act) + act.Entity = entities.New(ctx, + entities.WithRect(floatgeom.NewRect2WH(50, 50, 50, 50)), + entities.WithColor(color.RGBA{0, 0, 0, 255}), + entities.WithDrawLayers([]int{0, 1}), + entities.WithParent(act), + ) event.Bind(ctx, event.Enter, act, func(act *AttachCollisionTest, ev event.EnterPayload) event.Response { if act.ShouldUpdate { act.ShouldUpdate = false - act.R.Undraw() - act.R = act.nextR - render.Draw(act.R, 0, 1) + act.Renderable.Undraw() + act.Renderable = act.nextR + render.Draw(act.Renderable, 0, 1) } if oak.IsDown(key.A) { - // We could use attachment here to not have to shift both - // R and act but that is made more difficult by constantly - // changing the act's R act.ShiftX(-3) - act.R.ShiftX(-3) } else if oak.IsDown(key.D) { act.ShiftX(3) - act.R.ShiftX(3) } if oak.IsDown(key.W) { act.ShiftY(-3) - act.R.ShiftY(-3) } else if oak.IsDown(key.S) { act.ShiftY(3) - act.R.ShiftY(3) } return 0 }) - render.Draw(act.R, 0, 1) - - collision.PhaseCollision(act.Space, nil) + collision.PhaseCollision(act.Space, ctx.CollisionTree) event.Bind(ctx, collision.Start, act, func(act *AttachCollisionTest, l collision.Label) event.Response { switch l { @@ -95,25 +91,33 @@ func main() { return 0 }) - upleft := entities.NewSolid(0, 0, 320, 240, render.NewColorBox(320, 240, color.RGBA{100, 0, 0, 100}), nil, 0) - upleft.Space.UpdateLabel(RED) - upleft.R.SetLayer(0) - render.Draw(upleft.R, 0, 0) - - upright := entities.NewSolid(320, 0, 320, 240, render.NewColorBox(320, 240, color.RGBA{0, 100, 0, 100}), nil, 0) - upright.Space.UpdateLabel(GREEN) - upright.R.SetLayer(0) - render.Draw(upright.R, 0, 0) - - botleft := entities.NewSolid(0, 240, 320, 240, render.NewColorBox(320, 240, color.RGBA{0, 0, 100, 100}), nil, 0) - botleft.Space.UpdateLabel(BLUE) - botleft.R.SetLayer(0) - render.Draw(botleft.R, 0, 0) - - botright := entities.NewSolid(320, 240, 320, 240, render.NewColorBox(320, 240, color.RGBA{0, 100, 100, 100}), nil, 0) - botright.Space.UpdateLabel(TEAL) - botright.R.SetLayer(0) - render.Draw(botright.R, 0, 0) + commonOpts := entities.And( + entities.WithDrawLayers([]int{0, 0}), + entities.WithDimensions(floatgeom.Point2{320, 240}), + ) + + entities.New(ctx, commonOpts, + entities.WithColor(color.RGBA{100, 0, 0, 100}), + entities.WithLabel(RED), + ) + + entities.New(ctx, commonOpts, + entities.WithPosition(floatgeom.Point2{320, 0}), + entities.WithColor(color.RGBA{0, 100, 0, 100}), + entities.WithLabel(GREEN), + ) + + entities.New(ctx, commonOpts, + entities.WithPosition(floatgeom.Point2{0, 240}), + entities.WithColor(color.RGBA{0, 0, 100, 100}), + entities.WithLabel(BLUE), + ) + + entities.New(ctx, commonOpts, + entities.WithPosition(floatgeom.Point2{320, 240}), + entities.WithColor(color.RGBA{0, 100, 100, 100}), + entities.WithLabel(TEAL), + ) }}) render.SetDrawStack( render.NewDynamicHeap(), @@ -122,23 +126,15 @@ func main() { } type AttachCollisionTest struct { - *entities.Solid - // AttachSpace is a composable struct that allows - // spaces to be attached to vectors - collision.AttachSpace - // Phase is a composable struct that enables the call - // collision.CollisionPhase on this struct's space, - // which will start sending signals when that space - // starts and stops touching given labels - collision.Phase + *entities.Entity + event.CallerID r, g, b int ShouldUpdate bool nextR render.Renderable } -// CID returns the event.CallerID so that this can be bound to. func (act *AttachCollisionTest) CID() event.CallerID { - return act.CallerID + return act.CallerID.CID() } // UpdateR with the rgb set on the act. From cf7de236ea57724b6f9982563396da923cfa0992 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Wed, 6 Apr 2022 09:16:37 -0500 Subject: [PATCH 076/146] scene: embed DrawStack into Context This enables calling, e.g., ctx.Draw instead of ctx.DrawStack.Draw --- scene/context.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scene/context.go b/scene/context.go index 3ba0a48d..07c394d7 100644 --- a/scene/context.go +++ b/scene/context.go @@ -25,7 +25,7 @@ type Context struct { SceneInput interface{} Window Window - DrawStack *render.DrawStack + *render.DrawStack MouseTree *collision.Tree CollisionTree *collision.Tree From 3e72c2e22732bd44e68409976630bfc77fcae411 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Wed, 6 Apr 2022 11:08:03 -0500 Subject: [PATCH 077/146] examples: rewrite for entities v4 --- entities/entity.go | 24 ++ entities/move.go | 59 +++++ entities/x/force/directionSpace.go | 29 --- entities/x/force/hurtBox.go | 52 ---- entities/x/move/mover.go | 18 -- entities/x/move/shift.go | 21 -- entities/x/move/topdown.go | 71 ----- examples/flappy-bird/main.go | 144 ++++------ examples/piano/main.go | 18 +- examples/platformer-tutorial/1-start/start.go | 21 -- .../platformer-tutorial/2-moving/moving.go | 39 --- .../platformer-tutorial/3-falling/falling.go | 68 ----- .../platformer-tutorial/4-jumping/jumping.go | 71 ----- .../5-correct-jumping/correct-jumping.go | 77 ------ examples/platformer-tutorial/README.md | 17 -- .../6-complete => platformer}/example.gif | Bin .../complete.go => platformer/main.go} | 59 ++--- examples/radar-demo/main.go | 60 ++--- examples/rooms/main.go | 27 +- examples/sprite-demo/main.go | 18 +- examples/text-demo-1/main.go | 5 +- examples/titlescreen-demo/main.go | 34 ++- .../1-start/start.go | 62 ----- .../2-shooting/shooting.go | 68 ----- .../3-enemies/enemies.go | 152 ----------- .../4-sprites/sprites.go | 227 ---------------- .../5-viewport/assets/images/16x16/sheet.png | Bin 511 -> 0 bytes .../assets/images/character/eggplant-fish.png | Bin 495 -> 0 bytes .../5-viewport/viewport.go | 246 ------------------ .../assets/images/16x16/sheet.png | Bin 511 -> 0 bytes .../assets/images/character/eggplant-fish.png | Bin 495 -> 0 bytes examples/top-down-shooter-tutorial/README.md | 27 -- .../assets/images/16x16/sheet.png | Bin .../assets/images/character/eggplant-fish.png | Bin .../example.gif | Bin .../main.go} | 82 +++--- 36 files changed, 286 insertions(+), 1510 deletions(-) create mode 100644 entities/move.go delete mode 100644 entities/x/force/directionSpace.go delete mode 100644 entities/x/force/hurtBox.go delete mode 100644 entities/x/move/mover.go delete mode 100644 entities/x/move/shift.go delete mode 100644 entities/x/move/topdown.go delete mode 100644 examples/platformer-tutorial/1-start/start.go delete mode 100644 examples/platformer-tutorial/2-moving/moving.go delete mode 100644 examples/platformer-tutorial/3-falling/falling.go delete mode 100644 examples/platformer-tutorial/4-jumping/jumping.go delete mode 100644 examples/platformer-tutorial/5-correct-jumping/correct-jumping.go delete mode 100644 examples/platformer-tutorial/README.md rename examples/{platformer-tutorial/6-complete => platformer}/example.gif (100%) rename examples/{platformer-tutorial/6-complete/complete.go => platformer/main.go} (71%) delete mode 100644 examples/top-down-shooter-tutorial/1-start/start.go delete mode 100644 examples/top-down-shooter-tutorial/2-shooting/shooting.go delete mode 100644 examples/top-down-shooter-tutorial/3-enemies/enemies.go delete mode 100644 examples/top-down-shooter-tutorial/4-sprites/sprites.go delete mode 100644 examples/top-down-shooter-tutorial/5-viewport/assets/images/16x16/sheet.png delete mode 100644 examples/top-down-shooter-tutorial/5-viewport/assets/images/character/eggplant-fish.png delete mode 100644 examples/top-down-shooter-tutorial/5-viewport/viewport.go delete mode 100644 examples/top-down-shooter-tutorial/6-performance/assets/images/16x16/sheet.png delete mode 100644 examples/top-down-shooter-tutorial/6-performance/assets/images/character/eggplant-fish.png delete mode 100644 examples/top-down-shooter-tutorial/README.md rename examples/{top-down-shooter-tutorial/4-sprites => top-down-shooter}/assets/images/16x16/sheet.png (100%) rename examples/{top-down-shooter-tutorial/4-sprites => top-down-shooter}/assets/images/character/eggplant-fish.png (100%) rename examples/{top-down-shooter-tutorial/6-performance => top-down-shooter}/example.gif (100%) rename examples/{top-down-shooter-tutorial/6-performance/performance.go => top-down-shooter/main.go} (74%) diff --git a/entities/entity.go b/entities/entity.go index 5310c64c..71acd78c 100644 --- a/entities/entity.go +++ b/entities/entity.go @@ -86,6 +86,18 @@ func (e Entity) W() float64 { func (e Entity) H() float64 { return e.Rect.H() } +func (e Entity) Top() float64 { + return e.Y() +} +func (e Entity) Bottom() float64 { + return e.Y() + e.H() +} +func (e Entity) Left() float64 { + return e.X() +} +func (e Entity) Right() float64 { + return e.X() + e.W() +} func (e *Entity) ShiftDelta() { e.Shift(e.Delta) @@ -104,6 +116,14 @@ func (e *Entity) Shift(delta floatgeom.Point2) { } } +func (e *Entity) SetX(x float64) { + e.ShiftX(x - e.X()) +} + +func (e *Entity) SetY(y float64) { + e.ShiftY(y - e.Y()) +} + func (e *Entity) ShiftX(x float64) { e.Renderable.ShiftX(x) e.Rect = e.Rect.Shift(floatgeom.Point2{x, 0}) @@ -135,6 +155,10 @@ func (e *Entity) SetPos(p floatgeom.Point2) { } } +func (e *Entity) HitLabel(label collision.Label) *collision.Space { + return e.Tree.HitLabel(e.Space, label) +} + func (e *Entity) Destroy() { e.Renderable.Undraw() e.Tree.Remove(e.Space) diff --git a/entities/move.go b/entities/move.go new file mode 100644 index 00000000..eb17d039 --- /dev/null +++ b/entities/move.go @@ -0,0 +1,59 @@ +package entities + +import ( + "github.com/oakmound/oak/v3/alg/floatgeom" + "github.com/oakmound/oak/v3/key" +) + +// WASD moves the given mover based on its speed as W,A,S, and D are pressed +func WASD(mvr *Entity) { + TopDown(mvr, key.W, key.S, key.A, key.D) +} + +// Arrows moves the given mover based on its speed as the arrow keys are pressed +func Arrows(mvr *Entity) { + TopDown(mvr, key.UpArrow, key.DownArrow, key.LeftArrow, key.RightAlt) +} + +// TopDown moves the given mover based on its speed as the given keys are pressed +func TopDown(mvr *Entity, up, down, left, right key.Code) { + mvr.Delta = floatgeom.Point2{} + if mvr.ctx.KeyState.IsDown(up) { + mvr.Delta[1] -= mvr.Speed[1] + } + if mvr.ctx.KeyState.IsDown(down) { + mvr.Delta[1] += mvr.Speed[1] + } + if mvr.ctx.KeyState.IsDown(left) { + mvr.Delta[0] -= mvr.Speed[0] + } + if mvr.ctx.KeyState.IsDown(right) { + mvr.Delta[0] += mvr.Speed[0] + } + mvr.ShiftDelta() +} + +// CenterScreenOn will cause the screen to center on the given mover, obeying +// viewport limits if they have been set previously +func CenterScreenOn(mvr *Entity) { + mvr.ctx.Window.SetScreen( + int(mvr.X())-mvr.ctx.Window.Width()/2, + int(mvr.Y())-mvr.ctx.Window.Height()/2, + ) +} + +// Limit restricts the movement of the mover to stay within a given rectangle +func Limit(mvr *Entity, rect floatgeom.Rect2) { + wf := mvr.W() + hf := mvr.H() + if mvr.X() < rect.Min.X() { + mvr.SetX(rect.Min.X()) + } else if mvr.X() > rect.Max.X()-wf { + mvr.SetX(rect.Max.X() - wf) + } + if mvr.Y() < rect.Min.Y() { + mvr.SetY(rect.Min.Y()) + } else if mvr.Y() > rect.Max.Y()-hf { + mvr.SetY(rect.Max.Y() - hf) + } +} diff --git a/entities/x/force/directionSpace.go b/entities/x/force/directionSpace.go deleted file mode 100644 index 345b1d70..00000000 --- a/entities/x/force/directionSpace.go +++ /dev/null @@ -1,29 +0,0 @@ -package force - -import ( - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/physics" -) - -// A DirectionSpace combines collision and a intended direction collision should imply -type DirectionSpace struct { - *collision.Space - physics.ForceVector - event.CallerID -} - -func (ds DirectionSpace) CID() event.CallerID { - return ds.CallerID -} - -// NewDirectionSpace creates a DirectionSpace and initializes it as an entity. -func NewDirectionSpace(s *collision.Space, v physics.ForceVector) *DirectionSpace { - ds := &DirectionSpace{ - Space: s, - ForceVector: v, - } - // TODO: not default - s.CID = event.DefaultCallerMap.Register(ds) - return ds -} diff --git a/entities/x/force/hurtBox.go b/entities/x/force/hurtBox.go deleted file mode 100644 index 12af2bc7..00000000 --- a/entities/x/force/hurtBox.go +++ /dev/null @@ -1,52 +0,0 @@ -package force - -import ( - "image/color" - "time" - - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/physics" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" -) - -type hurtBox struct { - *DirectionSpace -} - -// NewHurtBox creates a temporary collision space with a given force it should -// apply to objects it collides with -func NewHurtBox(ctx *scene.Context, x, y, w, h float64, duration time.Duration, l collision.Label, fv physics.ForceVector) { - hb := new(hurtBox) - hb.DirectionSpace = NewDirectionSpace(collision.NewLabeledSpace(x, y, w, h, l), fv) - collision.Add(hb.Space) - go ctx.DoAfter(duration, func() { - collision.Remove(hb.Space) - }) -} - -// NewHurtColor creates a temporary collision space with a given force it should -// apply to objects it collides with. The box is rendered as the given color -func NewHurtColor(ctx *scene.Context, x, y, w, h float64, duration time.Duration, l collision.Label, - fv physics.ForceVector, c color.Color, layers ...int) { - - cb := render.NewColorBox(int(w), int(h), c) - NewHurtDisplay(ctx, x, y, w, h, duration, l, fv, cb, layers...) -} - -// NewHurtDisplay creates a temporary collision space with a given force it should -// apply to objects it collides with. The box is rendered as the given renderable. -// The input renderable is not copied before it is drawn. -func NewHurtDisplay(ctx *scene.Context, x, y, w, h float64, duration time.Duration, l collision.Label, - fv physics.ForceVector, r render.Renderable, layers ...int) { - - hb := new(hurtBox) - hb.DirectionSpace = NewDirectionSpace(collision.NewLabeledSpace(x, y, w, h, l), fv) - collision.Add(hb.Space) - r.SetPos(x, y) - render.Draw(r, layers...) - go ctx.DoAfter(duration, func() { - collision.Remove(hb.Space) - r.Undraw() - }) -} diff --git a/entities/x/move/mover.go b/entities/x/move/mover.go deleted file mode 100644 index 7dd9cb9c..00000000 --- a/entities/x/move/mover.go +++ /dev/null @@ -1,18 +0,0 @@ -package move - -import ( - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/physics" - "github.com/oakmound/oak/v3/render" -) - -// A Mover can move its position, renderable, and space. Unless otherwise documented, -// functions effecting a mover move all of its logical position, renderable, and space -// simultaneously. -type Mover interface { - Vec() physics.Vector - GetRenderable() render.Renderable - GetDelta() physics.Vector - GetSpace() *collision.Space - GetSpeed() physics.Vector -} diff --git a/entities/x/move/shift.go b/entities/x/move/shift.go deleted file mode 100644 index cdfe6e7d..00000000 --- a/entities/x/move/shift.go +++ /dev/null @@ -1,21 +0,0 @@ -package move - -// ShiftX will ShiftX on the vector of the mover and -// set the renderable and space positions to that of the updated vector. -func ShiftX(mvr Mover, x float64) { - vec := mvr.Vec() - vec.ShiftX(x) - mvr.GetRenderable().SetPos(vec.X(), vec.Y()) - sp := mvr.GetSpace() - sp.Update(vec.X(), vec.Y(), sp.GetW(), sp.GetH()) -} - -// ShiftY will ShiftY on the vector of the mover and -// set the renderable and space positions to that of the updated vector. -func ShiftY(mvr Mover, y float64) { - vec := mvr.Vec() - vec.ShiftY(y) - mvr.GetRenderable().SetPos(vec.X(), vec.Y()) - sp := mvr.GetSpace() - sp.Update(vec.X(), vec.Y(), sp.GetW(), sp.GetH()) -} diff --git a/entities/x/move/topdown.go b/entities/x/move/topdown.go deleted file mode 100644 index a4a9c6c7..00000000 --- a/entities/x/move/topdown.go +++ /dev/null @@ -1,71 +0,0 @@ -package move - -import ( - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/key" - "github.com/oakmound/oak/v3/physics" -) - -// WASD moves the given mover based on its speed as W,A,S, and D are pressed -func WASD(mvr Mover) { - TopDown(mvr, key.W, key.S, key.A, key.D) -} - -// Arrows moves the given mover based on its speed as the arrow keys are pressed -func Arrows(mvr Mover) { - TopDown(mvr, key.UpArrow, key.DownArrow, key.LeftArrow, key.RightAlt) -} - -// TopDown moves the given mover based on its speed as the given keys are pressed -func TopDown(mvr Mover, up, down, left, right key.Code) { - delta := mvr.GetDelta() - vec := mvr.Vec() - spd := mvr.GetSpeed() - - delta.Zero() - if oak.IsDown(up) { - delta.Add(physics.NewVector(0, -spd.Y())) - } - if oak.IsDown(down) { - delta.Add(physics.NewVector(0, spd.Y())) - } - if oak.IsDown(left) { - delta.Add(physics.NewVector(-spd.X(), 0)) - } - if oak.IsDown(right) { - delta.Add(physics.NewVector(spd.X(), 0)) - } - vec.Add(delta) - mvr.GetRenderable().SetPos(vec.X(), vec.Y()) - sp := mvr.GetSpace() - sp.Update(vec.X(), vec.Y(), sp.GetW(), sp.GetH()) -} - -// CenterScreenOn will cause the screen to center on the given mover, obeying -// viewport limits if they have been set previously -func CenterScreenOn(mvr Mover) { - vec := mvr.Vec() - oak.SetScreen( - int(vec.X())-oak.Width()/2, - int(vec.Y())-oak.Height()/2, - ) -} - -// Limit restricts the movement of the mover to stay within a given rectangle -func Limit(mvr Mover, rect floatgeom.Rect2) { - vec := mvr.Vec() - w, h := mvr.GetRenderable().GetDims() - wf := float64(w) - hf := float64(h) - if vec.X() < rect.Min.X() { - vec.SetX(rect.Min.X()) - } else if vec.X() > rect.Max.X()-wf { - vec.SetX(rect.Max.X() - wf) - } - if vec.Y() < rect.Min.Y() { - vec.SetY(rect.Min.Y()) - } else if vec.Y() > rect.Max.Y()-hf { - vec.SetY(rect.Max.Y() - hf) - } -} diff --git a/examples/flappy-bird/main.go b/examples/flappy-bird/main.go index f8516b85..3aa814f3 100644 --- a/examples/flappy-bird/main.go +++ b/examples/flappy-bird/main.go @@ -4,6 +4,7 @@ import ( "image/color" "time" + "github.com/oakmound/oak/v3/alg/floatgeom" "github.com/oakmound/oak/v3/alg/range/floatrange" "github.com/oakmound/oak/v3/mouse" @@ -17,28 +18,24 @@ import ( ) var ( - pillarFreq = floatrange.NewLinear(1, 5) - gapPosition = floatrange.NewLinear(10, 370) - gapSpan = floatrange.NewLinear(100, 250) - playerHitPillar bool - score int + score int ) -// This const block is used for determining what type -// of entity is colliding with what +// label pillars with a known constant, so when we hit them, we can restart the scene const ( - player collision.Label = iota - pillar + pillar collision.Label = iota ) func main() { - oak.AddScene("bounce", scene.Scene{Start: func(ctx *scene.Context) { - render.Draw(render.NewDrawFPS(0.03, nil, 10, 10)) + oak.AddScene("flappy", scene.Scene{Start: func(ctx *scene.Context) { + render.Draw(render.NewDrawFPS(0, nil, 10, 10), 2, 0) + render.Draw(render.NewLogicFPS(0, nil, 10, 20), 2, 0) score = 0 // 1. Make Player newFlappy(ctx, 90, 140) // 2. Make scrolling repeating pillars + pillarFreq := floatrange.NewLinear(1, 5) var pillarLoop func() pillarLoop = func() { newPillarPair(ctx) @@ -49,96 +46,55 @@ func main() { // 3. Make Score t := render.DefaultFont().NewIntText(&score, 200, 30) render.Draw(t, 0) - }, End: func() (string, *scene.Result) { - return "bounce", nil }}) - render.SetDrawStack( - render.NewDynamicHeap(), - ) - oak.Init("bounce") -} - -// A Flappy is on a journey to go to the right -type Flappy struct { - *entities.Interactive + oak.Init("flappy") } -// CID returns the event.CallerID so that this can be bound to. -func (flap *Flappy) CID() event.CallerID { - return flap.CallerID -} - -func newFlappy(ctx *scene.Context, x, y float64) *Flappy { - f := new(Flappy) - f.Interactive = entities.NewInteractive(x, y, 32, 32, render.NewColorBox(32, 32, color.RGBA{0, 255, 255, 255}), nil, ctx.Register(f), 1) +func newFlappy(ctx *scene.Context, x, y float64) { + f := entities.New(ctx, + entities.WithRect(floatgeom.NewRect2WH(x, y, 32, 32)), + entities.WithColor(color.RGBA{0, 255, 255, 255}), + entities.WithDrawLayers([]int{0, 1}), + ) - f.RSpace.Add(pillar, func(s1, s2 *collision.Space) { - ctx.Window.NextScene() - }) - f.RSpace.Space.Label = player - collision.Add(f.RSpace.Space) - - f.R.SetLayer(1) - render.Draw(f.R, 0) - event.Bind(ctx, event.Enter, f, func(f *Flappy, ev event.EnterPayload) event.Response { - f.ShiftPos(f.Delta.X(), f.Delta.Y()) - f.Add(f.Delta) + event.Bind(ctx, event.Enter, f, func(f *entities.Entity, ev event.EnterPayload) event.Response { + f.ShiftDelta() if f.Delta.Y() > 10 { - f.Delta.SetY(10) + f.Delta[1] = 10 } if f.Delta.Y() < -5 { - f.Delta.SetY(-5) + f.Delta[1] = -5 } // Gravity - f.Delta.ShiftY(.15) + f.Delta[1] += .15 - <-f.RSpace.CallOnHits() - if f.Y()+f.H > 480 { + if collision.HitLabel(f.Space, pillar) != nil { + ctx.Window.NextScene() + } + + if f.Bottom() > 480 { ctx.Window.NextScene() } if f.Y() < 0 { - f.SetY(0) - f.Delta.SetY(0) + f.ShiftY(-f.Y()) + f.Delta[1] = 0 } return 0 }) - - event.Bind(ctx, mouse.Press, f, func(f *Flappy, me *mouse.Event) event.Response { - f.Delta.ShiftY(-4) + event.Bind(ctx, mouse.Press, f, func(f *entities.Entity, _ *mouse.Event) event.Response { + f.Delta[1] -= 4 return 0 }) - event.Bind(ctx, key.Down(key.W), f, func(f *Flappy, k key.Event) event.Response { - f.Delta.ShiftY(-4) + event.Bind(ctx, key.Down(key.W), f, func(f *entities.Entity, _ key.Event) event.Response { + f.Delta[1] -= 4 return 0 }) - return f } -// A Pillar blocks flappy from continuing forward -type Pillar struct { - *entities.Solid - hasScored bool -} - -// CID returns the event.CallerID so that this can be bound to. -func (p *Pillar) CID() event.CallerID { - return p.CallerID -} - -func newPillar(ctx *scene.Context, x, y, h float64, isAbove bool) { - p := new(Pillar) - p.Solid = entities.NewSolid(x, y, 64, h, render.NewColorBox(64, int(h), color.RGBA{0, 255, 0, 255}), nil, ctx.Register(p)) - p.Space.Label = pillar - collision.Add(p.Space) - event.Bind(ctx, event.Enter, p, enterPillar) - - p.R.SetLayer(1) - render.Draw(p.R, 0) - // Don't score one out of each two pillars - if isAbove { - p.hasScored = true - } -} +var ( + gapPosition = floatrange.NewLinear(10, 370) + gapSpan = floatrange.NewLinear(100, 250) +) func newPillarPair(ctx *scene.Context) { pos := gapPosition.Poll() @@ -154,14 +110,26 @@ func newPillarPair(ctx *scene.Context) { newPillar(ctx, 641, pos+span, 480-(pos+span), false) } -func enterPillar(p *Pillar, ev event.EnterPayload) event.Response { - p.ShiftX(-2) - if p.X()+p.W < 0 { - p.Destroy() - } - if !p.hasScored && p.X()+p.W < 90 { - p.hasScored = true - score++ +func newPillar(ctx *scene.Context, x, y, h float64, isAbove bool) { + p := entities.New(ctx, + entities.WithRect(floatgeom.NewRect2WH(x, y, 64, h)), + entities.WithColor(color.RGBA{0, 255, 0, 255}), + entities.WithLabel(pillar), + entities.WithDrawLayers([]int{0, 1}), + ) + event.Bind(ctx, event.Enter, p, enterPillar(isAbove)) +} + +func enterPillar(isAbove bool) func(p *entities.Entity, ev event.EnterPayload) event.Response { + return func(p *entities.Entity, ev event.EnterPayload) event.Response { + p.ShiftX(-2) + if p.X()+p.W() < 0 { + // don't score one out of each two pillars + if isAbove { + score++ + } + p.Destroy() + } + return 0 } - return 0 } diff --git a/examples/piano/main.go b/examples/piano/main.go index 4e20f698..631307aa 100644 --- a/examples/piano/main.go +++ b/examples/piano/main.go @@ -11,6 +11,7 @@ import ( "time" "github.com/oakmound/oak/v3" + "github.com/oakmound/oak/v3/alg/floatgeom" "github.com/oakmound/oak/v3/audio" "github.com/oakmound/oak/v3/audio/pcm" "github.com/oakmound/oak/v3/audio/synth" @@ -61,7 +62,7 @@ func (kc keyColor) Color() color.RGBA { return color.RGBA{255, 255, 255, 255} } -func newKey(ctx *scene.Context, note synth.Pitch, c keyColor, k key.Code) *entities.Solid { +func newKey(ctx *scene.Context, note synth.Pitch, c keyColor, k key.Code) *entities.Entity { w := c.Width() h := c.Height() clr := c.Color() @@ -85,7 +86,11 @@ func newKey(ctx *scene.Context, note synth.Pitch, c keyColor, k key.Code) *entit render.NewLine(w, 0, 0, 0, color.RGBA{0, 0, 0, 255}), ).ToSprite(), }) - s := entities.NewSolid(0, 0, w, h, sw, mouse.DefaultTree, 0) + s := entities.New(ctx, + entities.WithUseMouseTree(true), + entities.WithDimensions(floatgeom.Point2{w, h}), + entities.WithRenderable(sw), + ) if c == keyColorBlack { s.Space.SetZLayer(1) s.Space.Label = labelBlackKey @@ -93,7 +98,6 @@ func newKey(ctx *scene.Context, note synth.Pitch, c keyColor, k key.Code) *entit s.Space.SetZLayer(2) s.Space.Label = labelWhiteKey } - mouse.UpdateSpace(s.X(), s.Y(), s.W, s.H, s.Space) event.GlobalBind(ctx, key.Down(k), func(ev key.Event) event.Response { // TODO: add helper function for this? if ev.Modifiers&key.ModShift == key.ModShift { @@ -111,13 +115,13 @@ func newKey(ctx *scene.Context, note synth.Pitch, c keyColor, k key.Code) *entit sw.Set("up") return 0 }) - event.Bind(ctx, mouse.PressOn, s, func(_ *entities.Solid, me *mouse.Event) event.Response { + event.Bind(ctx, mouse.PressOn, s, func(_ *entities.Entity, me *mouse.Event) event.Response { playPitch(ctx, note) me.StopPropagation = true sw.Set("down") return 0 }) - event.Bind(ctx, mouse.Release, s, func(_ *entities.Solid, me *mouse.Event) event.Response { + event.Bind(ctx, mouse.Release, s, func(_ *entities.Entity, me *mouse.Event) event.Response { releasePitch(note) sw.Set("up") return 0 @@ -212,12 +216,12 @@ func main() { i := 0 for i < len(keycharOrder) && x+kc.Width() < float64(ctx.Window.Width()-10) { ky := newKey(ctx, pitch, kc, keycharOrder[i]) - ky.SetPos(x, y) + ky.SetPos(floatgeom.Point2{x, y}) layer := 0 if kc == keyColorBlack { layer = 1 } - render.Draw(ky.R, layer) + render.Draw(ky.Renderable, layer) x += kc.Width() pitch = pitch.Up(synth.HalfStep) if pitch.IsAccidental() { diff --git a/examples/platformer-tutorial/1-start/start.go b/examples/platformer-tutorial/1-start/start.go deleted file mode 100644 index f7158df2..00000000 --- a/examples/platformer-tutorial/1-start/start.go +++ /dev/null @@ -1,21 +0,0 @@ -package main - -import ( - "image/color" - - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" -) - -func main() { - oak.AddScene("platformer", scene.Scene{Start: func(*scene.Context) { - char := entities.NewMoving(100, 100, 16, 32, - render.NewColorBox(16, 32, color.RGBA{255, 0, 0, 255}), - nil, 0, 0) - - render.Draw(char.R) - }}) - oak.Init("platformer") -} diff --git a/examples/platformer-tutorial/2-moving/moving.go b/examples/platformer-tutorial/2-moving/moving.go deleted file mode 100644 index d025bf3a..00000000 --- a/examples/platformer-tutorial/2-moving/moving.go +++ /dev/null @@ -1,39 +0,0 @@ -package main - -import ( - "image/color" - - "github.com/oakmound/oak/v3/physics" - - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" - - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" -) - -func main() { - oak.AddScene("platformer", scene.Scene{Start: func(ctx *scene.Context) { - - char := entities.NewMoving(100, 100, 16, 32, - render.NewColorBox(16, 32, color.RGBA{255, 0, 0, 255}), - nil, 0, 0) - - render.Draw(char.R) - - char.Speed = physics.NewVector(3, 3) - event.Bind(ctx, event.Enter, char, func(c *entities.Moving, ev event.EnterPayload) event.Response { - // Move left and right with A and D - if oak.IsDown(key.A) { - c.ShiftX(-c.Speed.X()) - } - if oak.IsDown(key.D) { - c.ShiftX(c.Speed.X()) - } - return 0 - }) - }}) - oak.Init("platformer") -} diff --git a/examples/platformer-tutorial/3-falling/falling.go b/examples/platformer-tutorial/3-falling/falling.go deleted file mode 100644 index a6968536..00000000 --- a/examples/platformer-tutorial/3-falling/falling.go +++ /dev/null @@ -1,68 +0,0 @@ -package main - -import ( - "image/color" - - "github.com/oakmound/oak/v3/collision" - - "github.com/oakmound/oak/v3/physics" - - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" - - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" -) - -// Collision labels -const ( - // The only collision label we need for this demo is 'ground', - // indicating something we shouldn't be able to fall or walk through - Ground collision.Label = 1 -) - -func main() { - oak.AddScene("platformer", scene.Scene{Start: func(ctx *scene.Context) { - - char := entities.NewMoving(100, 100, 16, 32, - render.NewColorBox(16, 32, color.RGBA{255, 0, 0, 255}), - nil, 0, 0) - - render.Draw(char.R) - - char.Speed = physics.NewVector(3, 3) - - fallSpeed := .1 - - event.Bind(ctx, event.Enter, char, func(c *entities.Moving, ev event.EnterPayload) event.Response { - - // Move left and right with A and D - if oak.IsDown(key.A) { - c.ShiftX(-c.Speed.X()) - } - if oak.IsDown(key.D) { - c.ShiftX(c.Speed.X()) - } - hit := c.HitLabel(Ground) - if hit == nil { - // Fall if there's no ground - c.Delta.ShiftY(fallSpeed) - } else { - c.Delta.SetY(0) - } - c.ShiftY(c.Delta.Y()) - return 0 - }) - - ground := entities.NewSolid(0, 400, 500, 20, - render.NewColorBox(500, 20, color.RGBA{0, 0, 255, 255}), - nil, 0) - ground.UpdateLabel(Ground) - - render.Draw(ground.R) - - }}) - oak.Init("platformer") -} diff --git a/examples/platformer-tutorial/4-jumping/jumping.go b/examples/platformer-tutorial/4-jumping/jumping.go deleted file mode 100644 index c9049469..00000000 --- a/examples/platformer-tutorial/4-jumping/jumping.go +++ /dev/null @@ -1,71 +0,0 @@ -package main - -import ( - "image/color" - - "github.com/oakmound/oak/v3/collision" - - "github.com/oakmound/oak/v3/physics" - - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" - - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" -) - -// Collision labels -const ( - // The only collision label we need for this demo is 'ground', - // indicating something we shouldn't be able to fall or walk through - Ground collision.Label = 1 -) - -func main() { - oak.AddScene("platformer", scene.Scene{Start: func(ctx *scene.Context) { - - char := entities.NewMoving(100, 100, 16, 32, - render.NewColorBox(16, 32, color.RGBA{255, 0, 0, 255}), - nil, 0, 0) - - render.Draw(char.R) - - char.Speed = physics.NewVector(3, 3) - - fallSpeed := .1 - - event.Bind(ctx, event.Enter, char, func(c *entities.Moving, ev event.EnterPayload) event.Response { - // Move left and right with A and D - if oak.IsDown(key.A) { - c.ShiftX(-c.Speed.X()) - } - if oak.IsDown(key.D) { - c.ShiftX(c.Speed.X()) - } - hit := collision.HitLabel(c.Space, Ground) - if hit == nil { - // Fall if there's no ground - c.Delta.ShiftY(fallSpeed) - } else { - c.Delta.SetY(0) - // Jump with Space - if oak.IsDown(key.Spacebar) { - c.Delta.ShiftY(-c.Speed.Y()) - } - } - c.ShiftY(c.Delta.Y()) - return 0 - }) - - ground := entities.NewSolid(0, 400, 500, 20, - render.NewColorBox(500, 20, color.RGBA{0, 0, 255, 255}), - nil, 0) - ground.UpdateLabel(Ground) - - render.Draw(ground.R) - - }}) - oak.Init("platformer") -} diff --git a/examples/platformer-tutorial/5-correct-jumping/correct-jumping.go b/examples/platformer-tutorial/5-correct-jumping/correct-jumping.go deleted file mode 100644 index 92040f79..00000000 --- a/examples/platformer-tutorial/5-correct-jumping/correct-jumping.go +++ /dev/null @@ -1,77 +0,0 @@ -package main - -import ( - "image/color" - - "github.com/oakmound/oak/v3/collision" - - "github.com/oakmound/oak/v3/physics" - - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" - - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" -) - -// Collision labels -const ( - // The only collision label we need for this demo is 'ground', - // indicating something we shouldn't be able to fall or walk through - Ground collision.Label = 1 -) - -func main() { - oak.AddScene("platformer", scene.Scene{Start: func(ctx *scene.Context) { - - char := entities.NewMoving(100, 100, 16, 32, - render.NewColorBox(16, 32, color.RGBA{255, 0, 0, 255}), - nil, 0, 0) - - render.Draw(char.R) - - char.Speed = physics.NewVector(3, 3) - - fallSpeed := .1 - - event.Bind(ctx, event.Enter, char, func(c *entities.Moving, ev event.EnterPayload) event.Response { - // Move left and right with A and D - if oak.IsDown(key.A) { - char.ShiftX(-char.Speed.X()) - } - if oak.IsDown(key.D) { - char.ShiftX(char.Speed.X()) - } - oldY := char.Y() - char.ShiftY(char.Delta.Y()) - hit := collision.HitLabel(char.Space, Ground) - - // If we've moved in y value this frame and in the last frame, - // we were below what we're trying to hit, we are still falling - if hit != nil && !(oldY != char.Y() && oldY+char.H > hit.Y()) { - // Correct our y if we started falling into the ground - char.SetY(hit.Y() - char.H) - char.Delta.SetY(0) - // Jump with Space - if oak.IsDown(key.Spacebar) { - char.Delta.ShiftY(-char.Speed.Y()) - } - } else { - // Fall if there's no ground - char.Delta.ShiftY(fallSpeed) - } - return 0 - }) - - ground := entities.NewSolid(0, 400, 500, 20, - render.NewColorBox(500, 20, color.RGBA{0, 0, 255, 255}), - nil, 0) - ground.UpdateLabel(Ground) - - render.Draw(ground.R) - - }}) - oak.Init("platformer") -} diff --git a/examples/platformer-tutorial/README.md b/examples/platformer-tutorial/README.md deleted file mode 100644 index 3a8a0268..00000000 --- a/examples/platformer-tutorial/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# Platformers -Check out how to make a simple 2d platformer. This has been broken into parts leading up to putting it all together. - -## start -Learn to set up an oak scene with a single potentially movable character. -## moving -Get your character to move left and right. -## falling -Implement basic collision and make the character fall if they are not on solid ground. -## jumping -Bind the ability to jump if we are on the ground. -## correct jumping -Update ground detection to only be able to jump on the ground not when falling through ground. -## complete -Put it all together! - -![Put it all together!](./6-complete/example.gif) \ No newline at end of file diff --git a/examples/platformer-tutorial/6-complete/example.gif b/examples/platformer/example.gif similarity index 100% rename from examples/platformer-tutorial/6-complete/example.gif rename to examples/platformer/example.gif diff --git a/examples/platformer-tutorial/6-complete/complete.go b/examples/platformer/main.go similarity index 71% rename from examples/platformer-tutorial/6-complete/complete.go rename to examples/platformer/main.go index 42f17f7a..5cf1af9f 100644 --- a/examples/platformer-tutorial/6-complete/complete.go +++ b/examples/platformer/main.go @@ -8,14 +8,11 @@ import ( "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/physics" - "github.com/oakmound/oak/v3/event" "github.com/oakmound/oak/v3/key" oak "github.com/oakmound/oak/v3" "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/render" "github.com/oakmound/oak/v3/scene" ) @@ -28,56 +25,54 @@ const ( func main() { oak.AddScene("platformer", scene.Scene{Start: func(ctx *scene.Context) { - char := entities.NewMoving(100, 100, 16, 32, - render.NewColorBox(16, 32, color.RGBA{255, 0, 0, 255}), - nil, 0, 0) - - render.Draw(char.R) - - char.Speed = physics.NewVector(3, 7) + char := entities.New(ctx, + entities.WithRect(floatgeom.NewRect2WH(100, 100, 16, 32)), + entities.WithColor(color.RGBA{255, 0, 0, 255}), + entities.WithDrawLayers([]int{0}), + entities.WithSpeed(floatgeom.Point2{3, 7}), + ) - fallSpeed := .2 + const fallSpeed = .2 - event.Bind(ctx, event.Enter, char, func(c *entities.Moving, ev event.EnterPayload) event.Response { + event.Bind(ctx, event.Enter, char, func(c *entities.Entity, ev event.EnterPayload) event.Response { // Move left and right with A and D if oak.IsDown(key.A) { - char.Delta.SetX(-char.Speed.X()) + char.Delta[0] = -char.Speed.X() } else if oak.IsDown(key.D) { - char.Delta.SetX(char.Speed.X()) + char.Delta[0] = char.Speed.X() } else { - char.Delta.SetX(0) + char.Delta[0] = (0) } - oldX, oldY := char.GetPos() - char.ShiftPos(char.Delta.X(), char.Delta.Y()) - + oldX, oldY := char.X(), char.Y() + char.ShiftDelta() aboveGround := false hit := collision.HitLabel(char.Space, Ground) // If we've moved in y value this frame and in the last frame, // we were below what we're trying to hit, we are still falling - if hit != nil && !(oldY != char.Y() && oldY+char.H > hit.Y()) { + if hit != nil && !(oldY != char.Y() && oldY+char.H() > hit.Y()) { // Correct our y if we started falling into the ground - char.SetY(hit.Y() - char.H) + char.SetY(hit.Y() - char.H()) // Stop falling - char.Delta.SetY(0) + char.Delta[1] = 0 // Jump with Space when on the ground if oak.IsDown(key.Spacebar) { - char.Delta.ShiftY(-char.Speed.Y()) + char.Delta[1] -= char.Speed.Y() } aboveGround = true } else { //Restart when is below ground if char.Y() > 500 { - char.Delta.SetY(0) + char.Delta[1] = 0 char.SetY(100) char.SetX(100) } // Fall if there's no ground - char.Delta.ShiftY(fallSpeed) + char.Delta[1] += fallSpeed } if hit != nil { @@ -102,7 +97,7 @@ func main() { } char.SetX(oldX + xbump) if char.Delta.Y() < 0 { - char.Delta.SetY(0) + char.Delta[1] = 0 } } @@ -112,7 +107,7 @@ func main() { if !aboveGround && math.Abs(xover) > 1 { // We add a buffer so this doesn't retrigger immediately char.SetY(oldY + 1) - char.Delta.SetY(fallSpeed) + char.Delta[1] = fallSpeed } } @@ -127,12 +122,12 @@ func main() { } for _, p := range platforms { - ground := entities.NewSolid(p.Min.X(), p.Min.Y(), p.W(), p.H(), - render.NewColorBox(int(p.W()), int(p.H()), color.RGBA{0, 0, 255, 255}), - nil, 0) - ground.UpdateLabel(Ground) - - render.Draw(ground.R) + entities.New(ctx, + entities.WithRect(p), + entities.WithColor(color.RGBA{0, 0, 255, 255}), + entities.WithLabel(Ground), + entities.WithDrawLayers([]int{0}), + ) } }}) diff --git a/examples/radar-demo/main.go b/examples/radar-demo/main.go index 981ceea5..afec01d9 100644 --- a/examples/radar-demo/main.go +++ b/examples/radar-demo/main.go @@ -10,10 +10,8 @@ import ( oak "github.com/oakmound/oak/v3" "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/entities/x/move" "github.com/oakmound/oak/v3/event" "github.com/oakmound/oak/v3/examples/radar-demo/radar" - "github.com/oakmound/oak/v3/physics" "github.com/oakmound/oak/v3/render" "github.com/oakmound/oak/v3/scene" ) @@ -33,21 +31,26 @@ func main() { oak.AddScene("demo", scene.Scene{Start: func(ctx *scene.Context) { render.Draw(render.NewDrawFPS(0.03, nil, 10, 10)) - char := entities.NewMoving(200, 200, 50, 50, render.NewColorBox(50, 50, color.RGBA{125, 125, 0, 255}), nil, 0, 1) - char.Speed = physics.NewVector(3, 3) + char := entities.New(ctx, + entities.WithRect(floatgeom.NewRect2WH(200, 200, 50, 50)), + entities.WithColor(color.RGBA{125, 125, 0, 255}), + entities.WithSpeed(floatgeom.Point2{3, 3}), + entities.WithDrawLayers([]int{1, 2}), + ) oak.SetViewportBounds(intgeom.NewRect2(0, 0, xLimit, yLimit)) moveRect := floatgeom.NewRect2(0, 0, xLimit, yLimit) - event.Bind(ctx, event.Enter, char, func(char *entities.Moving, ev event.EnterPayload) event.Response { - move.WASD(char) - move.Limit(char, moveRect) - move.CenterScreenOn(char) + event.Bind(ctx, event.Enter, char, func(char *entities.Entity, ev event.EnterPayload) event.Response { + entities.WASD(char) + entities.Limit(char, moveRect) + entities.CenterScreenOn(char) return 0 }) - render.Draw(char.R, 1, 2) // Create the Radar - center := radar.Point{X: char.Xp(), Y: char.Yp()} + xp := &char.Rect.Min[0] + yp := &char.Rect.Min[1] + center := radar.Point{X: xp, Y: yp} points := make(map[radar.Point]color.Color) w := 100 h := 100 @@ -58,8 +61,9 @@ func main() { x, y := rand.Float64()*400, rand.Float64()*400 enemy := newEnemyOnRadar(ctx, x, y) event.Bind(ctx, event.Enter, enemy, standardEnemyMove) - render.Draw(enemy.R, 1, 1) - r.AddPoint(radar.Point{X: enemy.Xp(), Y: enemy.Yp()}, color.RGBA{255, 255, 0, 255}) + xp := &enemy.Rect.Min[0] + yp := &enemy.Rect.Min[1] + r.AddPoint(radar.Point{X: xp, Y: yp}, color.RGBA{255, 255, 0, 255}) } render.Draw(r, 2) @@ -84,32 +88,30 @@ func main() { oak.Init("demo") } -type enemyOnRadar struct { - *entities.Moving -} - -func newEnemyOnRadar(ctx *scene.Context, x, y float64) *enemyOnRadar { - eor := new(enemyOnRadar) - eor.Moving = entities.NewMoving(50, y, 50, 50, render.NewColorBox(25, 25, color.RGBA{0, 200, 0, 0}), nil, ctx.Register(eor), 0) - eor.Speed = physics.NewVector(-1*(rand.Float64()*2+1), rand.Float64()*2-1) +func newEnemyOnRadar(ctx *scene.Context, x, y float64) *entities.Entity { + eor := entities.New(ctx, + entities.WithRect(floatgeom.NewRect2WH(50, y, 50, 50)), + entities.WithColor(color.RGBA{0, 200, 0, 200}), + entities.WithSpeed(floatgeom.Point2{-1 * (rand.Float64()*2 + 1), rand.Float64()*2 - 1}), + entities.WithDrawLayers([]int{1, 1}), + ) eor.Delta = eor.Speed return eor } -func standardEnemyMove(eor *enemyOnRadar, ev event.EnterPayload) event.Response { +func standardEnemyMove(eor *entities.Entity, ev event.EnterPayload) event.Response { if eor.X() < 0 { - eor.Delta.SetPos(math.Abs(eor.Speed.X()), (eor.Speed.Y())) + eor.Delta = floatgeom.Point2{math.Abs(eor.Speed.X()), (eor.Speed.Y())} } - if eor.X() > xLimit-eor.W { - eor.Delta.SetPos(-1*math.Abs(eor.Speed.X()), (eor.Speed.Y())) + if eor.X() > xLimit-eor.W() { + eor.Delta = floatgeom.Point2{-1 * math.Abs(eor.Speed.X()), (eor.Speed.Y())} } if eor.Y() < 0 { - eor.Delta.SetPos(eor.Speed.X(), math.Abs(eor.Speed.Y())) + eor.Delta = floatgeom.Point2{eor.Speed.X(), math.Abs(eor.Speed.Y())} } - if eor.Y() > yLimit-eor.H { - eor.Delta.SetPos(eor.Speed.X(), -1*math.Abs(eor.Speed.Y())) + if eor.Y() > yLimit-eor.H() { + eor.Delta = floatgeom.Point2{eor.Speed.X(), -1 * math.Abs(eor.Speed.Y())} } - eor.ShiftX(eor.Delta.X()) - eor.ShiftY(eor.Delta.Y()) + eor.ShiftDelta() return 0 } diff --git a/examples/rooms/main.go b/examples/rooms/main.go index b9d3ad74..7f489a7d 100644 --- a/examples/rooms/main.go +++ b/examples/rooms/main.go @@ -4,12 +4,11 @@ import ( "image/color" "math/rand" - oak "github.com/oakmound/oak/v3" + "github.com/oakmound/oak/v3" + "github.com/oakmound/oak/v3/alg/floatgeom" "github.com/oakmound/oak/v3/alg/intgeom" "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/entities/x/move" "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/physics" "github.com/oakmound/oak/v3/render" "github.com/oakmound/oak/v3/scene" ) @@ -18,7 +17,7 @@ import ( // moving the camera to center on even-sized rooms arranged in a grid // once the player enters them. -func isOffScreen(ctx *scene.Context, char *entities.Moving) (intgeom.Dir2, bool) { +func isOffScreen(ctx *scene.Context, char *entities.Entity) (intgeom.Dir2, bool) { x := int(char.X()) y := int(char.Y()) if x > ctx.Window.Viewport().X()+ctx.Window.Width() { @@ -27,10 +26,10 @@ func isOffScreen(ctx *scene.Context, char *entities.Moving) (intgeom.Dir2, bool) if y > ctx.Window.Viewport().Y()+ctx.Window.Height() { return intgeom.Down, true } - if x+int(char.W) < ctx.Window.Viewport().X() { + if int(char.Right()) < ctx.Window.Viewport().X() { return intgeom.Left, true } - if y+int(char.H) < ctx.Window.Viewport().Y() { + if int(char.Bottom()) < ctx.Window.Viewport().Y() { return intgeom.Up, true } return intgeom.Dir2{}, false @@ -43,13 +42,16 @@ const ( func main() { oak.AddScene("rooms", scene.Scene{Start: func(ctx *scene.Context) { - char := entities.NewMoving(200, 200, 50, 50, render.NewColorBox(50, 50, color.RGBA{255, 255, 255, 255}), nil, 0, 1) - char.Speed = physics.NewVector(3, 3) - + char := entities.New(ctx, + entities.WithRect(floatgeom.NewRect2WH(200, 200, 50, 50)), + entities.WithColor(color.RGBA{255, 255, 255, 255}), + entities.WithSpeed(floatgeom.Point2{3, 3}), + entities.WithDrawLayers([]int{1, 2}), + ) var transitioning bool var totalTransitionDelta intgeom.Point2 var transitionDelta intgeom.Point2 - event.Bind(ctx, event.Enter, char, func(c *entities.Moving, ev event.EnterPayload) event.Response { + event.Bind(ctx, event.Enter, char, func(c *entities.Entity, ev event.EnterPayload) event.Response { dir, ok := isOffScreen(ctx, char) if !transitioning && ok { transitioning = true @@ -66,13 +68,11 @@ func main() { transitioning = false } } else { - move.WASD(char) + entities.WASD(char) } return 0 }) - render.Draw(char.R, 1, 2) - for x := 0; x < 2000; x += 12 { for y := 0; y < 2000; y += 12 { r := uint8(rand.Intn(120)) @@ -82,7 +82,6 @@ func main() { render.Draw(cb, 0) } } - }}) oak.Init("rooms") diff --git a/examples/sprite-demo/main.go b/examples/sprite-demo/main.go index 872a3e53..b607a412 100644 --- a/examples/sprite-demo/main.go +++ b/examples/sprite-demo/main.go @@ -8,7 +8,6 @@ import ( "path/filepath" oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/entities" "github.com/oakmound/oak/v3/event" "github.com/oakmound/oak/v3/key" "github.com/oakmound/oak/v3/render" @@ -72,7 +71,8 @@ var assets embed.FS // Gopher is a basic bouncing renderable type Gopher struct { - *entities.Doodad + *render.Switch + event.CallerID deltaX, deltaY float64 rotation int } @@ -80,24 +80,26 @@ type Gopher struct { // NewGopher creates a gopher sprite to bounce around func NewGopher(ctx *scene.Context, layer int) { goph := new(Gopher) - goph.Doodad = entities.NewDoodad( + + goph.Switch = render.NewSwitch("goph", map[string]render.Modifiable{"goph": render.EmptyRenderable()}) + goph.Switch.SetLayer(layer) + goph.Switch.SetPos( rand.Float64()*576, rand.Float64()*416, - render.NewSwitch("goph", map[string]render.Modifiable{"goph": render.EmptyRenderable()}), - ctx.Register(goph)) - goph.R.SetLayer(layer) + ) + goph.CallerID = ctx.Register(goph) event.Bind(ctx, event.Enter, goph, gophEnter) goph.deltaX = 4 * float64(rand.Intn(2)*2-1) goph.deltaY = 4 * float64(rand.Intn(2)*2-1) goph.rotation = rand.Intn(360) - render.Draw(goph.R, 0) + render.Draw(goph.Switch, 0) } func gophEnter(goph *Gopher, ev event.EnterPayload) event.Response { // Compare against this version of rotation // (also swap the comments on lines in goph.Doodad's renderable) //goph.R.(*render.Reverting).RevertAndModify(1, render.Rotate(goph.rotation)) - goph.R.(*render.Switch).Add("goph", render.NewSprite(0, 0, cache[goph.rotation])) + goph.Switch.Add("goph", render.NewSprite(0, 0, cache[goph.rotation])) if goph.X() < minX || goph.X() > maxX { goph.deltaX *= -1 } diff --git a/examples/text-demo-1/main.go b/examples/text-demo-1/main.go index 5aa60be5..5f425632 100644 --- a/examples/text-demo-1/main.go +++ b/examples/text-demo-1/main.go @@ -7,7 +7,6 @@ import ( "strconv" "github.com/oakmound/oak/v3/alg/range/floatrange" - "github.com/oakmound/oak/v3/dlog" "image" @@ -44,9 +43,7 @@ func main() { }, } r = 255 - var err error - font, err = fg.Generate() - dlog.ErrorCheck(err) + font, _ = fg.Generate() font.Unsafe = true txts := []*render.Text{ font.NewText("Rainbow", 200, 200), diff --git a/examples/titlescreen-demo/main.go b/examples/titlescreen-demo/main.go index 246140b4..86a55a6a 100644 --- a/examples/titlescreen-demo/main.go +++ b/examples/titlescreen-demo/main.go @@ -2,9 +2,9 @@ package main import ( "image/color" - "os" oak "github.com/oakmound/oak/v3" + "github.com/oakmound/oak/v3/alg/floatgeom" "github.com/oakmound/oak/v3/entities" "github.com/oakmound/oak/v3/event" "github.com/oakmound/oak/v3/key" @@ -61,7 +61,7 @@ func main() { }) event.GlobalBind(ctx, key.Down(key.Q), func(key.Event) event.Response { // exit the game if q is pressed - os.Exit(0) + ctx.Window.Quit() return 0 }) @@ -69,18 +69,14 @@ func main() { return "game", nil //set the next scene to "game" }}) - //we declare this here so it can be accessed by the scene start and scene loop - var player *entities.Moving - //define the "game" (it's just a square that can be moved with WASD) oak.AddScene("game", scene.Scene{Start: func(ctx *scene.Context) { //create the player, a blue 32x32 square at 100,100 - player = entities.NewMoving(100, 100, 32, 32, - render.NewColorBox(32, 32, color.RGBA{0, 0, 255, 255}), - nil, 0, 0) - //because the player is more than visuals (it has a hitbox, even though we don't use it), - //we have to get the visual part specifically, and not the whole thing. - render.Draw(player.R) + player := entities.New(ctx, + entities.WithRect(floatgeom.NewRect2WH(100, 100, 32, 32)), + entities.WithColor(color.RGBA{0, 0, 255, 255}), + entities.WithDrawLayers([]int{0}), + ) controlsText := render.NewText("WASD to move, ESC to return to titlescreen", 5, 20) //we draw the text on layer 1 (instead of the default layer 0) @@ -91,27 +87,27 @@ func main() { ctx.Window.NextScene() return 0 }) - event.GlobalBind(ctx, event.Enter, func(event.EnterPayload) event.Response { + event.Bind(ctx, event.Enter, player, func(player *entities.Entity, _ event.EnterPayload) event.Response { if oak.IsDown(key.S) { //if S is pressed, set the player's vertical speed to 2 (positive == down) - player.Delta.SetY(2) + player.Delta[1] = 2 } else if oak.IsDown(key.W) { - player.Delta.SetY(-2) + player.Delta[1] = -2 } else { //if the now buttons are pressed for vertical movement, don't move vertically - player.Delta.SetY(0) + player.Delta[1] = 0 } //do the same thing as before, but horizontally if oak.IsDown(key.D) { - player.Delta.SetX(2) + player.Delta[0] = 2 } else if oak.IsDown(key.A) { - player.Delta.SetX(-2) + player.Delta[0] = -2 } else { - player.Delta.SetX(0) + player.Delta[0] = 0 } //apply the player's speed to their position - player.ShiftPos(player.Delta.X(), player.Delta.Y()) + player.ShiftDelta() return 0 }) }, End: func() (string, *scene.Result) { diff --git a/examples/top-down-shooter-tutorial/1-start/start.go b/examples/top-down-shooter-tutorial/1-start/start.go deleted file mode 100644 index 126cf2e4..00000000 --- a/examples/top-down-shooter-tutorial/1-start/start.go +++ /dev/null @@ -1,62 +0,0 @@ -package main - -import ( - "image/color" - - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" - "github.com/oakmound/oak/v3/physics" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" -) - -// Collision labels -const ( - Enemy collision.Label = 1 - Player collision.Label = 2 -) - -var ( - playerAlive = true -) - -func main() { - oak.AddScene("tds", scene.Scene{Start: func(ctx *scene.Context) { - playerAlive = true - char := entities.NewMoving(100, 100, 32, 32, - render.NewColorBox(32, 32, color.RGBA{0, 255, 0, 255}), - nil, 0, 0) - - char.Speed = physics.NewVector(5, 5) - render.Draw(char.R) - - event.Bind(ctx, event.Enter, char, func(c *entities.Moving, ev event.EnterPayload) event.Response { - - char.Delta.Zero() - if oak.IsDown(key.W) { - char.Delta.ShiftY(-char.Speed.Y()) - } - if oak.IsDown(key.A) { - char.Delta.ShiftX(-char.Speed.X()) - } - if oak.IsDown(key.S) { - char.Delta.ShiftY(char.Speed.Y()) - } - if oak.IsDown(key.D) { - char.Delta.ShiftX(char.Speed.X()) - } - char.ShiftPos(char.Delta.X(), char.Delta.Y()) - hit := char.HitLabel(Enemy) - if hit != nil { - playerAlive = false - } - - return 0 - }) - - }}) - oak.Init("tds") -} diff --git a/examples/top-down-shooter-tutorial/2-shooting/shooting.go b/examples/top-down-shooter-tutorial/2-shooting/shooting.go deleted file mode 100644 index 89844bb0..00000000 --- a/examples/top-down-shooter-tutorial/2-shooting/shooting.go +++ /dev/null @@ -1,68 +0,0 @@ -package main - -import ( - "image/color" - "time" - - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" - "github.com/oakmound/oak/v3/mouse" - "github.com/oakmound/oak/v3/physics" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" -) - -// Collision labels -const ( - Enemy collision.Label = 1 - Player collision.Label = 2 -) - -func main() { - oak.AddScene("tds", scene.Scene{Start: func(ctx *scene.Context) { - - char := entities.NewMoving(100, 100, 32, 32, - render.NewColorBox(32, 32, color.RGBA{0, 255, 0, 255}), - nil, 0, 0) - - char.Speed = physics.NewVector(5, 5) - render.Draw(char.R) - - event.Bind(ctx, event.Enter, char, func(char *entities.Moving, ev event.EnterPayload) event.Response { - - char.Delta.Zero() - if oak.IsDown(key.W) { - char.Delta.ShiftY(-char.Speed.Y()) - } - if oak.IsDown(key.A) { - char.Delta.ShiftX(-char.Speed.X()) - } - if oak.IsDown(key.S) { - char.Delta.ShiftY(char.Speed.Y()) - } - if oak.IsDown(key.D) { - char.Delta.ShiftX(char.Speed.X()) - } - char.ShiftPos(char.Delta.X(), char.Delta.Y()) - hit := char.HitLabel(Enemy) - if hit != nil { - ctx.Window.NextScene() - } - - return 0 - }) - event.Bind(ctx, mouse.Press, char, func(char *entities.Moving, mevent *mouse.Event) event.Response { - ctx.DrawForTime( - render.NewLine(char.X()+char.W/2, char.Y()+char.H/2, mevent.X(), mevent.Y(), color.RGBA{0, 128, 0, 128}), - time.Millisecond*50, - 1) - - return 0 - }) - - }}) - oak.Init("tds") -} diff --git a/examples/top-down-shooter-tutorial/3-enemies/enemies.go b/examples/top-down-shooter-tutorial/3-enemies/enemies.go deleted file mode 100644 index f34b0599..00000000 --- a/examples/top-down-shooter-tutorial/3-enemies/enemies.go +++ /dev/null @@ -1,152 +0,0 @@ -package main - -import ( - "image/color" - "math/rand" - "time" - - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/collision/ray" - "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" - "github.com/oakmound/oak/v3/mouse" - "github.com/oakmound/oak/v3/physics" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" -) - -// Collision labels -const ( - Enemy collision.Label = 1 - Player collision.Label = 2 -) - -var ( - // Vectors are backed by pointers, - // so despite this not being a pointer, - // this does update according to the player's - // position so long as we don't reset - // the player's position vector - playerPos physics.Vector - - destroy = event.RegisterEvent[struct{}]() -) - -func main() { - oak.AddScene("tds", scene.Scene{Start: func(ctx *scene.Context) { - char := entities.NewMoving(100, 100, 32, 32, - render.NewColorBox(32, 32, color.RGBA{0, 255, 0, 255}), - nil, 0, 0) - - char.Speed = physics.NewVector(5, 5) - playerPos = char.Point.Vector - render.Draw(char.R) - - event.Bind(ctx, event.Enter, char, func(char *entities.Moving, ev event.EnterPayload) event.Response { - - char.Delta.Zero() - if oak.IsDown(key.W) { - char.Delta.ShiftY(-char.Speed.Y()) - } - if oak.IsDown(key.A) { - char.Delta.ShiftX(-char.Speed.X()) - } - if oak.IsDown(key.S) { - char.Delta.ShiftY(char.Speed.Y()) - } - if oak.IsDown(key.D) { - char.Delta.ShiftX(char.Speed.X()) - } - char.ShiftPos(char.Delta.X(), char.Delta.Y()) - hit := char.HitLabel(Enemy) - if hit != nil { - ctx.Window.NextScene() - } - return 0 - }) - - event.Bind(ctx, mouse.Press, char, func(char *entities.Moving, mevent *mouse.Event) event.Response { - x := char.X() + char.W/2 - y := char.Y() + char.H/2 - ray.DefaultCaster.CastDistance = floatgeom.Point2{x, y}.Sub(floatgeom.Point2{mevent.X(), mevent.Y()}).Magnitude() - hits := ray.CastTo(floatgeom.Point2{x, y}, floatgeom.Point2{mevent.X(), mevent.Y()}) - for _, hit := range hits { - event.TriggerForCallerOn(ctx, hit.Zone.CID, destroy, struct{}{}) - } - ctx.DrawForTime( - render.NewLine(x, y, mevent.X(), mevent.Y(), color.RGBA{0, 128, 0, 128}), - time.Millisecond*50, - 1) - return 0 - }) - - event.GlobalBind(ctx, event.Enter, func(enterPayload event.EnterPayload) event.Response { - if enterPayload.FramesElapsed%EnemyRefresh == 0 { - go NewEnemy(ctx) - } - return 0 - }) - - }}) - oak.Init("tds") -} - -// Top down shooter consts -const ( - EnemyRefresh = 30 - EnemySpeed = 2 -) - -// NewEnemy creates an enemy for a top down shooter -func NewEnemy(ctx *scene.Context) { - x, y := enemyPos(ctx) - - enemy := entities.NewSolid(x, y, 16, 16, - render.NewColorBox(16, 16, color.RGBA{200, 0, 0, 200}), - nil, 0) - - render.Draw(enemy.R) - - enemy.UpdateLabel(Enemy) - event.Bind(ctx, event.Enter, enemy, func(e *entities.Solid, ev event.EnterPayload) event.Response { - // move towards the player - x, y := e.GetPos() - pt := floatgeom.Point2{x, y} - pt2 := floatgeom.Point2{playerPos.X(), playerPos.Y()} - delta := pt2.Sub(pt).Normalize().MulConst(EnemySpeed) - e.ShiftPos(delta.X(), delta.Y()) - return 0 - }) - event.Bind(ctx, destroy, enemy, func(e *entities.Solid, nothing struct{}) event.Response { - e.Destroy() - return 0 - }) -} - -func enemyPos(ctx *scene.Context) (float64, float64) { - w := ctx.Window.Width() - h := ctx.Window.Height() - // Spawn on the edge of the screen - perimeter := w*2 + h*2 - pos := int(rand.Float64() * float64(perimeter)) - // Top - if pos < w { - return float64(pos), 0 - } - pos -= w - // Right - if pos < h { - return float64(w), float64(pos) - } - // Bottom - pos -= h - if pos < w { - return float64(pos), float64(h) - } - pos -= w - // Left - return 0, float64(pos) -} diff --git a/examples/top-down-shooter-tutorial/4-sprites/sprites.go b/examples/top-down-shooter-tutorial/4-sprites/sprites.go deleted file mode 100644 index 933701ed..00000000 --- a/examples/top-down-shooter-tutorial/4-sprites/sprites.go +++ /dev/null @@ -1,227 +0,0 @@ -package main - -import ( - "fmt" - "image/color" - "math/rand" - "time" - - "github.com/oakmound/oak/v3/render/mod" - - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/collision/ray" - "github.com/oakmound/oak/v3/dlog" - "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" - "github.com/oakmound/oak/v3/mouse" - "github.com/oakmound/oak/v3/physics" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" -) - -// Collision labels -const ( - Enemy collision.Label = 1 - Player collision.Label = 2 -) - -var ( - // Vectors are backed by pointers, - // so despite this not being a pointer, - // this does update according to the player's - // position so long as we don't reset - // the player's position vector - playerPos physics.Vector - - destroy = event.RegisterEvent[struct{}]() - - sheet [][]*render.Sprite -) - -func main() { - oak.AddScene("tds", scene.Scene{Start: func(ctx *scene.Context) { - // Initialization - - sprites, err := render.GetSheet("sheet.png") - dlog.ErrorCheck(err) - sheet = sprites.ToSprites() - - // Player setup - eggplant, err := render.GetSprite("eggplant-fish.png") - playerR := render.NewSwitch("left", map[string]render.Modifiable{ - "left": eggplant, - // We must copy the sprite before we modify it, or "left" - // will also be flipped. - "right": eggplant.Copy().Modify(mod.FlipX), - }) - if err != nil { - fmt.Println(err) - } - char := entities.NewMoving(100, 100, 32, 32, - playerR, - nil, 0, 0) - - char.Speed = physics.NewVector(5, 5) - playerPos = char.Point.Vector - render.Draw(char.R, 2) - - event.Bind(ctx, event.Enter, char, func(char *entities.Moving, ev event.EnterPayload) event.Response { - char.Delta.Zero() - if oak.IsDown(key.W) { - char.Delta.ShiftY(-char.Speed.Y()) - } - if oak.IsDown(key.A) { - char.Delta.ShiftX(-char.Speed.X()) - } - if oak.IsDown(key.S) { - char.Delta.ShiftY(char.Speed.Y()) - } - if oak.IsDown(key.D) { - char.Delta.ShiftX(char.Speed.X()) - } - char.ShiftPos(char.Delta.X(), char.Delta.Y()) - hit := char.HitLabel(Enemy) - if hit != nil { - ctx.Window.NextScene() - } - - // update animation - swtch := char.R.(*render.Switch) - if char.Delta.X() > 0 { - if swtch.Get() == "left" { - swtch.Set("right") - } - } else if char.Delta.X() < 0 { - if swtch.Get() == "right" { - swtch.Set("left") - } - } - - return 0 - }) - - event.Bind(ctx, mouse.Press, char, func(char *entities.Moving, mevent *mouse.Event) event.Response { - x := char.X() + char.W/2 - y := char.Y() + char.H/2 - ray.DefaultCaster.CastDistance = floatgeom.Point2{x, y}.Sub(floatgeom.Point2{mevent.X(), mevent.Y()}).Magnitude() - hits := ray.CastTo(floatgeom.Point2{x, y}, floatgeom.Point2{mevent.X(), mevent.Y()}) - for _, hit := range hits { - event.TriggerForCallerOn(ctx, hit.Zone.CID, destroy, struct{}{}) - } - ctx.DrawForTime( - render.NewLine(x, y, mevent.X(), mevent.Y(), color.RGBA{0, 128, 0, 128}), - time.Millisecond*50, - 2) - return 0 - }) - - // Create enemies periodically - event.GlobalBind(ctx, event.Enter, func(enterPayload event.EnterPayload) event.Response { - if enterPayload.FramesElapsed%EnemyRefresh == 0 { - go NewEnemy(ctx) - } - return 0 - }) - - // Draw the background - for x := 0; x < ctx.Window.Width(); x += 16 { - for y := 0; y < ctx.Window.Height(); y += 16 { - i := rand.Intn(3) + 1 - // Get a random tile to draw in this position - sp := sheet[i/2][i%2].Copy() - sp.SetPos(float64(x), float64(y)) - render.Draw(sp, 1) - } - } - - }}) - - oak.Init("tds", func(c oak.Config) (oak.Config, error) { - // This indicates to oak to automatically open and load image and audio - // files local to the project before starting any scene. - c.BatchLoad = true - c.Debug.Level = "Verbose" - c.Assets.ImagePath = "assets/images" - - return c, nil - }) -} - -// Top down shooter constsv -const ( - EnemyRefresh = 30 - EnemySpeed = 2 -) - -// NewEnemy creates an enemy for a top down shooter -func NewEnemy(ctx *scene.Context) { - x, y := enemyPos(ctx) - - enemyFrame := sheet[0][0].Copy() - enemyR := render.NewSwitch("left", map[string]render.Modifiable{ - "left": enemyFrame, - "right": enemyFrame.Copy().Modify(mod.FlipX), - }) - enemy := entities.NewSolid(x, y, 16, 16, - enemyR, - nil, 0) - - render.Draw(enemy.R, 2) - - enemy.UpdateLabel(Enemy) - - event.Bind(ctx, event.Enter, enemy, func(e *entities.Solid, ev event.EnterPayload) event.Response { - // move towards the player - x, y := enemy.GetPos() - pt := floatgeom.Point2{x, y} - pt2 := floatgeom.Point2{playerPos.X(), playerPos.Y()} - delta := pt2.Sub(pt).Normalize().MulConst(EnemySpeed) - enemy.ShiftPos(delta.X(), delta.Y()) - - // update animation - swtch := enemy.R.(*render.Switch) - if delta.X() > 0 { - if swtch.Get() == "left" { - swtch.Set("right") - } - } else if delta.X() < 0 { - if swtch.Get() == "right" { - swtch.Set("left") - } - } - return 0 - }) - - event.Bind(ctx, destroy, enemy, func(e *entities.Solid, nothing struct{}) event.Response { - e.Destroy() - return 0 - }) -} - -func enemyPos(ctx *scene.Context) (float64, float64) { - w := ctx.Window.Width() - h := ctx.Window.Height() - // Spawn on the edge of the screen - perimeter := w*2 + h*2 - pos := int(rand.Float64() * float64(perimeter)) - // Top - if pos < w { - return float64(pos), 0 - } - pos -= w - // Right - if pos < h { - return float64(w), float64(pos) - } - // Bottom - pos -= h - if pos < w { - return float64(pos), float64(h) - } - pos -= w - // Left - return 0, float64(pos) -} diff --git a/examples/top-down-shooter-tutorial/5-viewport/assets/images/16x16/sheet.png b/examples/top-down-shooter-tutorial/5-viewport/assets/images/16x16/sheet.png deleted file mode 100644 index fd1e7aa7dd3fe576f5589bc8e3146938255c388f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmVN2bPDNB8 zb~7$DE-^4L^m3s900DbRL_t(oN5zuSafC1oMDObwNFy|m$zR%{bYg3~x`<)_TR~bGt;P&??^a1eK4g8SzSaAr_LF4(Xz@iX<<{4EPaBP;=;xz*|%#0-cdpY+rMY>3Qf z?_&;P2E>t1dU1h@8#H4!_cPBx>?$laGDpqNH1lfllHLiCcSU5u)+bvLYTmUuHI}j`mxE{|QMMRmXn&fsU z(HUg%FR{m3ekhgL1ZREXYyD1T#~wEq=tO7mLo^wgj_QHAFHniXBO_5Cif52TFtJ3I z@fT1e7l>bAlqFqZWcn_;!i5F0Um#|~4~$yk!eS}x5yh36striJIj~1o{NSDxKfv#M zQHjTzx+569xm?l@N<3+J3t7C#*_+2~_~Bo8Za+9F^mBpG;7tGk002ovPDHLkV1oLZ B&xrs4 diff --git a/examples/top-down-shooter-tutorial/5-viewport/assets/images/character/eggplant-fish.png b/examples/top-down-shooter-tutorial/5-viewport/assets/images/character/eggplant-fish.png deleted file mode 100644 index ded61a2e9fc0c55dbb52f156fd735065a4057b99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 495 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0004ANkl fieldWidth-char.W { - char.SetX(fieldWidth - char.W) - } - if char.Y() < 0 { - char.SetY(0) - } else if char.Y() > fieldHeight-char.H { - char.SetY(fieldHeight - char.H) - } - oak.SetScreen( - int(char.R.X())-ctx.Window.Width()/2, - int(char.R.Y())-ctx.Window.Height()/2, - ) - hit := char.HitLabel(Enemy) - if hit != nil { - ctx.Window.NextScene() - } - - // update animation - swtch := char.R.(*render.Switch) - if char.Delta.X() > 0 { - if swtch.Get() == "left" { - swtch.Set("right") - } - } else if char.Delta.X() < 0 { - if swtch.Get() == "right" { - swtch.Set("left") - } - } - - return 0 - }) - - event.Bind(ctx, mouse.Press, char, func(char *entities.Moving, mevent *mouse.Event) event.Response { - x := char.X() + char.W/2 - y := char.Y() + char.H/2 - vp := ctx.Window.Viewport() - mx := mevent.X() + float64(vp.X()) - my := mevent.Y() + float64(vp.Y()) - ray.DefaultCaster.CastDistance = floatgeom.Point2{x, y}.Sub(floatgeom.Point2{mx, my}).Magnitude() - hits := ray.CastTo(floatgeom.Point2{x, y}, floatgeom.Point2{mx, my}) - for _, hit := range hits { - event.TriggerForCallerOn(ctx, hit.Zone.CID, destroy, struct{}{}) - } - ctx.DrawForTime( - render.NewLine(x, y, mx, my, color.RGBA{0, 128, 0, 128}), - time.Millisecond*50, - 2) - return 0 - }) - - // Create enemies periodically - event.GlobalBind(ctx, event.Enter, func(enterPayload event.EnterPayload) event.Response { - if enterPayload.FramesElapsed%EnemyRefresh == 0 { - go NewEnemy(ctx) - } - return 0 - }) - - // Draw the background - for x := 0; x < fieldWidth; x += 16 { - for y := 0; y < fieldHeight; y += 16 { - i := rand.Intn(3) + 1 - // Get a random tile to draw in this position - sp := sheet[i/2][i%2].Copy() - sp.SetPos(float64(x), float64(y)) - render.Draw(sp, 1) - } - } - - }}) - - oak.Init("tds", func(c oak.Config) (oak.Config, error) { - c.BatchLoad = true - c.Assets.ImagePath = "assets/images" - - return c, nil - }) -} - -const ( - EnemyRefresh = 25 - EnemySpeed = 2 -) - -// NewEnemy creates an enemy for a top down shooter -func NewEnemy(ctx *scene.Context) { - x, y := enemyPos() - - enemyFrame := sheet[0][0].Copy() - enemyR := render.NewSwitch("left", map[string]render.Modifiable{ - "left": enemyFrame, - "right": enemyFrame.Copy().Modify(mod.FlipX), - }) - enemy := entities.NewSolid(x, y, 16, 16, - enemyR, - nil, 0) - - render.Draw(enemy.R, 2) - - enemy.UpdateLabel(Enemy) - - event.Bind(ctx, event.Enter, enemy, func(e *entities.Solid, ev event.EnterPayload) event.Response { - // move towards the player - x, y := enemy.GetPos() - pt := floatgeom.Point2{x, y} - pt2 := floatgeom.Point2{playerPos.X(), playerPos.Y()} - delta := pt2.Sub(pt).Normalize().MulConst(EnemySpeed) - enemy.ShiftPos(delta.X(), delta.Y()) - - // update animation - swtch := enemy.R.(*render.Switch) - if delta.X() > 0 { - if swtch.Get() == "left" { - swtch.Set("right") - } - } else if delta.X() < 0 { - if swtch.Get() == "right" { - swtch.Set("left") - } - } - return 0 - }) - - event.Bind(ctx, destroy, enemy, func(e *entities.Solid, nothing struct{}) event.Response { - e.Destroy() - return 0 - }) -} - -func enemyPos() (float64, float64) { - // Spawn on the edge of the screen - perimeter := fieldWidth*2 + fieldHeight*2 - pos := int(rand.Float64() * float64(perimeter)) - // Top - if pos < fieldWidth { - return float64(pos), 0 - } - pos -= fieldWidth - // Right - if pos < fieldHeight { - return float64(fieldWidth), float64(pos) - } - // Bottom - pos -= fieldHeight - if pos < fieldWidth { - return float64(pos), float64(fieldHeight) - } - pos -= fieldWidth - // Left - return 0, float64(pos) -} diff --git a/examples/top-down-shooter-tutorial/6-performance/assets/images/16x16/sheet.png b/examples/top-down-shooter-tutorial/6-performance/assets/images/16x16/sheet.png deleted file mode 100644 index fd1e7aa7dd3fe576f5589bc8e3146938255c388f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmVN2bPDNB8 zb~7$DE-^4L^m3s900DbRL_t(oN5zuSafC1oMDObwNFy|m$zR%{bYg3~x`<)_TR~bGt;P&??^a1eK4g8SzSaAr_LF4(Xz@iX<<{4EPaBP;=;xz*|%#0-cdpY+rMY>3Qf z?_&;P2E>t1dU1h@8#H4!_cPBx>?$laGDpqNH1lfllHLiCcSU5u)+bvLYTmUuHI}j`mxE{|QMMRmXn&fsU z(HUg%FR{m3ekhgL1ZREXYyD1T#~wEq=tO7mLo^wgj_QHAFHniXBO_5Cif52TFtJ3I z@fT1e7l>bAlqFqZWcn_;!i5F0Um#|~4~$yk!eS}x5yh36striJIj~1o{NSDxKfv#M zQHjTzx+569xm?l@N<3+J3t7C#*_+2~_~Bo8Za+9F^mBpG;7tGk002ovPDHLkV1oLZ B&xrs4 diff --git a/examples/top-down-shooter-tutorial/6-performance/assets/images/character/eggplant-fish.png b/examples/top-down-shooter-tutorial/6-performance/assets/images/character/eggplant-fish.png deleted file mode 100644 index ded61a2e9fc0c55dbb52f156fd735065a4057b99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 495 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0004ANkl fieldWidth-char.W { - char.SetX(fieldWidth - char.W) + } else if char.X() > fieldWidth-char.W() { + char.SetX(fieldWidth - char.W()) } if char.Y() < 0 { char.SetY(0) - } else if char.Y() > fieldHeight-char.H { - char.SetY(fieldHeight - char.H) + } else if char.Y() > fieldHeight-char.H() { + char.SetY(fieldHeight - char.H()) } hit := char.HitLabel(Enemy) @@ -120,7 +117,7 @@ func main() { } // update animation - swtch := char.R.(*render.Switch) + swtch := char.Renderable.(*render.Switch) if char.Delta.X() > 0 { if swtch.Get() == "left" { swtch.Set("right") @@ -134,9 +131,9 @@ func main() { return 0 }) - event.Bind(ctx, mouse.Press, char, func(char *entities.Moving, mevent *mouse.Event) event.Response { - x := char.X() + char.W/2 - y := char.Y() + char.H/2 + event.Bind(ctx, mouse.Press, char, func(char *entities.Entity, mevent *mouse.Event) event.Response { + x := char.X() + char.W()/2 + y := char.Y() + char.H()/2 vp := ctx.Window.Viewport() mx := mevent.X() + float64(vp.X()) my := mevent.Y() + float64(vp.Y()) @@ -206,24 +203,23 @@ func NewEnemy(ctx *scene.Context) { "left": enemyFrame, "right": enemyFrame.Copy().Modify(mod.FlipX), }) - enemy := entities.NewSolid(x, y, 16, 16, - enemyR, - nil, 0) - - render.Draw(enemy.R, 1, 2) - - enemy.UpdateLabel(Enemy) + enemy := entities.New(ctx, + entities.WithRect(floatgeom.NewRect2WH(x, y, 16, 16)), + entities.WithRenderable(enemyR), + entities.WithDrawLayers([]int{1, 2}), + entities.WithLabel(Enemy), + ) - event.Bind(ctx, event.Enter, enemy, func(e *entities.Solid, ev event.EnterPayload) event.Response { + event.Bind(ctx, event.Enter, enemy, func(e *entities.Entity, ev event.EnterPayload) event.Response { // move towards the player - x, y := enemy.GetPos() + x, y := enemy.X(), enemy.Y() pt := floatgeom.Point2{x, y} - pt2 := floatgeom.Point2{playerPos.X(), playerPos.Y()} + pt2 := floatgeom.Point2{*playerX, *playerY} delta := pt2.Sub(pt).Normalize().MulConst(EnemySpeed * ev.TickPercent) - enemy.ShiftPos(delta.X(), delta.Y()) + enemy.Shift(delta) // update animation - swtch := enemy.R.(*render.Switch) + swtch := enemy.Renderable.(*render.Switch) if delta.X() > 0 { if swtch.Get() == "left" { swtch.Set("right") @@ -236,7 +232,7 @@ func NewEnemy(ctx *scene.Context) { return 0 }) - event.Bind(ctx, destroy, enemy, func(e *entities.Solid, nothing struct{}) event.Response { + event.Bind(ctx, destroy, enemy, func(e *entities.Entity, nothing struct{}) event.Response { e.Destroy() return 0 }) From c98331b4ca0532c4e8360d576f94c7f197f5fc39 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Wed, 6 Apr 2022 16:05:40 -0500 Subject: [PATCH 078/146] shake: move shake to a non-x package --- {entities/x/shake => shake}/shake.go | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {entities/x/shake => shake}/shake.go (100%) diff --git a/entities/x/shake/shake.go b/shake/shake.go similarity index 100% rename from entities/x/shake/shake.go rename to shake/shake.go From d1a17ebddbfa494334de9f3cf1777f7f362ee994 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Wed, 6 Apr 2022 16:06:24 -0500 Subject: [PATCH 079/146] render/mod: integrate x/mods --- {entities/x/mods => render/mod}/highlight.go | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) rename {entities/x/mods => render/mod}/highlight.go (88%) diff --git a/entities/x/mods/highlight.go b/render/mod/highlight.go similarity index 88% rename from entities/x/mods/highlight.go rename to render/mod/highlight.go index 8033b571..15ea5f30 100644 --- a/entities/x/mods/highlight.go +++ b/render/mod/highlight.go @@ -1,14 +1,13 @@ -package mods +package mod import ( "image" "image/color" "github.com/oakmound/oak/v3/alg/intgeom" - "github.com/oakmound/oak/v3/render/mod" ) -func HighlightOff(c color.Color, thickness, xOff, yOff int) mod.Mod { +func HighlightOff(c color.Color, thickness, xOff, yOff int) Mod { return func(img image.Image) *image.RGBA { bds := img.Bounds() @@ -48,7 +47,7 @@ func HighlightOff(c color.Color, thickness, xOff, yOff int) mod.Mod { } } -func InnerHighlightOff(c color.Color, thickness, xOff, yOff int) mod.Mod { +func InnerHighlightOff(c color.Color, thickness, xOff, yOff int) Mod { return func(img image.Image) *image.RGBA { bds := img.Bounds() @@ -88,17 +87,17 @@ func InnerHighlightOff(c color.Color, thickness, xOff, yOff int) mod.Mod { } } -func InnerHighlight(c color.Color, thickness int) mod.Mod { +func InnerHighlight(c color.Color, thickness int) Mod { return InnerHighlightOff(c, thickness, 0, 0) } -func Highlight(c color.Color, thickness int) mod.Mod { +func Highlight(c color.Color, thickness int) Mod { return HighlightOff(c, thickness, 0, 0) } -type Filter func(color.Color) color.Color +type InsetFilter func(color.Color) color.Color -func Inset(fn Filter, dir intgeom.Dir2) mod.Mod { +func Inset(fn InsetFilter, dir intgeom.Dir2) Mod { return func(img image.Image) *image.RGBA { bds := img.Bounds() @@ -161,8 +160,8 @@ func Lighter(c color.Color, f float64) color.Color { return color.RGBA64{uint16(r), uint16(g), uint16(b), uint16(a)} } -// Fade produces a color with more transparency by f percentage (0 to 1) -func Fade(c color.Color, f float64) color.Color { +// FadeColor produces a color with more transparency by f percentage (0 to 1) +func FadeColor(c color.Color, f float64) color.Color { r, g, b, a := c.RGBA() diff := uint32(65535 * f) r -= diff From 6fc8903bcd58ec73ef270fa529654a3387bf9500 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Wed, 6 Apr 2022 16:07:16 -0500 Subject: [PATCH 080/146] audio/sequnce: drop package (for now) --- audio/format/ceol/ceol.go | 39 ++++++++--------- audio/sequence/chordPattern.go | 36 ---------------- audio/sequence/generator.go | 20 --------- audio/sequence/holdPattern.go | 76 --------------------------------- audio/sequence/length.go | 24 ----------- audio/sequence/loop.go | 25 ----------- audio/sequence/pitchPattern.go | 74 -------------------------------- audio/sequence/sequence.go | 25 ----------- audio/sequence/tick.go | 27 ------------ audio/sequence/volumePattern.go | 72 ------------------------------- audio/sequence/waveFunction.go | 74 -------------------------------- 11 files changed, 18 insertions(+), 474 deletions(-) delete mode 100644 audio/sequence/chordPattern.go delete mode 100644 audio/sequence/generator.go delete mode 100644 audio/sequence/holdPattern.go delete mode 100644 audio/sequence/length.go delete mode 100644 audio/sequence/loop.go delete mode 100644 audio/sequence/pitchPattern.go delete mode 100644 audio/sequence/sequence.go delete mode 100644 audio/sequence/tick.go delete mode 100644 audio/sequence/volumePattern.go delete mode 100644 audio/sequence/waveFunction.go diff --git a/audio/format/ceol/ceol.go b/audio/format/ceol/ceol.go index 6afe8643..ff024a7a 100644 --- a/audio/format/ceol/ceol.go +++ b/audio/format/ceol/ceol.go @@ -7,9 +7,6 @@ import ( "strconv" "strings" "time" - - "github.com/oakmound/oak/v3/audio/sequence" - "github.com/oakmound/oak/v3/audio/synth" ) // Raw Ceol types, holds all information in ceol file @@ -66,24 +63,24 @@ type Filter struct { // ChordPattern converts a Ceol's patterns and arrangement into a playable chord // pattern for sequences -func (c Ceol) ChordPattern() sequence.ChordPattern { - chp := sequence.ChordPattern{} - chp.Pitches = make([][]synth.Pitch, c.PatternLength*len(c.Arrangement)) - chp.Holds = make([][]time.Duration, c.PatternLength*len(c.Arrangement)) - for i, m := range c.Arrangement { - for _, p := range m { - if p != -1 { - for _, n := range c.Patterns[p].Notes { - chp.Pitches[n.Offset+i*c.PatternLength] = - append(chp.Pitches[n.Offset+i*c.PatternLength], synth.NoteFromIndex(n.PitchIndex)) - chp.Holds[n.Offset+i*c.PatternLength] = - append(chp.Holds[n.Offset+i*c.PatternLength], DurationFromQuarters(c.Bpm, n.Length)) - } - } - } - } - return chp -} +// func (c Ceol) ChordPattern() sequence.ChordPattern { +// chp := sequence.ChordPattern{} +// chp.Pitches = make([][]synth.Pitch, c.PatternLength*len(c.Arrangement)) +// chp.Holds = make([][]time.Duration, c.PatternLength*len(c.Arrangement)) +// for i, m := range c.Arrangement { +// for _, p := range m { +// if p != -1 { +// for _, n := range c.Patterns[p].Notes { +// chp.Pitches[n.Offset+i*c.PatternLength] = +// append(chp.Pitches[n.Offset+i*c.PatternLength], synth.NoteFromIndex(n.PitchIndex)) +// chp.Holds[n.Offset+i*c.PatternLength] = +// append(chp.Holds[n.Offset+i*c.PatternLength], DurationFromQuarters(c.Bpm, n.Length)) +// } +// } +// } +// } +// return chp +// } // DurationFromQuarters should not be here, should be in a package // managing bpm and time diff --git a/audio/sequence/chordPattern.go b/audio/sequence/chordPattern.go deleted file mode 100644 index 900cdc25..00000000 --- a/audio/sequence/chordPattern.go +++ /dev/null @@ -1,36 +0,0 @@ -package sequence - -import ( - "time" - - "github.com/oakmound/oak/v3/audio/synth" -) - -// A ChordPattern represents the order of pitches and holds -// for each of those pitches over a sequence of (potential) -// chords. Todo: pitchPattern is a subset of this, should -// it even exist? -type ChordPattern struct { - Pitches [][]synth.Pitch - Holds [][]time.Duration -} - -// HasChords lets generators be built from chord Options -// if they have a pointer to a chord pattern -type HasChords interface { - GetChordPattern() *ChordPattern -} - -// GetChordPattern returns a pointer to a generator's chord pattern -func (cp *ChordPattern) GetChordPattern() *ChordPattern { - return cp -} - -// Chords sets the generator's chord pattern -func Chords(cp ChordPattern) Option { - return func(g Generator) { - if hcp, ok := g.(HasChords); ok { - *(hcp.GetChordPattern()) = cp - } - } -} diff --git a/audio/sequence/generator.go b/audio/sequence/generator.go deleted file mode 100644 index edbe635c..00000000 --- a/audio/sequence/generator.go +++ /dev/null @@ -1,20 +0,0 @@ -package sequence - -// A Generator stores settings to create a sequence -type Generator interface { - Generate() *Sequence -} - -// Option types are inserted into Constructors to create generators -type Option func(Generator) - -// And combines any number of options into a single option. -// And is a reminder that you can store combined settings to avoid -// having to rewrite them -func And(opts ...Option) Option { - return func(g Generator) { - for _, opt := range opts { - opt(g) - } - } -} diff --git a/audio/sequence/holdPattern.go b/audio/sequence/holdPattern.go deleted file mode 100644 index df0e02f7..00000000 --- a/audio/sequence/holdPattern.go +++ /dev/null @@ -1,76 +0,0 @@ -package sequence - -import "time" - -// A HoldPattern is a pattern that might loop on itself for how long notes -// should be held -type HoldPattern []time.Duration - -// HasHolds enables generators to be built from HoldPattern and use the -// related option functions -type HasHolds interface { - GetHoldPattern() *[]time.Duration -} - -// GetHoldPattern lets composing HoldPattern satisfy HasHolds -func (hp *HoldPattern) GetHoldPattern() *HoldPattern { - return hp -} - -// Holds sets the generator's Hold pattern -func Holds(vs ...time.Duration) Option { - return func(g Generator) { - if hhs, ok := g.(HasHolds); ok { - *hhs.GetHoldPattern() = vs - } - } -} - -// HoldAt sets the n'th value in the entire play sequence -// to be Hold p. This could involve duplicating a pattern -// until it is long enough to reach n. Meaningless if the -// Hold pattern has not been set yet. -func HoldAt(t time.Duration, n int) Option { - return func(g Generator) { - if hhs, ok := g.(HasHolds); ok { - if hl, ok := hhs.(HasLength); ok { - if hl.GetLength() < n { - hp := hhs.GetHoldPattern() - Holds := *hp - if len(Holds) == 0 { - return - } - // If the pattern is not long enough, there are two things - // we could do-- 1. Extend the pattern and replace the - // individual note, or 2. Replace the note that would be - // played at n and thus all earlier and later plays within - // the pattern as well. - // - // This uses approach 1. - for len(Holds) <= n { - Holds = append(Holds, Holds...) - } - Holds[n] = t - *hp = Holds - } - } - } - } -} - -// HoldPatternAt sets the n'th value in the Hold pattern -// to be Hold p. Meaningless if the Hold pattern has not -// been set yet. -func HoldPatternAt(t time.Duration, n int) Option { - return func(g Generator) { - if hhs, ok := g.(HasHolds); ok { - hp := hhs.GetHoldPattern() - Holds := *hp - if len(Holds) <= n { - return - } - Holds[n] = t - *hp = Holds - } - } -} diff --git a/audio/sequence/length.go b/audio/sequence/length.go deleted file mode 100644 index c923d6ed..00000000 --- a/audio/sequence/length.go +++ /dev/null @@ -1,24 +0,0 @@ -package sequence - -type Length int - -type HasLength interface { - GetLength() int - SetLength(int) -} - -func (l *Length) GetLength() int { - return int(*l) -} - -func (l *Length) SetLength(i int) { - *l = Length(i) -} - -func PlayLength(i int) Option { - return func(g Generator) { - if l, ok := g.(HasLength); ok { - l.SetLength(i) - } - } -} diff --git a/audio/sequence/loop.go b/audio/sequence/loop.go deleted file mode 100644 index 4c42eee0..00000000 --- a/audio/sequence/loop.go +++ /dev/null @@ -1,25 +0,0 @@ -package sequence - -type Loop bool - -type HasLoops interface { - GetLoop() bool - SetLoop(bool) -} - -func (l *Loop) GetLoop() bool { - return bool(*l) -} - -func (l *Loop) SetLoop(b bool) { - *l = Loop(b) -} - -// Loops sets the generator's Loop -func Loops(b bool) Option { - return func(g Generator) { - if ht, ok := g.(HasLoops); ok { - ht.SetLoop(b) - } - } -} diff --git a/audio/sequence/pitchPattern.go b/audio/sequence/pitchPattern.go deleted file mode 100644 index 2d6d8e15..00000000 --- a/audio/sequence/pitchPattern.go +++ /dev/null @@ -1,74 +0,0 @@ -package sequence - -import "github.com/oakmound/oak/v3/audio/synth" - -type PitchPattern []synth.Pitch - -type HasPitches interface { - GetPitchPattern() []synth.Pitch - SetPitchPattern([]synth.Pitch) -} - -func (pp *PitchPattern) GetPitchPattern() []synth.Pitch { - return *pp -} - -func (pp *PitchPattern) SetPitchPattern(ps []synth.Pitch) { - *pp = ps -} - -// Pitches sets the generator's pitch pattern -func Pitches(ps ...synth.Pitch) Option { - return func(g Generator) { - if hpp, ok := g.(HasPitches); ok { - hpp.SetPitchPattern(ps) - } - } -} - -// PitchAt sets the n'th value in the entire play sequence -// to be pitch p. This could involve duplicating a pattern -// until it is long enough to reach n. Meaningless if the -// pitch pattern has not been set yet. -func PitchAt(p synth.Pitch, n int) Option { - return func(g Generator) { - if hpp, ok := g.(HasPitches); ok { - if hl, ok := hpp.(HasLength); ok { - if hl.GetLength() < n { - pitches := hpp.GetPitchPattern() - if len(pitches) == 0 { - return - } - // If the pattern is not long enough, there are two things - // we could do-- 1. Extend the pattern and replace the - // individual note, or 2. Replace the note that would be - // played at n and thus all earlier and later plays within - // the pattern as well. - // - // This uses approach 1. - for len(pitches) < n { - pitches = append(pitches, pitches...) - } - pitches[n] = p - hpp.SetPitchPattern(pitches) - } - } - } - } -} - -// PitchPatternAt sets the n'th value in the pitch pattern -// to be pitch p. Meaningless if the pitch pattern has not -// been set yet. -func PitchPatternAt(p synth.Pitch, n int) Option { - return func(g Generator) { - if hpp, ok := g.(HasPitches); ok { - pitches := hpp.GetPitchPattern() - if len(pitches) < n { - return - } - pitches[n] = p - hpp.SetPitchPattern(pitches) - } - } -} diff --git a/audio/sequence/sequence.go b/audio/sequence/sequence.go deleted file mode 100644 index cb9dfafd..00000000 --- a/audio/sequence/sequence.go +++ /dev/null @@ -1,25 +0,0 @@ -// Package sequence provides generators and options for creating audio sequences. -package sequence - -import ( - "time" - - "github.com/oakmound/oak/v3/audio/pcm" -) - -// A Sequence is a timed pattern of simultaneously played audios. -type Sequence struct { - // Sequences play patterns of audio - // everything at Pattern[0] will be simultaneously Play()ed at - // Sequence.Play() - Pattern []pcm.Reader - patternIndex int - // Every tick, the next index in Pattern will be played by a Sequence - // until the pattern is over. - Ticker *time.Ticker - // needed to copy Ticker - // consider: replacing ticker with dynamic ticker - tickDuration time.Duration - stopCh chan error - loop bool -} diff --git a/audio/sequence/tick.go b/audio/sequence/tick.go deleted file mode 100644 index a28a4e82..00000000 --- a/audio/sequence/tick.go +++ /dev/null @@ -1,27 +0,0 @@ -package sequence - -import "time" - -type Tick time.Duration - -type HasTicks interface { - GetTick() time.Duration - SetTick(time.Duration) -} - -func (vp *Tick) GetTick() time.Duration { - return time.Duration(*vp) -} - -func (vp *Tick) SetTick(vs time.Duration) { - *vp = Tick(vs) -} - -// Ticks sets the generator's Tick -func Ticks(t time.Duration) Option { - return func(g Generator) { - if ht, ok := g.(HasTicks); ok { - ht.SetTick(t) - } - } -} diff --git a/audio/sequence/volumePattern.go b/audio/sequence/volumePattern.go deleted file mode 100644 index adadd065..00000000 --- a/audio/sequence/volumePattern.go +++ /dev/null @@ -1,72 +0,0 @@ -package sequence - -type VolumePattern []float64 - -type HasVolumes interface { - GetVolumePattern() []float64 - SetVolumePattern([]float64) -} - -func (vp *VolumePattern) GetVolumePattern() []float64 { - return *vp -} - -func (vp *VolumePattern) SetVolumePattern(vs []float64) { - *vp = vs -} - -// Volumes sets the generator's Volume pattern -func Volumes(vs ...float64) Option { - return func(g Generator) { - if hvs, ok := g.(HasVolumes); ok { - hvs.SetVolumePattern(vs) - } - } -} - -// VolumeAt sets the n'th value in the entire play sequence -// to be Volume p. This could involve duplicating a pattern -// until it is long enough to reach n. Meaningless if the -// Volume pattern has not been set yet. -func VolumeAt(v float64, n int) Option { - return func(g Generator) { - if hvs, ok := g.(HasVolumes); ok { - if hl, ok := hvs.(HasLength); ok { - if hl.GetLength() < n { - volumes := hvs.GetVolumePattern() - if len(volumes) == 0 { - return - } - // If the pattern is not long enough, there are two things - // we could do-- 1. Extend the pattern and replace the - // individual note, or 2. Replace the note that would be - // played at n and thus all earlier and later plays within - // the pattern as well. - // - // This uses approach 1. - for len(volumes) < n { - volumes = append(volumes, volumes...) - } - volumes[n] = v - hvs.SetVolumePattern(volumes) - } - } - } - } -} - -// VolumePatternAt sets the n'th value in the Volume pattern -// to be Volume p. Meaningless if the Volume pattern has not -// been set yet. -func VolumePatternAt(v float64, n int) Option { - return func(g Generator) { - if hvs, ok := g.(HasVolumes); ok { - volumes := hvs.GetVolumePattern() - if len(volumes) < n { - return - } - volumes[n] = v - hvs.SetVolumePattern(volumes) - } - } -} diff --git a/audio/sequence/waveFunction.go b/audio/sequence/waveFunction.go deleted file mode 100644 index 0e76bac6..00000000 --- a/audio/sequence/waveFunction.go +++ /dev/null @@ -1,74 +0,0 @@ -package sequence - -import "github.com/oakmound/oak/v3/audio/synth" - -type WavePattern []synth.Wave - -type HasWaves interface { - GetWavePattern() []synth.Wave - SetWavePattern([]synth.Wave) -} - -func (wp *WavePattern) GetWavePattern() []synth.Wave { - return *wp -} - -func (wp *WavePattern) SetWavePattern(ws []synth.Wave) { - *wp = ws -} - -// Waves sets the generator's Wave pattern -func Waves(ws ...synth.Wave) Option { - return func(g Generator) { - if hw, ok := g.(HasWaves); ok { - hw.SetWavePattern(ws) - } - } -} - -// WaveAt sets the n'th value in the entire play sequence -// to be Wave p. This could involve duplicating a pattern -// until it is long enough to reach n. Meaningless if the -// Wave pattern has not been set yet. -func WaveAt(w synth.Wave, n int) Option { - return func(g Generator) { - if hw, ok := g.(HasWaves); ok { - if hl, ok := hw.(HasLength); ok { - if hl.GetLength() < n { - Waves := hw.GetWavePattern() - if len(Waves) == 0 { - return - } - // If the pattern is not long enough, there are two things - // we could do-- 1. Extend the pattern and replace the - // individual note, or 2. Replace the note that would be - // played at n and thus all earlier and later plays within - // the pattern as well. - // - // This uses approach 1. - for len(Waves) < n { - Waves = append(Waves, Waves...) - } - Waves[n] = w - hw.SetWavePattern(Waves) - } - } - } - } -} - -// WavePatternAt sets the n'th value in the Wave pattern -// to be Wave p. Meaningless if the Wave pattern has not -// been set yet. -func WavePatternAt(w synth.Wave, n int) Option { - return func(g Generator) { - if hw, ok := g.(HasWaves); ok { - Waves := hw.GetWavePattern() - if len(Waves) < n { - return - } - Waves[n] = w - hw.SetWavePattern(Waves) - } - } -} From 7afb62f2acc75990c215db8a7d29b10b320ffffb Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Wed, 6 Apr 2022 16:07:55 -0500 Subject: [PATCH 081/146] entities/x/stat: drop package --- entities/x/stat/default.go | 52 ---------------- entities/x/stat/statistic.go | 113 ----------------------------------- entities/x/stat/stats.go | 81 ------------------------- 3 files changed, 246 deletions(-) delete mode 100644 entities/x/stat/default.go delete mode 100644 entities/x/stat/statistic.go delete mode 100644 entities/x/stat/stats.go diff --git a/entities/x/stat/default.go b/entities/x/stat/default.go deleted file mode 100644 index aa6b3aec..00000000 --- a/entities/x/stat/default.go +++ /dev/null @@ -1,52 +0,0 @@ -package stat - -import "github.com/oakmound/oak/v3/event" - -var ( - // DefStatistics is a base set of statistics used by package-level calls - // When using multiple statistics, avoid using overlapping event names - DefStatistics = NewStatistics() -) - -// Inc triggers an event, incrementing the given statistic by one -func Inc(ev statEvent) { - DefStatistics.Inc(ev) -} - -// Trigger triggers the given event with a given increment to update a statistic -func Trigger(ev statEvent, inc int) { - DefStatistics.Trigger(ev, inc) -} - -// TriggerOn triggers the given event, toggling it on -func TriggerOn(ev timedStatEvent) { - DefStatistics.TriggerOn(ev) -} - -// TriggerOff triggers the given event, toggling it off -func TriggerOff(ev timedStatEvent) { - DefStatistics.TriggerOff(ev) -} - -// TriggerTimed triggers the given event, toggling it on or off -func TriggerTimed(ev timedStatEvent, on bool) { - DefStatistics.TriggerTimed(ev, on) -} - -// TrackStats records a stat event to the Statistics map and creates the statistic if it does not already exist -func TrackStats(no int, data interface{}) event.Response { - return DefStatistics.TrackStats(no, data) -} - -// TrackTimeStats acts like TrackStats, but tracks durations of events. If the -// event has not started, it logs a start time, and then when the event ends -// it will log the delta since the start. -func TrackTimeStats(no int, data interface{}) event.Response { - return DefStatistics.TrackTimeStats(no, data) -} - -// IsTimedStat returns whether the given stat name is a part of this statistics' -// set of timed stats -func IsTimedStat(s string) bool { - return DefStatistics.IsTimedStat(s) -} diff --git a/entities/x/stat/statistic.go b/entities/x/stat/statistic.go deleted file mode 100644 index 9d1b0b7d..00000000 --- a/entities/x/stat/statistic.go +++ /dev/null @@ -1,113 +0,0 @@ -package stat - -import ( - "sync" - "time" - - "github.com/oakmound/oak/v3/dlog" - "github.com/oakmound/oak/v3/event" -) - -// Statistics stores the ongoing results of TrackStats and TrackTimeStats -type Statistics struct { - stats map[string]*History - statLock sync.Mutex - - statTimes map[string]time.Time - statTimeLock sync.Mutex -} - -// NewStatistics creates an empty statistics set -func NewStatistics() *Statistics { - return &Statistics{ - stats: make(map[string]*History), - statLock: sync.Mutex{}, - statTimes: make(map[string]time.Time), - statTimeLock: sync.Mutex{}, - } -} - -// A History keeps track of any recorded occurrences of this statstic and their magnitude -type History struct { - Name string - Events []Event -} - -// An Event ties a value to a timestamp -type Event struct { - Timestamp time.Time - Val int -} - -// NewHistory creates a stat -func NewHistory(statName string, time time.Time) *History { - return &History{Name: statName, Events: []Event{{time, 0}}} -} - -// track adds a tracked event to the stat's history -func (h *History) track(t time.Time, v int) *History { - if len(h.Events) > 0 { - v += h.Events[len(h.Events)-1].Val - } - h.Events = append(h.Events, Event{t, v}) - return h -} - -// Total takes a statistics history and finds the sum. -func (h *History) Total() int { - return h.Events[len(h.Events)-1].Val -} - -func (st *Statistics) trackStats(name string, val int) { - st.statLock.Lock() - stat, ok := st.stats[name] - if !ok { - stat = NewHistory(name, time.Now()) - st.stats[name] = stat - } - stat.track(time.Now(), val) - st.statLock.Unlock() -} - -// TrackStats records a stat event to the Statistics map and creates the statistic if it does not already exist -func (st *Statistics) TrackStats(no int, data interface{}) event.Response { - stat, ok := data.(stat) - if !ok { - dlog.Error("TrackStats called with a non-stat payload") - return event.ResponseUnbindThisBinding - } - st.trackStats(stat.name, stat.inc) - return 0 -} - -// TrackTimeStats acts like TrackStats, but tracks durations of events. If the -// event has not started, it logs a start time, and then when the event ends -// it will log the delta since the start. -func (st *Statistics) TrackTimeStats(no int, data interface{}) event.Response { - timed, ok := data.(timedStat) - if !ok { - dlog.Error("TrackTimeStats called with a non-timedStat payload") - return event.ResponseUnbindThisBinding - } - if timed.on { //Turning on a thing to time track - st.statTimeLock.Lock() - st.statTimes[timed.name] = time.Now() - st.statTimeLock.Unlock() - } else { - st.statTimeLock.Lock() - timeDiff := int(time.Since(st.statTimes[timed.name])) - st.statTimeLock.Unlock() - if timeDiff < 0 { - return 0 - } - st.trackStats(timed.name, timeDiff) - } - return 0 -} - -// IsTimedStat returns whether the given stat name is a part of this statistics' -// set of timed stats -func (st *Statistics) IsTimedStat(s string) bool { - _, ok := st.statTimes[s] - return ok -} diff --git a/entities/x/stat/stats.go b/entities/x/stat/stats.go deleted file mode 100644 index 6710c681..00000000 --- a/entities/x/stat/stats.go +++ /dev/null @@ -1,81 +0,0 @@ -package stat - -import ( - "fmt" - - "github.com/oakmound/oak/v3/event" -) - -// TODO: these functions are useless unless the types are exported, and -// if the types are exported the api is bad - -type timedStatEvent struct { - event event.EventID[timedStat] - fmt.Stringer -} - -type timedStat struct { - name string - on bool -} - -type statEvent struct { - event event.EventID[stat] - fmt.Stringer -} - -type stat struct { - name string - inc int -} - -// TimedOn returns a binding that will trigger toggling on the given event -func TimedOn(ev timedStatEvent) event.UnsafeBindable { - return TimedBind(ev, true) -} - -// TimedOff returns a binding that will trigger toggling off the given event -func TimedOff(ev timedStatEvent) event.UnsafeBindable { - return TimedBind(ev, false) -} - -// TimedBind returns a binding that will trigger toggling on or off the given event -func TimedBind(ev timedStatEvent, on bool) event.UnsafeBindable { - return func(event.CallerID, event.Handler, interface{}) event.Response { - event.TriggerOn(event.DefaultBus, ev.event, timedStat{ev.String(), on}) - return 0 - } -} - -// Bind returns a binding that will increment the given event by 'inc' -func Bind(ev statEvent, inc int) event.UnsafeBindable { - return func(event.CallerID, event.Handler, interface{}) event.Response { - event.TriggerOn(event.DefaultBus, ev.event, stat{ev.String(), inc}) - return 0 - } -} - -// Inc triggers an event, incrementing the given statistic by one -func (st *Statistics) Inc(ev statEvent) { - st.Trigger(ev, 1) -} - -// Trigger triggers the given event with a given increment to update a statistic -func (st *Statistics) Trigger(ev statEvent, inc int) { - event.TriggerOn(event.DefaultBus, ev.event, stat{ev.String(), inc}) -} - -// TriggerOn triggers the given event, toggling it on -func (st *Statistics) TriggerOn(ev timedStatEvent) { - st.TriggerTimed(ev, true) -} - -// TriggerOff triggers the given event, toggling it off -func (st *Statistics) TriggerOff(ev timedStatEvent) { - st.TriggerTimed(ev, false) -} - -// TriggerTimed triggers the given event, toggling it on or off -func (st *Statistics) TriggerTimed(ev timedStatEvent, on bool) { - event.TriggerOn(event.DefaultBus, ev.event, timedStat{ev.String(), on}) -} From d1e9e291dfbaec0602fbbc0dc2ef3d090c072395 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Wed, 6 Apr 2022 16:08:17 -0500 Subject: [PATCH 082/146] entities: default entities to be drawn --- entities/entity.go | 40 +++++++++++++++++++++++++++++++ entities/opts_gen.go | 14 +++++++++++ examples/platformer/main.go | 2 -- examples/titlescreen-demo/main.go | 1 - 4 files changed, 54 insertions(+), 3 deletions(-) diff --git a/entities/entity.go b/entities/entity.go index 71acd78c..68349ae7 100644 --- a/entities/entity.go +++ b/entities/entity.go @@ -24,12 +24,16 @@ type Generator struct { ScaleRenderable *mod.Resampling + Mod mod.Mod + Label collision.Label DrawLayers []int UseMouseTree bool WithoutCollision bool + + Children []Generator } func And(opts ...Option) Option { @@ -41,6 +45,17 @@ func And(opts ...Option) Option { } } +func WithChild(opts ...Option) Option { + return func(s Generator) Generator { + g2 := defaultGenerator + for _, o := range opts { + g2 = o(g2) + } + s.Children = append(s.Children, g2) + return s + } +} + func WithRect(v floatgeom.Rect2) Option { return func(s Generator) Generator { s.Position = v.Min @@ -51,6 +66,7 @@ func WithRect(v floatgeom.Rect2) Option { var defaultGenerator = Generator{ Dimensions: floatgeom.Point2{1, 1}, + DrawLayers: []int{0}, } type Entity struct { @@ -68,6 +84,10 @@ type Entity struct { Space *collision.Space Tree *collision.Tree + + metadata map[string]string + + Attached []*Entity } func (e Entity) CID() event.CallerID { @@ -165,6 +185,22 @@ func (e *Entity) Destroy() { e.ctx.UnbindAllFrom(e.CallerID) } +// SetMetadata sets the metadata for some key to some value. Empty value strings +// will not be stored. +func (e *Entity) SetMetadata(k, v string) { + if v == "" { + delete(e.metadata, k) + } else { + e.metadata[k] = v + } +} + +// Metadata accesses the value, and whether it existed, for a given metadata key +func (e *Entity) Metadata(k string) (v string, ok bool) { + v, ok = e.metadata[k] + return v, ok +} + func New(ctx *scene.Context, opts ...Option) *Entity { g := defaultGenerator for _, o := range opts { @@ -187,6 +223,10 @@ func New(ctx *scene.Context, opts ...Option) *Entity { e.Renderable = render.NewColorBox(int(e.W()), int(e.H()), g.Color) } + if m, isMod := e.Renderable.(render.Modifiable); g.Mod != nil && isMod { + e.Renderable = m.Modify(g.Mod) + } + if g.ScaleRenderable != nil { if m, ok := g.Renderable.(render.Modifiable); ok { e.Renderable = m.Modify(mod.Resize(int(g.Dimensions[0]), int(g.Dimensions[1]), *g.ScaleRenderable)) diff --git a/entities/opts_gen.go b/entities/opts_gen.go index b580408c..288ae580 100644 --- a/entities/opts_gen.go +++ b/entities/opts_gen.go @@ -63,6 +63,13 @@ func WithScaleRenderable(v *mod.Resampling) Option { } } +func WithMod(v mod.Mod) Option { + return func(s Generator) Generator { + s.Mod = v + return s + } +} + func WithLabel(v collision.Label) Option { return func(s Generator) Generator { s.Label = v @@ -90,3 +97,10 @@ func WithWithoutCollision(v bool) Option { return s } } + +func WithChildren(v []Generator) Option { + return func(s Generator) Generator { + s.Children = v + return s + } +} diff --git a/examples/platformer/main.go b/examples/platformer/main.go index 5cf1af9f..4d88a73d 100644 --- a/examples/platformer/main.go +++ b/examples/platformer/main.go @@ -28,7 +28,6 @@ func main() { char := entities.New(ctx, entities.WithRect(floatgeom.NewRect2WH(100, 100, 16, 32)), entities.WithColor(color.RGBA{255, 0, 0, 255}), - entities.WithDrawLayers([]int{0}), entities.WithSpeed(floatgeom.Point2{3, 7}), ) @@ -126,7 +125,6 @@ func main() { entities.WithRect(p), entities.WithColor(color.RGBA{0, 0, 255, 255}), entities.WithLabel(Ground), - entities.WithDrawLayers([]int{0}), ) } diff --git a/examples/titlescreen-demo/main.go b/examples/titlescreen-demo/main.go index 86a55a6a..3cec5149 100644 --- a/examples/titlescreen-demo/main.go +++ b/examples/titlescreen-demo/main.go @@ -75,7 +75,6 @@ func main() { player := entities.New(ctx, entities.WithRect(floatgeom.NewRect2WH(100, 100, 32, 32)), entities.WithColor(color.RGBA{0, 0, 255, 255}), - entities.WithDrawLayers([]int{0}), ) controlsText := render.NewText("WASD to move, ESC to return to titlescreen", 5, 20) From 70e5c71bfc194e35998f21a9793f105f1bf31079 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Fri, 8 Apr 2022 11:13:11 -0500 Subject: [PATCH 083/146] audio/synth: add wave combination --- audio/synth/waves.go | 81 +++++++++++++++++++++++++++++------------- examples/piano/main.go | 14 ++++++-- 2 files changed, 68 insertions(+), 27 deletions(-) diff --git a/audio/synth/waves.go b/audio/synth/waves.go index 8cce79fc..23ccb558 100644 --- a/audio/synth/waves.go +++ b/audio/synth/waves.go @@ -30,9 +30,15 @@ func phase(freq Pitch, i int, sampleRate uint32) float64 { // / \ //--__-- --__-- func (s Source) Sin(opts ...Option) pcm.Reader { - return s.Wave(func(s Source, idx int) float64 { - return s.Volume * math.Sin(s.modPhase(idx)) - }, opts...) + return s.Wave(Source.SinWave, opts...) +} + +func (s Source) SinWave(idx int) float64 { + return s.Volume * math.Sin(s.modPhase(idx)) +} + +func (s Source) Square(opts ...Option) pcm.Reader { + return s.Pulse(2)(opts...) } // Pulse acts like Square when given a pulse of 2, when given any lesser @@ -43,14 +49,18 @@ func (s Source) Sin(opts ...Option) pcm.Reader { // || || // ____||____||____ func (s Source) Pulse(pulse float64) func(opts ...Option) pcm.Reader { - pulseSwitch := 1 - 2/pulse return func(opts ...Option) pcm.Reader { - return s.Wave(func(s Source, idx int) float64 { - if math.Sin(s.Phase(idx)) > pulseSwitch { - return s.Volume - } - return -s.Volume - }, opts...) + return s.Wave(PulseWave(pulse), opts...) + } +} + +func PulseWave(pulse float64) Waveform { + pulseSwitch := 1 - 2/pulse + return func(s Source, idx int) float64 { + if math.Sin(s.Phase(idx)) > pulseSwitch { + return s.Volume + } + return -s.Volume } } @@ -60,9 +70,11 @@ func (s Source) Pulse(pulse float64) func(opts ...Option) pcm.Reader { // / | / | / // / |/ |/ func (s Source) Saw(opts ...Option) pcm.Reader { - return s.Wave(func(s Source, idx int) float64 { - return s.Volume - (s.Volume / math.Pi * math.Mod(s.Phase(idx), 2*math.Pi)) - }, opts...) + return s.Wave(Source.SawWave, opts...) +} + +func (s Source) SawWave(idx int) float64 { + return s.Volume - (s.Volume / math.Pi * math.Mod(s.Phase(idx), 2*math.Pi)) } // Triangle produces a Triangle wave @@ -71,20 +83,26 @@ func (s Source) Saw(opts ...Option) pcm.Reader { // / \ / \ // v v v func (s Source) Triangle(opts ...Option) pcm.Reader { - return s.Wave(func(s Source, idx int) float64 { - p := s.modPhase(idx) - m := p * (2 * s.Volume / math.Pi) - if math.Sin(p) > 0 { - return -s.Volume + m - } - return 3*s.Volume - m - }, opts...) + return s.Wave(Source.TriangleWave, opts...) +} + +func (s Source) TriangleWave(idx int) float64 { + p := s.modPhase(idx) + m := p * (2 * s.Volume / math.Pi) + if math.Sin(p) > 0 { + return -s.Volume + m + } + return 3*s.Volume - m } func (s Source) Noise(opts ...Option) pcm.Reader { - return s.Wave(func(s Source, idx int) float64 { - return ((rand.Float64() * 2) - 1) * s.Volume - }, opts...) + return s.Wave(Source.NoiseWave, opts...) +} + +var _ Waveform = Source.NoiseWave + +func (s Source) NoiseWave(idx int) float64 { + return ((rand.Float64() * 2) - 1) * s.Volume } func (s Source) modPhase(idx int) float64 { @@ -112,7 +130,9 @@ func (pr *Wave8Reader) ReadPCM(b []byte) (n int, err error) { return } -func (s Source) Wave(waveFn func(s Source, idx int) float64, opts ...Option) pcm.Reader { +type Waveform func(s Source, idx int) float64 + +func (s Source) Wave(waveFn Waveform, opts ...Option) pcm.Reader { switch s.Bits { case 8: s.Volume *= math.MaxInt8 @@ -143,6 +163,17 @@ func (s Source) Wave(waveFn func(s Source, idx int) float64, opts ...Option) pcm } } +func (s Source) MultiWave(waveFns []Waveform, opts ...Option) pcm.Reader { + return s.Wave(func(s Source, idx int) float64 { + var out float64 + for _, wv := range waveFns { + v := wv(s, idx) + out += v / float64(len(waveFns)) + } + return out + }, opts...) +} + type Wave16Reader struct { Source lastIndex int diff --git a/examples/piano/main.go b/examples/piano/main.go index 631307aa..0dfbdf18 100644 --- a/examples/piano/main.go +++ b/examples/piano/main.go @@ -246,6 +246,7 @@ func main() { playWithMonitor(gctx, fadeIn) }, key.Q: func(gctx context.Context, pitch synth.Pitch) { + // demonstrate adding waveforms to play in unison unison := 4 for i := 0; i < unison; i++ { go playWithMonitor(gctx, audio.FadeIn(100*time.Millisecond, audio.LoopReader(src.Saw(synth.AtPitch(pitch))))) @@ -253,8 +254,6 @@ func main() { go playWithMonitor(gctx, audio.FadeIn(100*time.Millisecond, audio.LoopReader(src.Saw(synth.AtPitch(pitch), synth.Detune(-.05))))) } playWithMonitor(gctx, audio.FadeIn(100*time.Millisecond, audio.LoopReader(src.Saw(synth.AtPitch(pitch))))) - - //playWithMonitor(gctx, audio.FadeIn(100*time.Millisecond, audio.LoopReader(src.Noise()))) }, key.T: func(gctx context.Context, pitch synth.Pitch) { toPlay := audio.LoopReader(src.Triangle(synth.AtPitch(pitch))) @@ -271,6 +270,17 @@ func main() { fadeIn := audio.FadeIn(100*time.Millisecond, toPlay) playWithMonitor(gctx, fadeIn) }, + key.X: func(gctx context.Context, pitch synth.Pitch) { + // demonstrate combining multiple wave forms in place + toPlay := src.MultiWave([]synth.Waveform{ + synth.Source.SinWave, + synth.Source.TriangleWave, + synth.PulseWave(2), + }, synth.AtPitch(pitch)) + fadeIn := audio.FadeIn(100*time.Millisecond, toPlay) + playWithMonitor(gctx, fadeIn) + + }, } for kc, synfn := range codeKinds { synfn := synfn From d4aa34ebf98e215ea8c4aed89e0a4c595131c833 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Fri, 8 Apr 2022 18:05:18 -0500 Subject: [PATCH 084/146] audio/synth: add pitch detection support --- audio/pcm/interface.go | 43 ++++++++- audio/synth/pitch.go | 196 +++++++++++++++++++++++++++++++++++++++++ examples/piano/main.go | 19 +++- 3 files changed, 255 insertions(+), 3 deletions(-) diff --git a/audio/pcm/interface.go b/audio/pcm/interface.go index d60d38b1..31aedcc9 100644 --- a/audio/pcm/interface.go +++ b/audio/pcm/interface.go @@ -45,6 +45,7 @@ type Format struct { // 1 for mono and 2 for stereo. Channels uint16 // Bits determines how many bits a single sample value takes up. 8, 16, and 32 are common values. + // TODO: Do we need LE vs BE, float vs int representation? Bits uint16 } @@ -55,6 +56,44 @@ func (f Format) PCMFormat() Format { // BytesPerSecond returns how many bytes this format would be encoded into per second in an audio stream. func (f Format) BytesPerSecond() uint32 { - blockAlign := f.Channels * f.Bits / 8 - return f.SampleRate * uint32(blockAlign) + return f.SampleRate * uint32(f.SampleSize()) +} + +func (f Format) SampleSize() int { + return int(f.Channels) * int(f.Bits/8) +} + +// ReadFloat reads a single sample from an audio stream, respecting bits and channels: +// f.Bits / 8 bytes * f.Channels bytes will be read from b, and this count will be returned as 'read'. +// the length of values will be equal to f.Channels, if no error is returned. If an error is returned, +// it will be io.ErrUnexpectedEOF. If bits is an unexpected value +func (f Format) SampleFloat(b []byte) (values []float64, read int, err error) { + values = make([]float64, 0, f.Channels) + read = f.SampleSize() + if len(b) < read { + return nil, 0, io.ErrUnexpectedEOF + } + _ = b[read-1] + switch f.Bits { + case 8: + for i := 0; i < int(f.Channels); i++ { + v := int8(b[i]) + values = append(values, float64(v)) + } + case 16: + for i := 0; i < int(f.Channels)*2; i += 2 { + v := int16(b[i]) + + int16(b[i+1])<<8 + values = append(values, float64(v)) + } + case 32: + for i := 0; i < int(f.Channels)*4; i += 4 { + v := int32(b[i]) + + int32(b[i+1])<<8 + + int32(b[i+2])<<16 + + int32(b[i+3])<<24 + values = append(values, float64(v)) + } + } + return } diff --git a/audio/synth/pitch.go b/audio/synth/pitch.go index f8b3e7a4..bd027b9e 100644 --- a/audio/synth/pitch.go +++ b/audio/synth/pitch.go @@ -1,5 +1,11 @@ package synth +import ( + "sort" + + "github.com/oakmound/oak/v3/audio/pcm" +) + // A Pitch is a helper type for synth functions so // a user can write A4 instead of a frequency value // for a desired tone @@ -387,8 +393,124 @@ var ( A8s: 106, B8: 107, } + + pitchStrings = map[Pitch]string{ + Rest: "Rest", + C0: "C0", + C0s: "C0#", + D0: "D0", + D0s: "D0#", + E0: "E0", + F0: "F0", + F0s: "F0#", + G0: "G0", + G0s: "G0#", + A0: "A0", + A0s: "A0#", + B0: "B0", + C1: "C1", + C1s: "C1#", + D1: "D1", + D1s: "D1#", + E1: "E1", + F1: "F1", + F1s: "F1#", + G1: "G1", + G1s: "G1#", + A1: "A1", + A1s: "A1#", + B1: "B1", + C2: "C2", + C2s: "C2#", + D2: "D2", + D2s: "D2#", + E2: "E2", + F2: "F2", + F2s: "F2#", + G2: "G2", + G2s: "G2#", + A2: "A2", + A2s: "A2#", + B2: "B2", + C3: "C3", + C3s: "C3#", + D3: "D3", + D3s: "D3#", + E3: "E3", + F3: "F3", + F3s: "F3#", + G3: "G3", + G3s: "G3#", + A3: "A3", + A3s: "A3#", + B3: "B3", + C4: "C4", + C4s: "C4#", + D4: "D4", + D4s: "D4#", + E4: "E4", + F4: "F4", + F4s: "F4#", + G4: "G4", + G4s: "G4#", + A4: "A4", + A4s: "A4#", + B4: "B4", + C5: "C5", + C5s: "C5#", + D5: "D5", + D5s: "D5#", + E5: "E5", + F5: "F5", + F5s: "F5#", + G5: "G5", + G5s: "G5#", + A5: "A5", + A5s: "A5#", + B5: "B5", + C6: "C6", + C6s: "C6#", + D6: "D6", + D6s: "D6#", + E6: "E6", + F6: "F6", + F6s: "F6#", + G6: "G6", + G6s: "G6#", + A6: "A6", + A6s: "A6#", + B6: "B6", + C7: "C7", + C7s: "C7#", + D7: "D7", + D7s: "D7#", + E7: "E7", + F7: "F7", + F7s: "F7#", + G7: "G7", + G7s: "G7#", + A7: "A7", + A7s: "A7#", + B7: "B7", + C8: "C8", + C8s: "C8#", + D8: "D8", + D8s: "D8#", + E8: "E8", + F8: "F8", + F8s: "F8#", + G8: "G8", + G8s: "G8#", + A8: "A8", + A8s: "A8#", + B8: "B8", + } ) +func (p Pitch) String() string { + return pitchStrings[p] +} + var accidentals = map[Pitch]struct{}{ C0s: {}, D0s: {}, @@ -477,3 +599,77 @@ func (p Pitch) IsAccidental() bool { _, ok := accidentals[p] return ok } + +type PitchDetector struct { + pcm.Reader + + format pcm.Format + + // Will be 0 if unknown + DetectedPitch Pitch + + // Channel defines which audio channel (0 for mono, 0-1 for stereo) should + // be analyzed. ReadPCM will panic if this value is invalid. If this scares you, + // don't change this value-- the consequence is that a specific channel for stereo + // audio will be analyzed, which won't be a problem unless you're running this on + // Queen's The Prophet's Song + Channel int + + index int + lastValue float64 + crossedZero bool +} + +func NewPitchDetector(r pcm.Reader) *PitchDetector { + return &PitchDetector{ + Reader: r, + format: r.PCMFormat(), + } +} + +func (pd *PitchDetector) ReadPCM(b []byte) (n int, err error) { + n, err = pd.Reader.ReadPCM(b) + if err != nil { + return n, err + } + var lastValue float64 + var read int + sampleSize := pd.format.SampleSize() + for len(b[read:]) > sampleSize { + pd.index++ + vals, valReadBytes, err := pd.format.SampleFloat(b[read:]) + if err != nil { + break + } + read += valReadBytes + // ignore stereo audio; sorry it makes this really complicated + val := vals[pd.Channel] + if lastValue < 0 && val > 0 || val < 0 && lastValue > 0 { + // we've crossed zero + if !pd.crossedZero { + pd.crossedZero = true + } else { + // assuming this is pitched audio (if it isn't we can't give a correct answer), + // pd.index is now half of the number of samples before the last time this audio + // stream crossed zero. The last time this audio stream crossed zero defines how + // frequently this audio is cycling-- the speed the audio cycles at defines the pitch + // of the audio in hertz; our pitch constants above are also defined in hertz. + periodLength := pd.index * 2 + samplesPerSecond := pd.format.SampleRate + periodHz := 1 / (float64(periodLength) / float64(samplesPerSecond)) + pd.DetectedPitch = HertzToPitch(periodHz) + } + pd.index = 0 + } + lastValue = val + } + pd.lastValue = lastValue + return +} + +func HertzToPitch(hz float64) Pitch { + i := sort.Search(len(allPitches), func(i int) bool { + return Pitch(hz) < allPitches[i] + }) + return allPitches[i] +} diff --git a/examples/piano/main.go b/examples/piano/main.go index 0dfbdf18..62860e22 100644 --- a/examples/piano/main.go +++ b/examples/piano/main.go @@ -172,6 +172,17 @@ func releasePitch(pitch synth.Pitch) { } } +type pitchText struct { + pitch *synth.Pitch +} + +func (pt *pitchText) String() string { + if pt.pitch == nil { + return "" + } + return pt.pitch.String() +} + func main() { err := audio.InitDefault() if err != nil { @@ -188,6 +199,7 @@ func main() { Channels: 2, Bits: 32, } + pt := &pitchText{} playWithMonitor := func(gctx context.Context, r pcm.Reader) { speaker, err := audio.NewWriter(r.PCMFormat()) if err != nil { @@ -198,7 +210,10 @@ func main() { monitor.SetPos(0, 0) render.Draw(monitor) - audio.Play(gctx, r, func(po *audio.PlayOptions) { + pitchDetector := synth.NewPitchDetector(r) + pt.pitch = &pitchDetector.DetectedPitch + + audio.Play(gctx, pitchDetector, func(po *audio.PlayOptions) { po.Destination = monitor }) speaker.Close() @@ -209,6 +224,8 @@ func main() { fadeIn := audio.FadeIn(100*time.Millisecond, toPlay) playWithMonitor(gctx, fadeIn) } + render.Draw(render.NewStringerText(pt, 10, 10)) + pitch := synth.C3 kc := keyColorWhite x := 20.0 From 0c97c2dc26db5b0104eb5fd5c81abf1215170164 Mon Sep 17 00:00:00 2001 From: implausiblyfun Date: Sat, 9 Apr 2022 09:51:48 -0400 Subject: [PATCH 085/146] shake: Move shake out of X state. It is not tightly coupled to any other packages so graduates out of entities --- entities/{x => }/shake/shake.go | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename entities/{x => }/shake/shake.go (100%) diff --git a/entities/x/shake/shake.go b/entities/shake/shake.go similarity index 100% rename from entities/x/shake/shake.go rename to entities/shake/shake.go From 2776f05672531fc825640ede1fea4c4e306168d4 Mon Sep 17 00:00:00 2001 From: implausiblyfun Date: Sat, 9 Apr 2022 09:53:24 -0400 Subject: [PATCH 086/146] examples\collision-demo: Add temp sub demo for shaking. --- .../shake-extension-demo/README.md | 9 + .../shake-extension-demo/main.go | 159 ++++++++++++++++++ 2 files changed, 168 insertions(+) create mode 100644 examples/collision-demo/shake-extension-demo/README.md create mode 100644 examples/collision-demo/shake-extension-demo/main.go diff --git a/examples/collision-demo/shake-extension-demo/README.md b/examples/collision-demo/shake-extension-demo/README.md new file mode 100644 index 00000000..a2f2390b --- /dev/null +++ b/examples/collision-demo/shake-extension-demo/README.md @@ -0,0 +1,9 @@ +# Shaker Demo + +Extension of the collision demo to illustrate the default shaker. +In addition to changing color 3 of the sectors will show a different shaking paradigm. + + + +This demo probably wont stay as is for long as it is a thin wrapper on collision-demo. + diff --git a/examples/collision-demo/shake-extension-demo/main.go b/examples/collision-demo/shake-extension-demo/main.go new file mode 100644 index 00000000..a9e2c614 --- /dev/null +++ b/examples/collision-demo/shake-extension-demo/main.go @@ -0,0 +1,159 @@ +package main + +import ( + "image/color" + "time" + + oak "github.com/oakmound/oak/v3" + "github.com/oakmound/oak/v3/collision" + "github.com/oakmound/oak/v3/entities" + "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v3/key" + "github.com/oakmound/oak/v3/render" + "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v3/shake" +) + +const ( + _ = iota + RED collision.Label = iota + GREEN + BLUE + TEAL +) + +func main() { + oak.AddScene("demo", scene.Scene{Start: func(ctx *scene.Context) { + act := &AttachCollisionTest{} + act.Solid = entities.NewSolid(50, 50, 50, 50, render.NewColorBox(50, 50, color.RGBA{0, 0, 0, 255}), nil, ctx.CallerMap.Register(act)) + + collision.Attach(act.Vector, act.Space, nil, 0, 0) + + event.Bind(ctx, event.Enter, act, func(act *AttachCollisionTest, ev event.EnterPayload) event.Response { + if act.ShouldUpdate { + act.ShouldUpdate = false + act.R.Undraw() + act.R = act.nextR + render.Draw(act.R, 0, 1) + } + if oak.IsDown(key.A) { + // We could use attachment here to not have to shift both + // R and act but that is made more difficult by constantly + // changing the act's R + act.ShiftX(-3) + act.R.ShiftX(-3) + } else if oak.IsDown(key.D) { + act.ShiftX(3) + act.R.ShiftX(3) + } + if oak.IsDown(key.W) { + act.ShiftY(-3) + act.R.ShiftY(-3) + } else if oak.IsDown(key.S) { + act.ShiftY(3) + act.R.ShiftY(3) + } + return 0 + }) + + render.Draw(act.R, 0, 1) + + collision.PhaseCollision(act.Space, nil) + + upleft := entities.NewSolid(0, 0, 320, 240, render.NewColorBox(320, 240, color.RGBA{100, 0, 0, 100}), nil, 0) + upleft.Space.UpdateLabel(RED) + upleft.R.SetLayer(0) + render.Draw(upleft.R, 0, 0) + + upright := entities.NewSolid(320, 0, 320, 240, render.NewColorBox(320, 240, color.RGBA{0, 100, 0, 100}), nil, 0) + upright.Space.UpdateLabel(GREEN) + upright.R.SetLayer(0) + render.Draw(upright.R, 0, 0) + + botleft := entities.NewSolid(0, 240, 320, 240, render.NewColorBox(320, 240, color.RGBA{0, 0, 100, 100}), nil, 0) + botleft.Space.UpdateLabel(BLUE) + botleft.R.SetLayer(0) + render.Draw(botleft.R, 0, 0) + + botright := entities.NewSolid(320, 240, 320, 240, render.NewColorBox(320, 240, color.RGBA{0, 100, 100, 100}), nil, 0) + botright.Space.UpdateLabel(TEAL) + botright.R.SetLayer(0) + render.Draw(botright.R, 0, 0) + + event.Bind(ctx, collision.Start, act, func(act *AttachCollisionTest, l collision.Label) event.Response { + switch l { + case RED: + act.r += 125 + act.UpdateR() + case GREEN: + act.g += 125 + act.UpdateR() + shake.DefaultShaker.Shake(upleft, time.Second) + shake.DefaultShaker.Shake(botleft, time.Second) + shake.DefaultShaker.Shake(botright, time.Second) + case BLUE: + act.b += 125 + act.UpdateR() + shake.DefaultShaker.Shake(act, time.Second*2) + case TEAL: + act.b += 125 + act.g += 125 + act.UpdateR() + shake.DefaultShaker.ShakeScreen(ctx, time.Second) + } + + return 0 + }) + event.Bind(ctx, collision.Stop, act, func(act *AttachCollisionTest, l collision.Label) event.Response { + switch l { + case RED: + act.r -= 125 + act.UpdateR() + case GREEN: + act.g -= 125 + act.UpdateR() + case BLUE: + act.b -= 125 + act.UpdateR() + case TEAL: + act.b -= 125 + act.g -= 125 + act.UpdateR() + } + + return 0 + }) + }}) + render.SetDrawStack( + render.NewDynamicHeap(), + ) + oak.Init("demo") +} + +type AttachCollisionTest struct { + *entities.Solid + // AttachSpace is a composable struct that allows + // spaces to be attached to vectors + collision.AttachSpace + // Phase is a composable struct that enables the call + // collision.CollisionPhase on this struct's space, + // which will start sending signals when that space + // starts and stops touching given labels + collision.Phase + r, g, b int + ShouldUpdate bool + nextR render.Renderable +} + +// CID returns the event.CallerID so that this can be bound to. +func (act *AttachCollisionTest) CID() event.CallerID { + return act.CallerID +} + +// UpdateR with the rgb set on the act. +func (act *AttachCollisionTest) UpdateR() { + act.nextR = render.NewColorBox(50, 50, color.RGBA{uint8(act.r), uint8(act.g), uint8(act.b), 255}) + act.nextR.SetPos(act.X(), act.Y()) + act.nextR.SetLayer(1) + act.ShouldUpdate = true +} From 54192eeb134557b2c71da44504a40f2976b55375 Mon Sep 17 00:00:00 2001 From: implausiblyfun Date: Sat, 9 Apr 2022 10:19:42 -0400 Subject: [PATCH 087/146] shake: Move shake out of X state. It is not tightly coupled to any other packages so graduates out of entities --- {entities/shake => shake}/shake.go | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {entities/shake => shake}/shake.go (100%) diff --git a/entities/shake/shake.go b/shake/shake.go similarity index 100% rename from entities/shake/shake.go rename to shake/shake.go From 705992500b526a824f046eef3a3a4c8e72119491 Mon Sep 17 00:00:00 2001 From: implausiblyfun Date: Sat, 9 Apr 2022 10:21:01 -0400 Subject: [PATCH 088/146] examples/text-demos: Folderize the 2 text demos --- examples/text-demo-2/README.md | 4 ---- examples/text-demos/README.md | 2 ++ .../color-changing-text-demo}/README.md | 2 -- .../assets/font/luxisbi.ttf | Bin .../color-changing-text-demo}/main.go | 0 examples/text-demos/continual-text-demo/README.md | 2 ++ .../continual-text-demo}/main.go | 0 7 files changed, 4 insertions(+), 6 deletions(-) delete mode 100644 examples/text-demo-2/README.md create mode 100644 examples/text-demos/README.md rename examples/{text-demo-1 => text-demos/color-changing-text-demo}/README.md (80%) rename examples/{text-demo-1 => text-demos/color-changing-text-demo}/assets/font/luxisbi.ttf (100%) rename examples/{text-demo-1 => text-demos/color-changing-text-demo}/main.go (100%) create mode 100644 examples/text-demos/continual-text-demo/README.md rename examples/{text-demo-2 => text-demos/continual-text-demo}/main.go (100%) diff --git a/examples/text-demo-2/README.md b/examples/text-demo-2/README.md deleted file mode 100644 index aec48a90..00000000 --- a/examples/text-demo-2/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# Text Creation -Continually draw text on screen with a random color - -![text](./example.gif) \ No newline at end of file diff --git a/examples/text-demos/README.md b/examples/text-demos/README.md new file mode 100644 index 00000000..1b8e2514 --- /dev/null +++ b/examples/text-demos/README.md @@ -0,0 +1,2 @@ +# Text Creation +Examples of drawing text and changing their text / content while on the screen. \ No newline at end of file diff --git a/examples/text-demo-1/README.md b/examples/text-demos/color-changing-text-demo/README.md similarity index 80% rename from examples/text-demo-1/README.md rename to examples/text-demos/color-changing-text-demo/README.md index 14f8d568..a79cecf3 100644 --- a/examples/text-demo-1/README.md +++ b/examples/text-demos/color-changing-text-demo/README.md @@ -1,4 +1,2 @@ # Text Creation Draw text and update some of it to change its color and display the rgb value - -![text](./example.gif) \ No newline at end of file diff --git a/examples/text-demo-1/assets/font/luxisbi.ttf b/examples/text-demos/color-changing-text-demo/assets/font/luxisbi.ttf similarity index 100% rename from examples/text-demo-1/assets/font/luxisbi.ttf rename to examples/text-demos/color-changing-text-demo/assets/font/luxisbi.ttf diff --git a/examples/text-demo-1/main.go b/examples/text-demos/color-changing-text-demo/main.go similarity index 100% rename from examples/text-demo-1/main.go rename to examples/text-demos/color-changing-text-demo/main.go diff --git a/examples/text-demos/continual-text-demo/README.md b/examples/text-demos/continual-text-demo/README.md new file mode 100644 index 00000000..3ad111e2 --- /dev/null +++ b/examples/text-demos/continual-text-demo/README.md @@ -0,0 +1,2 @@ +# Text Creation +Continually draw text on screen with a random color \ No newline at end of file diff --git a/examples/text-demo-2/main.go b/examples/text-demos/continual-text-demo/main.go similarity index 100% rename from examples/text-demo-2/main.go rename to examples/text-demos/continual-text-demo/main.go From b646f08a9d14641c08cb499804ce350058f0cad7 Mon Sep 17 00:00:00 2001 From: implausiblyfun Date: Sat, 9 Apr 2022 10:21:33 -0400 Subject: [PATCH 089/146] examples: Add READMEs where there were already images --- examples/bezier/README.md | 5 +++++ examples/blank/README.md | 4 ++++ examples/collision-demo/README.md | 5 +++++ examples/custom-cursor/README.md | 4 ++++ examples/error-scene/README.md | 4 ++++ examples/fallback-font/README.md | 4 ++++ examples/flappy-bird/README.md | 4 ++++ examples/multi-window/README.md | 4 ++++ 8 files changed, 34 insertions(+) create mode 100644 examples/bezier/README.md create mode 100644 examples/blank/README.md create mode 100644 examples/collision-demo/README.md create mode 100644 examples/custom-cursor/README.md create mode 100644 examples/error-scene/README.md create mode 100644 examples/fallback-font/README.md create mode 100644 examples/flappy-bird/README.md create mode 100644 examples/multi-window/README.md diff --git a/examples/bezier/README.md b/examples/bezier/README.md new file mode 100644 index 00000000..8c055322 --- /dev/null +++ b/examples/bezier/README.md @@ -0,0 +1,5 @@ +# Bezier Rendering +Use a mouse or debug commands to create points. +The points will be used to draw bézier curve. + +![text](./example.PNG) \ No newline at end of file diff --git a/examples/blank/README.md b/examples/blank/README.md new file mode 100644 index 00000000..8181d097 --- /dev/null +++ b/examples/blank/README.md @@ -0,0 +1,4 @@ +# Blank Scene +Starts a pprof server and sets up a blank scene. +Useful for benchmarking and as a minimal base to copy from. +For less minimalist copying point see [the basic game template](https://github.com/oakmound/game-template). \ No newline at end of file diff --git a/examples/collision-demo/README.md b/examples/collision-demo/README.md new file mode 100644 index 00000000..b06bb7b8 --- /dev/null +++ b/examples/collision-demo/README.md @@ -0,0 +1,5 @@ +# Collision Demo + +Controllable box that colors itself based on what zones it collides with. + +![text](./example.PNG) \ No newline at end of file diff --git a/examples/custom-cursor/README.md b/examples/custom-cursor/README.md new file mode 100644 index 00000000..d1cdb8df --- /dev/null +++ b/examples/custom-cursor/README.md @@ -0,0 +1,4 @@ +# Custom Cursor +An example of replacing default cursor. + +![text](./example.PNG) \ No newline at end of file diff --git a/examples/error-scene/README.md b/examples/error-scene/README.md new file mode 100644 index 00000000..18e0cecd --- /dev/null +++ b/examples/error-scene/README.md @@ -0,0 +1,4 @@ +# Error Scene +Add a catchall error scene in case an unknown scene is specified. + +![text](./example.PNG) \ No newline at end of file diff --git a/examples/fallback-font/README.md b/examples/fallback-font/README.md new file mode 100644 index 00000000..3524c96d --- /dev/null +++ b/examples/fallback-font/README.md @@ -0,0 +1,4 @@ +# Fallback Fonts +For when a user might not have a font installed. + +![text](./example.PNG) \ No newline at end of file diff --git a/examples/flappy-bird/README.md b/examples/flappy-bird/README.md new file mode 100644 index 00000000..f837af86 --- /dev/null +++ b/examples/flappy-bird/README.md @@ -0,0 +1,4 @@ +# Flappy Bird +A simple implementation of Flappy Bird + +![text](./example.PNG) \ No newline at end of file diff --git a/examples/multi-window/README.md b/examples/multi-window/README.md new file mode 100644 index 00000000..b3b932f5 --- /dev/null +++ b/examples/multi-window/README.md @@ -0,0 +1,4 @@ +# Multi Window +An example of managing multiple windows. + +![text](./example.PNG) \ No newline at end of file From 7bf0edb9d2dee931413c206417e00c4acc1be711 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 9 Apr 2022 09:35:59 -0500 Subject: [PATCH 090/146] oak: provide package documentation comments to subpackages --- alg/range/doc.go | 2 ++ audio/format/doc.go | 2 ++ audio/pcm/interface.go | 1 + audio/play.go | 1 + debugtools/inputviz/mouse.go | 1 + doc_test.go | 20 -------------------- entities/doc.go | 2 +- entities/x/btn/btn.go | 1 + entities/x/btn/grid/grid.go | 1 + entities/x/doc.go | 2 ++ shake/shake.go | 1 + shiny/doc.go | 2 ++ shiny/driver/androiddriver/screen.go | 1 + shiny/driver/jsdriver/screen.go | 1 + 14 files changed, 17 insertions(+), 21 deletions(-) create mode 100644 alg/range/doc.go create mode 100644 audio/format/doc.go delete mode 100644 doc_test.go create mode 100644 entities/x/doc.go create mode 100644 shiny/doc.go diff --git a/alg/range/doc.go b/alg/range/doc.go new file mode 100644 index 00000000..4e789fe0 --- /dev/null +++ b/alg/range/doc.go @@ -0,0 +1,2 @@ +// Package range provides helper constructs to represent ranges of values, to poll from or clamp to +package arange diff --git a/audio/format/doc.go b/audio/format/doc.go new file mode 100644 index 00000000..91df2189 --- /dev/null +++ b/audio/format/doc.go @@ -0,0 +1,2 @@ +// Package format provides audio file and format parsers +package format diff --git a/audio/pcm/interface.go b/audio/pcm/interface.go index 31aedcc9..e5fcf3ae 100644 --- a/audio/pcm/interface.go +++ b/audio/pcm/interface.go @@ -1,3 +1,4 @@ +// Package pcm provides a interface for interacting with PCM audio streams package pcm import "io" diff --git a/audio/play.go b/audio/play.go index d38f4e11..6b80c641 100644 --- a/audio/play.go +++ b/audio/play.go @@ -1,3 +1,4 @@ +// Package audio provides utilities for playing or writing audio streams to OS consumers package audio import ( diff --git a/debugtools/inputviz/mouse.go b/debugtools/inputviz/mouse.go index fbaceb88..350c4ebf 100644 --- a/debugtools/inputviz/mouse.go +++ b/debugtools/inputviz/mouse.go @@ -1,3 +1,4 @@ +// Package inputviz provides components that enable visualization of user input (e.g. mouse, keyboard) for debugging package inputviz import ( diff --git a/doc_test.go b/doc_test.go deleted file mode 100644 index 4e03e9af..00000000 --- a/doc_test.go +++ /dev/null @@ -1,20 +0,0 @@ -package oak - -import ( - "image/color" - - "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" -) - -// Use oak to display a scene with a single movable character -func Example() { - AddScene("basicScene", scene.Scene{Start: func(*scene.Context) { - char := entities.NewMoving(100, 100, 16, 32, - render.NewColorBox(16, 32, color.RGBA{255, 0, 0, 255}), - nil, 0, 0) - render.Draw(char.R) - }}) - Init("basicScene") -} diff --git a/entities/doc.go b/entities/doc.go index a56f92df..23d6bc46 100644 --- a/entities/doc.go +++ b/entities/doc.go @@ -1,2 +1,2 @@ -// Package entities stores common, useful object and entity combinations. +// Package entities provides common entity constructor functions package entities diff --git a/entities/x/btn/btn.go b/entities/x/btn/btn.go index 85a8fbcb..460214d6 100644 --- a/entities/x/btn/btn.go +++ b/entities/x/btn/btn.go @@ -1,3 +1,4 @@ +// Package btn provides constructors for UI buttons package btn import ( diff --git a/entities/x/btn/grid/grid.go b/entities/x/btn/grid/grid.go index fdf7cba0..30248fd8 100644 --- a/entities/x/btn/grid/grid.go +++ b/entities/x/btn/grid/grid.go @@ -1,3 +1,4 @@ +// Package grid provides structures for aligning grids of buttons package grid import "github.com/oakmound/oak/v3/entities/x/btn" diff --git a/entities/x/doc.go b/entities/x/doc.go new file mode 100644 index 00000000..530e9daf --- /dev/null +++ b/entities/x/doc.go @@ -0,0 +1,2 @@ +// Package x provides experimental utilities +package x diff --git a/shake/shake.go b/shake/shake.go index e05d3adb..9dad016c 100644 --- a/shake/shake.go +++ b/shake/shake.go @@ -1,3 +1,4 @@ +// Package shake provides methods for rapidly shifting graphical components' positions package shake import ( diff --git a/shiny/doc.go b/shiny/doc.go new file mode 100644 index 00000000..9f0d5f99 --- /dev/null +++ b/shiny/doc.go @@ -0,0 +1,2 @@ +// Package shiny provides interfaces and drivers for instantiating and managing application windows +package shiny diff --git a/shiny/driver/androiddriver/screen.go b/shiny/driver/androiddriver/screen.go index 2e80dc5d..c14175a0 100644 --- a/shiny/driver/androiddriver/screen.go +++ b/shiny/driver/androiddriver/screen.go @@ -1,6 +1,7 @@ //go:build android // +build android +// Package androiddriver provides a Android driver for accessing a screen. package androiddriver import ( diff --git a/shiny/driver/jsdriver/screen.go b/shiny/driver/jsdriver/screen.go index 1b8b379c..ba082f56 100644 --- a/shiny/driver/jsdriver/screen.go +++ b/shiny/driver/jsdriver/screen.go @@ -1,6 +1,7 @@ //go:build js // +build js +// Package jsdriver provides a WASM/JS driver for accessing a screen. package jsdriver import ( From 392dfd9c469b211b70fef03aaebb0d3e71c79209 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 9 Apr 2022 09:38:37 -0500 Subject: [PATCH 091/146] audio/synth: improve accuracy of pitch rounding --- audio/synth/pitch.go | 30 ++++++++++++++++++++++++------ examples/piano/main.go | 17 ++++++++++++++++- 2 files changed, 40 insertions(+), 7 deletions(-) diff --git a/audio/synth/pitch.go b/audio/synth/pitch.go index bd027b9e..7fecbb17 100644 --- a/audio/synth/pitch.go +++ b/audio/synth/pitch.go @@ -606,7 +606,8 @@ type PitchDetector struct { format pcm.Format // Will be 0 if unknown - DetectedPitch Pitch + DetectedPitch Pitch + DetectedRawPitch float64 // Channel defines which audio channel (0 for mono, 0-1 for stereo) should // be analyzed. ReadPCM will panic if this value is invalid. If this scares you, @@ -650,14 +651,15 @@ func (pd *PitchDetector) ReadPCM(b []byte) (n int, err error) { pd.crossedZero = true } else { // assuming this is pitched audio (if it isn't we can't give a correct answer), - // pd.index is now half of the number of samples before the last time this audio - // stream crossed zero. The last time this audio stream crossed zero defines how + // pd.index is now the number of samples since the last time this audio + // stream crossed zero. The second last time this audio stream crossed zero defines how // frequently this audio is cycling-- the speed the audio cycles at defines the pitch // of the audio in hertz; our pitch constants above are also defined in hertz. periodLength := pd.index * 2 samplesPerSecond := pd.format.SampleRate periodHz := 1 / (float64(periodLength) / float64(samplesPerSecond)) - pd.DetectedPitch = HertzToPitch(periodHz) + pd.DetectedRawPitch = periodHz + pd.DetectedPitch = Pitch(periodHz).Round() } pd.index = 0 } @@ -667,9 +669,25 @@ func (pd *PitchDetector) ReadPCM(b []byte) (n int, err error) { return } -func HertzToPitch(hz float64) Pitch { - i := sort.Search(len(allPitches), func(i int) bool { +// Round rounds a pitch value to the closest predefined pitch value in hertz: +// func main() { +// hz := synth.Pitch(1024) +// hz2 := hz.Round() +// fmt.Println(hz2, int(hz2))) // "C6", 1047 +// } +// +func (hz Pitch) Round() Pitch { + // binary search + i := sort.Search(len(allPitches)-1, func(i int) bool { return Pitch(hz) < allPitches[i] }) + // adjust for near matches + // we know hz < allPitches[i] + if i == 0 { + return allPitches[i] + } + if hz-allPitches[i-1] < allPitches[i]-hz { + return allPitches[i-1] + } return allPitches[i] } diff --git a/examples/piano/main.go b/examples/piano/main.go index 62860e22..f45d0c55 100644 --- a/examples/piano/main.go +++ b/examples/piano/main.go @@ -7,6 +7,7 @@ import ( "image/draw" "math" "os" + "strconv" "sync" "time" @@ -180,7 +181,18 @@ func (pt *pitchText) String() string { if pt.pitch == nil { return "" } - return pt.pitch.String() + return pt.pitch.String() + " - " + strconv.Itoa(int(*pt.pitch)) +} + +type f64Text struct { + f64 *float64 +} + +func (ft *f64Text) String() string { + if ft.f64 == nil { + return "" + } + return fmt.Sprint(*ft.f64) } func main() { @@ -200,6 +212,7 @@ func main() { Bits: 32, } pt := &pitchText{} + ft := &f64Text{} playWithMonitor := func(gctx context.Context, r pcm.Reader) { speaker, err := audio.NewWriter(r.PCMFormat()) if err != nil { @@ -212,6 +225,7 @@ func main() { pitchDetector := synth.NewPitchDetector(r) pt.pitch = &pitchDetector.DetectedPitch + ft.f64 = &pitchDetector.DetectedRawPitch audio.Play(gctx, pitchDetector, func(po *audio.PlayOptions) { po.Destination = monitor @@ -225,6 +239,7 @@ func main() { playWithMonitor(gctx, fadeIn) } render.Draw(render.NewStringerText(pt, 10, 10)) + render.Draw(render.NewStringerText(ft, 10, 20)) pitch := synth.C3 kc := keyColorWhite From 2a7423613303c6dabb2ec3030efec43c422872b4 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 9 Apr 2022 09:39:21 -0500 Subject: [PATCH 092/146] shiny: remove gesture, SendFirst --- shiny/driver/internal/event/event.go | 9 - shiny/gesture/gesture.go | 326 ------------------- shiny/screen/event.go | 6 +- shiny/screen/{screen_test.go => utf_test.go} | 0 4 files changed, 1 insertion(+), 340 deletions(-) delete mode 100644 shiny/gesture/gesture.go rename shiny/screen/{screen_test.go => utf_test.go} (100%) diff --git a/shiny/driver/internal/event/event.go b/shiny/driver/internal/event/event.go index 8573730b..85fcbedd 100644 --- a/shiny/driver/internal/event/event.go +++ b/shiny/driver/internal/event/event.go @@ -57,12 +57,3 @@ func (q *Deque) Send(event interface{}) { q.back = append(q.back, event) q.cond.Signal() } - -// SendFirst implements the screen.EventDeque interface. -func (q *Deque) SendFirst(event interface{}) { - q.lockAndInit() - defer q.mu.Unlock() - - q.front = append(q.front, event) - q.cond.Signal() -} diff --git a/shiny/gesture/gesture.go b/shiny/gesture/gesture.go deleted file mode 100644 index fb441d73..00000000 --- a/shiny/gesture/gesture.go +++ /dev/null @@ -1,326 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package gesture provides gesture events such as long presses and drags. -// These are higher level than underlying mouse and touch events. -package gesture - -import ( - "fmt" - "time" - - "github.com/oakmound/oak/v3/shiny/screen" - "golang.org/x/mobile/event/mouse" -) - -// TODO: handle touch events, not just mouse events. -// -// TODO: multi-button / multi-touch gestures such as pinch, rotate and tilt? - -const ( - // TODO: use a resolution-independent unit such as DIPs or Millimetres? - dragThreshold = 10 // Pixels. - - doublePressThreshold = 300 * time.Millisecond - longPressThreshold = 500 * time.Millisecond -) - -// Type describes the type of a touch event. -type Type uint8 - -const ( - // TypeStart and TypeEnd are the start and end of a gesture. A gesture - // spans multiple events. - TypeStart Type = 0 - TypeEnd Type = 1 - - // TypeIsXxx is when the gesture is recognized as a long press, double - // press or drag. For example, a mouse button press won't generate a - // TypeIsLongPress immediately, but if a threshold duration passes without - // the corresponding mouse button release, a TypeIsLongPress event is sent. - // - // Once a TypeIsXxx event is sent, the corresponding Event.Xxx bool field - // is set for this and subsequent events. For example, a TypeTap event by - // itself doesn't say whether or not it is a single tap or the first tap of - // a double tap. If the app needs to distinguish these two sorts of taps, - // it can wait until a TypeEnd or TypeIsDoublePress event is seen. If a - // TypeEnd is seen before TypeIsDoublePress, or equivalently, if the - // TypeEnd event's DoublePress field is false, the gesture is a single tap. - // - // These attributes aren't exclusive. A long press drag is perfectly valid. - // - // The uncommon "double press" instead of "double tap" terminology is - // because, in this package, taps are associated with button releases, not - // button presses. Note also that "double" really means "at least two". - TypeIsLongPress Type = 10 - TypeIsDoublePress Type = 11 - TypeIsDrag Type = 12 - - // TypeTap and TypeDrag are tap and drag events. - // - // For 'flinging' drags, to simulate inertia, look to the Velocity field of - // the TypeEnd event. - // - // TODO: implement velocity. - TypeTap Type = 20 - TypeDrag Type = 21 - - // All internal types are >= typeInternal. - typeInternal Type = 100 - - // The typeXxxSchedule and typeXxxResolve constants are used for the two - // step process for sending an event after a timeout, in a separate - // goroutine. There are two steps so that the spawned goroutine is - // guaranteed to execute only after any other EventDeque.SendFirst calls - // are made for the one underlying mouse or touch event. - - typeDoublePressSchedule Type = 100 - typeDoublePressResolve Type = 101 - - typeLongPressSchedule Type = 110 - typeLongPressResolve Type = 111 -) - -func (t Type) String() string { - switch t { - case TypeStart: - return "Start" - case TypeEnd: - return "End" - case TypeIsLongPress: - return "IsLongPress" - case TypeIsDoublePress: - return "IsDoublePress" - case TypeIsDrag: - return "IsDrag" - case TypeTap: - return "Tap" - case TypeDrag: - return "Drag" - default: - return fmt.Sprintf("gesture.Type(%d)", t) - } -} - -// Point is a mouse or touch location, in pixels. -type Point struct { - X, Y float32 -} - -// Event is a gesture event. -type Event struct { - // Type is the gesture type. - Type Type - - // Drag, LongPress and DoublePress are set when the gesture is recognized as - // a drag, etc. - // - // Note that these status fields can be lost during a gesture's events over - // time: LongPress can be set for the first press of a double press, but - // unset on the second press. - Drag bool - LongPress bool - DoublePress bool - - // InitialPos is the initial position of the button press or touch that - // started this gesture. - InitialPos Point - - // CurrentPos is the current position of the button or touch event. - CurrentPos Point - - // TODO: a "Velocity Point" field. See - // - frameworks/native/libs/input/VelocityTracker.cpp in AOSP, or - // - https://chromium.googlesource.com/chromium/src/+/master/ui/events/gesture_detection/velocity_tracker.cc in Chromium, - // for some velocity tracking implementations. - - // Time is the event's time. - Time time.Time - - // TODO: include the mouse Button and key Modifiers? -} - -type internalEvent struct { - eventFilter *EventFilter - - typ Type - x, y float32 - - // pressCounter is the EventFilter.pressCounter value at the time this - // internal event was scheduled to be delivered after a timeout. It detects - // whether there have been other button presses and releases during that - // timeout, and hence whether this internalEvent is obsolete. - pressCounter uint32 -} - -// EventFilter generates gesture events from lower level mouse and touch -// events. -type EventFilter struct { - EventDeque screen.EventDeque - - inProgress bool - drag bool - longPress bool - doublePress bool - - // initialPos is the initial position of the button press or touch that - // started this gesture. - initialPos Point - - // pressButton is the initial button that started this gesture. If - // button.None, no gesture is in progress. - pressButton mouse.Button - - // pressCounter is incremented on every button press and release. - pressCounter uint32 -} - -func (f *EventFilter) sendFirst(t Type, x, y float32, now time.Time) { - if t >= typeInternal { - f.EventDeque.SendFirst(internalEvent{ - eventFilter: f, - typ: t, - x: x, - y: y, - pressCounter: f.pressCounter, - }) - return - } - f.EventDeque.SendFirst(Event{ - Type: t, - Drag: f.drag, - LongPress: f.longPress, - DoublePress: f.doublePress, - InitialPos: f.initialPos, - CurrentPos: Point{ - X: x, - Y: y, - }, - // TODO: Velocity. - Time: now, - }) -} - -func (f *EventFilter) sendAfter(e internalEvent, sleep time.Duration) { - time.Sleep(sleep) - f.EventDeque.SendFirst(e) -} - -func (f *EventFilter) end(x, y float32, now time.Time) { - f.sendFirst(TypeEnd, x, y, now) - f.inProgress = false - f.drag = false - f.longPress = false - f.doublePress = false - f.initialPos = Point{} - f.pressButton = mouse.ButtonNone -} - -// Filter filters the event. It can return e, a different event, or nil to -// consume the event. It can also trigger side effects such as pushing new -// events onto its EventDeque. -func (f *EventFilter) Filter(e interface{}) interface{} { - switch e := e.(type) { - case internalEvent: - if e.eventFilter != f { - break - } - - now := time.Now() - - switch e.typ { - case typeDoublePressSchedule: - e.typ = typeDoublePressResolve - go f.sendAfter(e, doublePressThreshold) - - case typeDoublePressResolve: - if e.pressCounter == f.pressCounter { - // It's a single press only. - f.end(e.x, e.y, now) - } - - case typeLongPressSchedule: - e.typ = typeLongPressResolve - go f.sendAfter(e, longPressThreshold) - - case typeLongPressResolve: - if e.pressCounter == f.pressCounter && !f.drag { - f.longPress = true - f.sendFirst(TypeIsLongPress, e.x, e.y, now) - } - } - return nil - - case mouse.Event: - now := time.Now() - - switch e.Direction { - case mouse.DirNone: - if f.pressButton == mouse.ButtonNone { - break - } - startDrag := false - if !f.drag && - (abs(e.X-f.initialPos.X) > dragThreshold || abs(e.Y-f.initialPos.Y) > dragThreshold) { - f.drag = true - startDrag = true - } - if f.drag { - f.sendFirst(TypeDrag, e.X, e.Y, now) - } - if startDrag { - f.sendFirst(TypeIsDrag, e.X, e.Y, now) - } - - case mouse.DirPress: - if f.pressButton != mouse.ButtonNone { - break - } - - oldInProgress := f.inProgress - oldDoublePress := f.doublePress - - f.drag = false - f.longPress = false - f.doublePress = f.inProgress - f.initialPos = Point{e.X, e.Y} - f.pressButton = e.Button - f.pressCounter++ - - f.inProgress = true - - f.sendFirst(typeLongPressSchedule, e.X, e.Y, now) - if !oldDoublePress && f.doublePress { - f.sendFirst(TypeIsDoublePress, e.X, e.Y, now) - } - if !oldInProgress { - f.sendFirst(TypeStart, e.X, e.Y, now) - } - - case mouse.DirRelease: - if f.pressButton != e.Button { - break - } - f.pressButton = mouse.ButtonNone - f.pressCounter++ - - if f.drag { - f.end(e.X, e.Y, now) - break - } - f.sendFirst(typeDoublePressSchedule, e.X, e.Y, now) - f.sendFirst(TypeTap, e.X, e.Y, now) - } - } - return e -} - -func abs(x float32) float32 { - if x < 0 { - return -x - } else if x == 0 { - return 0 // Handle floating point negative zero. - } - return x -} diff --git a/shiny/screen/event.go b/shiny/screen/event.go index 76d944fb..ef44685d 100644 --- a/shiny/screen/event.go +++ b/shiny/screen/event.go @@ -6,10 +6,6 @@ type EventDeque interface { // NextEvent in FIFO order. Send(event interface{}) - // SendFirst adds an event to the start of the deque. They are returned by - // NextEvent in LIFO order, and have priority over events sent via Send. - SendFirst(event interface{}) - // NextEvent returns the next event in the deque. It blocks until such an // event has been sent. // @@ -21,6 +17,6 @@ type EventDeque interface { // - mouse.Event // - touch.Event // from the golang.org/x/mobile/event/... packages. Other packages may send - // events, of those types above or of other types, via Send or SendFirst. + // events, of those types above or of other types, via Send. NextEvent() interface{} } diff --git a/shiny/screen/screen_test.go b/shiny/screen/utf_test.go similarity index 100% rename from shiny/screen/screen_test.go rename to shiny/screen/utf_test.go From 1261fd360431fac6b095e86b11b3e70cb564ead6 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 9 Apr 2022 09:48:32 -0500 Subject: [PATCH 093/146] go mod tidy --- examples/clipboard/go.mod | 4 ++-- examples/clipboard/go.sum | 4 ++-- examples/fallback-font/go.mod | 2 +- examples/fallback-font/go.sum | 4 ++-- examples/svg/go.mod | 2 +- examples/svg/go.sum | 4 ++-- go.mod | 2 +- go.sum | 17 ++--------------- 8 files changed, 13 insertions(+), 26 deletions(-) diff --git a/examples/clipboard/go.mod b/examples/clipboard/go.mod index 07481493..8aa951b5 100644 --- a/examples/clipboard/go.mod +++ b/examples/clipboard/go.mod @@ -5,7 +5,6 @@ go 1.18 require ( github.com/atotto/clipboard v0.1.4 github.com/oakmound/oak/v3 v3.0.0-alpha.1 - golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 ) require ( @@ -20,8 +19,9 @@ require ( github.com/oakmound/libudev v0.2.1 // indirect github.com/oakmound/w32 v2.1.0+incompatible // indirect github.com/oov/directsound-go v0.0.0-20141101201356-e53e59c700bf // indirect - golang.org/x/exp/shiny v0.0.0-20220328175248-053ad81199eb // indirect + golang.org/x/exp/shiny v0.0.0-20220407100705-7b9b53b0aca4 // indirect golang.org/x/image v0.0.0-20220321031419-a8550c1d254a // indirect + golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 // indirect golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect golang.org/x/sys v0.0.0-20220403205710-6acee93ad0eb // indirect ) diff --git a/examples/clipboard/go.sum b/examples/clipboard/go.sum index 86cc0507..5a212221 100644 --- a/examples/clipboard/go.sum +++ b/examples/clipboard/go.sum @@ -31,8 +31,8 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= -golang.org/x/exp/shiny v0.0.0-20220328175248-053ad81199eb h1:YIOQ8kg0z9XVF6z94NZocplll/YTlWBUNO8psuhfTYU= -golang.org/x/exp/shiny v0.0.0-20220328175248-053ad81199eb/go.mod h1:NtXcNtv5Wu0zUbBl574y/D5MMZvnQnV3sgjZxbs64Jo= +golang.org/x/exp/shiny v0.0.0-20220407100705-7b9b53b0aca4 h1:ywNGLBFk8tKaiu+GYZeoXWzrFoJ/a1LHYKy1lb3R9cM= +golang.org/x/exp/shiny v0.0.0-20220407100705-7b9b53b0aca4/go.mod h1:VjAR7z0ngyATZTELrBSkxOOHhhlnVUxDye4mcjx5h/8= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20220321031419-a8550c1d254a h1:LnH9RNcpPv5Kzi15lXg42lYMPUf0x8CuPv1YnvBWZAg= diff --git a/examples/fallback-font/go.mod b/examples/fallback-font/go.mod index 093a2e54..1494e286 100644 --- a/examples/fallback-font/go.mod +++ b/examples/fallback-font/go.mod @@ -19,7 +19,7 @@ require ( github.com/oakmound/libudev v0.2.1 // indirect github.com/oakmound/w32 v2.1.0+incompatible // indirect github.com/oov/directsound-go v0.0.0-20141101201356-e53e59c700bf // indirect - golang.org/x/exp/shiny v0.0.0-20220328175248-053ad81199eb // indirect + golang.org/x/exp/shiny v0.0.0-20220407100705-7b9b53b0aca4 // indirect golang.org/x/image v0.0.0-20220321031419-a8550c1d254a // indirect golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 // indirect golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect diff --git a/examples/fallback-font/go.sum b/examples/fallback-font/go.sum index 40a7beb4..2e0baca0 100644 --- a/examples/fallback-font/go.sum +++ b/examples/fallback-font/go.sum @@ -31,8 +31,8 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= -golang.org/x/exp/shiny v0.0.0-20220328175248-053ad81199eb h1:YIOQ8kg0z9XVF6z94NZocplll/YTlWBUNO8psuhfTYU= -golang.org/x/exp/shiny v0.0.0-20220328175248-053ad81199eb/go.mod h1:NtXcNtv5Wu0zUbBl574y/D5MMZvnQnV3sgjZxbs64Jo= +golang.org/x/exp/shiny v0.0.0-20220407100705-7b9b53b0aca4 h1:ywNGLBFk8tKaiu+GYZeoXWzrFoJ/a1LHYKy1lb3R9cM= +golang.org/x/exp/shiny v0.0.0-20220407100705-7b9b53b0aca4/go.mod h1:VjAR7z0ngyATZTELrBSkxOOHhhlnVUxDye4mcjx5h/8= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20220321031419-a8550c1d254a h1:LnH9RNcpPv5Kzi15lXg42lYMPUf0x8CuPv1YnvBWZAg= diff --git a/examples/svg/go.mod b/examples/svg/go.mod index 5418cb06..119d0686 100644 --- a/examples/svg/go.mod +++ b/examples/svg/go.mod @@ -20,7 +20,7 @@ require ( github.com/oakmound/libudev v0.2.1 // indirect github.com/oakmound/w32 v2.1.0+incompatible // indirect github.com/oov/directsound-go v0.0.0-20141101201356-e53e59c700bf // indirect - golang.org/x/exp/shiny v0.0.0-20220328175248-053ad81199eb // indirect + golang.org/x/exp/shiny v0.0.0-20220407100705-7b9b53b0aca4 // indirect golang.org/x/image v0.0.0-20220321031419-a8550c1d254a // indirect golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 // indirect golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d // indirect diff --git a/examples/svg/go.sum b/examples/svg/go.sum index 00800265..987e79b7 100644 --- a/examples/svg/go.sum +++ b/examples/svg/go.sum @@ -33,8 +33,8 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= -golang.org/x/exp/shiny v0.0.0-20220328175248-053ad81199eb h1:YIOQ8kg0z9XVF6z94NZocplll/YTlWBUNO8psuhfTYU= -golang.org/x/exp/shiny v0.0.0-20220328175248-053ad81199eb/go.mod h1:NtXcNtv5Wu0zUbBl574y/D5MMZvnQnV3sgjZxbs64Jo= +golang.org/x/exp/shiny v0.0.0-20220407100705-7b9b53b0aca4 h1:ywNGLBFk8tKaiu+GYZeoXWzrFoJ/a1LHYKy1lb3R9cM= +golang.org/x/exp/shiny v0.0.0-20220407100705-7b9b53b0aca4/go.mod h1:VjAR7z0ngyATZTELrBSkxOOHhhlnVUxDye4mcjx5h/8= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20220321031419-a8550c1d254a h1:LnH9RNcpPv5Kzi15lXg42lYMPUf0x8CuPv1YnvBWZAg= diff --git a/go.mod b/go.mod index 62f7f857..3cbf9b85 100644 --- a/go.mod +++ b/go.mod @@ -24,5 +24,5 @@ require ( require ( github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d // indirect - golang.org/x/exp v0.0.0-20220328175248-053ad81199eb // indirect + golang.org/x/exp/shiny v0.0.0-20220407100705-7b9b53b0aca4 // indirect ) diff --git a/go.sum b/go.sum index f6a56ac7..d79d3828 100644 --- a/go.sum +++ b/go.sum @@ -5,22 +5,16 @@ github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc h1:7D+Bh06CRPCJO3gr github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 h1:O/r2Sj+8QcMF7V5IcmiE2sMFV2q3J47BEirxbXJAdzA= github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046/go.mod h1:uw9h2sd4WWHOPdJ13MQpwK5qYWKYDumDqxWWIknEQ+k= -github.com/disintegration/gift v1.2.0 h1:VMQeei2F+ZtsHjMgP6Sdt1kFjRhs2lGz8ljEOPeIR50= -github.com/disintegration/gift v1.2.0/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI= github.com/disintegration/gift v1.2.1 h1:Y005a1X4Z7Uc+0gLpSAsKhWi4qLtsdEcMIbbdvdZ6pc= github.com/disintegration/gift v1.2.1/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI= github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d h1:HB5J9+f1xpkYLgWQ/RqEcbp3SEufyOIMYLoyKNKiG7E= github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d/go.mod h1:CHkHWWZ4kbGY6jEy1+qlitDaCtRgNvCOQdakj/1Yl/Q= github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1 h1:wl/ggSfTHqAy46hyzw1IlrUYwjqmXYvbJyPdH3rT7YE= github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1/go.mod h1:frG94byMNy+1CgGrQ25dZ+17tf98EN+OYBQL4Zh612M= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb h1:T6gaWBvRzJjuOrdCtg8fXXjKai2xSDqWTcKFUPuw8Tw= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958 h1:TL70PMkdPCt9cRhKTqsm+giRpgrd0IGEj763nNr2VFY= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= -github.com/hajimehoshi/go-mp3 v0.3.1 h1:pn/SKU1+/rfK8KaZXdGEC2G/KCB2aLRjbTCrwKcokao= -github.com/hajimehoshi/go-mp3 v0.3.1/go.mod h1:qMJj/CSDxx6CGHiZeCgbiq2DSUkbK0UbtXShQcnfyMM= github.com/hajimehoshi/go-mp3 v0.3.2 h1:xSYNE2F3lxtOu9BRjCWHHceg7S91IHfXfXp5+LYQI7s= github.com/hajimehoshi/go-mp3 v0.3.2/go.mod h1:qMJj/CSDxx6CGHiZeCgbiq2DSUkbK0UbtXShQcnfyMM= github.com/hajimehoshi/oto v0.6.1/go.mod h1:0QXGEkbuJRohbJaxr7ZQSxnju7hEhseiPx2hrh6raOI= @@ -39,20 +33,15 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56 h1:estk1glOnSVeJ9tdEZZc5mAMDZk5lNJNyJ6DvrBkTEU= golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= -golang.org/x/exp v0.0.0-20220328175248-053ad81199eb h1:pC9Okm6BVmxEw76PUu0XUbOTQ92JX11hfvqTjAV3qxM= -golang.org/x/exp v0.0.0-20220328175248-053ad81199eb/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= +golang.org/x/exp/shiny v0.0.0-20220407100705-7b9b53b0aca4 h1:ywNGLBFk8tKaiu+GYZeoXWzrFoJ/a1LHYKy1lb3R9cM= +golang.org/x/exp/shiny v0.0.0-20220407100705-7b9b53b0aca4/go.mod h1:VjAR7z0ngyATZTELrBSkxOOHhhlnVUxDye4mcjx5h/8= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20201208152932-35266b937fa6 h1:nfeHNc1nAqecKCy2FCy4HY+soOOe5sDLJ/gZLbx6GYI= -golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20220321031419-a8550c1d254a h1:LnH9RNcpPv5Kzi15lXg42lYMPUf0x8CuPv1YnvBWZAg= golang.org/x/image v0.0.0-20220321031419-a8550c1d254a/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190415191353-3e0bab5405d6/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mobile v0.0.0-20220112015953-858099ff7816 h1:jhDgkcu3yQ4tasBZ+1YwDmK7eFmuVf1w1k+NGGGxfmE= -golang.org/x/mobile v0.0.0-20220112015953-858099ff7816/go.mod h1:pe2sM7Uk+2Su1y7u/6Z8KJ24D7lepUjFZbhFOrmDfuQ= golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 h1:ZDL7hDvJEQEcHVkoZawKmRUgbqn1pOIzb8EinBh5csU= golang.org/x/mobile v0.0.0-20220325161704-447654d348e3/go.mod h1:pe2sM7Uk+2Su1y7u/6Z8KJ24D7lepUjFZbhFOrmDfuQ= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= @@ -71,8 +60,6 @@ golang.org/x/sys v0.0.0-20190429190828-d89cdac9e872/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220111092808-5a964db01320 h1:0jf+tOCoZ3LyutmCOWpVni1chK4VfFLhRsDK7MhqGRY= -golang.org/x/sys v0.0.0-20220111092808-5a964db01320/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220403205710-6acee93ad0eb h1:PVGECzEo9Y3uOidtkHGdd347NjLtITfJFO9BxFpmRoo= golang.org/x/sys v0.0.0-20220403205710-6acee93ad0eb/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= From 6a524d345490fc29d8937d79aaae58152186901d Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 9 Apr 2022 09:49:18 -0500 Subject: [PATCH 094/146] examples/clipboard: remove mobile key import --- examples/clipboard/main.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/examples/clipboard/main.go b/examples/clipboard/main.go index af38afb5..ddc3e91c 100644 --- a/examples/clipboard/main.go +++ b/examples/clipboard/main.go @@ -11,7 +11,6 @@ import ( "github.com/oakmound/oak/v3/mouse" "github.com/oakmound/oak/v3/render" "github.com/oakmound/oak/v3/scene" - gokey "golang.org/x/mobile/event/key" ) func main() { @@ -54,7 +53,7 @@ func newClipboardPaster(placeholder string, x, y float64) { btn.FitText(20), btn.Binding(key.Down(key.V), func(b btn.Btn, kv key.Event) event.Response { - if kv.Modifiers&gokey.ModControl == gokey.ModControl { + if kv.Modifiers&key.ModControl == key.ModControl { got, err := clipboard.ReadAll() if err != nil { fmt.Println(err) From 2844e450b2a45ea222eea1adcfa1f2d5ca44ab6f Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 9 Apr 2022 10:04:59 -0500 Subject: [PATCH 095/146] oak: support nested examples in test_examples.sh --- test_examples.sh | 3 ++- tidy_all.sh | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 tidy_all.sh diff --git a/test_examples.sh b/test_examples.sh index 8d3bce7a..636211a5 100755 --- a/test_examples.sh +++ b/test_examples.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash examples=$(find ./examples | grep main.go$) +root=$(pwd) for ex in $examples do echo $ex @@ -12,5 +13,5 @@ do if [ $retVal -ne 124 ]; then exit 1 fi - cd ../.. + cd $root done \ No newline at end of file diff --git a/tidy_all.sh b/tidy_all.sh new file mode 100644 index 00000000..2623915d --- /dev/null +++ b/tidy_all.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +go mod tidy + +cd examples/fallback-font +go mod tidy + +cd ../clipboard +go mod tidy + +cd ../svg +go mod tidy \ No newline at end of file From e45e1f09cbfb2530a4a0c15c6f595a1b945f7887 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 9 Apr 2022 10:57:52 -0500 Subject: [PATCH 096/146] entities/x/btn: rewrite to use entities.Entity internally This strips out a lot of functionality with the thought being this functionality would need to be rewritten anyway. --- entities/entity.go | 24 ++-- entities/opts_gen.go | 3 +- entities/x/btn/box.go | 62 ---------- entities/x/btn/btn.go | 19 ---- entities/x/btn/button.go | 227 +++++++------------------------------ entities/x/btn/group.go | 20 ---- entities/x/btn/option.go | 51 +-------- entities/x/btn/revert.go | 19 ---- entities/x/btn/text.go | 30 ----- entities/x/btn/textBox.go | 84 -------------- examples/clipboard/main.go | 22 ++-- 11 files changed, 74 insertions(+), 487 deletions(-) delete mode 100644 entities/x/btn/box.go delete mode 100644 entities/x/btn/btn.go delete mode 100644 entities/x/btn/group.go delete mode 100644 entities/x/btn/revert.go delete mode 100644 entities/x/btn/text.go delete mode 100644 entities/x/btn/textBox.go diff --git a/entities/entity.go b/entities/entity.go index 68349ae7..c6646524 100644 --- a/entities/entity.go +++ b/entities/entity.go @@ -33,7 +33,7 @@ type Generator struct { UseMouseTree bool WithoutCollision bool - Children []Generator + Children [][]Option } func And(opts ...Option) Option { @@ -47,11 +47,7 @@ func And(opts ...Option) Option { func WithChild(opts ...Option) Option { return func(s Generator) Generator { - g2 := defaultGenerator - for _, o := range opts { - g2 = o(g2) - } - s.Children = append(s.Children, g2) + s.Children = append(s.Children, opts) return s } } @@ -64,6 +60,13 @@ func WithRect(v floatgeom.Rect2) Option { } } +func WithOffset(p floatgeom.Point2) Option { + return func(g Generator) Generator { + g.Position = g.Position.Add(p) + return g + } +} + var defaultGenerator = Generator{ Dimensions: floatgeom.Point2{1, 1}, DrawLayers: []int{0}, @@ -87,7 +90,7 @@ type Entity struct { metadata map[string]string - Attached []*Entity + Children []*Entity } func (e Entity) CID() event.CallerID { @@ -207,6 +210,12 @@ func New(ctx *scene.Context, opts ...Option) *Entity { g = o(g) } + children := make([]*Entity, len(g.Children)) + for i, childOpts := range g.Children { + childOpts = append(childOpts, WithOffset(g.Position)) + children[i] = New(ctx, childOpts...) + } + e := &Entity{ ctx: ctx, Rect: floatgeom.NewRect2WH( @@ -217,6 +226,7 @@ func New(ctx *scene.Context, opts ...Option) *Entity { ), Renderable: g.Renderable, Speed: g.Speed, + Children: children, } if g.Renderable == nil && g.Color != nil { diff --git a/entities/opts_gen.go b/entities/opts_gen.go index 288ae580..1be9efbf 100644 --- a/entities/opts_gen.go +++ b/entities/opts_gen.go @@ -98,9 +98,10 @@ func WithWithoutCollision(v bool) Option { } } -func WithChildren(v []Generator) Option { +func WithChildren(v [][]Option) Option { return func(s Generator) Generator { s.Children = v return s } } + \ No newline at end of file diff --git a/entities/x/btn/box.go b/entities/x/btn/box.go deleted file mode 100644 index b5a3606b..00000000 --- a/entities/x/btn/box.go +++ /dev/null @@ -1,62 +0,0 @@ -package btn - -import ( - "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/mouse" - "github.com/oakmound/oak/v3/render" -) - -// Box is a basic implementation of btn -type Box struct { - entities.Solid - mouse.CollisionPhase - metadata map[string]string -} - -func (b Box) CID() event.CallerID { - return b.Solid.CID() -} - -// NewBox creates a new Box -func NewBox(cid event.CallerID, x, y, w, h float64, r render.Renderable, layers ...int) *Box { - b := Box{} - if cid == 0 { - // TODO: not default - cid = event.DefaultCallerMap.Register(b) - } - b.Solid = *entities.NewSolid(x, y, w, h, r, mouse.DefaultTree, cid) - if b.R != nil && len(layers) > 0 { - render.Draw(b.R, layers...) - } - b.metadata = make(map[string]string) - return &b -} - -// GetRenderable returns the box's renderable -func (b *Box) GetRenderable() render.Renderable { - return b.R -} - -// SetMetadata sets the metadata for some key to some value. Empty value strings -// will not be stored. -func (b *Box) SetMetadata(k, v string) { - if v == "" { - delete(b.metadata, k) - } else { - b.metadata[k] = v - } -} - -// Metadata accesses the value, and whether it existed, for a given metadata key -func (b *Box) Metadata(k string) (v string, ok bool) { - v, ok = b.metadata[k] - return v, ok -} - -func (b *Box) Destroy() { - // TODO: not default - event.DefaultBus.UnbindAllFrom(b.CallerID) - b.R.Undraw() - mouse.Remove(b.GetSpace()) -} diff --git a/entities/x/btn/btn.go b/entities/x/btn/btn.go deleted file mode 100644 index 460214d6..00000000 --- a/entities/x/btn/btn.go +++ /dev/null @@ -1,19 +0,0 @@ -// Package btn provides constructors for UI buttons -package btn - -import ( - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/render" -) - -// Btn defines a button for use in the UI -type Btn interface { - event.Caller - render.Positional - GetRenderable() render.Renderable - GetSpace() *collision.Space - SetMetadata(string, string) - Metadata(string) (string, bool) - Destroy() -} diff --git a/entities/x/btn/button.go b/entities/x/btn/button.go index 00407564..460aa762 100644 --- a/entities/x/btn/button.go +++ b/entities/x/btn/button.go @@ -3,14 +3,15 @@ package btn import ( "fmt" "image/color" - "strconv" + "github.com/oakmound/oak/v3/alg/floatgeom" "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/dlog" + "github.com/oakmound/oak/v3/entities" "github.com/oakmound/oak/v3/event" "github.com/oakmound/oak/v3/mouse" "github.com/oakmound/oak/v3/render" "github.com/oakmound/oak/v3/render/mod" + "github.com/oakmound/oak/v3/scene" "github.com/oakmound/oak/v3/shape" ) @@ -34,12 +35,8 @@ type Generator struct { TextPtr *string TextStringer fmt.Stringer Children []Generator - Bindings []func(caller Btn) event.Binding + Bindings []func(ctx *scene.Context, caller *entities.Entity) event.Binding Trigger string - Toggle *bool - ListChoice *int - Group *Group - AllowRevert bool Shape shape.Shape Label collision.Label } @@ -60,63 +57,18 @@ func defGenerator() Generator { R1: nil, R2: nil, - Children: []Generator{}, - Cid: 0, - Font: nil, - Layers: []int{0}, - Text: "Button", - Trigger: "MouseClickOn", - - Toggle: nil, + Font: nil, + Layers: []int{0}, + Text: "", + Trigger: "MouseClickOn", } } // Generate creates a Button from a generator. -func (g Generator) Generate() Btn { - return g.generate(nil) -} - -func (g Generator) generate(parent *Generator) Btn { +func (g Generator) Generate(ctx *scene.Context) *entities.Entity { var box render.Modifiable // handle different renderable options that could be passed to the generator switch { - case g.Toggle != nil: - //Handles checks and other toggle situations - start := "on" - if !(*g.Toggle) { - start = "off" - } - if _, ok := g.R1.(*render.Reverting); !ok { - g.R1 = render.NewReverting(g.R1) - } - if _, ok := g.R2.(*render.Reverting); !ok { - g.R2 = render.NewReverting(g.R2) - } - box = render.NewSwitch(start, map[string]render.Modifiable{ - "on": g.R1, - "off": g.R2, - }) - g.Bindings = append(g.Bindings, func(caller Btn) event.Binding { - // TODO not default - return event.Bind(event.DefaultBus, mouse.ClickOn, caller, toggleFxn(g)) - }) - case g.ListChoice != nil: - - start := "list" + strconv.Itoa(*g.ListChoice) - mp := make(map[string]render.Modifiable) - for i, r := range g.RS { - if _, ok := r.(*render.Reverting); !ok { - r = render.NewReverting(r) - } - mp["list"+strconv.Itoa(i)] = r - } - - box = render.NewSwitch(start, mp) - - g.Bindings = append(g.Bindings, func(caller Btn) event.Binding { - // TODO not default - return event.Bind(event.DefaultBus, mouse.ClickOn, caller, listFxn(g)) - }) case g.R != nil: box = g.R case g.ProgressFunc != nil: @@ -131,94 +83,48 @@ func (g Generator) generate(parent *Generator) Btn { } } - if g.AllowRevert { - box = render.NewReverting(box) + entOpts := []entities.Option{ + entities.WithRenderable(box), + entities.WithMod(g.Mod), + entities.WithRect(floatgeom.NewRect2WH(g.X, g.Y, g.W, g.H)), + entities.WithLabel(g.Label), + entities.WithDrawLayers(g.Layers), + entities.WithUseMouseTree(true), } - if g.Mod != nil { - box.Modify(g.Mod) - } font := g.Font if font == nil { font = render.DefaultFont() } - var btn Btn + childLayers := make([]int, len(g.Layers)) + copy(childLayers, g.Layers) + if len(childLayers) != 0 { + childLayers[len(childLayers)-1]++ + } if g.Text != "" { - txtbx := NewTextBox(g.Cid, g.X, g.Y, g.W, g.H, g.TxtX, g.TxtY, font, box, g.Layers...) - txtbx.SetString(g.Text) - txtbx.Space.Label = g.Label - btn = txtbx + entOpts = append(entOpts, entities.WithChild( + entities.WithRenderable(font.NewText(g.Text, g.TxtX, g.TxtY)), + entities.WithDrawLayers(childLayers), + )) } else if g.TextPtr != nil { - txtbx := NewTextBox(g.Cid, g.X, g.Y, g.W, g.H, g.TxtX, g.TxtY, font, box, g.Layers...) - txtbx.SetStringPtr(g.TextPtr) - txtbx.Space.Label = g.Label - btn = txtbx + entOpts = append(entOpts, entities.WithChild( + entities.WithRenderable(font.NewStrPtrText(g.TextPtr, g.TxtX, g.TxtY)), + entities.WithDrawLayers(childLayers), + )) } else if g.TextStringer != nil { - txtbx := NewTextBox(g.Cid, g.X, g.Y, g.W, g.H, g.TxtX, g.TxtY, font, box, g.Layers...) - txtbx.SetStringer(g.TextStringer) - txtbx.Space.Label = g.Label - btn = txtbx - } else { - bx := NewBox(g.Cid, g.X, g.Y, g.W, g.H, box, g.Layers...) - bx.Space.Label = g.Label - btn = bx + entOpts = append(entOpts, entities.WithChild( + entities.WithRenderable(font.NewStringerText(g.TextStringer, g.TxtX, g.TxtY)), + entities.WithDrawLayers(childLayers), + )) } - // TODO: this is impossible with how we've done generics - - // Update underlying mousecollision binding to only respect clicks in the shape. - // If a finer control is needed then it may make sense to use this as a starting off point - // instead of expanding this section. - // if g.Shape != nil { - // // extract keys prior to loop as the map will be permuted by the following operations - // keys := make([]string, 0, len(g.Bindings)) - // for k := range g.Bindings { - // // We only really care about mouse events. - // // In some ways this is dangerous of an implementer has defined events that start with mouse... - // // but in that case they might not use g.Shape anyways. - // if !strings.HasPrefix(k, "Mouse") { - // continue - // } - // keys = append(keys, k) - // } - // for _, k := range keys { - // curBind := g.Bindings[k] - // if curBind == nil { - // continue - // } - // // This could cause issues with name collisions but its unlikely and documentation should help make it even more unlikely. - // filteredK := "Filtered" + k - // g.Bindings[filteredK] = g.Bindings[k] - // g.Bindings[k] = []event.Bindable{ - // func(id event.CallerID, button interface{}) int { - // btn := id.E().(Btn) - // mEvent, ok := button.(*mouse.Event) - // // If the passed event is not a mouse event dont filter on location. - // // Main current use case is for nil events passed via simulated clicks. - // if !ok { - // btn.Trigger(filteredK, button) - // } - // bSpace := btn.GetSpace().Bounds() - // if g.Shape.In(int(mEvent.X()-bSpace.Min.X()), int(mEvent.Y()-bSpace.Min.Y()), int(bSpace.W()), int(bSpace.H())) { - // btn.Trigger(filteredK, mEvent) - // } - // return 0 - // }, - // } - // } - // } + btn := entities.New(ctx, entOpts...) for _, binding := range g.Bindings { - binding(btn) + binding(ctx, btn) } - // TODO: not default - err := mouse.PhaseCollision(btn.GetSpace(), event.DefaultBus) - dlog.ErrorCheck(err) - - if g.Group != nil { - g.Group.members = append(g.Group.members, btn) - } + mouse.PhaseCollision(btn.Space, ctx.Handler) return btn } @@ -227,7 +133,7 @@ func (g Generator) generate(parent *Generator) Btn { type Option func(Generator) Generator // New creates a button with the given options and defaults for all variables not set. -func New(opts ...Option) Btn { +func New(ctx *scene.Context, opts ...Option) *entities.Entity { g := defGenerator() for _, opt := range opts { if opt == nil { @@ -235,62 +141,5 @@ func New(opts ...Option) Btn { } g = opt(g) } - return g.Generate() -} - -type switcher interface { - Get() string - Set(string) error -} - -// toggleFxn sets up the mouseclick binding for toggle buttons created for goreport cyclo decrease -func toggleFxn(g Generator) func(btn Btn, payload *mouse.Event) event.Response { - return func(btn Btn, payload *mouse.Event) event.Response { - if btn.GetRenderable().(switcher).Get() == "on" { - if g.Group != nil && g.Group.active == btn { - g.Group.active = nil - } - btn.GetRenderable().(switcher).Set("off") - } else { - // We can pull this out to separate binding if group != nil - if g.Group != nil { - g.Group.active = btn - for _, b := range g.Group.members { - if b.GetRenderable().(switcher).Get() == "on" { - event.TriggerForCallerOn(event.DefaultBus, b.CID(), mouse.ClickOn, payload) - } - } - } - btn.GetRenderable().(switcher).Set("on") - - } - *g.Toggle = !*g.Toggle - - return 0 - } -} - -// listFxn sets up the mouseclick binding for list buttons created for goreport cyclo reduction -func listFxn(g Generator) func(btn Btn, payload *mouse.Event) event.Response { - return func(btn Btn, payload *mouse.Event) event.Response { - i := *g.ListChoice - if payload.Button == mouse.ButtonLeft { - i++ - if i == len(g.RS) { - i = 0 - } - - } else if payload.Button == mouse.ButtonRight { - i-- - if i < 0 { - i += len(g.RS) - } - } - - btn.GetRenderable().(*render.Switch).Set("list" + strconv.Itoa(i)) - - *g.ListChoice = i - - return 0 - } + return g.Generate(ctx) } diff --git a/entities/x/btn/group.go b/entities/x/btn/group.go deleted file mode 100644 index e8bfcc24..00000000 --- a/entities/x/btn/group.go +++ /dev/null @@ -1,20 +0,0 @@ -package btn - -// Group links several btns together -type Group struct { - members []Btn - active Btn -} - -// GetActive returns the active btn from the group -func (g *Group) GetActive() Btn { - return g.active -} - -// ToggleGroup sets the group that this button is linked with -func ToggleGroup(gr *Group) Option { - return func(g Generator) Generator { - g.Group = gr - return g - } -} diff --git a/entities/x/btn/option.go b/entities/x/btn/option.go index 28e7ca87..4d846ad6 100644 --- a/entities/x/btn/option.go +++ b/entities/x/btn/option.go @@ -4,8 +4,9 @@ import ( "image/color" "github.com/oakmound/oak/v3/collision" + "github.com/oakmound/oak/v3/entities" "github.com/oakmound/oak/v3/mouse" - "github.com/oakmound/oak/v3/shape" + "github.com/oakmound/oak/v3/scene" "github.com/oakmound/oak/v3/event" "github.com/oakmound/oak/v3/render" @@ -127,63 +128,23 @@ func Renderable(r render.Modifiable) Option { } } -// Toggle sets that the type of the button toggles between two -// modifiables when it is clicked. The boolean behind isChecked -// is updated according to the state of the button. -// Todo: the copies here should be optional -func Toggle(r1, r2 render.Modifiable, isChecked *bool) Option { - return func(g Generator) Generator { - g.R1 = r1.Copy() - g.R2 = r2.Copy() - g.Toggle = isChecked - return g - } -} - -// ToggleList sets the togglable choices for a button -func ToggleList(chosen *int, rs ...render.Modifiable) Option { - return func(g Generator) Generator { - g.ListChoice = chosen - g.RS = rs - return g - } -} - // Binding appends a function to be called when a specific event // is triggered. -func Binding[Payload any](ev event.EventID[Payload], bnd event.Bindable[Btn, Payload]) Option { +func Binding[Payload any](ev event.EventID[Payload], bnd event.Bindable[*entities.Entity, Payload]) Option { return func(g Generator) Generator { - g.Bindings = append(g.Bindings, func(caller Btn) event.Binding { + g.Bindings = append(g.Bindings, func(ctx *scene.Context, caller *entities.Entity) event.Binding { // TODO: not default - return event.Bind(event.DefaultBus, ev, caller, bnd) + return event.Bind(ctx, ev, caller, bnd) }) return g } } // Click appends a function to be called when the button is clicked on. -func Click(bnd event.Bindable[Btn, *mouse.Event]) Option { +func Click(bnd event.Bindable[*entities.Entity, *mouse.Event]) Option { return Binding(mouse.ClickOn, bnd) } -// AllowRevert wraps a button in a Reverting renderable, enabling phase changes -// through modifications and reversion -func AllowRevert() Option { - return func(g Generator) Generator { - g.AllowRevert = true - return g - } -} - -// Shape sets the underlying mouse collision to only be respected if in shape. -// If color is responsible for arendering then it will be formed to this shape as well. -func Shape(s shape.Shape) Option { - return func(g Generator) Generator { - g.Shape = s - return g - } -} - func Label(l collision.Label) Option { return func(g Generator) Generator { g.Label = l diff --git a/entities/x/btn/revert.go b/entities/x/btn/revert.go deleted file mode 100644 index 23ff7540..00000000 --- a/entities/x/btn/revert.go +++ /dev/null @@ -1,19 +0,0 @@ -package btn - -import "errors" - -type reverting interface { - Revert(n int) -} - -// Revert will check that the given button's renderable -// can have modifications reverted, then revert the last -// n modifications. -func Revert(b Btn, n int) error { - r, ok := b.GetRenderable().(reverting) - if !ok { - return errors.New("Button's renderable does not implement revert functionality") - } - r.Revert(n) - return nil -} diff --git a/entities/x/btn/text.go b/entities/x/btn/text.go deleted file mode 100644 index c882eff9..00000000 --- a/entities/x/btn/text.go +++ /dev/null @@ -1,30 +0,0 @@ -package btn - -import ( - "fmt" - - "github.com/oakmound/oak/v3/entities" - - "github.com/oakmound/oak/v3/render" -) - -// NewText creates some uitext -func NewText(f *render.Font, str string, x, y float64, layers ...int) *entities.Doodad { - d := entities.NewDoodad(x, y, f.NewText(str, x, y), 0) - render.Draw(d.R, layers...) - return d -} - -// NewIntText creates some uitext from an integer -func NewIntText(f *render.Font, str *int, x, y float64, layers ...int) *entities.Doodad { - d := entities.NewDoodad(x, y, f.NewIntText(str, x, y), 0) - render.Draw(d.R, layers...) - return d -} - -// NewRawText creates some uitext from a stringer -func NewRawText(f *render.Font, str fmt.Stringer, x, y float64, layers ...int) *entities.Doodad { - d := entities.NewDoodad(x, y, f.NewStringerText(str, x, y), 0) - render.Draw(d.R, layers...) - return d -} diff --git a/entities/x/btn/textBox.go b/entities/x/btn/textBox.go deleted file mode 100644 index 68ac4a5e..00000000 --- a/entities/x/btn/textBox.go +++ /dev/null @@ -1,84 +0,0 @@ -package btn - -import ( - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/mouse" - "github.com/oakmound/oak/v3/render" -) - -// TextBox is a Box with an associated text element -type TextBox struct { - Box - *render.Text -} - -// NewTextBox creates a textbox -func NewTextBox(cid event.CallerID, x, y, w, h, txtX, txtY float64, - f *render.Font, r render.Renderable, layers ...int) *TextBox { - - if f == nil { - f = render.DefaultFont() - } - - b := new(TextBox) - if cid == 0 { - cid = event.DefaultCallerMap.Register(b) - } - b.Box = *NewBox(cid, x, y, w, h, r, layers...) - b.Text = f.NewText("Init", 0, 0) - b.Text.Attach(b.Box.Vector, txtX, txtY) - - // We dont want to modify the input's layers but we do want the text to show up on top of the base renderable. - txtLayers := make([]int, len(layers)) - copy(txtLayers, layers) - txtLayers[len(txtLayers)-1]++ - render.Draw(b.Text, txtLayers...) - return b -} - -// Y pulls the y of the composed Box (disambiguation with the y of the text component) -func (b *TextBox) Y() float64 { - return b.Box.Y() -} - -// X pulls the x of the composed Box (disambiguation with the x of the text component) -func (b *TextBox) X() float64 { - return b.Box.X() -} - -// ShiftX shifts the box by x. The associated text is attached and so will be moved along by default -func (b *TextBox) ShiftX(x float64) { - b.Box.ShiftX(x) -} - -// ShiftY shifts the box by y. The associated text is attached and so will be moved along by default -func (b *TextBox) ShiftY(y float64) { - b.Box.ShiftY(y) -} - -// SetSpace overwrites entities.Solid, -// pointing this button to use the mouse collision Rtree -// instead of the entity collision space. -func (b *TextBox) SetSpace(sp *collision.Space) { - mouse.Remove(b.Space) - b.Space = sp - mouse.Add(b.Space) -} - -// SetPos acts as SetSpace does, overwriting entities.Solid. -func (b *TextBox) SetPos(x, y float64) { - b.Box.SetPos(x, y) -} - -// SetOffsets changes the text position within the box -func (b *TextBox) SetOffsets(txtX, txtY float64) { - b.Text.Attach(b.Box.Vector, txtX, -txtY+b.H) -} - -func (b *TextBox) Destroy() { - if b.Text != nil { - b.Text.Undraw() - } - b.Box.Destroy() -} diff --git a/examples/clipboard/main.go b/examples/clipboard/main.go index ddc3e91c..fbd31d67 100644 --- a/examples/clipboard/main.go +++ b/examples/clipboard/main.go @@ -5,6 +5,7 @@ import ( "github.com/atotto/clipboard" "github.com/oakmound/oak/v3" + "github.com/oakmound/oak/v3/entities" "github.com/oakmound/oak/v3/entities/x/btn" "github.com/oakmound/oak/v3/event" "github.com/oakmound/oak/v3/key" @@ -16,22 +17,22 @@ import ( func main() { oak.AddScene("clipboard-test", scene.Scene{ Start: func(ctx *scene.Context) { - newClipboardCopyText("click-me-to-copy", 20, 20) - newClipboardCopyText("click-to-copy-me-too", 20, 50) - newClipboardPaster("click-or-ctrl+v-to-paste-here", 20, 200) + newClipboardCopyText(ctx, "click-me-to-copy", 20, 20) + newClipboardCopyText(ctx, "click-to-copy-me-too", 20, 50) + newClipboardPaster(ctx, "click-or-ctrl+v-to-paste-here", 20, 200) }, }) oak.Init("clipboard-test") } -func newClipboardCopyText(text string, x, y float64) { - btn.New( +func newClipboardCopyText(ctx *scene.Context, text string, x, y float64) { + btn.New(ctx, btn.Font(render.DefaultFont()), btn.Text(text), btn.Pos(x, y), btn.Height(20), btn.FitText(20), - btn.Click(func(b btn.Btn, me *mouse.Event) event.Response { + btn.Click(func(b *entities.Entity, me *mouse.Event) event.Response { err := clipboard.WriteAll(text) if err != nil { fmt.Println(err) @@ -41,18 +42,17 @@ func newClipboardCopyText(text string, x, y float64) { ) } -func newClipboardPaster(placeholder string, x, y float64) { +func newClipboardPaster(ctx *scene.Context, placeholder string, x, y float64) { textPtr := new(string) *textPtr = placeholder - btn.New( + btn.New(ctx, btn.Font(render.DefaultFont()), btn.TextPtr(textPtr), btn.Pos(x, y), btn.Height(20), btn.FitText(20), - btn.Binding(key.Down(key.V), func(b btn.Btn, kv key.Event) event.Response { - + btn.Binding(key.Down(key.V), func(b *entities.Entity, kv key.Event) event.Response { if kv.Modifiers&key.ModControl == key.ModControl { got, err := clipboard.ReadAll() if err != nil { @@ -63,7 +63,7 @@ func newClipboardPaster(placeholder string, x, y float64) { } return 0 }), - btn.Click(func(b btn.Btn, me *mouse.Event) event.Response { + btn.Click(func(b *entities.Entity, me *mouse.Event) event.Response { got, err := clipboard.ReadAll() if err != nil { fmt.Println(err) From fc0af5c35b9603734e71384fe5acfbefe909cfea Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 9 Apr 2022 10:59:15 -0500 Subject: [PATCH 097/146] examples/clipboard: go mod tidy --- examples/clipboard/go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/clipboard/go.mod b/examples/clipboard/go.mod index c455723b..7d67ba9f 100644 --- a/examples/clipboard/go.mod +++ b/examples/clipboard/go.mod @@ -5,7 +5,6 @@ go 1.18 require ( github.com/atotto/clipboard v0.1.4 github.com/oakmound/oak/v3 v3.0.0-alpha.1 - golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 ) require ( @@ -30,6 +29,7 @@ require ( github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1 // indirect github.com/jfreymuth/pulse v0.1.0 // indirect golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56 // indirect + golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 // indirect ) replace github.com/oakmound/oak/v3 => ../.. From eeb19dcb92449446a1d4ea640365886ceb3e9c3b Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 9 Apr 2022 11:35:01 -0500 Subject: [PATCH 098/146] window: move viewport manipulation methods to App --- window/window.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/window/window.go b/window/window.go index 09728144..a27fe188 100644 --- a/window/window.go +++ b/window/window.go @@ -20,9 +20,6 @@ type Window interface { SetIcon(image.Image) error MoveWindow(x, y, w, h int) error HideCursor() error - - ShiftScreen(int, int) - SetScreen(int, int) } // App is an interface of methods available to all oak programs. @@ -32,6 +29,9 @@ type App interface { Viewport() intgeom.Point2 SetViewportBounds(intgeom.Rect2) + ShiftScreen(int, int) + SetScreen(int, int) + NextScene() GoToScene(string) From db982743608fbeb991179c22815ef7a986d2f75e Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 9 Apr 2022 11:54:28 -0500 Subject: [PATCH 099/146] audio: fix comments --- audio/play.go | 2 +- audio/synth/waves.go | 8 -------- examples/piano/main.go | 2 -- 3 files changed, 1 insertion(+), 11 deletions(-) diff --git a/audio/play.go b/audio/play.go index d38f4e11..f24c52a4 100644 --- a/audio/play.go +++ b/audio/play.go @@ -38,7 +38,7 @@ type PlayOptions struct { // The span of data that should be copied from reader to writer // at a time. If too low, may lose accuracy on windows. If too high, // may require manual resets when changing audio sources. - // Defaults to 125 Milliseconds. + // Defaults to 50 Milliseconds. CopyIncrement time.Duration // How many increments should make up the time between our read and write // cursors-- i.e. the audio will be playing at X and we will be writing to diff --git a/audio/synth/waves.go b/audio/synth/waves.go index 8cce79fc..d5a40790 100644 --- a/audio/synth/waves.go +++ b/audio/synth/waves.go @@ -8,14 +8,6 @@ import ( "github.com/oakmound/oak/v3/audio/pcm" ) -// TODO: for super saw -// De tune -// Fine tune -// Voice unison -// Pitch up -// High pass filter -// Noise generator - // Wave functions take a set of options and return an audio type Wave func(opts ...Option) pcm.Reader diff --git a/examples/piano/main.go b/examples/piano/main.go index 78474b1a..59a1a5b8 100644 --- a/examples/piano/main.go +++ b/examples/piano/main.go @@ -249,8 +249,6 @@ func main() { go playWithMonitor(gctx, audio.FadeIn(100*time.Millisecond, audio.LoopReader(src.Saw(synth.AtPitch(pitch), synth.Detune(-.05))))) } playWithMonitor(gctx, audio.FadeIn(100*time.Millisecond, audio.LoopReader(src.Saw(synth.AtPitch(pitch))))) - - //playWithMonitor(gctx, audio.FadeIn(100*time.Millisecond, audio.LoopReader(src.Noise()))) }, key.T: func(gctx context.Context, pitch synth.Pitch) { toPlay := audio.LoopReader(src.Triangle(synth.AtPitch(pitch))) From 6228748215302a43c90286cbad17ea5b5441e091 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 9 Apr 2022 12:09:24 -0500 Subject: [PATCH 100/146] examples/clipboard: go mod tidy --- examples/clipboard/go.mod | 24 +++--------------------- go.sum | 20 ++++++++++---------- 2 files changed, 13 insertions(+), 31 deletions(-) diff --git a/examples/clipboard/go.mod b/examples/clipboard/go.mod index 2addad4d..906cc143 100644 --- a/examples/clipboard/go.mod +++ b/examples/clipboard/go.mod @@ -5,25 +5,7 @@ go 1.18 require ( github.com/atotto/clipboard v0.1.4 github.com/oakmound/oak/v3 v3.0.0-alpha.1 -) - -require ( - dmitri.shuralyov.com/gpu/mtl v0.0.0-20201218220906-28db891af037 // indirect - github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc // indirect - github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 // indirect - github.com/disintegration/gift v1.2.1 // indirect - github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958 // indirect - github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect - github.com/hajimehoshi/go-mp3 v0.3.2 // indirect - github.com/oakmound/alsa v0.0.2 // indirect - github.com/oakmound/libudev v0.2.1 // indirect - github.com/oakmound/w32 v2.1.0+incompatible // indirect - github.com/oov/directsound-go v0.0.0-20141101201356-e53e59c700bf // indirect - golang.org/x/exp/shiny v0.0.0-20220407100705-7b9b53b0aca4 // indirect - golang.org/x/image v0.0.0-20220321031419-a8550c1d254a // indirect - golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 // indirect - golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect - golang.org/x/sys v0.0.0-20220403205710-6acee93ad0eb // indirect + golang.org/x/mobile v0.0.0-20220112015953-858099ff7816 ) require ( @@ -41,10 +23,10 @@ require ( github.com/oakmound/libudev v0.2.1 // indirect github.com/oakmound/w32 v2.1.0+incompatible // indirect github.com/oov/directsound-go v0.0.0-20141101201356-e53e59c700bf // indirect - golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56 // indirect + golang.org/x/exp/shiny v0.0.0-20220407100705-7b9b53b0aca4 // indirect golang.org/x/image v0.0.0-20201208152932-35266b937fa6 // indirect golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect - golang.org/x/sys v0.0.0-20220111092808-5a964db01320 // indirect + golang.org/x/sys v0.0.0-20220403205710-6acee93ad0eb // indirect ) replace github.com/oakmound/oak/v3 => ../.. diff --git a/go.sum b/go.sum index d79d3828..7f2a996f 100644 --- a/go.sum +++ b/go.sum @@ -5,18 +5,18 @@ github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc h1:7D+Bh06CRPCJO3gr github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 h1:O/r2Sj+8QcMF7V5IcmiE2sMFV2q3J47BEirxbXJAdzA= github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046/go.mod h1:uw9h2sd4WWHOPdJ13MQpwK5qYWKYDumDqxWWIknEQ+k= -github.com/disintegration/gift v1.2.1 h1:Y005a1X4Z7Uc+0gLpSAsKhWi4qLtsdEcMIbbdvdZ6pc= -github.com/disintegration/gift v1.2.1/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI= +github.com/disintegration/gift v1.2.0 h1:VMQeei2F+ZtsHjMgP6Sdt1kFjRhs2lGz8ljEOPeIR50= +github.com/disintegration/gift v1.2.0/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI= github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d h1:HB5J9+f1xpkYLgWQ/RqEcbp3SEufyOIMYLoyKNKiG7E= github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d/go.mod h1:CHkHWWZ4kbGY6jEy1+qlitDaCtRgNvCOQdakj/1Yl/Q= github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1 h1:wl/ggSfTHqAy46hyzw1IlrUYwjqmXYvbJyPdH3rT7YE= github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1/go.mod h1:frG94byMNy+1CgGrQ25dZ+17tf98EN+OYBQL4Zh612M= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958 h1:TL70PMkdPCt9cRhKTqsm+giRpgrd0IGEj763nNr2VFY= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb h1:T6gaWBvRzJjuOrdCtg8fXXjKai2xSDqWTcKFUPuw8Tw= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= -github.com/hajimehoshi/go-mp3 v0.3.2 h1:xSYNE2F3lxtOu9BRjCWHHceg7S91IHfXfXp5+LYQI7s= -github.com/hajimehoshi/go-mp3 v0.3.2/go.mod h1:qMJj/CSDxx6CGHiZeCgbiq2DSUkbK0UbtXShQcnfyMM= +github.com/hajimehoshi/go-mp3 v0.3.1 h1:pn/SKU1+/rfK8KaZXdGEC2G/KCB2aLRjbTCrwKcokao= +github.com/hajimehoshi/go-mp3 v0.3.1/go.mod h1:qMJj/CSDxx6CGHiZeCgbiq2DSUkbK0UbtXShQcnfyMM= github.com/hajimehoshi/oto v0.6.1/go.mod h1:0QXGEkbuJRohbJaxr7ZQSxnju7hEhseiPx2hrh6raOI= github.com/jfreymuth/pulse v0.1.0 h1:KN38/9hoF9PJvP5DpEVhMRKNuwnJUonc8c9ARorRXUA= github.com/jfreymuth/pulse v0.1.0/go.mod h1:cpYspI6YljhkUf1WLXLLDmeaaPFc3CnGLjDZf9dZ4no= @@ -38,12 +38,12 @@ golang.org/x/exp/shiny v0.0.0-20220407100705-7b9b53b0aca4 h1:ywNGLBFk8tKaiu+GYZe golang.org/x/exp/shiny v0.0.0-20220407100705-7b9b53b0aca4/go.mod h1:VjAR7z0ngyATZTELrBSkxOOHhhlnVUxDye4mcjx5h/8= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20220321031419-a8550c1d254a h1:LnH9RNcpPv5Kzi15lXg42lYMPUf0x8CuPv1YnvBWZAg= -golang.org/x/image v0.0.0-20220321031419-a8550c1d254a/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20201208152932-35266b937fa6 h1:nfeHNc1nAqecKCy2FCy4HY+soOOe5sDLJ/gZLbx6GYI= +golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190415191353-3e0bab5405d6/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 h1:ZDL7hDvJEQEcHVkoZawKmRUgbqn1pOIzb8EinBh5csU= -golang.org/x/mobile v0.0.0-20220325161704-447654d348e3/go.mod h1:pe2sM7Uk+2Su1y7u/6Z8KJ24D7lepUjFZbhFOrmDfuQ= +golang.org/x/mobile v0.0.0-20220112015953-858099ff7816 h1:jhDgkcu3yQ4tasBZ+1YwDmK7eFmuVf1w1k+NGGGxfmE= +golang.org/x/mobile v0.0.0-20220112015953-858099ff7816/go.mod h1:pe2sM7Uk+2Su1y7u/6Z8KJ24D7lepUjFZbhFOrmDfuQ= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= From 1521a42c2f183d7e257ce7e74ce90339c84c955a Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sun, 10 Apr 2022 06:24:57 -0500 Subject: [PATCH 101/146] entities/x/btn/grid: follow new entities API --- entities/x/btn/grid/grid.go | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/entities/x/btn/grid/grid.go b/entities/x/btn/grid/grid.go index 30248fd8..87cefc28 100644 --- a/entities/x/btn/grid/grid.go +++ b/entities/x/btn/grid/grid.go @@ -1,10 +1,14 @@ // Package grid provides structures for aligning grids of buttons package grid -import "github.com/oakmound/oak/v3/entities/x/btn" +import ( + "github.com/oakmound/oak/v3/entities" + "github.com/oakmound/oak/v3/entities/x/btn" + "github.com/oakmound/oak/v3/scene" +) -// A Grid is a 2D slice of buttons -type Grid [][]btn.Btn +// A Grid is a 2D slice of entities +type Grid [][]*entities.Entity // A Generator defines the variables used to create grids from optional arguments type Generator struct { @@ -29,12 +33,12 @@ var ( ) // Generate creates a Grid from a Generator -func (g *Generator) Generate() Grid { - grid := make([][]btn.Btn, len(g.Content)) +func (g *Generator) Generate(ctx *scene.Context) Grid { + grid := make([][]*entities.Entity, len(g.Content)) for x := 0; x < len(g.Content); x++ { - grid[x] = make([]btn.Btn, len(g.Content[x])) + grid[x] = make([]*entities.Entity, len(g.Content[x])) for y := 0; y < len(g.Content[x]); y++ { - grid[x][y] = btn.New( + grid[x][y] = btn.New(ctx, g.Defaults, g.Content[x][y], btn.Offset(float64(x)*g.XGap, float64(y)*g.YGap), @@ -45,7 +49,7 @@ func (g *Generator) Generate() Grid { } // New creates a grid of buttons from a set of options -func New(opts ...Option) Grid { +func New(ctx *scene.Context, opts ...Option) Grid { g := defaultGenerator for _, opt := range opts { if opt == nil { @@ -53,5 +57,5 @@ func New(opts ...Option) Grid { } g = opt(g) } - return g.Generate() + return g.Generate(ctx) } From 21c44874c08d8b64e3169e75b0e7f1cbb7f7026e Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sun, 10 Apr 2022 06:25:32 -0500 Subject: [PATCH 102/146] examples/collision-demo: integrate screen shake into single example --- entities/entity.go | 6 + examples/collision-demo/main.go | 72 +++++--- .../shake-extension-demo/README.md | 9 - .../shake-extension-demo/main.go | 159 ------------------ 4 files changed, 51 insertions(+), 195 deletions(-) delete mode 100644 examples/collision-demo/shake-extension-demo/README.md delete mode 100644 examples/collision-demo/shake-extension-demo/main.go diff --git a/entities/entity.go b/entities/entity.go index c6646524..f6e4f60d 100644 --- a/entities/entity.go +++ b/entities/entity.go @@ -178,6 +178,12 @@ func (e *Entity) SetPos(p floatgeom.Point2) { } } +// TODO: take a point, not floats +func (e *Entity) ShiftPos(x, y float64) { + p := e.Rect.Min + e.SetPos(p.Add(floatgeom.Point2{x, y})) +} + func (e *Entity) HitLabel(label collision.Label) *collision.Space { return e.Tree.HitLabel(e.Space, label) } diff --git a/examples/collision-demo/main.go b/examples/collision-demo/main.go index 80a49339..809ea868 100644 --- a/examples/collision-demo/main.go +++ b/examples/collision-demo/main.go @@ -2,6 +2,7 @@ package main import ( "image/color" + "time" "github.com/oakmound/oak/v3" "github.com/oakmound/oak/v3/alg/floatgeom" @@ -11,6 +12,7 @@ import ( "github.com/oakmound/oak/v3/key" "github.com/oakmound/oak/v3/render" "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v3/shake" ) const ( @@ -21,6 +23,9 @@ const ( TEAL ) +// if true, shake the screen on certain collisions +var demoShake bool = true + func main() { oak.AddScene("demo", scene.Scene{Start: func(ctx *scene.Context) { act := &AttachCollisionTest{} @@ -54,6 +59,35 @@ func main() { collision.PhaseCollision(act.Space, ctx.CollisionTree) + commonOpts := entities.And( + entities.WithDrawLayers([]int{0, 0}), + entities.WithDimensions(floatgeom.Point2{320, 240}), + ) + + upLeft := entities.New(ctx, commonOpts, + entities.WithColor(color.RGBA{100, 0, 0, 100}), + entities.WithLabel(RED), + ) + + upRight := entities.New(ctx, commonOpts, + entities.WithPosition(floatgeom.Point2{320, 0}), + entities.WithColor(color.RGBA{0, 100, 0, 100}), + entities.WithLabel(GREEN), + ) + _ = upRight + + botLeft := entities.New(ctx, commonOpts, + entities.WithPosition(floatgeom.Point2{0, 240}), + entities.WithColor(color.RGBA{0, 0, 100, 100}), + entities.WithLabel(BLUE), + ) + + botRight := entities.New(ctx, commonOpts, + entities.WithPosition(floatgeom.Point2{320, 240}), + entities.WithColor(color.RGBA{0, 100, 100, 100}), + entities.WithLabel(TEAL), + ) + event.Bind(ctx, collision.Start, act, func(act *AttachCollisionTest, l collision.Label) event.Response { switch l { case RED: @@ -62,13 +96,24 @@ func main() { case GREEN: act.g += 125 act.UpdateR() + if demoShake { + shake.DefaultShaker.Shake(upLeft, time.Second) + shake.DefaultShaker.Shake(botLeft, time.Second) + shake.DefaultShaker.Shake(botRight, time.Second) + } case BLUE: act.b += 125 act.UpdateR() + if demoShake { + shake.DefaultShaker.Shake(act, time.Second*2) + } case TEAL: act.b += 125 act.g += 125 act.UpdateR() + if demoShake { + shake.DefaultShaker.ShakeScreen(ctx, time.Second) + } } return 0 }) @@ -91,33 +136,6 @@ func main() { return 0 }) - commonOpts := entities.And( - entities.WithDrawLayers([]int{0, 0}), - entities.WithDimensions(floatgeom.Point2{320, 240}), - ) - - entities.New(ctx, commonOpts, - entities.WithColor(color.RGBA{100, 0, 0, 100}), - entities.WithLabel(RED), - ) - - entities.New(ctx, commonOpts, - entities.WithPosition(floatgeom.Point2{320, 0}), - entities.WithColor(color.RGBA{0, 100, 0, 100}), - entities.WithLabel(GREEN), - ) - - entities.New(ctx, commonOpts, - entities.WithPosition(floatgeom.Point2{0, 240}), - entities.WithColor(color.RGBA{0, 0, 100, 100}), - entities.WithLabel(BLUE), - ) - - entities.New(ctx, commonOpts, - entities.WithPosition(floatgeom.Point2{320, 240}), - entities.WithColor(color.RGBA{0, 100, 100, 100}), - entities.WithLabel(TEAL), - ) }}) render.SetDrawStack( render.NewDynamicHeap(), diff --git a/examples/collision-demo/shake-extension-demo/README.md b/examples/collision-demo/shake-extension-demo/README.md deleted file mode 100644 index a2f2390b..00000000 --- a/examples/collision-demo/shake-extension-demo/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# Shaker Demo - -Extension of the collision demo to illustrate the default shaker. -In addition to changing color 3 of the sectors will show a different shaking paradigm. - - - -This demo probably wont stay as is for long as it is a thin wrapper on collision-demo. - diff --git a/examples/collision-demo/shake-extension-demo/main.go b/examples/collision-demo/shake-extension-demo/main.go deleted file mode 100644 index a9e2c614..00000000 --- a/examples/collision-demo/shake-extension-demo/main.go +++ /dev/null @@ -1,159 +0,0 @@ -package main - -import ( - "image/color" - "time" - - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" - "github.com/oakmound/oak/v3/shake" -) - -const ( - _ = iota - RED collision.Label = iota - GREEN - BLUE - TEAL -) - -func main() { - oak.AddScene("demo", scene.Scene{Start: func(ctx *scene.Context) { - act := &AttachCollisionTest{} - act.Solid = entities.NewSolid(50, 50, 50, 50, render.NewColorBox(50, 50, color.RGBA{0, 0, 0, 255}), nil, ctx.CallerMap.Register(act)) - - collision.Attach(act.Vector, act.Space, nil, 0, 0) - - event.Bind(ctx, event.Enter, act, func(act *AttachCollisionTest, ev event.EnterPayload) event.Response { - if act.ShouldUpdate { - act.ShouldUpdate = false - act.R.Undraw() - act.R = act.nextR - render.Draw(act.R, 0, 1) - } - if oak.IsDown(key.A) { - // We could use attachment here to not have to shift both - // R and act but that is made more difficult by constantly - // changing the act's R - act.ShiftX(-3) - act.R.ShiftX(-3) - } else if oak.IsDown(key.D) { - act.ShiftX(3) - act.R.ShiftX(3) - } - if oak.IsDown(key.W) { - act.ShiftY(-3) - act.R.ShiftY(-3) - } else if oak.IsDown(key.S) { - act.ShiftY(3) - act.R.ShiftY(3) - } - return 0 - }) - - render.Draw(act.R, 0, 1) - - collision.PhaseCollision(act.Space, nil) - - upleft := entities.NewSolid(0, 0, 320, 240, render.NewColorBox(320, 240, color.RGBA{100, 0, 0, 100}), nil, 0) - upleft.Space.UpdateLabel(RED) - upleft.R.SetLayer(0) - render.Draw(upleft.R, 0, 0) - - upright := entities.NewSolid(320, 0, 320, 240, render.NewColorBox(320, 240, color.RGBA{0, 100, 0, 100}), nil, 0) - upright.Space.UpdateLabel(GREEN) - upright.R.SetLayer(0) - render.Draw(upright.R, 0, 0) - - botleft := entities.NewSolid(0, 240, 320, 240, render.NewColorBox(320, 240, color.RGBA{0, 0, 100, 100}), nil, 0) - botleft.Space.UpdateLabel(BLUE) - botleft.R.SetLayer(0) - render.Draw(botleft.R, 0, 0) - - botright := entities.NewSolid(320, 240, 320, 240, render.NewColorBox(320, 240, color.RGBA{0, 100, 100, 100}), nil, 0) - botright.Space.UpdateLabel(TEAL) - botright.R.SetLayer(0) - render.Draw(botright.R, 0, 0) - - event.Bind(ctx, collision.Start, act, func(act *AttachCollisionTest, l collision.Label) event.Response { - switch l { - case RED: - act.r += 125 - act.UpdateR() - case GREEN: - act.g += 125 - act.UpdateR() - shake.DefaultShaker.Shake(upleft, time.Second) - shake.DefaultShaker.Shake(botleft, time.Second) - shake.DefaultShaker.Shake(botright, time.Second) - case BLUE: - act.b += 125 - act.UpdateR() - shake.DefaultShaker.Shake(act, time.Second*2) - case TEAL: - act.b += 125 - act.g += 125 - act.UpdateR() - shake.DefaultShaker.ShakeScreen(ctx, time.Second) - } - - return 0 - }) - event.Bind(ctx, collision.Stop, act, func(act *AttachCollisionTest, l collision.Label) event.Response { - switch l { - case RED: - act.r -= 125 - act.UpdateR() - case GREEN: - act.g -= 125 - act.UpdateR() - case BLUE: - act.b -= 125 - act.UpdateR() - case TEAL: - act.b -= 125 - act.g -= 125 - act.UpdateR() - } - - return 0 - }) - }}) - render.SetDrawStack( - render.NewDynamicHeap(), - ) - oak.Init("demo") -} - -type AttachCollisionTest struct { - *entities.Solid - // AttachSpace is a composable struct that allows - // spaces to be attached to vectors - collision.AttachSpace - // Phase is a composable struct that enables the call - // collision.CollisionPhase on this struct's space, - // which will start sending signals when that space - // starts and stops touching given labels - collision.Phase - r, g, b int - ShouldUpdate bool - nextR render.Renderable -} - -// CID returns the event.CallerID so that this can be bound to. -func (act *AttachCollisionTest) CID() event.CallerID { - return act.CallerID -} - -// UpdateR with the rgb set on the act. -func (act *AttachCollisionTest) UpdateR() { - act.nextR = render.NewColorBox(50, 50, color.RGBA{uint8(act.r), uint8(act.g), uint8(act.b), 255}) - act.nextR.SetPos(act.X(), act.Y()) - act.nextR.SetLayer(1) - act.ShouldUpdate = true -} From 50a9b61cc63fbe337a086f097368a115bbbd41bd Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sun, 10 Apr 2022 06:45:24 -0500 Subject: [PATCH 103/146] ,github/workflows: add linux and windows example runners --- .github/workflows/go.yml | 46 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index a7d1071f..3b433872 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -1,8 +1,29 @@ name: Go on: [push] jobs: - test-arm: - name: Test (arm) + test-windows-x64: + name: Test (windows amd64) + runs-on: [self-hosted, windows, x64] + steps: + + - name: Set up Go 1.18 + uses: actions/setup-go@v1 + with: + go-version: 1.18 + id: go + + - name: Check out code into the Go module directory + uses: actions/checkout@v1 + + - name: Get dependencies + run: | + go get -v -t -d ./... + + - name: Test + run: ./test_examples.sh + + test-linux-arm: + name: Test (linux arm) runs-on: [self-hosted, linux, ARM64] steps: @@ -22,6 +43,27 @@ jobs: - name: Test run: ./test_examples.sh + test-linux-x64: + name: Test (linux x64) + runs-on: [self-hosted, linux, x64] + steps: + + - name: Set up Go 1.18 + uses: actions/setup-go@v1 + with: + go-version: 1.18 + id: go + + - name: Check out code into the Go module directory + uses: actions/checkout@v1 + + - name: Get dependencies + run: | + go get -v -t -d ./... + + - name: Test + run: ./test_examples.sh + test: name: Test runs-on: ubuntu-latest From 65c0b6cacd4fd6c4693d6758b551f2614fe0b1bc Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sun, 10 Apr 2022 13:32:39 -0500 Subject: [PATCH 104/146] .github/workflows: specify bash shell use on windows --- .github/workflows/go.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 3b433872..089e2186 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -21,6 +21,7 @@ jobs: - name: Test run: ./test_examples.sh + shell: bash test-linux-arm: name: Test (linux arm) From 7feb7f1a2507da3a6734c8f5445219db85799b6f Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sun, 10 Apr 2022 21:06:32 -0500 Subject: [PATCH 105/146] shiny/driver: remove unused monitor size calculations --- shiny/driver/driver_android.go | 5 ----- shiny/driver/driver_fallback.go | 4 ---- shiny/driver/driver_js.go | 4 ---- shiny/driver/driver_noop.go | 4 ---- shiny/driver/driver_windows.go | 5 ----- shiny/driver/driver_x11.go | 4 ---- shiny/screen/screen.go | 2 -- 7 files changed, 28 deletions(-) diff --git a/shiny/driver/driver_android.go b/shiny/driver/driver_android.go index 706e0f88..87e049b0 100644 --- a/shiny/driver/driver_android.go +++ b/shiny/driver/driver_android.go @@ -18,9 +18,4 @@ func main(f func(screen.Screen)) { androiddriver.Main(f) } -func monitorSize() (int, int) { - // GetSystemMetrics syscall - return 0, 0 -} - type Window = androiddriver.Screen diff --git a/shiny/driver/driver_fallback.go b/shiny/driver/driver_fallback.go index d44ed868..9150c08f 100644 --- a/shiny/driver/driver_fallback.go +++ b/shiny/driver/driver_fallback.go @@ -18,8 +18,4 @@ func main(f func(screen.Screen)) { f(errscreen.Stub(errors.New("no driver for accessing a screen"))) } -func monitorSize() (int, int) { - return 0, 0 -} - type Window = struct{} \ No newline at end of file diff --git a/shiny/driver/driver_js.go b/shiny/driver/driver_js.go index 2e661e61..02240422 100644 --- a/shiny/driver/driver_js.go +++ b/shiny/driver/driver_js.go @@ -12,8 +12,4 @@ func main(f func(screen.Screen)) { jsdriver.Main(f) } -func monitorSize() (int, int) { - return 0, 0 -} - type Window = jsdriver.Window diff --git a/shiny/driver/driver_noop.go b/shiny/driver/driver_noop.go index 1d5d1e4a..db3a2a94 100644 --- a/shiny/driver/driver_noop.go +++ b/shiny/driver/driver_noop.go @@ -12,8 +12,4 @@ func main(f func(screen.Screen)) { noop.Main(f) } -func monitorSize() (int, int) { - return 0, 0 -} - type Window = noop.Window diff --git a/shiny/driver/driver_windows.go b/shiny/driver/driver_windows.go index 19d1ad27..128a37a5 100644 --- a/shiny/driver/driver_windows.go +++ b/shiny/driver/driver_windows.go @@ -16,9 +16,4 @@ func main(f func(screen.Screen)) { windriver.Main(f) } -func monitorSize() (int, int) { - // GetSystemMetrics syscall - return 0, 0 -} - type Window = windriver.Window diff --git a/shiny/driver/driver_x11.go b/shiny/driver/driver_x11.go index 87320635..693bdaee 100644 --- a/shiny/driver/driver_x11.go +++ b/shiny/driver/driver_x11.go @@ -16,8 +16,4 @@ func main(f func(screen.Screen)) { x11driver.Main(f) } -func monitorSize() (int, int) { - return 0, 0 -} - type Window = x11driver.Window diff --git a/shiny/screen/screen.go b/shiny/screen/screen.go index 3eca3e4a..af1eb646 100644 --- a/shiny/screen/screen.go +++ b/shiny/screen/screen.go @@ -68,8 +68,6 @@ type Screen interface { NewTexture(size image.Point) (Texture, error) // NewWindow returns a new Window for this screen. - // - // A nil opts is valid and means to use the default option values. NewWindow(opts WindowGenerator) (Window, error) } From 5b15bea15259f75ba43d5bf1c396e09109e4de0c Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sun, 10 Apr 2022 21:09:03 -0500 Subject: [PATCH 106/146] oak: remove target width and target height These were introduced to support osx retina displays, which we never finished implementing, instead just adopting the mtldriver behavior, which assumes all displays are retinas. --- config.go | 12 ------------ config_test.go | 6 ++---- init.go | 7 ------- shiny/driver/driver.go | 5 ----- shiny/driver/mtldriver_darwin.go | 33 -------------------------------- 5 files changed, 2 insertions(+), 61 deletions(-) diff --git a/config.go b/config.go index 6e0a14b3..f23e06d9 100644 --- a/config.go +++ b/config.go @@ -87,12 +87,6 @@ type Screen struct { Height int `json:"height"` Width int `json:"width"` Scale float64 `json:"scale"` - // Target sets the expected dimensions of the monitor the game will be opened on, in pixels. - // If Fullscreen is false, then a scaling will be applied to correct the game screen size to be - // appropriate for the Target size. If no TargetWidth or Height is provided, scaling will not - // be adjusted. - TargetWidth int `json:"targetHeight"` - TargetHeight int `json:"targetWidth"` } // BatchLoadOptions is a json type storing customizations for batch loading. @@ -164,12 +158,6 @@ func (c Config) overwriteFrom(c2 Config) Config { if c2.Screen.Scale != 0 { c.Screen.Scale = c2.Screen.Scale } - if c2.Screen.TargetWidth != 0 { - c.Screen.TargetWidth = c2.Screen.TargetWidth - } - if c2.Screen.TargetHeight != 0 { - c.Screen.TargetHeight = c2.Screen.TargetHeight - } c.BatchLoadOptions.BlankOutAudio = c2.BatchLoadOptions.BlankOutAudio if c2.BatchLoadOptions.MaxImageFileSize != 0 { c.BatchLoadOptions.MaxImageFileSize = c2.BatchLoadOptions.MaxImageFileSize diff --git a/config_test.go b/config_test.go index bff8501c..426feb57 100644 --- a/config_test.go +++ b/config_test.go @@ -109,10 +109,8 @@ func TestConfig_overwriteFrom(t *testing.T) { Filter: "filter", }, Screen: Screen{ - X: 1, - Y: 1, - TargetWidth: 1, - TargetHeight: 1, + X: 1, + Y: 1, }, BatchLoadOptions: BatchLoadOptions{ MaxImageFileSize: 10000, diff --git a/init.go b/init.go index d7aa2291..1dbf3947 100644 --- a/init.go +++ b/init.go @@ -28,13 +28,6 @@ func (w *Window) Init(firstScene string, configOptions ...ConfigOption) error { return fmt.Errorf("failed to create config: %w", err) } - // if c.config.Screen.TargetWidth != 0 && c.config.Screen.TargetHeight != 0 { - // w, h := driver.MonitorSize() - // if w != 0 || h != 0 { - // // Todo: Modify conf.Screen.Scale - // } - // } - lvl, err := dlog.ParseDebugLevel(w.config.Debug.Level) if err != nil { return fmt.Errorf("failed to parse debug config: %w", err) diff --git a/shiny/driver/driver.go b/shiny/driver/driver.go index f4ac6122..bf00ed1b 100644 --- a/shiny/driver/driver.go +++ b/shiny/driver/driver.go @@ -23,8 +23,3 @@ import ( func Main(f func(screen.Screen)) { main(f) } - -// MonitorSize reports the size in pixels of the primary monitor. -func MonitorSize() (width int, height int) { - return monitorSize() -} diff --git a/shiny/driver/mtldriver_darwin.go b/shiny/driver/mtldriver_darwin.go index 9035c9f1..9d933d67 100644 --- a/shiny/driver/mtldriver_darwin.go +++ b/shiny/driver/mtldriver_darwin.go @@ -22,37 +22,4 @@ func main(f func(screen.Screen)) { mtldriver.Main(f) } -var ( - sysProfRegex = regexp.MustCompile(`Resolution: (\d)* x (\d)*`) -) - -func monitorSize() (int, int) { - out, err := exec.Command("system_profiler", "SPDisplaysDataType").CombinedOutput() - if err != nil { - return 0, 0 - } - found := sysProfRegex.FindAll(out, -1) - if len(found) == 0 { - return 0, 0 - } - if len(found) != 1 { - fmt.Println("Found multiple screens", len(found)) - } - first := found[0] - first = bytes.TrimPrefix(first, []byte("Resolution: ")) - dims := bytes.Split(first, []byte(" x ")) - if len(dims) != 2 { - return 0, 0 - } - w, err := strconv.Atoi(string(dims[0])) - if err != nil { - return 0, 0 - } - h, err := strconv.Atoi(string(dims[1])) - if err != nil { - return 0, 0 - } - return w, h -} - type Window = mtldriver.Window From 8e1add8e68c79b30a043c76ba4140987d6c9fd7d Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sun, 10 Apr 2022 21:09:22 -0500 Subject: [PATCH 107/146] oak: move and expand package doc --- doc.go | 4 ---- window.go | 13 ++++++++++++- 2 files changed, 12 insertions(+), 5 deletions(-) delete mode 100644 doc.go diff --git a/doc.go b/doc.go deleted file mode 100644 index 572588d8..00000000 --- a/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Package oak is a game engine. It provides scene control, control over windows -// and what is drawn to them, propagates regular events to evaluate game logic, -// and so on. -package oak diff --git a/window.go b/window.go index 9a9fa480..1d5999b3 100644 --- a/window.go +++ b/window.go @@ -1,3 +1,15 @@ +// Package oak is a game engine. It provides scene control, control over windows +// and what is drawn to them, propagates regular events to evaluate game logic, +// and so on. +// +// A minimal oak app follows: +// +// func main() { +// oak.AddScene("myApp", scene.Scene{Start: func(ctx *scene.Context) { +// // ... ctx.Draw(...), event.Bind(ctx, ...) +// }}) +// oak.Init("myApp") +// } package oak import ( @@ -24,7 +36,6 @@ import ( var _ window.App = &Window{} func (w *Window) windowController(s screen.Screen, x, y, width, height int) (*driver.Window, error) { - // TODO v4: can we update this interface to return our concrete driver.Window? dwin, err := s.NewWindow(screen.NewWindowGenerator( screen.Dimensions(width, height), screen.Title(w.config.Title), From cd80bcb2070c3f25fa7fe3c5d28f86a1d6e3d8f7 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sun, 10 Apr 2022 21:09:36 -0500 Subject: [PATCH 108/146] oak: update event docs --- inputLoop.go | 13 +++++++++---- inputTracker.go | 3 --- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/inputLoop.go b/inputLoop.go index d3654b96..575ce2b5 100644 --- a/inputLoop.go +++ b/inputLoop.go @@ -14,15 +14,20 @@ import ( "golang.org/x/mobile/event/size" ) +// The following block defines events generated by oak during scene execution var ( - // ViewportUpdate: Triggered when the position of of the viewport changes + // ViewportUpdate is triggered when the position of of the viewport changes ViewportUpdate = event.RegisterEvent[intgeom.Point2]() - // OnStop: Triggered when the engine is stopped. + // OnStop is triggered when the engine is stopped, e.g. when a window's close + // button is clicked. OnStop = event.RegisterEvent[struct{}]() - // FocusGain: Triggered when the window gains focus + // FocusGain is triggered when a window gains focus FocusGain = event.RegisterEvent[struct{}]() - // FocusLoss: Triggered when the window loses focus + // FocusLoss is triggered when a window loses focus FocusLoss = event.RegisterEvent[struct{}]() + // InputChange is triggered when the most recent input device changes (e.g. keyboard to joystick or vice versa). It + // is only sent if Config.TrackInputChanges is true when Init is called. + InputChange = event.RegisterEvent[InputType]() ) func (w *Window) inputLoop() { diff --git a/inputTracker.go b/inputTracker.go index d5080ded..26a28f54 100644 --- a/inputTracker.go +++ b/inputTracker.go @@ -14,9 +14,6 @@ import ( // InputType expresses some form of input to the engine to represent a player type InputType int32 -// InputChange is triggered when the most recent input device changes (e.g. keyboard to joystick or vice versa) -var InputChange = event.RegisterEvent[InputType]() - var trackingJoystickChange = event.RegisterEvent[struct{}]() // Supported Input Types From 06f351119e8b9df2de749bedf7fca5fff419632e Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sun, 10 Apr 2022 21:47:50 -0500 Subject: [PATCH 109/146] oak: update package documentation --- config.go | 55 +++++++++++++++++++++++++----------------- drawLoop.go | 8 +++--- init.go | 7 ++++-- inputTracker.go | 2 +- render/mod/filter.go | 4 +-- render/mod/mod_test.go | 2 +- scene.go | 2 +- scene/map.go | 1 - sceneLoop.go | 7 +++++- screenFilter.go | 2 +- window.go | 3 +++ 11 files changed, 57 insertions(+), 36 deletions(-) diff --git a/config.go b/config.go index f23e06d9..2f994689 100644 --- a/config.go +++ b/config.go @@ -8,28 +8,39 @@ import ( "github.com/oakmound/oak/v3/shiny/driver" ) -// Config stores initialization settings for oak. +// A Config defines the settings oak accepts on initialization. Some of these settings may be ignored depending +// on the target platform. type Config struct { - Driver Driver `json:"-"` - Assets Assets `json:"assets"` - Debug Debug `json:"debug"` - Screen Screen `json:"screen"` - BatchLoadOptions BatchLoadOptions `json:"batchLoadOptions"` - FrameRate int `json:"frameRate"` - DrawFrameRate int `json:"drawFrameRate"` - IdleDrawFrameRate int `json:"idleDrawFrameRate"` - Language string `json:"language"` - Title string `json:"title"` - BatchLoad bool `json:"batchLoad"` - GestureSupport bool `json:"gestureSupport"` - LoadBuiltinCommands bool `json:"loadBuiltinCommands"` - TrackInputChanges bool `json:"trackInputChanges"` - EnableDebugConsole bool `json:"enableDebugConsole"` - TopMost bool `json:"topmost"` - Borderless bool `json:"borderless"` - Fullscreen bool `json:"fullscreen"` - SkipRNGSeed bool `json:"skip_rng_seed"` - UnlimitedDrawFrameRate bool `json:"unlimitedDrawFrameRate"` + Driver Driver `json:"-"` + // Assets defines where assets should be loaded from by default. Defaults to + // 'assets/audio' and 'assets/images'. + Assets Assets `json:"assets"` + Debug Debug `json:"debug"` + Screen Screen `json:"screen"` + BatchLoadOptions BatchLoadOptions `json:"batchLoadOptions"` + // FrameRate, representing the rate enter frame events are triggered, defaults to 60. + FrameRate int `json:"frameRate"` + // DrawFrameRate is ignored on JS. It defaults to 60. + DrawFrameRate int `json:"drawFrameRate"` + // IdleDrawFrameRate defaults to 60. When a window goes out of focus, this setting can be lowered to + // reduce resource consumption by drawing. + IdleDrawFrameRate int `json:"idleDrawFrameRate"` + // Language defines the language oak logs are attempted to be translated to. Defaults to English. + Language string `json:"language"` + // Title defaults to 'Oak Window'. + Title string `json:"title"` + BatchLoad bool `json:"batchLoad"` + GestureSupport bool `json:"gestureSupport"` + LoadBuiltinCommands bool `json:"loadBuiltinCommands"` + TrackInputChanges bool `json:"trackInputChanges"` + // EnableDebugConsole is ignored on JS. + EnableDebugConsole bool `json:"enableDebugConsole"` + TopMost bool `json:"topmost"` + Borderless bool `json:"borderless"` + Fullscreen bool `json:"fullscreen"` + SkipRNGSeed bool `json:"skip_rng_seed"` + // UnlimitedDrawFrameRate is ignored on JS (it is effectively always true). + UnlimitedDrawFrameRate bool `json:"unlimitedDrawFrameRate"` } // NewConfig creates a config from a set of transformation options. @@ -90,7 +101,7 @@ type Screen struct { } // BatchLoadOptions is a json type storing customizations for batch loading. -// These settings do not take effect unless batch load is true. +// These settings do not take effect unless Config.BatchLoad is true. type BatchLoadOptions struct { BlankOutAudio bool `json:"blankOutAudio"` MaxImageFileSize int64 `json:"maxImageFileSize"` diff --git a/drawLoop.go b/drawLoop.go index c76d49c9..3d108bfe 100644 --- a/drawLoop.go +++ b/drawLoop.go @@ -124,9 +124,9 @@ func (w *Window) publish() { w.bufferIdx = (w.bufferIdx + 1) % bufferCount } -// DoBetweenDraws will execute the given function in-between draw frames +// DoBetweenDraws will execute the given function in-between draw frames. It will prevent draws from happening until +// the provided function has terminated. DoBetweenDraws will block until the provided function is called within the +// draw loop's schedule, but will not wait for that function itself to terminate. func (w *Window) DoBetweenDraws(f func()) { - go func() { - w.betweenDrawCh <- f - }() + w.betweenDrawCh <- f } diff --git a/init.go b/init.go index 1dbf3947..f8fd4b56 100644 --- a/init.go +++ b/init.go @@ -18,8 +18,11 @@ var ( ) // Init initializes the oak engine. -// It spawns off an event loop of several goroutines -// and loops through scenes after initialization. +// After the configuration options have been parsed and validated, this will run concurrent +// routines drawing to an OS window or app, forwarding OS inputs to this window's configured +// event handler, and running scenes: first the predefined 'loading' scene, then firstScene +// as provided here, then scenes following commands sent to the window or returned by ending +// scenes. func (w *Window) Init(firstScene string, configOptions ...ConfigOption) error { var err error diff --git a/inputTracker.go b/inputTracker.go index 26a28f54..f4dd6fc3 100644 --- a/inputTracker.go +++ b/inputTracker.go @@ -16,7 +16,7 @@ type InputType int32 var trackingJoystickChange = event.RegisterEvent[struct{}]() -// Supported Input Types +// The following constants define valid types of input sent via the InputChange event. const ( InputKeyboard InputType = iota InputMouse diff --git a/render/mod/filter.go b/render/mod/filter.go index f578cfbd..eba448d4 100644 --- a/render/mod/filter.go +++ b/render/mod/filter.go @@ -20,9 +20,9 @@ func AndFilter(fs ...Filter) Filter { } } -// ConformToPallete is not a modification, but acts like ConformToPallete +// ConformToPalette( is not a modification, but acts like ConformToPalette( // without allocating a new *image.RGBA -func ConformToPallete(p color.Model) Filter { +func ConformToPalette(p color.Model) Filter { return func(rgba *image.RGBA) { bounds := rgba.Bounds() w := bounds.Max.X diff --git a/render/mod/mod_test.go b/render/mod/mod_test.go index a32f13bc..f41848a2 100644 --- a/render/mod/mod_test.go +++ b/render/mod/mod_test.go @@ -70,7 +70,7 @@ func TestAllModifications(t *testing.T) { *image.RGBA } filterList := []filterCase{{ - ConformToPallete(color.Palette{color.RGBA{64, 0, 0, 128}}), + ConformToPalette(color.Palette{color.RGBA{64, 0, 0, 128}}), setAll(newrgba(3, 3), color.RGBA{64, 0, 0, 128}), }, { Fade(10), diff --git a/scene.go b/scene.go index a59310cf..e11bb276 100644 --- a/scene.go +++ b/scene.go @@ -7,7 +7,7 @@ import ( "github.com/oakmound/oak/v3/timing" ) -// AddScene is shorthand for c.SceneMap.AddScene +// AddScene is shorthand for w.SceneMap.AddScene func (w *Window) AddScene(name string, s scene.Scene) error { return w.SceneMap.AddScene(name, s) } diff --git a/scene/map.go b/scene/map.go index deaa77e8..35dc7b88 100644 --- a/scene/map.go +++ b/scene/map.go @@ -41,7 +41,6 @@ func (m *Map) GetCurrent() (Scene, bool) { // conflict with an existing name in the map, and then adds it to the map. // If a conflict occurs, the scene will not be overwritten. // Checks if the Scene's start is nil, sets to noop if so. -// Checks if the Scene's loop is nil, sets to infinite if so. // Checks if the Scene's end is nil, sets to loop to this scene if so. func (m *Map) AddScene(name string, s Scene) error { diff --git a/sceneLoop.go b/sceneLoop.go index 2d5e4bb1..1e5506d2 100644 --- a/sceneLoop.go +++ b/sceneLoop.go @@ -16,7 +16,7 @@ import ( const oakLoadingScene = "oak:loading" func (w *Window) sceneLoop(first string, trackingInputs, batchLoad bool) { - w.SceneMap.AddScene(oakLoadingScene, scene.Scene{ + err := w.SceneMap.AddScene(oakLoadingScene, scene.Scene{ Start: func(ctx *scene.Context) { if batchLoad { go func() { @@ -33,11 +33,16 @@ func (w *Window) sceneLoop(first string, trackingInputs, batchLoad bool) { } }, }) + if err != nil { + go w.exitWithError(err) + return + } var prevScene string result := new(scene.Result) + // kick start the draw loop w.drawCh <- struct{}{} w.drawCh <- struct{}{} diff --git a/screenFilter.go b/screenFilter.go index 1e56aee3..c03efce7 100644 --- a/screenFilter.go +++ b/screenFilter.go @@ -10,7 +10,7 @@ import ( // SetPalette tells oak to conform the screen to the input color palette before drawing. func (w *Window) SetPalette(palette color.Palette) { - w.SetScreenFilter(mod.ConformToPallete(palette)) + w.SetScreenFilter(mod.ConformToPalette(palette)) } // SetScreenFilter will filter the screen by the given modification function prior diff --git a/window.go b/window.go index 1d5999b3..f41bdb01 100644 --- a/window.go +++ b/window.go @@ -51,6 +51,7 @@ func (w *Window) windowController(s screen.Screen, x, y, width, height int) (*dr const bufferCount = 2 type Window struct { + // The keyboard state this window is aware of. key.State // the driver.Window embedded in this window exposes at compile time the OS level @@ -73,6 +74,8 @@ type Window struct { // drawing should cease (or resume) drawCh chan struct{} + // The between draw channel receives a signal when + // a function is provided to Window.DoBetweenDraws. betweenDrawCh chan func() // ScreenWidth is the width of the screen From e6fb3e2a878bbb5ffcc4564aa5709d9953ea73c1 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 16 Apr 2022 08:06:22 -0500 Subject: [PATCH 110/146] oak: rename window 'screen' methods to 'viewport' --- alg/intgeom/rect.go | 16 ++++++++++++++ debugstream/scopeHelper.go | 7 +++--- debugtools/tree.go | 8 ++++--- default.go | 24 ++++++++------------ entities/move.go | 9 ++++---- scene/scene.go | 2 +- sceneLoop.go | 2 +- screenFilter.go | 6 ++--- shake/shake.go | 3 ++- viewport.go | 45 ++++++++++++++++++++------------------ viewport_test.go | 17 +++++++------- window.go | 31 +++++--------------------- window/window.go | 10 ++++----- 13 files changed, 88 insertions(+), 92 deletions(-) diff --git a/alg/intgeom/rect.go b/alg/intgeom/rect.go index f7535205..1ccac0b9 100644 --- a/alg/intgeom/rect.go +++ b/alg/intgeom/rect.go @@ -326,3 +326,19 @@ func (r Rect2) Intersects(r2 Rect2) bool { return !((r2.Max.X() <= r.Min.X() || r.Max.X() <= r2.Min.X()) || (r2.Max.Y() <= r.Min.Y() || r.Max.Y() <= r2.Min.Y())) } + +// Clamp returns a version of the provided point such that it is contained within r. If it was already contained in +// r, it will not be changed. +func (r Rect2) Clamp(pt Point2) Point2 { + if pt.X() < r.Min[0] { + pt[0] = r.Min[0] + } else if pt.X() > r.Max[0] { + pt[0] = r.Max[0] + } + if pt.Y() < r.Min[1] { + pt[1] = r.Min[1] + } else if pt.Y() > r.Max[1] { + pt[1] = r.Max[1] + } + return pt +} diff --git a/debugstream/scopeHelper.go b/debugstream/scopeHelper.go index 465e3c93..fd689ee3 100644 --- a/debugstream/scopeHelper.go +++ b/debugstream/scopeHelper.go @@ -39,8 +39,9 @@ func moveWindow(w window.Window) func([]string) string { InputName: "coordinates", }.Error() } - width := parseTokenAsInt(sub, 2, w.Width()) - height := parseTokenAsInt(sub, 3, w.Height()) + bds := w.Bounds() + width := parseTokenAsInt(sub, 2, bds.X()) + height := parseTokenAsInt(sub, 3, bds.Y()) v := w.Viewport() x := parseTokenAsInt(sub, 0, v.X()) y := parseTokenAsInt(sub, 1, v.Y()) @@ -85,7 +86,7 @@ func mouseDetails(w window.Window) func(*mouse.Event) event.Response { if len(results) == 0 { results = mouse.Hits(loc) } - cm := w.GetCallerMap() + cm := w.EventHandler().GetCallerMap() if len(results) > 0 { i := results[0].CID diff --git a/debugtools/tree.go b/debugtools/tree.go index 46a5a969..a48c8658 100644 --- a/debugtools/tree.go +++ b/debugtools/tree.go @@ -46,7 +46,8 @@ type Rtree struct { // GetDims returns the total possible area to draw this on. func (r *Rtree) GetDims() (int, int) { - return r.Context.Window.Width(), r.Context.Window.Height() + bds := r.Context.Window.Bounds() + return bds.X(), bds.Y() } // Draw will draw the collision outlines @@ -55,12 +56,13 @@ func (r *Rtree) Draw(buff draw.Image, xOff, yOff float64) { return } vp := r.Context.Window.Viewport() + bds := r.Context.Window.Bounds() // Get all spaces on screen screen := collision.NewUnassignedSpace( float64(vp.X()), float64(vp.Y()), - float64(r.Context.Window.Width()+vp.X()), - float64(r.Context.Window.Height()+vp.Y())) + float64(bds.X()+vp.X()), + float64(bds.Y()+vp.Y())) hits := r.Tree.Hits(screen) // Draw spaces that are on screen (as outlines) for _, h := range hits { diff --git a/default.go b/default.go index 47732101..1e26d20a 100644 --- a/default.go +++ b/default.go @@ -55,16 +55,16 @@ func SetViewportBounds(rect intgeom.Rect2) { defaultWindow.SetViewportBounds(rect) } -// ShiftScreen calls ShiftScreen on the default window. -func ShiftScreen(x, y int) { +// ShiftViewport calls ShiftViewport on the default window. +func ShiftViewport(pt intgeom.Point2) { initDefaultWindow() - defaultWindow.ShiftScreen(x, y) + defaultWindow.ShiftViewport(pt) } -// SetScreen calls SetScreen on the default window. -func SetScreen(x, y int) { +// SetViewport calls SetViewport on the default window. +func SetViewport(pt intgeom.Point2) { initDefaultWindow() - defaultWindow.SetScreen(x, y) + defaultWindow.SetViewport(pt) } // UpdateViewSize calls UpdateViewSize on the default window. @@ -103,14 +103,8 @@ func GetBackgroundImage() image.Image { return defaultWindow.GetBackgroundImage() } -// Width calls Width on the default window. -func Width() int { +// Bounds returns the default window's boundary. +func Bounds() intgeom.Point2 { initDefaultWindow() - return defaultWindow.Width() -} - -// Height calls Height on the default window. -func Height() int { - initDefaultWindow() - return defaultWindow.Height() + return defaultWindow.Bounds() } diff --git a/entities/move.go b/entities/move.go index eb17d039..f7345eb0 100644 --- a/entities/move.go +++ b/entities/move.go @@ -2,6 +2,7 @@ package entities import ( "github.com/oakmound/oak/v3/alg/floatgeom" + "github.com/oakmound/oak/v3/alg/intgeom" "github.com/oakmound/oak/v3/key" ) @@ -36,10 +37,10 @@ func TopDown(mvr *Entity, up, down, left, right key.Code) { // CenterScreenOn will cause the screen to center on the given mover, obeying // viewport limits if they have been set previously func CenterScreenOn(mvr *Entity) { - mvr.ctx.Window.SetScreen( - int(mvr.X())-mvr.ctx.Window.Width()/2, - int(mvr.Y())-mvr.ctx.Window.Height()/2, - ) + bds := mvr.ctx.Window.Bounds() + pos := intgeom.Point2{int(mvr.X()), int(mvr.Y())} + target := pos.Sub(bds).DivConst(2) + mvr.ctx.Window.SetViewport(target) } // Limit restricts the movement of the mover to stay within a given rectangle diff --git a/scene/scene.go b/scene/scene.go index 5f5cf641..d73a8693 100644 --- a/scene/scene.go +++ b/scene/scene.go @@ -6,7 +6,7 @@ import ( ) // A Scene is a set of functions defining what needs to happen when a scene -// starts, loops, and ends. +// starts and ends. type Scene struct { // Start is called when a scene begins, including contextual information like // what scene came before this one and a direct reference to clean data structures diff --git a/sceneLoop.go b/sceneLoop.go index 1e5506d2..958b0946 100644 --- a/sceneLoop.go +++ b/sceneLoop.go @@ -51,7 +51,7 @@ func (w *Window) sceneLoop(first string, trackingInputs, batchLoad bool) { w.SceneMap.CurrentScene = oakLoadingScene for { - w.setViewport(intgeom.Point2{0, 0}) + w.SetViewport(intgeom.Point2{0, 0}) w.RemoveViewportBounds() dlog.Info(dlog.SceneStarting, w.SceneMap.CurrentScene) diff --git a/screenFilter.go b/screenFilter.go index c03efce7..0e7dfb7a 100644 --- a/screenFilter.go +++ b/screenFilter.go @@ -10,12 +10,12 @@ import ( // SetPalette tells oak to conform the screen to the input color palette before drawing. func (w *Window) SetPalette(palette color.Palette) { - w.SetScreenFilter(mod.ConformToPalette(palette)) + w.SetDrawFilter(mod.ConformToPalette(palette)) } -// SetScreenFilter will filter the screen by the given modification function prior +// SetDrawFilter will filter the screen by the given modification function prior // to publishing the screen's rgba to be displayed. -func (w *Window) SetScreenFilter(screenFilter mod.Filter) { +func (w *Window) SetDrawFilter(screenFilter mod.Filter) { w.prePublish = func(w *Window, tx screen.Texture) { screenFilter(w.winBuffers[w.bufferIdx].RGBA()) } diff --git a/shake/shake.go b/shake/shake.go index 9dad016c..5309de9a 100644 --- a/shake/shake.go +++ b/shake/shake.go @@ -7,6 +7,7 @@ import ( "time" "github.com/oakmound/oak/v3/alg/floatgeom" + "github.com/oakmound/oak/v3/alg/intgeom" "github.com/oakmound/oak/v3/scene" "github.com/oakmound/oak/v3/window" ) @@ -111,7 +112,7 @@ type screenToPoser struct { } func (stp screenToPoser) ShiftPos(x, y float64) { - stp.ShiftScreen(int(x), int(y)) + stp.ShiftViewport(intgeom.Point2{int(x), int(y)}) } // Screen shakes the screen that the context controls for the given duration. diff --git a/viewport.go b/viewport.go index 8ad51ea4..615f737b 100644 --- a/viewport.go +++ b/viewport.go @@ -5,17 +5,19 @@ import ( "github.com/oakmound/oak/v3/event" ) -// SetScreen positions the viewport to be at x,y -func (w *Window) SetScreen(x, y int) { - w.setViewport(intgeom.Point2{x, y}) +type Viewport struct { + Position intgeom.Point2 + Bounds intgeom.Rect2 + BoundsEnforced bool } -// ShiftScreen shifts the viewport by x,y -func (w *Window) ShiftScreen(x, y int) { - w.setViewport(w.viewPos.Add(intgeom.Point2{x, y})) +// ShiftViewport shifts the viewport by x,y +func (w *Window) ShiftViewport(delta intgeom.Point2) { + w.SetViewport(w.viewPos.Add(delta)) } -func (w *Window) setViewport(pt intgeom.Point2) { +// SetViewport positions the viewport to be at x,y +func (w *Window) SetViewport(pt intgeom.Point2) { if w.useViewBounds { if w.viewBounds.Min.X() <= pt.X() && w.viewBounds.Max.X() >= pt.X()+w.ScreenWidth { w.viewPos[0] = pt.X() @@ -60,20 +62,21 @@ func (w *Window) SetViewportBounds(rect intgeom.Rect2) { w.useViewBounds = true w.viewBounds = rect - newViewX := w.viewPos.X() - newViewY := w.viewPos.Y() - if newViewX < rect.Min[0] { - newViewX = rect.Min[0] - } else if newViewX > rect.Max[0] { - newViewX = rect.Max[0] - } - if newViewY < rect.Min[1] { - newViewY = rect.Min[1] - } else if newViewY > rect.Max[1] { - newViewY = rect.Max[1] + newView := rect.Clamp(w.viewPos) + if newView != w.viewPos { + w.SetViewport(newView) } +} - if newViewX != w.viewPos.X() || newViewY != w.viewPos.Y() { - w.setViewport(intgeom.Point2{newViewX, newViewY}) - } +// Viewport returns the viewport's position. Its width and height are the window's +// width and height. This position plus width/height cannot exceed ViewportBounds. +func (w *Window) Viewport() intgeom.Point2 { + return w.viewPos +} + +// ViewportBounds returns the boundary of this window's viewport, or the rectangle +// that the viewport is not allowed to exit as it moves around. It often represents +// the total size of the world within a given scene. +func (w *Window) ViewportBounds() intgeom.Rect2 { + return w.viewBounds } diff --git a/viewport_test.go b/viewport_test.go index 96a3d113..49b3725f 100644 --- a/viewport_test.go +++ b/viewport_test.go @@ -24,7 +24,7 @@ func TestViewport(t *testing.T) { if (c1.viewPos) != (intgeom.Point2{0, 0}) { t.Fatalf("expected %v got %v", c1.viewPos, intgeom.Point2{0, 0}) } - c1.SetScreen(5, 5) + c1.SetViewport(intgeom.Point2{5, 5}) if (c1.viewPos) != (intgeom.Point2{5, 5}) { t.Fatalf("expected %v got %v", c1.viewPos, intgeom.Point2{5, 5}) } @@ -37,20 +37,20 @@ func TestViewport(t *testing.T) { if (c1.viewPos) != (intgeom.Point2{5, 5}) { t.Fatalf("expected %v got %v", c1.viewPos, intgeom.Point2{5, 5}) } - c1.SetScreen(-1, -1) + c1.SetViewport(intgeom.Point2{-1, -1}) if (c1.viewPos) != (intgeom.Point2{0, 0}) { t.Fatalf("expected %v got %v", c1.viewPos, intgeom.Point2{0, 0}) } - c1.SetScreen(6, 6) + c1.SetViewport(intgeom.Point2{6, 6}) if (c1.viewPos) != (intgeom.Point2{0, 0}) { t.Fatalf("expected %v got %v", c1.viewPos, intgeom.Point2{0, 0}) } c1.SetViewportBounds(intgeom.NewRect2(0, 0, 1000, 1000)) - c1.SetScreen(20, 20) + c1.SetViewport(intgeom.Point2{20, 20}) if (c1.viewPos) != (intgeom.Point2{20, 20}) { t.Fatalf("expected %v got %v", c1.viewPos, intgeom.Point2{20, 20}) } - c1.ShiftScreen(-1, -1) + c1.ShiftViewport(intgeom.Point2{-1, -1}) if (c1.viewPos) != (intgeom.Point2{19, 19}) { t.Fatalf("expected %v got %v", c1.viewPos, intgeom.Point2{19, 19}) } @@ -58,7 +58,7 @@ func TestViewport(t *testing.T) { if (c1.viewPos) != (intgeom.Point2{21, 21}) { t.Fatalf("expected %v got %v", c1.viewPos, intgeom.Point2{21, 21}) } - c1.SetScreen(1000, 1000) + c1.SetViewport(intgeom.Point2{1000, 1000}) c1.SetViewportBounds(intgeom.NewRect2(0, 0, 900, 900)) bds, ok := c1.GetViewportBounds() if !ok { @@ -67,8 +67,9 @@ func TestViewport(t *testing.T) { if bds != intgeom.NewRect2(0, 0, 900, 900) { t.Fatalf("viewport bounds were not set: expected %v got %v", intgeom.NewRect2(0, 0, 900, 900), bds) } - if (c1.viewPos) != (intgeom.Point2{900 - c1.Width(), 900 - c1.Height()}) { - t.Fatalf("expected %v got %v", c1.viewPos, intgeom.Point2{900 - c1.Width(), 900 - c1.Height()}) + mx := intgeom.Point2{900, 900} + if (c1.viewPos) != mx.Sub(c1.Bounds()) { + t.Fatalf("expected %v got %v", c1.viewPos, mx.Sub(c1.Bounds())) } c1.RemoveViewportBounds() _, ok = c1.GetViewportBounds() diff --git a/window.go b/window.go index f41bdb01..aff1a54c 100644 --- a/window.go +++ b/window.go @@ -129,7 +129,7 @@ type Window struct { // Driver is the driver oak will call during initialization Driver Driver - // prePublish is a function called each draw frame prior to + // prePublish is a function called each draw frame prior to publishing frames to the OS prePublish func(w *Window, tx screen.Texture) // LoadingR is a renderable that is displayed during loading screens. @@ -269,27 +269,10 @@ func (w *Window) Propagate(ev event.EventID[*mouse.Event], me mouse.Event) { } } -// Width returns the absolute width of the window in pixels. -func (w *Window) Width() int { - return w.ScreenWidth -} - -// Height returns the absolute height of the window in pixels. -func (w *Window) Height() int { - return w.ScreenHeight -} - -// Viewport returns the viewport's position. Its width and height are the window's -// width and height. This position plus width/height cannot exceed ViewportBounds. -func (w *Window) Viewport() intgeom.Point2 { - return w.viewPos -} - -// ViewportBounds returns the boundary of this window's viewport, or the rectangle -// that the viewport is not allowed to exit as it moves around. It often represents -// the total size of the world within a given scene. -func (w *Window) ViewportBounds() intgeom.Rect2 { - return w.viewBounds +// Width returns the absolute bounds of a window in pixels. It does not include window elements outside +// of the client area (OS provided title bars). +func (w *Window) Bounds() intgeom.Point2 { + return intgeom.Point2{w.ScreenWidth, w.ScreenHeight} } // SetLoadingRenderable sets what renderable should display between scenes @@ -370,7 +353,3 @@ func (w *Window) debugConsole(input io.Reader, output io.Writer) { debugstream.AttachToStream(w.ParentContext, input, output) debugstream.AddDefaultsForScope(w.ControllerID, w) } - -func (w *Window) GetCallerMap() *event.CallerMap { - return w.CallerMap -} diff --git a/window/window.go b/window/window.go index a27fe188..9deff723 100644 --- a/window/window.go +++ b/window/window.go @@ -24,13 +24,12 @@ type Window interface { // App is an interface of methods available to all oak programs. type App interface { - Width() int - Height() int + Bounds() intgeom.Point2 + Viewport() intgeom.Point2 SetViewportBounds(intgeom.Rect2) - - ShiftScreen(int, int) - SetScreen(int, int) + ShiftViewport(intgeom.Point2) + SetViewport(intgeom.Point2) NextScene() GoToScene(string) @@ -39,5 +38,4 @@ type App interface { Quit() EventHandler() event.Handler - GetCallerMap() *event.CallerMap } From 37885318eb29adf8d5eae51d7a740b86eb0e7bb4 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 16 Apr 2022 08:16:02 -0500 Subject: [PATCH 111/146] examples: adjust for new viewport / window bounds signatures --- examples/joystick-viz/main.go | 13 ++++++------- examples/keyboard-viz/main.go | 3 ++- examples/mouse-viz/main.go | 3 ++- examples/piano/main.go | 2 +- examples/radar-demo/main.go | 2 +- examples/rooms/main.go | 8 ++++---- examples/slide/show/slide.go | 5 +++-- examples/titlescreen-demo/main.go | 14 ++++++++------ examples/top-down-shooter/main.go | 12 +++++------- 9 files changed, 32 insertions(+), 30 deletions(-) diff --git a/examples/joystick-viz/main.go b/examples/joystick-viz/main.go index 6061b7e0..f25deb5e 100644 --- a/examples/joystick-viz/main.go +++ b/examples/joystick-viz/main.go @@ -36,8 +36,7 @@ func main() { return 0 }) go func() { - rWidth := float64(ctx.Window.Width()) / 2 - rHeight := float64(ctx.Window.Height()) / 2 + rBounds := ctx.Window.Bounds().DivConst(2) jCh, cancel := joystick.WaitForJoysticks(1 * time.Second) defer cancel() for joy := range jCh { @@ -47,15 +46,15 @@ func main() { case 0: // 0,0 case 1: - x = rWidth + x = float64(rBounds.X()) case 2: - y = rHeight + y = float64(rBounds.Y()) case 3: - x = rWidth - y = rHeight + x = float64(rBounds.X()) + y = float64(rBounds.Y()) } jrend := inputviz.Joystick{ - Rect: floatgeom.NewRect2WH(x, y, rWidth, rHeight), + Rect: floatgeom.NewRect2WH(x, y, float64(rBounds.X()), float64(rBounds.Y())), StickDeadzone: 4000, BaseLayer: -1, } diff --git a/examples/keyboard-viz/main.go b/examples/keyboard-viz/main.go index 4ba204f7..ab227996 100644 --- a/examples/keyboard-viz/main.go +++ b/examples/keyboard-viz/main.go @@ -22,8 +22,9 @@ func main() { fg.Size = 13 return fg }) + bds := ctx.Window.Bounds() m := inputviz.Keyboard{ - Rect: floatgeom.NewRect2(0, 0, float64(ctx.Window.Width()), float64(ctx.Window.Height())), + Rect: floatgeom.NewRect2(0, 0, float64(bds.X()), float64(bds.Y())), BaseLayer: -1, RenderCharacters: true, Font: fnt, diff --git a/examples/mouse-viz/main.go b/examples/mouse-viz/main.go index 370f572f..39e8f471 100644 --- a/examples/mouse-viz/main.go +++ b/examples/mouse-viz/main.go @@ -10,8 +10,9 @@ import ( func main() { oak.AddScene("mouseviz", scene.Scene{ Start: func(ctx *scene.Context) { + bds := ctx.Window.Bounds() m := inputviz.Mouse{ - Rect: floatgeom.NewRect2(0, 0, float64(ctx.Window.Width()), float64(ctx.Window.Height())), + Rect: floatgeom.NewRect2(0, 0, float64(bds.X()), float64(bds.Y())), BaseLayer: -1, } m.RenderAndListen(ctx, 0) diff --git a/examples/piano/main.go b/examples/piano/main.go index f45d0c55..85f9a9eb 100644 --- a/examples/piano/main.go +++ b/examples/piano/main.go @@ -246,7 +246,7 @@ func main() { x := 20.0 y := 200.0 i := 0 - for i < len(keycharOrder) && x+kc.Width() < float64(ctx.Window.Width()-10) { + for i < len(keycharOrder) && x+kc.Width() < float64(ctx.Window.Bounds().X()-10) { ky := newKey(ctx, pitch, kc, keycharOrder[i]) ky.SetPos(floatgeom.Point2{x, y}) layer := 0 diff --git a/examples/radar-demo/main.go b/examples/radar-demo/main.go index afec01d9..89112e00 100644 --- a/examples/radar-demo/main.go +++ b/examples/radar-demo/main.go @@ -55,7 +55,7 @@ func main() { w := 100 h := 100 r := radar.NewRadar(w, h, points, center, 10) - r.SetPos(float64(ctx.Window.Width()-w), 0) + r.SetPos(float64(ctx.Window.Bounds().X()-w), 0) for i := 0; i < 5; i++ { x, y := rand.Float64()*400, rand.Float64()*400 diff --git a/examples/rooms/main.go b/examples/rooms/main.go index 7f489a7d..6e1354b6 100644 --- a/examples/rooms/main.go +++ b/examples/rooms/main.go @@ -20,10 +20,10 @@ import ( func isOffScreen(ctx *scene.Context, char *entities.Entity) (intgeom.Dir2, bool) { x := int(char.X()) y := int(char.Y()) - if x > ctx.Window.Viewport().X()+ctx.Window.Width() { + if x > ctx.Window.Viewport().X()+ctx.Window.Bounds().X() { return intgeom.Right, true } - if y > ctx.Window.Viewport().Y()+ctx.Window.Height() { + if y > ctx.Window.Viewport().Y()+ctx.Window.Bounds().Y() { return intgeom.Down, true } if int(char.Right()) < ctx.Window.Viewport().X() { @@ -55,14 +55,14 @@ func main() { dir, ok := isOffScreen(ctx, char) if !transitioning && ok { transitioning = true - totalTransitionDelta = intgeom.Point2{ctx.Window.Width(), ctx.Window.Height()}.Mul(intgeom.Point2{dir.X(), dir.Y()}) + totalTransitionDelta = ctx.Window.Bounds().Mul(intgeom.Point2{dir.X(), dir.Y()}) transitionDelta = totalTransitionDelta.DivConst(transitionFrameCount) } if transitioning { // disable movement // move camera one size towards the player if totalTransitionDelta.X() != 0 || totalTransitionDelta.Y() != 0 { - oak.ShiftScreen(transitionDelta.X(), transitionDelta.Y()) + oak.ShiftViewport(transitionDelta) totalTransitionDelta = totalTransitionDelta.Sub(transitionDelta) } else { transitioning = false diff --git a/examples/slide/show/slide.go b/examples/slide/show/slide.go index 2fdade72..6a536c29 100644 --- a/examples/slide/show/slide.go +++ b/examples/slide/show/slide.go @@ -102,11 +102,12 @@ func Start(width, height int, slides ...Slide) { Start: func(ctx *scene.Context) { oldBackground = oak.GetBackgroundImage() oak.SetColorBackground(image.NewUniform(color.RGBA{0, 0, 0, 255})) + wbds := ctx.Window.Bounds() render.Draw( Express.NewText( "Spacebar to restart show ...", - float64(ctx.Window.Width()/2), - float64(ctx.Window.Height()-50), + float64(wbds.X()/2), + float64(wbds.Y()-50), ), ) event.GlobalBind(ctx, key.Down(key.Spacebar), func(key.Event) event.Response { diff --git a/examples/titlescreen-demo/main.go b/examples/titlescreen-demo/main.go index 3cec5149..1bb2fa6c 100644 --- a/examples/titlescreen-demo/main.go +++ b/examples/titlescreen-demo/main.go @@ -24,15 +24,15 @@ const ( func center(ctx *scene.Context, obj render.Renderable, ax Axes) { objWidth, objHeight := obj.GetDims() - + wbds := ctx.Window.Bounds() switch ax { case Both: - obj.SetPos(float64(ctx.Window.Width()/2-objWidth/2), - float64(ctx.Window.Height()-objHeight)/2) //distributive property + obj.SetPos(float64(wbds.X()/2-objWidth/2), + float64(wbds.Y()-objHeight)/2) //distributive property case X: - obj.SetPos(float64(ctx.Window.Width()-objWidth)/2, obj.Y()) + obj.SetPos(float64(wbds.X()-objWidth)/2, obj.Y()) case Y: - obj.SetPos(obj.X(), float64(ctx.Window.Height()-objHeight)/2) + obj.SetPos(obj.X(), float64(wbds.Y()-objHeight)/2) } } @@ -49,8 +49,10 @@ func main() { //tell the draw loop to draw titleText render.Draw(titleText) + wbds := ctx.Window.Bounds() + //do the same for the text with button instructions, but this time Y position is not a placeholder (X still is) - instructionText := render.NewText("press Enter to start, or press Q to quit", 0, float64(ctx.Window.Height()*3/4)) + instructionText := render.NewText("press Enter to start, or press Q to quit", 0, float64(wbds.Y()*3/4)) //this time we only center the X axis, otherwise it would overlap titleText center(ctx, instructionText, X) render.Draw(instructionText) diff --git a/examples/top-down-shooter/main.go b/examples/top-down-shooter/main.go index eb4fe402..e5c6c818 100644 --- a/examples/top-down-shooter/main.go +++ b/examples/top-down-shooter/main.go @@ -73,10 +73,7 @@ func main() { playerX = &char.Rect.Min[0] playerY = &char.Rect.Min[1] - screenCenter := floatgeom.Point2{ - float64(ctx.Window.Width()) / 2, - float64(ctx.Window.Height()) / 2, - } + screenCenter := ctx.Window.Bounds().DivConst(2) event.Bind(ctx, event.Enter, char, func(char *entities.Entity, ev event.EnterPayload) event.Response { if oak.IsDown(key.W) { @@ -93,9 +90,10 @@ func main() { } ctx.Window.(*oak.Window).DoBetweenDraws(func() { char.ShiftDelta() - oak.SetScreen( - int(char.X()-screenCenter.X()), - int(char.Y()-screenCenter.Y()), + oak.SetViewport( + screenCenter.Sub(intgeom.Point2{ + int(char.X()), int(char.Y()), + }), ) char.Delta = floatgeom.Point2{} }) From 6ec8ab7e0cf1ea8b538c8ad019d53b4f96c55d72 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 16 Apr 2022 08:39:02 -0500 Subject: [PATCH 112/146] window: document methods --- debugstream/defaultcommands.go | 2 +- examples/click-propagation/main.go | 2 ++ window/window.go | 31 +++++++++++++++++++++++++++++- 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/debugstream/defaultcommands.go b/debugstream/defaultcommands.go index 3433e175..d3c7dd8e 100644 --- a/debugstream/defaultcommands.go +++ b/debugstream/defaultcommands.go @@ -28,7 +28,7 @@ func AddCommand(c Command) error { } // AttachToStream if possible to start consuming the stream -// and executing commands per the stored infomraiton in the ScopeCommands. +// and executing commands per the stored information in the ScopeCommands. func AttachToStream(ctx context.Context, input io.Reader, output io.Writer) { checkOrCreateDefaults() DefaultCommands.AttachToStream(ctx, input, output) diff --git a/examples/click-propagation/main.go b/examples/click-propagation/main.go index 7ada4e5a..fb9b6e73 100644 --- a/examples/click-propagation/main.go +++ b/examples/click-propagation/main.go @@ -18,6 +18,8 @@ import ( // mouse event payloads to prevent mouse interactions from falling // through to lower UI elements after interacting with a higher layer +// TODO: make the boxes here more real, more like a real UI + func main() { oak.AddScene("click-propagation", scene.Scene{ Start: func(ctx *scene.Context) { diff --git a/window/window.go b/window/window.go index 9deff723..95a087f9 100644 --- a/window/window.go +++ b/window/window.go @@ -13,29 +13,58 @@ import ( type Window interface { App + // SetFullscreen causes a window to expand and fill a display. SetFullScreen(bool) error + // SetBorderless causes a window to lose its OS-provided border definitions, e.g. window title, close button. SetBorderless(bool) error + // SetTopMost causes a window to remain above other windows even when it is clicked out of. SetTopMost(bool) error + // SetTitle changes the title of this window, usually displayed in the top left of the window next to the icon. SetTitle(string) error + // SetIcon changes the icon of this window, usually displayed both in the top left of the window and in a taskbar + // component. SetIcon(image.Image) error + // MoveWindow moves a window to the given x,y coordinates with the given dimensions. + // TODO v4: intgeom.Rect2? MoveWindow(x, y, w, h int) error + // HideCursor will cause the mouse cursor to not display when it lies within this window. HideCursor() error } // App is an interface of methods available to all oak programs. type App interface { + // Bounds returns the boundaries of the application client area measured in pixels. This is not the size + // of the window or app on the operating system necessarily; it is the area able to be rendered to within oak. + // On some platforms these two concepts will usually be equal (js); on some they will have a built in scaling factor + // (osx, for retina displays), and if a window is manually scaled by a user and oak is not instructed to resize to + // match the scale, this area will be unchanged and the view will be stretched to fit the window. Bounds() intgeom.Point2 + // Viewport relates Bounds() to the entire content available for display. Viewport returns where the top left corner + // of the application client area is. Viewport() intgeom.Point2 + // SetViewportBounds defines the limits of where the viewport may be positioned. In other words, the total viewable + // content of a scene. Unless impossible, the rectangle (viewport, viewport+bounds) will never leave the area defined + // by SetViewportBounds. SetViewportBounds(intgeom.Rect2) - ShiftViewport(intgeom.Point2) + // ShiftViewport is a helper method calling a.SetViewport(a.Viewport()+delta) + ShiftViewport(delta intgeom.Point2) + // SetViewport changes where the viewport position. If the resulting rectangle (viewport, viewport+bounds) would + // exceed the boundary set by SetViewportBounds, viewport will be clamped to the edges of that boundary. SetViewport(intgeom.Point2) + // NextScene causes the End function to be triggered for the current scene. NextScene() + // GoToScene causes the End function to be triggered for the current scene, overriding the next scene to start. GoToScene(string) + // InFocus returns whether the application is currently focused on, by whatever definition the OS has for an + // application being in focus. For example, on linux/osx/windows a window is in focus once it is clicked on + // and out of focus after another window is clicked on. InFocus() bool + // Quit causes the app to cleanly exit. The current scene will not call it's End function. Quit() + // EventHandler returns this app's active event handler. EventHandler() event.Handler } From e12e9ed9ebc514878f4347754166f024dea861b0 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 16 Apr 2022 08:46:55 -0500 Subject: [PATCH 113/146] timing: combine doc file into fps.go --- timing/doc.go | 2 -- timing/fps.go | 3 ++- 2 files changed, 2 insertions(+), 3 deletions(-) delete mode 100644 timing/doc.go diff --git a/timing/doc.go b/timing/doc.go deleted file mode 100644 index 3d18ba1d..00000000 --- a/timing/doc.go +++ /dev/null @@ -1,2 +0,0 @@ -// Package timing provides utilities for time. -package timing diff --git a/timing/fps.go b/timing/fps.go index 6cc03eb6..8f924f17 100644 --- a/timing/fps.go +++ b/timing/fps.go @@ -1,3 +1,4 @@ +// Package timing provides utilities for time. package timing import ( @@ -16,7 +17,7 @@ const ( func FPS(lastTime, now time.Time) float64 { fps := 1 / now.Sub(lastTime).Seconds() // This indicates that we recorded two times within - // the innacuracy of the OS's system clock, so the values + // the inaccuracy of the OS's system clock, so the values // were the same. 1200 is chosen because on windows, // fps will be 1200 instead of a negative value. if int(fps) < 0 { From 40c7eac86b5bc554df1b4ad29dcb224d53d869b6 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 16 Apr 2022 08:53:20 -0500 Subject: [PATCH 114/146] audio/format: make importing file format parsers optional --- audio/file_formats.go | 33 --------------------------------- audio/file_load.go | 15 +++++++++++++-- audio/format/doc.go | 2 -- audio/format/flac/flac.go | 5 +++++ audio/format/mp3/mp3.go | 5 +++++ audio/format/register.go | 31 +++++++++++++++++++++++++++++++ audio/format/wav/wav.go | 5 +++++ 7 files changed, 59 insertions(+), 37 deletions(-) delete mode 100644 audio/file_formats.go delete mode 100644 audio/format/doc.go create mode 100644 audio/format/register.go diff --git a/audio/file_formats.go b/audio/file_formats.go deleted file mode 100644 index 38284083..00000000 --- a/audio/file_formats.go +++ /dev/null @@ -1,33 +0,0 @@ -package audio - -import ( - "io" - "sync" - - "github.com/oakmound/oak/v3/audio/format/flac" - "github.com/oakmound/oak/v3/audio/format/mp3" - "github.com/oakmound/oak/v3/audio/format/wav" - "github.com/oakmound/oak/v3/audio/pcm" -) - -type fileLoader func(r io.Reader) (pcm.Reader, error) - -var fileLoadersLock sync.RWMutex -var fileLoaders = map[string]func(r io.Reader) (pcm.Reader, error){ - "mp3": mp3.Load, - "wav": wav.Load, - "flac": flac.Load, -} - -func RegisterFormat(extension string, fn fileLoader) { - fileLoadersLock.Lock() - fileLoaders[extension] = fn - fileLoadersLock.Unlock() -} - -func LoaderForExtension(extension string) (fileLoader, bool) { - fileLoadersLock.RLock() - defer fileLoadersLock.RUnlock() - loader, ok := fileLoaders[extension] - return loader, ok -} diff --git a/audio/file_load.go b/audio/file_load.go index 843d1fa1..86dc48af 100644 --- a/audio/file_load.go +++ b/audio/file_load.go @@ -6,6 +6,7 @@ import ( "golang.org/x/sync/errgroup" + "github.com/oakmound/oak/v3/audio/format" "github.com/oakmound/oak/v3/audio/pcm" "github.com/oakmound/oak/v3/dlog" "github.com/oakmound/oak/v3/fileutil" @@ -38,9 +39,19 @@ func (c *Cache) Load(file string) (pcm.Reader, error) { ext := filepath.Ext(file) ext = strings.ToLower(ext) - reader, ok := LoaderForExtension(ext) + reader, ok := format.LoaderForExtension(ext) if !ok { - return nil, oakerr.UnsupportedFormat{Format: filepath.Ext(file)} + // provide an error message suggesting a missing import for cases where we know about a + // common provider + knownFormats := map[string]string{ + ".mp3": "github.com/oakmound/oak/v4/audio/format/mp3", + ".flac": "github.com/oakmound/oak/v4/audio/format/flac", + ".wav": "github.com/oakmound/oak/v4/audio/format/wav", + } + if path, ok := knownFormats[ext]; ok { + dlog.Error("unable to parse audio format %v, did you mean to import %v?", ext, path) + } + return nil, oakerr.UnsupportedFormat{Format: ext} } r, err := reader(f) if err != nil { diff --git a/audio/format/doc.go b/audio/format/doc.go deleted file mode 100644 index 91df2189..00000000 --- a/audio/format/doc.go +++ /dev/null @@ -1,2 +0,0 @@ -// Package format provides audio file and format parsers -package format diff --git a/audio/format/flac/flac.go b/audio/format/flac/flac.go index 46858383..5f392873 100644 --- a/audio/format/flac/flac.go +++ b/audio/format/flac/flac.go @@ -6,9 +6,14 @@ import ( "io" "github.com/eaburns/flac" + "github.com/oakmound/oak/v3/audio/format" "github.com/oakmound/oak/v3/audio/pcm" ) +func init() { + format.Register(".flac", Load) +} + // Load loads flac data from the incoming reader as an audio func Load(r io.Reader) (pcm.Reader, error) { d, err := flac.NewDecoder(r) diff --git a/audio/format/mp3/mp3.go b/audio/format/mp3/mp3.go index c19a721d..57a41558 100644 --- a/audio/format/mp3/mp3.go +++ b/audio/format/mp3/mp3.go @@ -4,11 +4,16 @@ package mp3 import ( "io" + "github.com/oakmound/oak/v3/audio/format" "github.com/oakmound/oak/v3/audio/pcm" "github.com/hajimehoshi/go-mp3" ) +func init() { + format.Register(".mp3", Load) +} + // Load loads an mp3-encoded reader into an audio func Load(r io.Reader) (pcm.Reader, error) { d, err := mp3.NewDecoder(r) diff --git a/audio/format/register.go b/audio/format/register.go new file mode 100644 index 00000000..9c21136b --- /dev/null +++ b/audio/format/register.go @@ -0,0 +1,31 @@ +// Package format provides audio file and format parsers +package format + +import ( + "io" + "sync" + + "github.com/oakmound/oak/v3/audio/pcm" +) + +// A Loader can parse the data from an io.Reader and convert it into PCM encoded audio data with +// a known format. +type Loader func(r io.Reader) (pcm.Reader, error) + +var fileLoadersLock sync.RWMutex +var fileLoaders = map[string]func(r io.Reader) (pcm.Reader, error){} + +// Register registers a format by file extension with its preceding period to a parsing function. +func Register(extension string, fn Loader) { + fileLoadersLock.Lock() + fileLoaders[extension] = fn + fileLoadersLock.Unlock() +} + +// LoaderForExtension returns a previously registered loader for a given extension string. +func LoaderForExtension(extension string) (Loader, bool) { + fileLoadersLock.RLock() + defer fileLoadersLock.RUnlock() + loader, ok := fileLoaders[extension] + return loader, ok +} diff --git a/audio/format/wav/wav.go b/audio/format/wav/wav.go index 03a19362..b825f7f6 100644 --- a/audio/format/wav/wav.go +++ b/audio/format/wav/wav.go @@ -6,9 +6,14 @@ import ( "encoding/binary" + "github.com/oakmound/oak/v3/audio/format" "github.com/oakmound/oak/v3/audio/pcm" ) +func init() { + format.Register(".wav", Load) +} + // Read reads a WAV header from the provided reader, returning the PCM format and // leaving the PCM data in the reader available for consumption. func Load(r io.Reader) (pcm.Reader, error) { From 870815e3346f9a83a4f3737cd900e891ead68da1 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 16 Apr 2022 12:39:08 -0500 Subject: [PATCH 115/146] examples/text-demos: reduce speed of color changing currently is a seizure hazard --- .../color-changing-text-demo/main.go | 32 ++++++++-------- .../text-demos/continual-text-demo/main.go | 38 +++++++++---------- 2 files changed, 34 insertions(+), 36 deletions(-) diff --git a/examples/text-demos/color-changing-text-demo/main.go b/examples/text-demos/color-changing-text-demo/main.go index 5f425632..13e7927d 100644 --- a/examples/text-demos/color-changing-text-demo/main.go +++ b/examples/text-demos/color-changing-text-demo/main.go @@ -7,6 +7,7 @@ import ( "strconv" "github.com/oakmound/oak/v3/alg/range/floatrange" + "github.com/oakmound/oak/v3/event" "image" @@ -32,7 +33,7 @@ func (fs floatStringer) String() string { func main() { oak.AddScene("demo", - scene.Scene{Start: func(*scene.Context) { + scene.Scene{Start: func(ctx *scene.Context) { render.Draw(render.NewDrawFPS(0.25, nil, 10, 10)) fg := render.FontGenerator{ File: path.Join("assets", "font", "luxisbi.ttf"), @@ -62,21 +63,20 @@ func main() { render.Draw(font2.NewText("g", 280, 260), 0) render.Draw(font2.NewText("b", 400, 260), 0) - go func() { - for { - r = limit.EnforceRange(r + diff.Poll()) - g = limit.EnforceRange(g + diff.Poll()) - b = limit.EnforceRange(b + diff.Poll()) - font.Drawer.Src = image.NewUniform( - color.RGBA{ - uint8(r), - uint8(g), - uint8(b), - 255, - }, - ) - } - }() + event.GlobalBind(ctx, event.Enter, func(_ event.EnterPayload) event.Response { + r = limit.EnforceRange(r + diff.Poll()) + g = limit.EnforceRange(g + diff.Poll()) + b = limit.EnforceRange(b + diff.Poll()) + font.Drawer.Src = image.NewUniform( + color.RGBA{ + uint8(r), + uint8(g), + uint8(b), + 255, + }, + ) + return 0 + }) }, }) oak.SetFS(assets) diff --git a/examples/text-demos/continual-text-demo/main.go b/examples/text-demos/continual-text-demo/main.go index afe8cf38..4799304d 100644 --- a/examples/text-demos/continual-text-demo/main.go +++ b/examples/text-demos/continual-text-demo/main.go @@ -6,6 +6,7 @@ import ( "github.com/oakmound/oak/v3/alg/range/floatrange" "github.com/oakmound/oak/v3/dlog" + "github.com/oakmound/oak/v3/event" "image" @@ -40,7 +41,7 @@ func randomStr(chars int) string { func main() { oak.AddScene("demo", - scene.Scene{Start: func(*scene.Context) { + scene.Scene{Start: func(ctx *scene.Context) { render.Draw(render.NewDrawFPS(.25, nil, 10, 10)) r = 255 @@ -61,26 +62,23 @@ func main() { render.Draw(strs[len(strs)-1], 0) } - go func() { - for { - r = limit.EnforceRange(r + diff.Poll()) - g = limit.EnforceRange(g + diff.Poll()) - b = limit.EnforceRange(b + diff.Poll()) - // This should be a function in oak to just set color source - // (or texture source) - font.Drawer.Src = image.NewUniform( - color.RGBA{ - uint8(r), - uint8(g), - uint8(b), - 255, - }, - ) - for _, st := range strs { - st.SetString(randomStr(strlen)) - } + event.GlobalBind(ctx, event.Enter, func(_ event.EnterPayload) event.Response { + r = limit.EnforceRange(r + diff.Poll()) + g = limit.EnforceRange(g + diff.Poll()) + b = limit.EnforceRange(b + diff.Poll()) + font.Drawer.Src = image.NewUniform( + color.RGBA{ + uint8(r), + uint8(g), + uint8(b), + 255, + }, + ) + for _, st := range strs { + st.SetString(randomStr(strlen)) } - }() + return 0 + }) }, }) render.SetDrawStack( From 300b87afd7b44b77a4dc5046163c91b09f9f6c43 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 16 Apr 2022 12:55:28 -0500 Subject: [PATCH 116/146] audio: doc pass --- audio/driver.go | 3 +- audio/fade.go | 2 + audio/file_load.go | 4 +- audio/format/ceol/ceol.go | 21 -------- audio/format/flac/flac.go | 13 ++++- audio/format/mp3/mp3.go | 12 ++++- audio/format/register.go | 4 +- audio/format/wav/wav.go | 13 ++++- audio/internal/dsound/dsound.go | 1 - audio/pcm/interface.go | 14 +++-- audio/play.go | 3 ++ audio/synth/filter.go | 22 -------- audio/synth/option.go | 35 ++++++++++--- audio/synth/pitch.go | 92 +++++++++++++++------------------ audio/synth/waves.go | 87 ++++++++++++++++--------------- examples/piano/main.go | 4 +- 16 files changed, 172 insertions(+), 158 deletions(-) delete mode 100644 audio/synth/filter.go diff --git a/audio/driver.go b/audio/driver.go index fb860a86..b59f5e18 100644 --- a/audio/driver.go +++ b/audio/driver.go @@ -1,7 +1,6 @@ package audio -// A Driver defines the underlying interface that should be used for initializing PCM audio writers -// by this package. +// A Driver defines the underlying interface that should be used for initializing PCM audio writers. type Driver int const ( diff --git a/audio/fade.go b/audio/fade.go index 8abc91e2..b4e14df6 100644 --- a/audio/fade.go +++ b/audio/fade.go @@ -6,6 +6,7 @@ import ( "github.com/oakmound/oak/v3/audio/pcm" ) +// FadeIn wraps a reader such that it will linearly fades in over the given duration. func FadeIn(dur time.Duration, in pcm.Reader) pcm.Reader { perSec := in.PCMFormat().BytesPerSecond() bytesToFadeIn := int((time.Duration(perSec) / 1000) * (dur / time.Millisecond)) @@ -74,6 +75,7 @@ func (fir *fadeInReader) ReadPCM(b []byte) (n int, err error) { return read, nil } +// FadeOut wraps a reader such that it will linearly fades out over the given duration. func FadeOut(dur time.Duration, in pcm.Reader) pcm.Reader { perSec := in.PCMFormat().BytesPerSecond() bytestoFadeOut := int((time.Duration(perSec) / 1000) * (dur / time.Millisecond)) diff --git a/audio/file_load.go b/audio/file_load.go index 86dc48af..0c1a8e94 100644 --- a/audio/file_load.go +++ b/audio/file_load.go @@ -61,8 +61,8 @@ func (c *Cache) Load(file string) (pcm.Reader, error) { return r, nil } -// BatchLoad attempts to load all files within a given directory -// depending on their file ending +// BatchLoad attempts to load all audio files within a given directory +// should their file ending match a registered audio file parser func BatchLoad(baseFolder string) error { return batchLoad(baseFolder, false) } diff --git a/audio/format/ceol/ceol.go b/audio/format/ceol/ceol.go index ff024a7a..75f1d461 100644 --- a/audio/format/ceol/ceol.go +++ b/audio/format/ceol/ceol.go @@ -61,27 +61,6 @@ type Filter struct { LPFResonance int } -// ChordPattern converts a Ceol's patterns and arrangement into a playable chord -// pattern for sequences -// func (c Ceol) ChordPattern() sequence.ChordPattern { -// chp := sequence.ChordPattern{} -// chp.Pitches = make([][]synth.Pitch, c.PatternLength*len(c.Arrangement)) -// chp.Holds = make([][]time.Duration, c.PatternLength*len(c.Arrangement)) -// for i, m := range c.Arrangement { -// for _, p := range m { -// if p != -1 { -// for _, n := range c.Patterns[p].Notes { -// chp.Pitches[n.Offset+i*c.PatternLength] = -// append(chp.Pitches[n.Offset+i*c.PatternLength], synth.NoteFromIndex(n.PitchIndex)) -// chp.Holds[n.Offset+i*c.PatternLength] = -// append(chp.Holds[n.Offset+i*c.PatternLength], DurationFromQuarters(c.Bpm, n.Length)) -// } -// } -// } -// } -// return chp -// } - // DurationFromQuarters should not be here, should be in a package // managing bpm and time // Duration from quarters expects four quarters to occur per beat, diff --git a/audio/format/flac/flac.go b/audio/format/flac/flac.go index 5f392873..7db92455 100644 --- a/audio/format/flac/flac.go +++ b/audio/format/flac/flac.go @@ -1,4 +1,12 @@ // Package flac provides functionality to handle .flac files and .flac encoded data. +// +// +// This package may be imported solely to register flacs as a parseable file type within oak: +// +// import ( +// _ "github.com/oakmound/oak/v4/audio/format/flac" +// ) +// package flac import ( @@ -14,7 +22,10 @@ func init() { format.Register(".flac", Load) } -// Load loads flac data from the incoming reader as an audio +// Load reads a FLAC header from a reader, parsing it's PCM format and returning +// a pcm Reader for the data following the header. It will error if the reader +// does not contain enough data to fill a FLAC header or if the header does not +// look like a FLAC header. func Load(r io.Reader) (pcm.Reader, error) { d, err := flac.NewDecoder(r) if err != nil { diff --git a/audio/format/mp3/mp3.go b/audio/format/mp3/mp3.go index 57a41558..7a6bdf30 100644 --- a/audio/format/mp3/mp3.go +++ b/audio/format/mp3/mp3.go @@ -1,4 +1,11 @@ // Package mp3 provides functionality to handle .mp3 files and .mp3 encoded data. +// +// This package may be imported solely to register mp3s as a parseable file type within oak: +// +// import ( +// _ "github.com/oakmound/oak/v4/audio/format/mp3" +// ) +// package mp3 import ( @@ -14,7 +21,10 @@ func init() { format.Register(".mp3", Load) } -// Load loads an mp3-encoded reader into an audio +// Load reads MP3 data from a reader, parsing it's PCM format and returning +// a pcm Reader for the data contained within. It will error if the reader +// does not contain enough data to fill a file header. The resulting format +// will always be 16 bits and 2 channels. func Load(r io.Reader) (pcm.Reader, error) { d, err := mp3.NewDecoder(r) if err != nil { diff --git a/audio/format/register.go b/audio/format/register.go index 9c21136b..c2dabbc5 100644 --- a/audio/format/register.go +++ b/audio/format/register.go @@ -15,14 +15,14 @@ type Loader func(r io.Reader) (pcm.Reader, error) var fileLoadersLock sync.RWMutex var fileLoaders = map[string]func(r io.Reader) (pcm.Reader, error){} -// Register registers a format by file extension with its preceding period to a parsing function. +// Register registers a format by file extension (eg '.mp3') with its parsing function. func Register(extension string, fn Loader) { fileLoadersLock.Lock() fileLoaders[extension] = fn fileLoadersLock.Unlock() } -// LoaderForExtension returns a previously registered loader for a given extension string. +// LoaderForExtension returns a previously registered loader. func LoaderForExtension(extension string) (Loader, bool) { fileLoadersLock.RLock() defer fileLoadersLock.RUnlock() diff --git a/audio/format/wav/wav.go b/audio/format/wav/wav.go index b825f7f6..c66e953d 100644 --- a/audio/format/wav/wav.go +++ b/audio/format/wav/wav.go @@ -1,4 +1,11 @@ // Package wav provides functionality to handle .wav files and .wav encoded data. +// +// This package may be imported solely to register wavs as a parseable file type within oak: +// +// import ( +// _ "github.com/oakmound/oak/v4/audio/format/wav" +// ) +// package wav import ( @@ -14,8 +21,10 @@ func init() { format.Register(".wav", Load) } -// Read reads a WAV header from the provided reader, returning the PCM format and -// leaving the PCM data in the reader available for consumption. +// Load reads a WAV header from a reader, parsing it's PCM format and returning +// a pcm Reader for the data following the header. It will error if the reader +// does not contain enough data to fill a WAV header. It does not validate that the +// WAV header makes sense. func Load(r io.Reader) (pcm.Reader, error) { data, err := readData(r) if err != nil { diff --git a/audio/internal/dsound/dsound.go b/audio/internal/dsound/dsound.go index 96472a3f..0064033e 100644 --- a/audio/internal/dsound/dsound.go +++ b/audio/internal/dsound/dsound.go @@ -23,7 +23,6 @@ var cfg Config var initLock sync.Mutex // Init initializes directsound or returns an already intialized direct sound instance. -// It may (but should probably not) be called outside of other oakmound/oak/* packages. func Init() (Config, error) { initLock.Lock() defer initLock.Unlock() diff --git a/audio/pcm/interface.go b/audio/pcm/interface.go index e5fcf3ae..73ef5737 100644 --- a/audio/pcm/interface.go +++ b/audio/pcm/interface.go @@ -1,7 +1,10 @@ // Package pcm provides a interface for interacting with PCM audio streams package pcm -import "io" +import ( + "fmt" + "io" +) var _ Reader = &IOReader{} @@ -25,7 +28,7 @@ func (ior *IOReader) ReadPCM(p []byte) (n int, err error) { type Writer interface { io.Closer Formatted - // WritePCM expects PCM bytes matching the format this speaker was initialized with. + // WritePCM expects PCM bytes matching this Writer's format. // WritePCM will block until all of the bytes are consumed. WritePCM([]byte) (n int, err error) } @@ -67,7 +70,7 @@ func (f Format) SampleSize() int { // ReadFloat reads a single sample from an audio stream, respecting bits and channels: // f.Bits / 8 bytes * f.Channels bytes will be read from b, and this count will be returned as 'read'. // the length of values will be equal to f.Channels, if no error is returned. If an error is returned, -// it will be io.ErrUnexpectedEOF. If bits is an unexpected value +// it will be io.ErrUnexpectedEOF or ErrUnsupportedBits func (f Format) SampleFloat(b []byte) (values []float64, read int, err error) { values = make([]float64, 0, f.Channels) read = f.SampleSize() @@ -95,6 +98,11 @@ func (f Format) SampleFloat(b []byte) (values []float64, read int, err error) { int32(b[i+3])<<24 values = append(values, float64(v)) } + default: + return nil, read, ErrUnsupportedBits } return } + +// ErrUnsupportedBits represents that the Bits value for a Format was not supported for some operation. +var ErrUnsupportedBits = fmt.Errorf("unsupported bits in pcm format") diff --git a/audio/play.go b/audio/play.go index 0cf822ac..90baf501 100644 --- a/audio/play.go +++ b/audio/play.go @@ -32,8 +32,11 @@ type PlayOption func(*PlayOptions) // PlayOptions define ways to configure how playback of some audio proceeds type PlayOptions struct { + // If FadeOutOnStop is non-zero, when this play is stopped early it will fade out for this duration. FadeOutOnStop time.Duration + // If Destination is not provided, Play will create a new writer which will be + // closed after Play is complete. Destination pcm.Writer // The span of data that should be copied from reader to writer diff --git a/audio/synth/filter.go b/audio/synth/filter.go deleted file mode 100644 index 40c863db..00000000 --- a/audio/synth/filter.go +++ /dev/null @@ -1,22 +0,0 @@ -package synth - -// Detune detunes between -1.0 and 1.0, 1.0 representing a half step up. -// Q: What is detuning? A: It's taking the pitch of the audio and adjusting it less than -// a single tone up or down. If you detune too far, you've just made the next pitch, -// but if you detune a little, you get a resonant sound. -func Detune(percent float64) func(src Source) Source { - return func(src Source) Source { - curPitch := src.Pitch - var nextPitch Pitch - if percent > 0 { - nextPitch = curPitch.Up(HalfStep) - } else { - nextPitch = curPitch.Down(HalfStep) - } - rawDelta := float64(int16(curPitch) - int16(nextPitch)) - delta := rawDelta * percent - // TODO: does pitch need to be a float? - src.Pitch = Pitch(float64(curPitch) + delta) - return src - } -} diff --git a/audio/synth/option.go b/audio/synth/option.go index 59300db7..c2e64dbe 100644 --- a/audio/synth/option.go +++ b/audio/synth/option.go @@ -16,12 +16,12 @@ func Duration(t time.Duration) Option { // Volume sets the volume of a generated waveform. It guarantees that 0 <= v <= 1 // (silent <= v <= max volume) func Volume(v float64) Option { + if v > 1.0 { + v = 1.0 + } else if v < 0 { + v = 0 + } return func(s Source) Source { - if v > 1.0 { - v = 1.0 - } else if v < 0 { - v = 0 - } s.Volume = v return s } @@ -35,7 +35,7 @@ func AtPitch(p Pitch) Option { } } -// Mono sets the format to play mono audio. +// Mono sets a synth source to play mono audio. func Mono() Option { return func(s Source) Source { s.Channels = 1 @@ -43,10 +43,31 @@ func Mono() Option { } } -// Stereo sets the format to play stereo audio. +// Stereo sets a synth source to play stereo audio. func Stereo() Option { return func(s Source) Source { s.Channels = 2 return s } } + +// Detune detunes between -1.0 and 1.0, 1.0 representing a half step up. +// Q: What is detuning? A: It's taking the pitch of the audio and adjusting it less than +// a single tone up or down. If you detune too far, you've just made the next pitch, +// but if you detune a little, you get a resonant sound. +func Detune(percent float64) Option { + return func(src Source) Source { + curPitch := src.Pitch + var nextPitch Pitch + if percent > 0 { + nextPitch = curPitch.Up(HalfStep) + } else { + nextPitch = curPitch.Down(HalfStep) + } + rawDelta := float64(int16(curPitch) - int16(nextPitch)) + delta := rawDelta * percent + // TODO: does pitch need to be a float? + src.Pitch = Pitch(float64(curPitch) + delta) + return src + } +} diff --git a/audio/synth/pitch.go b/audio/synth/pitch.go index 7fecbb17..da844d82 100644 --- a/audio/synth/pitch.go +++ b/audio/synth/pitch.go @@ -6,14 +6,13 @@ import ( "github.com/oakmound/oak/v3/audio/pcm" ) -// A Pitch is a helper type for synth functions so -// a user can write A4 instead of a frequency value -// for a desired tone +// A Pitch is a frequency value which represents how fast a wave should oscillate to produce a specific tone. type Pitch uint16 -// Pitch frequencies -// Values taken from http://peabody.sapp.org/class/st2/lab/notehz/ +// Pitch frequencies, taken from http://peabody.sapp.org/class/st2/lab/notehz/ +// These span octave 0 through octave 8, with sharps suffixed 's' and flats suffixed 'b' const ( + // 0 is reserved as representing a 'rest' for the purpose of composition Rest Pitch = 0 C0 Pitch = 16 C0s Pitch = 17 @@ -588,12 +587,6 @@ func (p Pitch) Down(s Step) Pitch { return allPitches[i-int(s)] } -// NoteFromIndex is a utility for pitch converters that for some reason have -// integers representing their notes to get a pitch from said integer -func NoteFromIndex(i int) Pitch { - return allPitches[i] -} - // IsAccidental reports true if this pitch is represented with a single sharp or a flat, usually. func (p Pitch) IsAccidental() bool { _, ok := accidentals[p] @@ -605,26 +598,25 @@ type PitchDetector struct { format pcm.Format - // Will be 0 if unknown - DetectedPitch Pitch - DetectedRawPitch float64 - - // Channel defines which audio channel (0 for mono, 0-1 for stereo) should - // be analyzed. ReadPCM will panic if this value is invalid. If this scares you, - // don't change this value-- the consequence is that a specific channel for stereo - // audio will be analyzed, which won't be a problem unless you're running this on - // Queen's The Prophet's Song - Channel int + // DetectedPitches and DetectedRawPitches store the calculated pitch values as this reader parses data. The length + // of these slices will be equal to this reader's format's channel count. Consumers should not modify these slices. + DetectedPitches []Pitch + DetectedRawPitches []float64 - index int - lastValue float64 - crossedZero bool + indices []int + lastValues []float64 + crossedZero []bool } func NewPitchDetector(r pcm.Reader) *PitchDetector { return &PitchDetector{ - Reader: r, - format: r.PCMFormat(), + Reader: r, + format: r.PCMFormat(), + DetectedPitches: make([]Pitch, r.PCMFormat().Channels), + DetectedRawPitches: make([]float64, r.PCMFormat().Channels), + indices: make([]int, r.PCMFormat().Channels), + lastValues: make([]float64, r.PCMFormat().Channels), + crossedZero: make([]bool, r.PCMFormat().Channels), } } @@ -633,39 +625,37 @@ func (pd *PitchDetector) ReadPCM(b []byte) (n int, err error) { if err != nil { return n, err } - var lastValue float64 var read int sampleSize := pd.format.SampleSize() for len(b[read:]) > sampleSize { - pd.index++ vals, valReadBytes, err := pd.format.SampleFloat(b[read:]) if err != nil { break } read += valReadBytes - // ignore stereo audio; sorry it makes this really complicated - val := vals[pd.Channel] - if lastValue < 0 && val > 0 || val < 0 && lastValue > 0 { - // we've crossed zero - if !pd.crossedZero { - pd.crossedZero = true - } else { - // assuming this is pitched audio (if it isn't we can't give a correct answer), - // pd.index is now the number of samples since the last time this audio - // stream crossed zero. The second last time this audio stream crossed zero defines how - // frequently this audio is cycling-- the speed the audio cycles at defines the pitch - // of the audio in hertz; our pitch constants above are also defined in hertz. - periodLength := pd.index * 2 - samplesPerSecond := pd.format.SampleRate - periodHz := 1 / (float64(periodLength) / float64(samplesPerSecond)) - pd.DetectedRawPitch = periodHz - pd.DetectedPitch = Pitch(periodHz).Round() + for i, val := range vals { + pd.indices[i]++ + if pd.lastValues[i] < 0 && val > 0 || val < 0 && pd.lastValues[i] > 0 { + // we've crossed zero + if !pd.crossedZero[i] { + pd.crossedZero[i] = true + } else { + // assuming this is pitched audio (if it isn't we can't give a correct answer), + // pd.index is now the number of samples since the last time this audio + // stream crossed zero. The second last time this audio stream crossed zero defines how + // frequently this audio is cycling-- the speed the audio cycles at defines the pitch + // of the audio in hertz; our pitch constants above are also defined in hertz. + periodLength := pd.indices[i] * 2 + samplesPerSecond := pd.format.SampleRate + periodHz := 1 / (float64(periodLength) / float64(samplesPerSecond)) + pd.DetectedRawPitches[i] = periodHz + pd.DetectedPitches[i] = Pitch(periodHz).Round() + } + pd.indices[i] = 0 } - pd.index = 0 + pd.lastValues[i] = val } - lastValue = val } - pd.lastValue = lastValue return } @@ -676,17 +666,17 @@ func (pd *PitchDetector) ReadPCM(b []byte) (n int, err error) { // fmt.Println(hz2, int(hz2))) // "C6", 1047 // } // -func (hz Pitch) Round() Pitch { +func (p Pitch) Round() Pitch { // binary search i := sort.Search(len(allPitches)-1, func(i int) bool { - return Pitch(hz) < allPitches[i] + return p < allPitches[i] }) // adjust for near matches // we know hz < allPitches[i] if i == 0 { return allPitches[i] } - if hz-allPitches[i-1] < allPitches[i]-hz { + if p-allPitches[i-1] < allPitches[i]-p { return allPitches[i-1] } return allPitches[i] diff --git a/audio/synth/waves.go b/audio/synth/waves.go index 64b92d58..9e31336b 100644 --- a/audio/synth/waves.go +++ b/audio/synth/waves.go @@ -17,10 +17,10 @@ func phase(freq Pitch, i int, sampleRate uint32) float64 { } // Sin produces a Sin wave -// __ -// -- -- -// / \ -//--__-- --__-- +// __ +// -- -- +// / \ +// --__-- --__-- func (s Source) Sin(opts ...Option) pcm.Reader { return s.Wave(Source.SinWave, opts...) } @@ -37,9 +37,9 @@ func (s Source) Square(opts ...Option) pcm.Reader { // pulse the time up and down will change so that 1/pulse time the wave will // be up. // -// __ __ -// || || -// ____||____||____ +// __ __ +// || || +// ____||____||____ func (s Source) Pulse(pulse float64) func(opts ...Option) pcm.Reader { return func(opts ...Option) pcm.Reader { return s.Wave(PulseWave(pulse), opts...) @@ -58,9 +58,9 @@ func PulseWave(pulse float64) Waveform { // Saw produces a saw wave // -// ^ ^ ^ -// / | / | / -// / |/ |/ +// ^ ^ ^ +// / | / | / +// / |/ |/ func (s Source) Saw(opts ...Option) pcm.Reader { return s.Wave(Source.SawWave, opts...) } @@ -71,9 +71,9 @@ func (s Source) SawWave(idx int) float64 { // Triangle produces a Triangle wave // -// ^ ^ -// / \ / \ -// v v v +// ^ ^ +// / \ / \ +// v v v func (s Source) Triangle(opts ...Option) pcm.Reader { return s.Wave(Source.TriangleWave, opts...) } @@ -87,12 +87,14 @@ func (s Source) TriangleWave(idx int) float64 { return 3*s.Volume - m } +// Noise produces random audio data. func (s Source) Noise(opts ...Option) pcm.Reader { return s.Wave(Source.NoiseWave, opts...) } var _ Waveform = Source.NoiseWave +// NoiseWave returns noise pcm data bounded by this source's volume. func (s Source) NoiseWave(idx int) float64 { return ((rand.Float64() * 2) - 1) * s.Volume } @@ -101,34 +103,16 @@ func (s Source) modPhase(idx int) float64 { return math.Mod(s.Phase(idx), 2*math.Pi) } -// Could have pulse triangle - -type Wave8Reader struct { - Source - lastIndex int - waveFunc func(s Source, idx int) int8 -} - -func (pr *Wave8Reader) ReadPCM(b []byte) (n int, err error) { - bytesPerI8 := int(pr.Channels) - for i := 0; i+bytesPerI8 <= len(b); i += bytesPerI8 { - i8 := pr.waveFunc(pr.Source, pr.lastIndex) - pr.lastIndex++ - for c := 0; c < int(pr.Channels); c++ { - b[i+c] = byte(i8) - } - n += bytesPerI8 - } - return -} - +// A Waveform is a function that can report a point of audio data given some source parameters for generating the audio +// and an index of where in the generated waveform the requested point lies type Waveform func(s Source, idx int) float64 +// Wave converts a waveform function into a pcm.Reader func (s Source) Wave(waveFn Waveform, opts ...Option) pcm.Reader { switch s.Bits { case 8: s.Volume *= math.MaxInt8 - return &Wave8Reader{ + return &wave8Reader{ Source: s.Update(opts...), waveFunc: func(s Source, idx int) int8 { return int8(waveFn(s, idx)) @@ -136,7 +120,7 @@ func (s Source) Wave(waveFn Waveform, opts ...Option) pcm.Reader { } case 32: s.Volume *= math.MaxInt32 - return &Wave32Reader{ + return &wave32Reader{ Source: s.Update(opts...), waveFunc: func(s Source, idx int) int32 { return int32(waveFn(s, idx)) @@ -146,7 +130,7 @@ func (s Source) Wave(waveFn Waveform, opts ...Option) pcm.Reader { fallthrough default: s.Volume *= math.MaxInt16 - return &Wave16Reader{ + return &wave16Reader{ Source: s.Update(opts...), waveFunc: func(s Source, idx int) int16 { return int16(waveFn(s, idx)) @@ -155,6 +139,8 @@ func (s Source) Wave(waveFn Waveform, opts ...Option) pcm.Reader { } } +// MultiWave converts a series of waveform functions into a combined reader, outputting the average +// of all of the source waveforms at any given index func (s Source) MultiWave(waveFns []Waveform, opts ...Option) pcm.Reader { return s.Wave(func(s Source, idx int) float64 { var out float64 @@ -166,13 +152,32 @@ func (s Source) MultiWave(waveFns []Waveform, opts ...Option) pcm.Reader { }, opts...) } -type Wave16Reader struct { +type wave8Reader struct { + Source + lastIndex int + waveFunc func(s Source, idx int) int8 +} + +func (pr *wave8Reader) ReadPCM(b []byte) (n int, err error) { + bytesPerI8 := int(pr.Channels) + for i := 0; i+bytesPerI8 <= len(b); i += bytesPerI8 { + i8 := pr.waveFunc(pr.Source, pr.lastIndex) + pr.lastIndex++ + for c := 0; c < int(pr.Channels); c++ { + b[i+c] = byte(i8) + } + n += bytesPerI8 + } + return +} + +type wave16Reader struct { Source lastIndex int waveFunc func(s Source, idx int) int16 } -func (pr *Wave16Reader) ReadPCM(b []byte) (n int, err error) { +func (pr *wave16Reader) ReadPCM(b []byte) (n int, err error) { bytesPerI16 := int(pr.Channels) * 2 for i := 0; i+bytesPerI16 <= len(b); i += bytesPerI16 { i16 := pr.waveFunc(pr.Source, pr.lastIndex) @@ -186,13 +191,13 @@ func (pr *Wave16Reader) ReadPCM(b []byte) (n int, err error) { return } -type Wave32Reader struct { +type wave32Reader struct { Source lastIndex int waveFunc func(s Source, idx int) int32 } -func (pr *Wave32Reader) ReadPCM(b []byte) (n int, err error) { +func (pr *wave32Reader) ReadPCM(b []byte) (n int, err error) { bytesPerF32 := int(pr.Channels) * 4 for i := 0; i+bytesPerF32 <= len(b); i += bytesPerF32 { i32 := pr.waveFunc(pr.Source, pr.lastIndex) diff --git a/examples/piano/main.go b/examples/piano/main.go index 85f9a9eb..0af325a2 100644 --- a/examples/piano/main.go +++ b/examples/piano/main.go @@ -224,8 +224,8 @@ func main() { render.Draw(monitor) pitchDetector := synth.NewPitchDetector(r) - pt.pitch = &pitchDetector.DetectedPitch - ft.f64 = &pitchDetector.DetectedRawPitch + pt.pitch = &pitchDetector.DetectedPitches[0] + ft.f64 = &pitchDetector.DetectedRawPitches[0] audio.Play(gctx, pitchDetector, func(po *audio.PlayOptions) { po.Destination = monitor From 68c632467a02a8aaf8d0cf169b108a58560cc040 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 16 Apr 2022 12:56:16 -0500 Subject: [PATCH 117/146] render: enable not importing image loaders and gift via build flags --- entities/entity.go | 8 -------- entities/opts_gen.go | 7 ------- render/decoder.go | 21 ++------------------- render/default_decoders.go | 26 ++++++++++++++++++++++++++ render/mod/gift.go | 18 ++++++++++++++++++ render/mod/mod.go | 17 ----------------- scene/transition.go | 14 -------------- scene/transition_gift.go | 24 ++++++++++++++++++++++++ 8 files changed, 70 insertions(+), 65 deletions(-) create mode 100644 render/default_decoders.go create mode 100644 scene/transition_gift.go diff --git a/entities/entity.go b/entities/entity.go index f6e4f60d..ce28ea84 100644 --- a/entities/entity.go +++ b/entities/entity.go @@ -22,8 +22,6 @@ type Generator struct { Color color.Color Renderable render.Renderable - ScaleRenderable *mod.Resampling - Mod mod.Mod Label collision.Label @@ -243,12 +241,6 @@ func New(ctx *scene.Context, opts ...Option) *Entity { e.Renderable = m.Modify(g.Mod) } - if g.ScaleRenderable != nil { - if m, ok := g.Renderable.(render.Modifiable); ok { - e.Renderable = m.Modify(mod.Resize(int(g.Dimensions[0]), int(g.Dimensions[1]), *g.ScaleRenderable)) - } - } - e.Renderable.SetPos(e.X(), e.Y()) if g.Parent == nil { diff --git a/entities/opts_gen.go b/entities/opts_gen.go index 1be9efbf..b3519ff9 100644 --- a/entities/opts_gen.go +++ b/entities/opts_gen.go @@ -56,13 +56,6 @@ func WithRenderable(v render.Renderable) Option { } } -func WithScaleRenderable(v *mod.Resampling) Option { - return func(s Generator) Generator { - s.ScaleRenderable = v - return s - } -} - func WithMod(v mod.Mod) Option { return func(s Generator) Generator { s.Mod = v diff --git a/render/decoder.go b/render/decoder.go index 81a17755..ad57b7cf 100644 --- a/render/decoder.go +++ b/render/decoder.go @@ -2,14 +2,9 @@ package render import ( "image" - "image/gif" - "image/jpeg" - "image/png" "io" "github.com/oakmound/oak/v3/oakerr" - - "golang.org/x/image/bmp" ) // Decoder functions convert arbitrary readers to images. @@ -22,20 +17,8 @@ type Decoder func(io.Reader) (image.Image, error) type CfgDecoder func(io.Reader) (image.Config, error) var ( - fileDecoders = map[string]Decoder{ - ".jpeg": jpeg.Decode, - ".jpg": jpeg.Decode, - ".gif": gif.Decode, - ".png": png.Decode, - ".bmp": bmp.Decode, - } - cfgDecoders = map[string]CfgDecoder{ - ".jpeg": jpeg.DecodeConfig, - ".jpg": jpeg.DecodeConfig, - ".gif": gif.DecodeConfig, - ".png": png.DecodeConfig, - ".bmp": bmp.DecodeConfig, - } + fileDecoders = map[string]Decoder{} + cfgDecoders = map[string]CfgDecoder{} ) // RegisterDecoder adds a decoder to the set of image decoders diff --git a/render/default_decoders.go b/render/default_decoders.go new file mode 100644 index 00000000..ea0c1ca3 --- /dev/null +++ b/render/default_decoders.go @@ -0,0 +1,26 @@ +//go:build !noimages +// +build !noimages + +package render + +import ( + "image/gif" + "image/jpeg" + "image/png" + + "golang.org/x/image/bmp" +) + +func init() { + // Register standard image decoders. If provided with the build tag 'noimages', this is skipped. + RegisterDecoder(".jpeg", jpeg.Decode) + RegisterDecoder(".jpg", jpeg.Decode) + RegisterDecoder(".gif", gif.Decode) + RegisterDecoder(".png", png.Decode) + RegisterDecoder(".bmp", bmp.Decode) + RegisterCfgDecoder(".jpeg", jpeg.DecodeConfig) + RegisterCfgDecoder(".jpg", jpeg.DecodeConfig) + RegisterCfgDecoder(".gif", gif.DecodeConfig) + RegisterCfgDecoder(".png", png.DecodeConfig) + RegisterCfgDecoder(".bmp", bmp.DecodeConfig) +} diff --git a/render/mod/gift.go b/render/mod/gift.go index 36a20815..6423bb0b 100644 --- a/render/mod/gift.go +++ b/render/mod/gift.go @@ -1,8 +1,12 @@ +//go:build !nogift +// +build !nogift + package mod import ( "image" "image/color" + "math" "github.com/disintegration/gift" ) @@ -124,3 +128,17 @@ var Transpose = GiftTransform(gift.Transpose()) // Transverse flips vertically and rotates 90 degrees counter clockwise. var Transverse = GiftTransform(gift.Transverse()) + +// Scale returns a scaled rgba. +func Scale(xRatio, yRatio float64) Mod { + return func(rgba image.Image) *image.RGBA { + bounds := rgba.Bounds() + w := int(math.Floor(float64(bounds.Max.X) * xRatio)) + h := int(math.Floor(float64(bounds.Max.Y) * yRatio)) + filter := gift.New( + gift.Resize(w, h, gift.CubicResampling)) + dst := image.NewRGBA(filter.Bounds(rgba.Bounds())) + filter.Draw(dst, rgba) + return dst + } +} diff --git a/render/mod/mod.go b/render/mod/mod.go index 1ff484a6..295f3d4f 100644 --- a/render/mod/mod.go +++ b/render/mod/mod.go @@ -3,9 +3,6 @@ package mod import ( "image" "image/color" - "math" - - "github.com/disintegration/gift" ) // A Mod takes an image and returns that image transformed in some way. @@ -44,20 +41,6 @@ func SafeAnd(ms ...Mod) Mod { return And(ms...) } -// Scale returns a scaled rgba. -func Scale(xRatio, yRatio float64) Mod { - return func(rgba image.Image) *image.RGBA { - bounds := rgba.Bounds() - w := int(math.Floor(float64(bounds.Max.X) * xRatio)) - h := int(math.Floor(float64(bounds.Max.Y) * yRatio)) - filter := gift.New( - gift.Resize(w, h, gift.CubicResampling)) - dst := image.NewRGBA(filter.Bounds(rgba.Bounds())) - filter.Draw(dst, rgba) - return dst - } -} - // TrimColor will trim inputs so that any rows or columns where each pixel is // less than or equal to the input color are removed. This will change the dimensions // of the image. diff --git a/scene/transition.go b/scene/transition.go index 94818c1a..c6cf530f 100644 --- a/scene/transition.go +++ b/scene/transition.go @@ -14,20 +14,6 @@ var ( // Transition functions can be set to occur at the end of a scene. type Transition func(*image.RGBA, int) bool -// Fade is a scene transition that fades to black at a given rate for -// a total of 'frames' frames -func Fade(rate float32, frames int) func(*image.RGBA, int) bool { - rate *= -1 - return func(buf *image.RGBA, frame int) bool { - if frame > frames { - return false - } - i := float32(frame) - mod.Brighten(rate * i)(buf) - return true - } -} - // Zoom transitions by performing a simplistic zoom each frame towards some // percentange-based part of the screen. func Zoom(xPerc, yPerc float64, frames int, zoomRate float64) func(*image.RGBA, int) bool { diff --git a/scene/transition_gift.go b/scene/transition_gift.go new file mode 100644 index 00000000..706af4cd --- /dev/null +++ b/scene/transition_gift.go @@ -0,0 +1,24 @@ +//go:build !nogift +// +build !nogift + +package scene + +import ( + "image" + + "github.com/oakmound/oak/v3/render/mod" +) + +// Fade is a scene transition that fades to black at a given rate for +// a total of 'frames' frames +func Fade(rate float32, frames int) func(*image.RGBA, int) bool { + rate *= -1 + return func(buf *image.RGBA, frame int) bool { + if frame > frames { + return false + } + i := float32(frame) + mod.Brighten(rate * i)(buf) + return true + } +} From 3007222fc273724c7153fc767006a054312ca690 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 16 Apr 2022 13:26:07 -0500 Subject: [PATCH 118/146] scene: add DoEachFrame helper method --- examples/text-demos/color-changing-text-demo/main.go | 4 +--- scene/context.go | 8 ++++++++ scene/transition.go | 8 ++------ shake/shake.go | 2 +- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/examples/text-demos/color-changing-text-demo/main.go b/examples/text-demos/color-changing-text-demo/main.go index 13e7927d..cce2e41c 100644 --- a/examples/text-demos/color-changing-text-demo/main.go +++ b/examples/text-demos/color-changing-text-demo/main.go @@ -7,7 +7,6 @@ import ( "strconv" "github.com/oakmound/oak/v3/alg/range/floatrange" - "github.com/oakmound/oak/v3/event" "image" @@ -63,7 +62,7 @@ func main() { render.Draw(font2.NewText("g", 280, 260), 0) render.Draw(font2.NewText("b", 400, 260), 0) - event.GlobalBind(ctx, event.Enter, func(_ event.EnterPayload) event.Response { + ctx.DoEachFrame(func(){ r = limit.EnforceRange(r + diff.Poll()) g = limit.EnforceRange(g + diff.Poll()) b = limit.EnforceRange(b + diff.Poll()) @@ -75,7 +74,6 @@ func main() { 255, }, ) - return 0 }) }, }) diff --git a/scene/context.go b/scene/context.go index 07c394d7..1485fa1a 100644 --- a/scene/context.go +++ b/scene/context.go @@ -31,3 +31,11 @@ type Context struct { CollisionTree *collision.Tree KeyState *key.State } + +// DoEachFrame is a helper method to call a function on each frame for the duration of this scene. +func (ctx *Context) DoEachFrame(f func()) { + event.GlobalBind(ctx, event.Enter, func(_ event.EnterPayload) event.Response { + f() + return 0 + }) +} diff --git a/scene/transition.go b/scene/transition.go index c6cf530f..8b125ea1 100644 --- a/scene/transition.go +++ b/scene/transition.go @@ -7,22 +7,18 @@ import ( "github.com/oakmound/oak/v3/render/mod" ) -var ( - zeroPoint = image.Point{X: 0, Y: 0} -) - // Transition functions can be set to occur at the end of a scene. type Transition func(*image.RGBA, int) bool // Zoom transitions by performing a simplistic zoom each frame towards some -// percentange-based part of the screen. +// percentage-based part of the screen. func Zoom(xPerc, yPerc float64, frames int, zoomRate float64) func(*image.RGBA, int) bool { return func(buf *image.RGBA, frame int) bool { if frame > frames { return false } z := mod.Zoom(xPerc, yPerc, 1+zoomRate*float64(frame)) - draw.Draw(buf, buf.Bounds(), z(buf), zeroPoint, draw.Src) + draw.Draw(buf, buf.Bounds(), z(buf), image.ZP, draw.Src) return true } } diff --git a/shake/shake.go b/shake/shake.go index 5309de9a..85461755 100644 --- a/shake/shake.go +++ b/shake/shake.go @@ -26,7 +26,7 @@ type Shaker struct { } var ( - // DefaultShaker is the global default shaker, used when ShakeScreen is called. + // DefaultShaker is the global default shaker, used when shake.Screen or shake.Shake are called. DefaultShaker = &Shaker{ Random: false, Magnitude: floatgeom.Point2{3.0, 3.0}, From 4f0c09c70065ef0e8705ed724e44129913272423 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 16 Apr 2022 19:13:21 -0500 Subject: [PATCH 119/146] alg/range: overhaul to alg/span with generics --- alg/intgeom/rect.go | 86 ++++++++++++++-- alg/range/colorrange/linear.go | 57 ----------- alg/range/colorrange/range.go | 13 --- alg/range/doc.go | 2 - alg/range/floatrange/constant.go | 30 ------ alg/range/floatrange/constant_test.go | 32 ------ alg/range/floatrange/infinite.go | 31 ------ alg/range/floatrange/infinite_test.go | 26 ----- alg/range/floatrange/linear.go | 73 -------------- alg/range/floatrange/linear_test.go | 69 ------------- alg/range/floatrange/range.go | 10 -- alg/range/intrange/constant.go | 30 ------ alg/range/intrange/constant_test.go | 32 ------ alg/range/intrange/infinite.go | 34 ------- alg/range/intrange/infinite_test.go | 26 ----- alg/range/intrange/linear.go | 70 ------------- alg/range/intrange/range.go | 10 -- alg/span/builtin.go | 98 +++++++++++++++++++ .../linear_test.go => span/builtin_test.go} | 41 ++++++-- alg/span/color.go | 57 +++++++++++ .../linear_test.go => span/color_test.go} | 18 ++-- alg/span/doc.go | 2 + alg/{range => span}/internal/random/rand.go | 0 alg/span/span.go | 19 ++++ collision/ray/raycast_test.go | 4 +- collision/tree_test.go | 10 +- examples/clipboard/go.mod | 5 +- examples/clipboard/go.sum | 14 +-- examples/fallback-font/go.mod | 5 +- examples/fallback-font/go.sum | 14 +-- examples/flappy-bird/main.go | 8 +- examples/particle-demo/main.go | 41 ++++---- examples/slide/main.go | 13 ++- examples/svg/go.mod | 5 +- examples/svg/go.sum | 14 +-- .../color-changing-text-demo/main.go | 9 +- .../text-demos/continual-text-demo/main.go | 6 +- go.mod | 2 +- go.sum | 3 +- render/line.go | 6 +- render/particle/colorGenerator.go | 26 ++--- render/particle/color_test.go | 9 +- render/particle/generator.go | 27 ++--- render/particle/gradientGenerator.go | 2 +- render/particle/gradient_test.go | 19 ++-- render/particle/options.go | 21 ++-- render/particle/source_test.go | 19 ++-- render/particle/spriteGenerator.go | 14 +-- render/particle/sprite_test.go | 7 +- render/polygon.go | 4 +- render/sprite_test.go | 9 +- 51 files changed, 432 insertions(+), 750 deletions(-) delete mode 100644 alg/range/colorrange/linear.go delete mode 100644 alg/range/colorrange/range.go delete mode 100644 alg/range/doc.go delete mode 100644 alg/range/floatrange/constant.go delete mode 100644 alg/range/floatrange/constant_test.go delete mode 100644 alg/range/floatrange/infinite.go delete mode 100644 alg/range/floatrange/infinite_test.go delete mode 100644 alg/range/floatrange/linear.go delete mode 100644 alg/range/floatrange/linear_test.go delete mode 100644 alg/range/floatrange/range.go delete mode 100644 alg/range/intrange/constant.go delete mode 100644 alg/range/intrange/constant_test.go delete mode 100644 alg/range/intrange/infinite.go delete mode 100644 alg/range/intrange/infinite_test.go delete mode 100644 alg/range/intrange/linear.go delete mode 100644 alg/range/intrange/range.go create mode 100644 alg/span/builtin.go rename alg/{range/intrange/linear_test.go => span/builtin_test.go} (64%) create mode 100644 alg/span/color.go rename alg/{range/colorrange/linear_test.go => span/color_test.go} (62%) create mode 100644 alg/span/doc.go rename alg/{range => span}/internal/random/rand.go (100%) create mode 100644 alg/span/span.go diff --git a/alg/intgeom/rect.go b/alg/intgeom/rect.go index 1ccac0b9..896bbf2d 100644 --- a/alg/intgeom/rect.go +++ b/alg/intgeom/rect.go @@ -1,5 +1,11 @@ package intgeom +import ( + "math/rand" + + "github.com/oakmound/oak/v3/alg/span" +) + // A Rect2 represents a span from one point in 2D space to another. // If Min is less than max on any axis, it will return undefined results // for methods. @@ -327,18 +333,82 @@ func (r Rect2) Intersects(r2 Rect2) bool { (r2.Max.Y() <= r.Min.Y() || r.Max.Y() <= r2.Min.Y())) } +func (r Rect2) MulConst(i int) Rect2 { + return Rect2{ + r.Min.MulConst(i), + r.Max.MulConst(i), + } +} + +// Poll returns a pseudorandom point from within this rectangle +func (r Rect2) Poll() Point2 { + return Point2{ + r.Min.X() + int(rand.Float64()*float64(r.W())), + r.Min.Y() + int(rand.Float64()*float64(r.H())), + } +} + // Clamp returns a version of the provided point such that it is contained within r. If it was already contained in // r, it will not be changed. func (r Rect2) Clamp(pt Point2) Point2 { - if pt.X() < r.Min[0] { - pt[0] = r.Min[0] - } else if pt.X() > r.Max[0] { - pt[0] = r.Max[0] + for i := 0; i < r.MaxDimensions(); i++ { + if pt[i] < r.Min[i] { + pt[i] = r.Min[i] + } else if pt[i] > r.Max[i] { + pt[i] = r.Max[i] + } } - if pt.Y() < r.Min[1] { - pt[1] = r.Min[1] - } else if pt.Y() > r.Max[1] { - pt[1] = r.Max[1] + return pt +} + +func (r Rect2) Percentile(f float64) Point2 { + return Point2{ + r.Min.X() + int(f*float64(r.W())), + r.Min.Y() + int(f*float64(r.H())), + } +} + +func (r Rect2) MulSpan(f float64) span.Span[Point2] { + return r.MulConst(int(f)) +} + +func (r Rect3) MulConst(i int) Rect3 { + return Rect3{ + r.Min.MulConst(i), + r.Max.MulConst(i), + } +} + +// Poll returns a pseudorandom point from within this rectangle +func (r Rect3) Poll() Point3 { + return Point3{ + r.Min.X() + int(rand.Float64()*float64(r.W())), + r.Min.Y() + int(rand.Float64()*float64(r.H())), + r.Min.Z() + int(rand.Float64()*float64(r.D())), + } +} + +// Clamp returns a version of the provided point such that it is contained within r. If it was already contained in +// r, it will not be changed. +func (r Rect3) Clamp(pt Point3) Point3 { + for i := 0; i < r.MaxDimensions(); i++ { + if pt[i] < r.Min[i] { + pt[i] = r.Min[i] + } else if pt[i] > r.Max[i] { + pt[i] = r.Max[i] + } } return pt } + +func (r Rect3) Percentile(f float64) Point3 { + return Point3{ + r.Min.X() + int(f*float64(r.W())), + r.Min.Y() + int(f*float64(r.H())), + r.Min.Z() + int(f*float64(r.D())), + } +} + +func (r Rect3) MulSpan(f float64) span.Span[Point3] { + return r.MulConst(int(f)) +} diff --git a/alg/range/colorrange/linear.go b/alg/range/colorrange/linear.go deleted file mode 100644 index 5dcc1940..00000000 --- a/alg/range/colorrange/linear.go +++ /dev/null @@ -1,57 +0,0 @@ -package colorrange - -import ( - "image/color" - - "github.com/oakmound/oak/v3/alg/range/intrange" -) - -// linear color ranges return colors on a linear distribution -type linear struct { - r, g, b, a intrange.Range -} - -// NewLinear returns a linear color distribution between min and maxColor -func NewLinear(minColor, maxColor color.Color) Range { - r, g, b, a := minColor.RGBA() - r2, g2, b2, a2 := maxColor.RGBA() - return linear{ - intrange.NewLinear(int(r), int(r2)), - intrange.NewLinear(int(g), int(g2)), - intrange.NewLinear(int(b), int(b2)), - intrange.NewLinear(int(a), int(a2)), - } -} - -// EnforceRange rounds the input color's components so that they fall in the -// given range. -func (l linear) EnforceRange(c color.Color) color.Color { - r3, g3, b3, a3 := c.RGBA() - r4 := l.r.EnforceRange(int(r3)) - g4 := l.g.EnforceRange(int(g3)) - b4 := l.b.EnforceRange(int(b3)) - a4 := l.a.EnforceRange(int(a3)) - return rgbaFromInts(r4, g4, b4, a4) -} - -// Poll returns a randomly chosen color in the bounds of this color range -func (l linear) Poll() color.Color { - r3 := l.r.Poll() - g3 := l.g.Poll() - b3 := l.b.Poll() - a3 := l.a.Poll() - return rgbaFromInts(r3, g3, b3, a3) -} - -// Percentile returns a color f percent along the color range -func (l linear) Percentile(f float64) color.Color { - r3 := l.r.Percentile(f) - g3 := l.g.Percentile(f) - b3 := l.b.Percentile(f) - a3 := l.a.Percentile(f) - return rgbaFromInts(r3, g3, b3, a3) -} - -func rgbaFromInts(r, g, b, a int) color.RGBA { - return color.RGBA{uint8(r / 257), uint8(g / 257), uint8(b / 257), uint8(a / 257)} -} diff --git a/alg/range/colorrange/range.go b/alg/range/colorrange/range.go deleted file mode 100644 index d609a7bd..00000000 --- a/alg/range/colorrange/range.go +++ /dev/null @@ -1,13 +0,0 @@ -// Package colorrange provides distributions that accept and return color.Colors. -package colorrange - -import ( - "image/color" -) - -// Range represents a range of colors -type Range interface { - Poll() color.Color - EnforceRange(color.Color) color.Color - Percentile(f float64) color.Color -} diff --git a/alg/range/doc.go b/alg/range/doc.go deleted file mode 100644 index 4e789fe0..00000000 --- a/alg/range/doc.go +++ /dev/null @@ -1,2 +0,0 @@ -// Package range provides helper constructs to represent ranges of values, to poll from or clamp to -package arange diff --git a/alg/range/floatrange/constant.go b/alg/range/floatrange/constant.go deleted file mode 100644 index a2514a48..00000000 --- a/alg/range/floatrange/constant.go +++ /dev/null @@ -1,30 +0,0 @@ -package floatrange - -// constant is a range that represents some constant float -type constant float64 - -// NewConstant returns a range that will always poll to return f -func NewConstant(f float64) Range { - return constant(f) -} - -// Poll returns the float behind the constant -func (c constant) Poll() float64 { - return float64(c) -} - -// Mult scales the constant by f -func (c constant) Mult(f float64) Range { - c = constant(float64(c) * f) - return c -} - -// EnforceRange returns the float behind the constant -func (c constant) EnforceRange(float64) float64 { - return float64(c) -} - -// Percentile returns the float behind the constant -func (c constant) Percentile(float64) float64 { - return float64(c) -} diff --git a/alg/range/floatrange/constant_test.go b/alg/range/floatrange/constant_test.go deleted file mode 100644 index cfeebc9c..00000000 --- a/alg/range/floatrange/constant_test.go +++ /dev/null @@ -1,32 +0,0 @@ -package floatrange - -import ( - "math/rand" - "testing" - "time" -) - -func TestConstant(t *testing.T) { - rand.Seed(time.Now().Unix()) - const testCount = 100 - const maxInt = 100000 - const minInt = -100000 - for i := 0; i < testCount; i++ { - val := rand.Float64()*(maxInt-minInt) + minInt - cons := NewConstant(val) - if cons.Poll() != val { - t.Fatal("Constant.Poll did not return initialized value") - } - magnitude := rand.Float64() - cons2 := cons.Mult(magnitude) - if cons2.Poll() != float64(val)*magnitude { - t.Fatal("Constant.Mult result did not match expected Poll") - } - if cons.EnforceRange(rand.Float64()*(maxInt-minInt)+minInt) != val { - t.Fatal("Constant.EnforceRange did not return initialized value") - } - if cons.Percentile(rand.Float64()) != val { - t.Fatal("Constant.Percentile did not return initialized value") - } - } -} diff --git a/alg/range/floatrange/infinite.go b/alg/range/floatrange/infinite.go deleted file mode 100644 index 725bf402..00000000 --- a/alg/range/floatrange/infinite.go +++ /dev/null @@ -1,31 +0,0 @@ -package floatrange - -import "math" - -// Infinite is an immutable range that will always return math.MaxFloat64 -type Infinite struct{} - -// NewInfinite returns an infinite. -func NewInfinite() Range { - return Infinite{} -} - -// Poll returns MaxFloat64 on an infinite -func (i Infinite) Poll() float64 { - return math.MaxFloat64 -} - -// Mult returns an infinite from an infinite. -func (i Infinite) Mult(f float64) Range { - return i -} - -// EnforceRange returns math.MaxFloat64 -func (i Infinite) EnforceRange(f float64) float64 { - return math.MaxFloat64 -} - -// Percentile returns the float behind the constant -func (i Infinite) Percentile(float64) float64 { - return math.MaxFloat64 -} diff --git a/alg/range/floatrange/infinite_test.go b/alg/range/floatrange/infinite_test.go deleted file mode 100644 index 0f7e81b2..00000000 --- a/alg/range/floatrange/infinite_test.go +++ /dev/null @@ -1,26 +0,0 @@ -package floatrange - -import ( - "math" - "math/rand" - "testing" - "time" -) - -func TestInfinite(t *testing.T) { - rand.Seed(time.Now().Unix()) - inf := NewInfinite() - if inf.Poll() != math.MaxFloat64 { - t.Fatal("infinite.Poll did not return math.MaxFloat64") - } - inf2 := inf.Mult(rand.Float64()) - if inf2 != inf { - t.Fatal("base infinite did not match multiplied infinite") - } - if inf.EnforceRange(rand.Float64()*10000) != math.MaxFloat64 { - t.Fatal("infinite.EnforceRange did not return math.MaxFloat64") - } - if inf.Percentile(rand.Float64()) != math.MaxFloat64 { - t.Fatal("infinite.Percentile did not return math.MaxFloat64") - } -} diff --git a/alg/range/floatrange/linear.go b/alg/range/floatrange/linear.go deleted file mode 100644 index ce24e1b4..00000000 --- a/alg/range/floatrange/linear.go +++ /dev/null @@ -1,73 +0,0 @@ -package floatrange - -import ( - "math/rand" - - "github.com/oakmound/oak/v3/alg/range/internal/random" -) - -// NewSpread returns a linear range from base-spread to base+spread -func NewSpread(base, spread float64) Range { - if spread == 0 { - return constant(base) - } - return linear{ - Min: base - spread, - Max: base + spread, - rng: random.Rand(), - } -} - -// NewLinear returns a linear range from min to max -func NewLinear(min, max float64) Range { - if max == min { - return constant(min) - } - flipped := false - if max < min { - max, min = min, max - flipped = true - } - return linear{ - Min: min, - Max: max, - rng: random.Rand(), - flipped: flipped, - } -} - -// linear is a range from min to max -type linear struct { - Max, Min float64 - rng *rand.Rand - flipped bool -} - -// Poll on a linear float range returns a float at uniform -// distribution in lfr's range -func (lfr linear) Poll() float64 { - return ((lfr.Max - lfr.Min) * lfr.rng.Float64()) + lfr.Min -} - -// Mult scales a Linear by f -func (lfr linear) Mult(f float64) Range { - lfr.Max *= f - lfr.Min *= f - return lfr -} - -// EnforceRange returns f, if is within the range, or the closest value -// in the range to f. -func (lfr linear) EnforceRange(f float64) float64 { - if f < lfr.Min { - return lfr.Min - } else if f > lfr.Max { - return lfr.Max - } - return f -} - -// Percentile returns the fth percentile value along this range -func (lfr linear) Percentile(f float64) float64 { - return ((lfr.Max - lfr.Min) * f) + lfr.Min -} diff --git a/alg/range/floatrange/linear_test.go b/alg/range/floatrange/linear_test.go deleted file mode 100644 index e881a7b6..00000000 --- a/alg/range/floatrange/linear_test.go +++ /dev/null @@ -1,69 +0,0 @@ -package floatrange - -import ( - "math/rand" - "testing" - "time" -) - -func TestNewLinear_Constant(t *testing.T) { - linear := NewLinear(1, 1) - if _, ok := linear.(constant); !ok { - t.Fatalf("NewLinear with no variance did not create constant") - } -} - -func TestNewSpread_Constant(t *testing.T) { - linear := NewSpread(1, 0) - if _, ok := linear.(constant); !ok { - t.Fatalf("NewSpread with no spread did not create constant") - } -} - -func TestNewSpread(t *testing.T) { - linear := NewSpread(10, -10).(linear) - if linear.flipped { - t.Fatalf("new spread should not produce flipped linear range") - } -} - -func TestLinear(t *testing.T) { - rand.Seed(time.Now().Unix()) - const testCount = 100 - const maxInt = 100000 - const minInt = -100000 - for i := 0; i < testCount; i++ { - min := rand.Float64()*(maxInt-minInt) + minInt - max := rand.Float64()*(maxInt-minInt) + minInt - linear := NewLinear(min, max) - if max < min { - min, max = max, min - } - poll := linear.Poll() - if poll < min || poll > max { - t.Fatal("Linear.Poll did not return a value in its range") - } - magnitude := rand.Float64() - linear2 := linear.Mult(magnitude) - poll2 := linear2.Poll() - if poll2 < float64(min)*magnitude || poll2 > float64(max)*magnitude { - t.Fatal("Linear.Mult result did not match expected Poll") - } - underMin := (rand.Float64()*(maxInt-minInt) + minInt) - (maxInt - minInt) - if linear.EnforceRange(underMin) != min { - t.Fatal("Linear.EnforceRange under min did not return min") - } - overMax := (rand.Float64()*(maxInt-minInt) + minInt) + (maxInt - minInt) - if linear.EnforceRange(overMax) != max { - t.Fatal("Linear.EnforceRange over max did not return max") - } - within := rand.Float64()*(max-min) + min - if linear.EnforceRange(within) != within { - t.Fatal("Linear.EnforceRange within range did not return input") - } - percent := rand.Float64() - if linear.Percentile(percent) != min+float64((max-min))*percent { - t.Fatal("Linear.Percentile did not return percentile value") - } - } -} diff --git a/alg/range/floatrange/range.go b/alg/range/floatrange/range.go deleted file mode 100644 index cafb2ae1..00000000 --- a/alg/range/floatrange/range.go +++ /dev/null @@ -1,10 +0,0 @@ -// Package floatrange provides distributions that accept and return float64s. -package floatrange - -// Range represents a range of floating point numbers -type Range interface { - Poll() float64 - Mult(f float64) Range - EnforceRange(f float64) float64 - Percentile(f float64) float64 -} diff --git a/alg/range/intrange/constant.go b/alg/range/intrange/constant.go deleted file mode 100644 index a0fcdc4c..00000000 --- a/alg/range/intrange/constant.go +++ /dev/null @@ -1,30 +0,0 @@ -package intrange - -// NewConstant returns a range which will always return the input constant -func NewConstant(i int) Range { - return constant(i) -} - -// constant implements Range as a poll -// which always returns the same integer. -type constant int - -// Poll returns c cast to an int -func (c constant) Poll() int { - return int(c) -} - -// Mult returns this range scaled by i -func (c constant) Mult(i float64) Range { - return constant(int(float64(int(c)) * i)) -} - -// EnforceRange on a constant must return the constant -func (c constant) EnforceRange(int) int { - return int(c) -} - -// Percentile can only return the constant itself -func (c constant) Percentile(float64) int { - return int(c) -} diff --git a/alg/range/intrange/constant_test.go b/alg/range/intrange/constant_test.go deleted file mode 100644 index 34c7f9d6..00000000 --- a/alg/range/intrange/constant_test.go +++ /dev/null @@ -1,32 +0,0 @@ -package intrange - -import ( - "math/rand" - "testing" - "time" -) - -func TestConstant(t *testing.T) { - rand.Seed(time.Now().Unix()) - const testCount = 100 - const maxInt = 100000 - const minInt = -100000 - for i := 0; i < testCount; i++ { - val := rand.Intn(maxInt-minInt) + minInt - cons := NewConstant(val) - if cons.Poll() != val { - t.Fatal("Constant.Poll did not return initialized value") - } - magnitude := rand.Float64() - cons2 := cons.Mult(magnitude) - if cons2.Poll() != int(float64(val)*magnitude) { - t.Fatal("Constant.Mult result did not match expected Poll") - } - if cons.EnforceRange(rand.Intn(maxInt)) != val { - t.Fatal("Constant.EnforceRange did not return initialized value") - } - if cons.Percentile(rand.Float64()) != val { - t.Fatal("Constant.Percentile did not return initialized value") - } - } -} diff --git a/alg/range/intrange/infinite.go b/alg/range/intrange/infinite.go deleted file mode 100644 index 7d494e10..00000000 --- a/alg/range/intrange/infinite.go +++ /dev/null @@ -1,34 +0,0 @@ -package intrange - -import ( - "math" -) - -// NewInfinite returns a range which will always return math.MaxInt32 and -// is unchangeable. -func NewInfinite() Range { - return Infinite{} -} - -// Infinite is a immutable range which always polls math.MaxInt32 -type Infinite struct{} - -// Poll returns math.MaxInt32 on Infinites. -func (inf Infinite) Poll() int { - return math.MaxInt32 -} - -// Mult does nothing to Infinites. -func (inf Infinite) Mult(i float64) Range { - return inf -} - -// EnforceRange for an Infinite returns Infinite -func (inf Infinite) EnforceRange(i int) int { - return math.MaxInt32 -} - -// Percentile can only return math.MaxInt32 -func (inf Infinite) Percentile(float64) int { - return math.MaxInt32 -} diff --git a/alg/range/intrange/infinite_test.go b/alg/range/intrange/infinite_test.go deleted file mode 100644 index 1d4eaefc..00000000 --- a/alg/range/intrange/infinite_test.go +++ /dev/null @@ -1,26 +0,0 @@ -package intrange - -import ( - "math" - "math/rand" - "testing" - "time" -) - -func TestInfinite(t *testing.T) { - rand.Seed(time.Now().Unix()) - inf := NewInfinite() - if inf.Poll() != math.MaxInt32 { - t.Fatal("infinite.Poll did not return math.MaxInt32") - } - inf2 := inf.Mult(rand.Float64()) - if inf2 != inf { - t.Fatal("base infinite did not match multiplied infinite") - } - if inf.EnforceRange(rand.Intn(10000)) != math.MaxInt32 { - t.Fatal("infinite.EnforceRange did not return math.MaxInt32") - } - if inf.Percentile(rand.Float64()) != math.MaxInt32 { - t.Fatal("infinite.Percentile did not return math.MaxInt32") - } -} diff --git a/alg/range/intrange/linear.go b/alg/range/intrange/linear.go deleted file mode 100644 index 367e23cd..00000000 --- a/alg/range/intrange/linear.go +++ /dev/null @@ -1,70 +0,0 @@ -package intrange - -import ( - "math/rand" - - "github.com/oakmound/oak/v3/alg/range/internal/random" -) - -// NewLinear returns a linear range between min and max -func NewLinear(min, max int) Range { - if max == min { - return constant(min) - } - flipped := false - if max < min { - max, min = min, max - flipped = true - } - return linear{ - min: min, - max: max, - rng: random.Rand(), - flipped: flipped, - } -} - -// NewSpread returns a linear range from base - s to base + s -func NewSpread(base, spread int) Range { - if spread == 0 { - return constant(base) - } - if spread < 0 { - spread *= -1 - } - return linear{base - spread, base + spread, random.Rand(), false} -} - -// linear polls on a linear scale between a minimum and a maximum -type linear struct { - min, max int - rng *rand.Rand - flipped bool -} - -func (lir linear) Poll() int { - return int(float64(lir.max-lir.min)*lir.rng.Float64()) + lir.min -} - -func (lir linear) Mult(i float64) Range { - lir.max = int(float64(lir.max) * i) - lir.min = int(float64(lir.min) * i) - return lir -} - -func (lir linear) EnforceRange(i int) int { - if i < lir.min { - return lir.min - } else if i > lir.max { - return lir.max - } - return i -} - -func (lir linear) Percentile(f float64) int { - diff := float64(lir.max-lir.min) * f // 0 - 255 * .1 = -25 + 255 = 230 // 255 - 0 * .1 = 25 - if lir.flipped { - return lir.max - int(diff) - } - return lir.min + int(diff) -} diff --git a/alg/range/intrange/range.go b/alg/range/intrange/range.go deleted file mode 100644 index 7cee8427..00000000 --- a/alg/range/intrange/range.go +++ /dev/null @@ -1,10 +0,0 @@ -// Package intrange provides distributions that return ints. -package intrange - -// Range represents a range of integer numbers -type Range interface { - Poll() int - Mult(float64) Range - EnforceRange(int) int - Percentile(float64) int -} diff --git a/alg/span/builtin.go b/alg/span/builtin.go new file mode 100644 index 00000000..8e0666f7 --- /dev/null +++ b/alg/span/builtin.go @@ -0,0 +1,98 @@ +package span + +import ( + "math/rand" + + "github.com/oakmound/oak/v3/alg/span/internal/random" + "golang.org/x/exp/constraints" +) + +// A Spanable must be usable in basic arithmetic-- addition, subtraction, and multiplication. +type Spanable interface { + constraints.Float | constraints.Integer +} + +// NewConstant returns a span where the minimum and maximum are both i. Poll, Percentile, and Clamp will always return i. +func NewConstant[T Spanable](i T) Span[T] { + return constant[T]{i} +} + +type constant[T Spanable] struct { + val T +} + +func (c constant[T]) Poll() T { + return c.val +} + +func (c constant[T]) MulSpan(i float64) Span[T] { + return constant[T]{T(float64(c.val) * i)} +} + +func (c constant[T]) Clamp(T) T { + return c.val +} + +func (c constant[T]) Percentile(float64) T { + return c.val +} + +// NewLinear returns a linear span between min and max. The linearity implies that no point in the span is preferred, +// and Percentile will scale in a constant fashion from min to max. +func NewLinear[T Spanable](min, max T) Span[T] { + if max == min { + return constant[T]{min} + } + flipped := false + if max < min { + max, min = min, max + flipped = true + } + return linear[T]{ + min: min, + max: max, + rng: random.Rand(), + flipped: flipped, + } +} + +// NewSpread returns a linear span from base-spread to base+spread. +func NewSpread[T Spanable](base, spread T) Span[T] { + if spread < 0 { + return NewLinear(base+spread, base-spread) + } + return NewLinear(base-spread, base+spread) +} + +type linear[T Spanable] struct { + min, max T + rng *rand.Rand + flipped bool +} + +func (lir linear[T]) Poll() T { + return T(float64(lir.max-lir.min)*lir.rng.Float64()) + lir.min +} + +func (lir linear[T]) MulSpan(i float64) Span[T] { + lir.max = T(float64(lir.max) * i) + lir.min = T(float64(lir.min) * i) + return lir +} + +func (lir linear[T]) Clamp(i T) T { + if i < lir.min { + return lir.min + } else if i > lir.max { + return lir.max + } + return i +} + +func (lir linear[T]) Percentile(f float64) T { + diff := float64(lir.max-lir.min) * f // 0 - 255 * .1 = -25 + 255 = 230 // 255 - 0 * .1 = 25 + if lir.flipped { + return lir.max - T(diff) + } + return lir.min + T(diff) +} diff --git a/alg/range/intrange/linear_test.go b/alg/span/builtin_test.go similarity index 64% rename from alg/range/intrange/linear_test.go rename to alg/span/builtin_test.go index 20c0fc87..4dda1e49 100644 --- a/alg/range/intrange/linear_test.go +++ b/alg/span/builtin_test.go @@ -1,4 +1,4 @@ -package intrange +package span import ( "math/rand" @@ -8,20 +8,20 @@ import ( func TestNewLinear_Constant(t *testing.T) { linear := NewLinear(1, 1) - if _, ok := linear.(constant); !ok { + if _, ok := linear.(constant[int]); !ok { t.Fatalf("NewLinear with no variance did not create constant") } } func TestNewSpread_Constant(t *testing.T) { linear := NewSpread(1, 0) - if _, ok := linear.(constant); !ok { + if _, ok := linear.(constant[int]); !ok { t.Fatalf("NewSpread with no spread did not create constant") } } func TestNewSpread(t *testing.T) { - linear := NewSpread(10, -10).(linear) + linear := NewSpread[float32](10, -10).(linear[float32]) if linear.flipped { t.Fatalf("new spread should not produce flipped linear range") } @@ -46,21 +46,21 @@ func TestLinear(t *testing.T) { t.Fatal("Linear.Poll did not return a value in its range") } magnitude := rand.Float64() - linear2 := linear.Mult(magnitude) + linear2 := linear.MulSpan(magnitude) poll2 := linear2.Poll() if poll2 < int(float64(min)*magnitude) || poll2 > int(float64(max)*magnitude) { t.Fatal("Linear.Mult result did not match expected Poll") } underMin := (rand.Intn(maxInt-minInt) + minInt) - (maxInt - minInt) - if linear.EnforceRange(underMin) != min { + if linear.Clamp(underMin) != min { t.Fatal("Linear.EnforceRange under min did not return min") } overMax := (rand.Intn(maxInt-minInt) + minInt) + (maxInt - minInt) - if linear.EnforceRange(overMax) != max { + if linear.Clamp(overMax) != max { t.Fatal("Linear.EnforceRange over max did not return max") } within := rand.Intn(max-min) + min - if linear.EnforceRange(within) != within { + if linear.Clamp(within) != within { t.Fatal("Linear.EnforceRange within range did not return input") } percent := rand.Float64() @@ -75,3 +75,28 @@ func TestLinear(t *testing.T) { } } } + +func TestConstant(t *testing.T) { + rand.Seed(time.Now().Unix()) + const testCount = 100 + const maxInt = 100000 + const minInt = -100000 + for i := 0; i < testCount; i++ { + val := rand.Intn(maxInt-minInt) + minInt + cons := NewConstant(val) + if cons.Poll() != val { + t.Fatal("Constant.Poll did not return initialized value") + } + magnitude := rand.Float64() + cons2 := cons.MulSpan(magnitude) + if cons2.Poll() != int(float64(val)*magnitude) { + t.Fatal("Constant.Mult result did not match expected Poll") + } + if cons.Clamp(rand.Intn(maxInt)) != val { + t.Fatal("Constant.EnforceRange did not return initialized value") + } + if cons.Percentile(rand.Float64()) != val { + t.Fatal("Constant.Percentile did not return initialized value") + } + } +} diff --git a/alg/span/color.go b/alg/span/color.go new file mode 100644 index 00000000..0d670059 --- /dev/null +++ b/alg/span/color.go @@ -0,0 +1,57 @@ +package span + +import "image/color" + +type linearColor struct { + r, g, b, a Span[uint32] +} + +// NewLinearColor returns a linear color distribution between min and maxColor +func NewLinearColor(minColor, maxColor color.Color) Span[color.Color] { + r, g, b, a := minColor.RGBA() + r2, g2, b2, a2 := maxColor.RGBA() + return linearColor{ + NewLinear(r, r2), + NewLinear(g, g2), + NewLinear(b, b2), + NewLinear(a, a2), + } +} + +func (l linearColor) Clamp(c color.Color) color.Color { + r3, g3, b3, a3 := c.RGBA() + r4 := l.r.Clamp(r3) + g4 := l.g.Clamp(g3) + b4 := l.b.Clamp(b3) + a4 := l.a.Clamp(a3) + return rgbaFromInts(r4, g4, b4, a4) +} + +func (l linearColor) MulSpan(i float64) Span[color.Color] { + return linearColor{ + l.r.MulSpan(i), + l.g.MulSpan(i), + l.b.MulSpan(i), + l.a.MulSpan(i), + } +} + +func (l linearColor) Poll() color.Color { + r3 := l.r.Poll() + g3 := l.g.Poll() + b3 := l.b.Poll() + a3 := l.a.Poll() + return rgbaFromInts(r3, g3, b3, a3) +} + +func (l linearColor) Percentile(f float64) color.Color { + r3 := l.r.Percentile(f) + g3 := l.g.Percentile(f) + b3 := l.b.Percentile(f) + a3 := l.a.Percentile(f) + return rgbaFromInts(r3, g3, b3, a3) +} + +func rgbaFromInts(r, g, b, a uint32) color.RGBA { + return color.RGBA{uint8(r / 257), uint8(g / 257), uint8(b / 257), uint8(a / 257)} +} diff --git a/alg/range/colorrange/linear_test.go b/alg/span/color_test.go similarity index 62% rename from alg/range/colorrange/linear_test.go rename to alg/span/color_test.go index 561da66c..99ded583 100644 --- a/alg/range/colorrange/linear_test.go +++ b/alg/span/color_test.go @@ -1,4 +1,4 @@ -package colorrange +package span import ( "image/color" @@ -6,8 +6,8 @@ import ( "testing" ) -func TestLinear(t *testing.T) { - rng := NewLinear(color.RGBA{255, 255, 255, 255}, color.RGBA{255, 255, 255, 255}) +func TestLinearColor(t *testing.T) { + rng := NewLinearColor(color.RGBA{255, 255, 255, 255}, color.RGBA{255, 255, 255, 255}) if rng.Poll() != (color.RGBA{255, 255, 255, 255}) { t.Fatal("false linear range did not return only possible value on Poll") } @@ -16,7 +16,7 @@ func TestLinear(t *testing.T) { t.Fatal("false linear range did not return only possible value on Percentile") } } - rng = NewLinear(color.RGBA{0, 0, 0, 255}, color.RGBA{255, 255, 255, 255}) + rng = NewLinearColor(color.RGBA{0, 0, 0, 255}, color.RGBA{255, 255, 255, 255}) for i := 0.0; i < 255; i++ { p := i / 255 uinti := uint8(i) @@ -24,7 +24,7 @@ func TestLinear(t *testing.T) { t.Fatal("linear color range did not return appropriate scaled color, bottom to top") } } - rng = NewLinear(color.RGBA{255, 255, 255, 255}, color.RGBA{0, 0, 0, 255}) + rng = NewLinearColor(color.RGBA{255, 255, 255, 255}, color.RGBA{0, 0, 0, 255}) for i := 255.0; i > 0; i-- { p := (255 - i) / 255 uinti := uint8(i) @@ -32,14 +32,14 @@ func TestLinear(t *testing.T) { t.Fatal("linear color range did not return appropriate scaled color, top to bottom") } } - rng = NewLinear(color.RGBA{125, 125, 125, 125}, color.RGBA{200, 200, 200, 200}) - if rng.EnforceRange(color.RGBA{100, 100, 100, 100}) != (color.RGBA{125, 125, 125, 125}) { + rng = NewLinearColor(color.RGBA{125, 125, 125, 125}, color.RGBA{200, 200, 200, 200}) + if rng.Clamp(color.RGBA{100, 100, 100, 100}) != (color.RGBA{125, 125, 125, 125}) { t.Fatal("linear color range did not enforce minimum color") } - if rng.EnforceRange(color.RGBA{225, 225, 225, 225}) != (color.RGBA{200, 200, 200, 200}) { + if rng.Clamp(color.RGBA{225, 225, 225, 225}) != (color.RGBA{200, 200, 200, 200}) { t.Fatal("linear color range did not enforce maximum color") } - if rng.EnforceRange(color.RGBA{175, 175, 175, 175}) != (color.RGBA{175, 175, 175, 175}) { + if rng.Clamp(color.RGBA{175, 175, 175, 175}) != (color.RGBA{175, 175, 175, 175}) { t.Fatal("linear color range did not pass through value within range") } } diff --git a/alg/span/doc.go b/alg/span/doc.go new file mode 100644 index 00000000..efec8b41 --- /dev/null +++ b/alg/span/doc.go @@ -0,0 +1,2 @@ +// Package span provides helper constructs to represent ranges of values, to poll from or clamp to +package span diff --git a/alg/range/internal/random/rand.go b/alg/span/internal/random/rand.go similarity index 100% rename from alg/range/internal/random/rand.go rename to alg/span/internal/random/rand.go diff --git a/alg/span/span.go b/alg/span/span.go new file mode 100644 index 00000000..b339bee2 --- /dev/null +++ b/alg/span/span.go @@ -0,0 +1,19 @@ +package span + +// A Span represents some enumerable range. +type Span[T any] interface { + // Poll returns a pseudorandom value within this span. + Poll() T + // Clamp, if v lies within the boundary of this span, returns v. + // Otherwise, CLamp returns a modified version of v that is rounded to the closest value + // that does lie within the boundary of this span. + Clamp(v T) T + // Percentile returns the value along this span that is at the provided percentile through the span, + // e.g. providing .5 will return the middle of the span, providing 1 will return the maximum value in + // the span. Providing a value less than 0 or greater than 1 may extend the span by where it would theoretically + // progress, but should not be relied upon unless a given implementation specifies what it will do. If this span + // represents multiple degrees of freedom, this will pin all those degrees to the single provided percent. + Percentile(float64) T + // MulSpan returns this span with its entire range multiplied by the given constant. + MulSpan(float64) Span[T] +} diff --git a/collision/ray/raycast_test.go b/collision/ray/raycast_test.go index 2060d0fc..ce2ae5c2 100644 --- a/collision/ray/raycast_test.go +++ b/collision/ray/raycast_test.go @@ -4,14 +4,14 @@ import ( "testing" "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/alg/range/floatrange" + "github.com/oakmound/oak/v3/alg/span" "github.com/oakmound/oak/v3/collision" ) func TestEmptyRaycasts(t *testing.T) { t.Skip() collision.DefaultTree.Clear() - vRange := floatrange.NewLinear(3, 359) + vRange := span.NewLinear(3.0, 359.0) tests := 100 for i := 0; i < tests; i++ { p1 := floatgeom.Point2{vRange.Poll(), vRange.Poll()} diff --git a/collision/tree_test.go b/collision/tree_test.go index 26f025a9..2f380524 100644 --- a/collision/tree_test.go +++ b/collision/tree_test.go @@ -5,7 +5,7 @@ import ( "testing" "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/alg/range/floatrange" + "github.com/oakmound/oak/v3/alg/span" ) func TestNewTreeInvalidChildren(t *testing.T) { @@ -150,8 +150,8 @@ func randomSpace() *Space { } var ( - xRange = floatrange.NewLinear(0, 10000) - yRange = floatrange.NewLinear(0, 10000) - wRange = floatrange.NewLinear(1, 50) - hRange = floatrange.NewLinear(1, 50) + xRange = span.NewLinear(0.0, 10000.0) + yRange = span.NewLinear(0.0, 10000.0) + wRange = span.NewLinear(1.0, 50.0) + hRange = span.NewLinear(1.0, 50.0) ) diff --git a/examples/clipboard/go.mod b/examples/clipboard/go.mod index e0670ea7..36dd7c92 100644 --- a/examples/clipboard/go.mod +++ b/examples/clipboard/go.mod @@ -12,17 +12,14 @@ require ( github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc // indirect github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 // indirect github.com/disintegration/gift v1.2.1 // indirect - github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d // indirect - github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1 // indirect github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958 // indirect github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect - github.com/hajimehoshi/go-mp3 v0.3.2 // indirect github.com/jfreymuth/pulse v0.1.0 // indirect github.com/oakmound/alsa v0.0.2 // indirect github.com/oakmound/libudev v0.2.1 // indirect github.com/oakmound/w32 v2.1.0+incompatible // indirect github.com/oov/directsound-go v0.0.0-20141101201356-e53e59c700bf // indirect - golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56 // indirect + golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd // indirect golang.org/x/image v0.0.0-20220321031419-a8550c1d254a // indirect golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 // indirect golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect diff --git a/examples/clipboard/go.sum b/examples/clipboard/go.sum index 22b7be7c..31afb773 100644 --- a/examples/clipboard/go.sum +++ b/examples/clipboard/go.sum @@ -9,17 +9,10 @@ github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= github.com/disintegration/gift v1.2.1 h1:Y005a1X4Z7Uc+0gLpSAsKhWi4qLtsdEcMIbbdvdZ6pc= github.com/disintegration/gift v1.2.1/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI= -github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d h1:HB5J9+f1xpkYLgWQ/RqEcbp3SEufyOIMYLoyKNKiG7E= -github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d/go.mod h1:CHkHWWZ4kbGY6jEy1+qlitDaCtRgNvCOQdakj/1Yl/Q= -github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1 h1:wl/ggSfTHqAy46hyzw1IlrUYwjqmXYvbJyPdH3rT7YE= -github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1/go.mod h1:frG94byMNy+1CgGrQ25dZ+17tf98EN+OYBQL4Zh612M= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958 h1:TL70PMkdPCt9cRhKTqsm+giRpgrd0IGEj763nNr2VFY= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= -github.com/hajimehoshi/go-mp3 v0.3.2 h1:xSYNE2F3lxtOu9BRjCWHHceg7S91IHfXfXp5+LYQI7s= -github.com/hajimehoshi/go-mp3 v0.3.2/go.mod h1:qMJj/CSDxx6CGHiZeCgbiq2DSUkbK0UbtXShQcnfyMM= -github.com/hajimehoshi/oto v0.6.1/go.mod h1:0QXGEkbuJRohbJaxr7ZQSxnju7hEhseiPx2hrh6raOI= github.com/jfreymuth/pulse v0.1.0 h1:KN38/9hoF9PJvP5DpEVhMRKNuwnJUonc8c9ARorRXUA= github.com/jfreymuth/pulse v0.1.0/go.mod h1:cpYspI6YljhkUf1WLXLLDmeaaPFc3CnGLjDZf9dZ4no= github.com/oakmound/alsa v0.0.2 h1:JbOUckkJqVvhABth7qy2JgAjqsWuBPggyoYOk1L6eK0= @@ -34,15 +27,14 @@ github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56 h1:estk1glOnSVeJ9tdEZZc5mAMDZk5lNJNyJ6DvrBkTEU= golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= +golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd h1:zVFyTKZN/Q7mNRWSs1GOYnHM9NiFSJ54YVRsD0rNWT4= +golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20220321031419-a8550c1d254a h1:LnH9RNcpPv5Kzi15lXg42lYMPUf0x8CuPv1YnvBWZAg= golang.org/x/image v0.0.0-20220321031419-a8550c1d254a/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190415191353-3e0bab5405d6/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 h1:ZDL7hDvJEQEcHVkoZawKmRUgbqn1pOIzb8EinBh5csU= golang.org/x/mobile v0.0.0-20220325161704-447654d348e3/go.mod h1:pe2sM7Uk+2Su1y7u/6Z8KJ24D7lepUjFZbhFOrmDfuQ= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= @@ -55,9 +47,7 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190429190828-d89cdac9e872/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/examples/fallback-font/go.mod b/examples/fallback-font/go.mod index cb22a8de..9d13c9f9 100644 --- a/examples/fallback-font/go.mod +++ b/examples/fallback-font/go.mod @@ -12,17 +12,14 @@ require ( github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc // indirect github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 // indirect github.com/disintegration/gift v1.2.1 // indirect - github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d // indirect - github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1 // indirect github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958 // indirect github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect - github.com/hajimehoshi/go-mp3 v0.3.2 // indirect github.com/jfreymuth/pulse v0.1.0 // indirect github.com/oakmound/alsa v0.0.2 // indirect github.com/oakmound/libudev v0.2.1 // indirect github.com/oakmound/w32 v2.1.0+incompatible // indirect github.com/oov/directsound-go v0.0.0-20141101201356-e53e59c700bf // indirect - golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56 // indirect + golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd // indirect golang.org/x/image v0.0.0-20220321031419-a8550c1d254a // indirect golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 // indirect golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect diff --git a/examples/fallback-font/go.sum b/examples/fallback-font/go.sum index 5a424fe2..a0a089a6 100644 --- a/examples/fallback-font/go.sum +++ b/examples/fallback-font/go.sum @@ -7,19 +7,12 @@ github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 h1:O/r2Sj+8QcMF github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046/go.mod h1:uw9h2sd4WWHOPdJ13MQpwK5qYWKYDumDqxWWIknEQ+k= github.com/disintegration/gift v1.2.1 h1:Y005a1X4Z7Uc+0gLpSAsKhWi4qLtsdEcMIbbdvdZ6pc= github.com/disintegration/gift v1.2.1/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI= -github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d h1:HB5J9+f1xpkYLgWQ/RqEcbp3SEufyOIMYLoyKNKiG7E= -github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d/go.mod h1:CHkHWWZ4kbGY6jEy1+qlitDaCtRgNvCOQdakj/1Yl/Q= -github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1 h1:wl/ggSfTHqAy46hyzw1IlrUYwjqmXYvbJyPdH3rT7YE= -github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1/go.mod h1:frG94byMNy+1CgGrQ25dZ+17tf98EN+OYBQL4Zh612M= github.com/flopp/go-findfont v0.0.0-20201114153133-e7393a00c15b h1:/wqXgpZNTP8qV1dPEApjJXlDQd5N/F9U/WEvy5SawUI= github.com/flopp/go-findfont v0.0.0-20201114153133-e7393a00c15b/go.mod h1:wKKxRDjD024Rh7VMwoU90i6ikQRCr+JTHB5n4Ejkqvw= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958 h1:TL70PMkdPCt9cRhKTqsm+giRpgrd0IGEj763nNr2VFY= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= -github.com/hajimehoshi/go-mp3 v0.3.2 h1:xSYNE2F3lxtOu9BRjCWHHceg7S91IHfXfXp5+LYQI7s= -github.com/hajimehoshi/go-mp3 v0.3.2/go.mod h1:qMJj/CSDxx6CGHiZeCgbiq2DSUkbK0UbtXShQcnfyMM= -github.com/hajimehoshi/oto v0.6.1/go.mod h1:0QXGEkbuJRohbJaxr7ZQSxnju7hEhseiPx2hrh6raOI= github.com/jfreymuth/pulse v0.1.0 h1:KN38/9hoF9PJvP5DpEVhMRKNuwnJUonc8c9ARorRXUA= github.com/jfreymuth/pulse v0.1.0/go.mod h1:cpYspI6YljhkUf1WLXLLDmeaaPFc3CnGLjDZf9dZ4no= github.com/oakmound/alsa v0.0.2 h1:JbOUckkJqVvhABth7qy2JgAjqsWuBPggyoYOk1L6eK0= @@ -34,15 +27,14 @@ github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56 h1:estk1glOnSVeJ9tdEZZc5mAMDZk5lNJNyJ6DvrBkTEU= golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= +golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd h1:zVFyTKZN/Q7mNRWSs1GOYnHM9NiFSJ54YVRsD0rNWT4= +golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20220321031419-a8550c1d254a h1:LnH9RNcpPv5Kzi15lXg42lYMPUf0x8CuPv1YnvBWZAg= golang.org/x/image v0.0.0-20220321031419-a8550c1d254a/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190415191353-3e0bab5405d6/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 h1:ZDL7hDvJEQEcHVkoZawKmRUgbqn1pOIzb8EinBh5csU= golang.org/x/mobile v0.0.0-20220325161704-447654d348e3/go.mod h1:pe2sM7Uk+2Su1y7u/6Z8KJ24D7lepUjFZbhFOrmDfuQ= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= @@ -55,9 +47,7 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190429190828-d89cdac9e872/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/examples/flappy-bird/main.go b/examples/flappy-bird/main.go index 3aa814f3..6916b6d0 100644 --- a/examples/flappy-bird/main.go +++ b/examples/flappy-bird/main.go @@ -5,7 +5,7 @@ import ( "time" "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/alg/range/floatrange" + "github.com/oakmound/oak/v3/alg/span" "github.com/oakmound/oak/v3/mouse" oak "github.com/oakmound/oak/v3" @@ -35,7 +35,7 @@ func main() { // 1. Make Player newFlappy(ctx, 90, 140) // 2. Make scrolling repeating pillars - pillarFreq := floatrange.NewLinear(1, 5) + pillarFreq := span.NewLinear(1.0, 5.0) var pillarLoop func() pillarLoop = func() { newPillarPair(ctx) @@ -92,8 +92,8 @@ func newFlappy(ctx *scene.Context, x, y float64) { } var ( - gapPosition = floatrange.NewLinear(10, 370) - gapSpan = floatrange.NewLinear(100, 250) + gapPosition = span.NewLinear(10.0, 370.0) + gapSpan = span.NewLinear(100.0, 250.0) ) func newPillarPair(ctx *scene.Context) { diff --git a/examples/particle-demo/main.go b/examples/particle-demo/main.go index 238f9d87..43782294 100644 --- a/examples/particle-demo/main.go +++ b/examples/particle-demo/main.go @@ -8,8 +8,7 @@ import ( oak "github.com/oakmound/oak/v3" "github.com/oakmound/oak/v3/alg" - "github.com/oakmound/oak/v3/alg/range/floatrange" - "github.com/oakmound/oak/v3/alg/range/intrange" + "github.com/oakmound/oak/v3/alg/span" "github.com/oakmound/oak/v3/debugstream" "github.com/oakmound/oak/v3/event" "github.com/oakmound/oak/v3/mouse" @@ -80,9 +79,9 @@ func main() { return oakerr.UnsupportedFormat{Format: err.Error()}.Error() } if !two { - src.Generator.(pt.Sizeable).SetSize(intrange.NewConstant(f1)) + src.Generator.(pt.Sizeable).SetSize(span.NewConstant(f1)) } else { - src.Generator.(pt.Sizeable).SetSize(intrange.NewLinear(f1, f2)) + src.Generator.(pt.Sizeable).SetSize(span.NewLinear(f1, f2)) } return "" @@ -94,9 +93,9 @@ func main() { return oakerr.UnsupportedFormat{Format: err.Error()}.Error() } if !two { - src.Generator.(pt.Sizeable).SetEndSize(intrange.NewConstant(f1)) + src.Generator.(pt.Sizeable).SetEndSize(span.NewConstant(f1)) } else { - src.Generator.(pt.Sizeable).SetEndSize(intrange.NewLinear(f1, f2)) + src.Generator.(pt.Sizeable).SetEndSize(span.NewLinear(f1, f2)) } return "" }}) @@ -107,9 +106,9 @@ func main() { return oakerr.UnsupportedFormat{Format: err.Error()}.Error() } if !two { - src.Generator.GetBaseGenerator().NewPerFrame = floatrange.NewConstant(npf) + src.Generator.GetBaseGenerator().NewPerFrame = span.NewConstant(npf) } else { - src.Generator.GetBaseGenerator().NewPerFrame = floatrange.NewLinear(npf, npf2) + src.Generator.GetBaseGenerator().NewPerFrame = span.NewLinear(npf, npf2) } return "" }}) @@ -120,9 +119,9 @@ func main() { return oakerr.UnsupportedFormat{Format: err.Error()}.Error() } if !two { - src.Generator.GetBaseGenerator().LifeSpan = floatrange.NewConstant(npf) + src.Generator.GetBaseGenerator().LifeSpan = span.NewConstant(npf) } else { - src.Generator.GetBaseGenerator().LifeSpan = floatrange.NewLinear(npf, npf2) + src.Generator.GetBaseGenerator().LifeSpan = span.NewLinear(npf, npf2) } return "" }}) @@ -133,9 +132,9 @@ func main() { return oakerr.UnsupportedFormat{Format: err.Error()}.Error() } if !two { - src.Generator.GetBaseGenerator().Rotation = floatrange.NewConstant(npf) + src.Generator.GetBaseGenerator().Rotation = span.NewConstant(npf) } else { - src.Generator.GetBaseGenerator().Rotation = floatrange.NewLinear(npf, npf2) + src.Generator.GetBaseGenerator().Rotation = span.NewLinear(npf, npf2) } return "" }}) @@ -146,9 +145,9 @@ func main() { return oakerr.UnsupportedFormat{Format: err.Error()}.Error() } if !two { - src.Generator.GetBaseGenerator().Angle = floatrange.NewConstant(npf * alg.DegToRad) + src.Generator.GetBaseGenerator().Angle = span.NewConstant(npf * alg.DegToRad) } else { - src.Generator.GetBaseGenerator().Angle = floatrange.NewLinear(npf*alg.DegToRad, npf2*alg.DegToRad) + src.Generator.GetBaseGenerator().Angle = span.NewLinear(npf*alg.DegToRad, npf2*alg.DegToRad) } return "" }}) @@ -159,9 +158,9 @@ func main() { return oakerr.UnsupportedFormat{Format: err.Error()}.Error() } if !two { - src.Generator.GetBaseGenerator().Speed = floatrange.NewConstant(npf) + src.Generator.GetBaseGenerator().Speed = span.NewConstant(npf) } else { - src.Generator.GetBaseGenerator().Speed = floatrange.NewLinear(npf, npf2) + src.Generator.GetBaseGenerator().Speed = span.NewLinear(npf, npf2) } return "" }}) @@ -271,11 +270,11 @@ func main() { render.Draw(render.NewDrawFPS(0, nil, 10, 10)) x := 320.0 y := 240.0 - newPf := floatrange.NewLinear(1, 2) - life := floatrange.NewLinear(100, 120) - angle := floatrange.NewLinear(0, 360) - speed := floatrange.NewLinear(1, 5) - size := intrange.NewConstant(1) + newPf := span.NewLinear(1.0, 2.0) + life := span.NewLinear(100.0, 120.0) + angle := span.NewLinear(0.0, 360.0) + speed := span.NewLinear(1.0, 5.0) + size := span.NewConstant(1) layerFn := func(v physics.Vector) int { return 1 } diff --git a/examples/slide/main.go b/examples/slide/main.go index a41ce638..3254f38a 100644 --- a/examples/slide/main.go +++ b/examples/slide/main.go @@ -6,8 +6,7 @@ import ( "image/color" "log" - "github.com/oakmound/oak/v3/alg/range/floatrange" - "github.com/oakmound/oak/v3/alg/range/intrange" + "github.com/oakmound/oak/v3/alg/span" "github.com/oakmound/oak/v3/render/mod" "github.com/oakmound/oak/v3/render/particle" @@ -458,12 +457,12 @@ func addParticles(i int, sslides []*static.Slide) { sslides[i].Append(show.Title("Particles")) sslides[i].OnClick = func() { go particle.NewColorGenerator( - particle.Size(intrange.NewConstant(4)), - particle.EndSize(intrange.NewConstant(7)), - particle.Angle(floatrange.NewLinear(0, 359)), + particle.Size(span.NewConstant(4)), + particle.EndSize(span.NewConstant(7)), + particle.Angle(span.NewLinear(0, 359)), particle.Pos(width/2, height/2), - particle.Speed(floatrange.NewSpread(5, 2)), - particle.NewPerFrame(floatrange.NewSpread(5, 5)), + particle.Speed(span.NewSpread(5, 2)), + particle.NewPerFrame(span.NewSpread(5, 5)), particle.Color( color.RGBA{0, 0, 0, 255}, color.RGBA{0, 0, 0, 0}, color.RGBA{255, 255, 255, 255}, color.RGBA{0, 0, 0, 0}, diff --git a/examples/svg/go.mod b/examples/svg/go.mod index 366c5323..1b5782d2 100644 --- a/examples/svg/go.mod +++ b/examples/svg/go.mod @@ -13,17 +13,14 @@ require ( github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc // indirect github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 // indirect github.com/disintegration/gift v1.2.1 // indirect - github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d // indirect - github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1 // indirect github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958 // indirect github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect - github.com/hajimehoshi/go-mp3 v0.3.2 // indirect github.com/jfreymuth/pulse v0.1.0 // indirect github.com/oakmound/alsa v0.0.2 // indirect github.com/oakmound/libudev v0.2.1 // indirect github.com/oakmound/w32 v2.1.0+incompatible // indirect github.com/oov/directsound-go v0.0.0-20141101201356-e53e59c700bf // indirect - golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56 // indirect + golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd // indirect golang.org/x/image v0.0.0-20220321031419-a8550c1d254a // indirect golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 // indirect golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d // indirect diff --git a/examples/svg/go.sum b/examples/svg/go.sum index 84a67c7d..5f8cb361 100644 --- a/examples/svg/go.sum +++ b/examples/svg/go.sum @@ -7,17 +7,10 @@ github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 h1:O/r2Sj+8QcMF github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046/go.mod h1:uw9h2sd4WWHOPdJ13MQpwK5qYWKYDumDqxWWIknEQ+k= github.com/disintegration/gift v1.2.1 h1:Y005a1X4Z7Uc+0gLpSAsKhWi4qLtsdEcMIbbdvdZ6pc= github.com/disintegration/gift v1.2.1/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI= -github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d h1:HB5J9+f1xpkYLgWQ/RqEcbp3SEufyOIMYLoyKNKiG7E= -github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d/go.mod h1:CHkHWWZ4kbGY6jEy1+qlitDaCtRgNvCOQdakj/1Yl/Q= -github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1 h1:wl/ggSfTHqAy46hyzw1IlrUYwjqmXYvbJyPdH3rT7YE= -github.com/eaburns/flac v0.0.0-20171003200620-9a6fb92396d1/go.mod h1:frG94byMNy+1CgGrQ25dZ+17tf98EN+OYBQL4Zh612M= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958 h1:TL70PMkdPCt9cRhKTqsm+giRpgrd0IGEj763nNr2VFY= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= -github.com/hajimehoshi/go-mp3 v0.3.2 h1:xSYNE2F3lxtOu9BRjCWHHceg7S91IHfXfXp5+LYQI7s= -github.com/hajimehoshi/go-mp3 v0.3.2/go.mod h1:qMJj/CSDxx6CGHiZeCgbiq2DSUkbK0UbtXShQcnfyMM= -github.com/hajimehoshi/oto v0.6.1/go.mod h1:0QXGEkbuJRohbJaxr7ZQSxnju7hEhseiPx2hrh6raOI= github.com/jfreymuth/pulse v0.1.0 h1:KN38/9hoF9PJvP5DpEVhMRKNuwnJUonc8c9ARorRXUA= github.com/jfreymuth/pulse v0.1.0/go.mod h1:cpYspI6YljhkUf1WLXLLDmeaaPFc3CnGLjDZf9dZ4no= github.com/oakmound/alsa v0.0.2 h1:JbOUckkJqVvhABth7qy2JgAjqsWuBPggyoYOk1L6eK0= @@ -36,15 +29,14 @@ github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56 h1:estk1glOnSVeJ9tdEZZc5mAMDZk5lNJNyJ6DvrBkTEU= golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= +golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd h1:zVFyTKZN/Q7mNRWSs1GOYnHM9NiFSJ54YVRsD0rNWT4= +golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20220321031419-a8550c1d254a h1:LnH9RNcpPv5Kzi15lXg42lYMPUf0x8CuPv1YnvBWZAg= golang.org/x/image v0.0.0-20220321031419-a8550c1d254a/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190415191353-3e0bab5405d6/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 h1:ZDL7hDvJEQEcHVkoZawKmRUgbqn1pOIzb8EinBh5csU= golang.org/x/mobile v0.0.0-20220325161704-447654d348e3/go.mod h1:pe2sM7Uk+2Su1y7u/6Z8KJ24D7lepUjFZbhFOrmDfuQ= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= @@ -58,9 +50,7 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190429190828-d89cdac9e872/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/examples/text-demos/color-changing-text-demo/main.go b/examples/text-demos/color-changing-text-demo/main.go index cce2e41c..6d3425fb 100644 --- a/examples/text-demos/color-changing-text-demo/main.go +++ b/examples/text-demos/color-changing-text-demo/main.go @@ -6,11 +6,10 @@ import ( "path" "strconv" - "github.com/oakmound/oak/v3/alg/range/floatrange" - "image" oak "github.com/oakmound/oak/v3" + "github.com/oakmound/oak/v3/alg/span" "github.com/oakmound/oak/v3/render" "github.com/oakmound/oak/v3/scene" ) @@ -18,8 +17,8 @@ import ( var ( font *render.Font r, g, b float64 - diff = floatrange.NewSpread(0, 10) - limit = floatrange.NewLinear(0, 255) + diff = span.NewSpread(0.0, 10.0) + limit = span.NewLinear(0.0, 255.0) ) type floatStringer struct { @@ -62,7 +61,7 @@ func main() { render.Draw(font2.NewText("g", 280, 260), 0) render.Draw(font2.NewText("b", 400, 260), 0) - ctx.DoEachFrame(func(){ + ctx.DoEachFrame(func() { r = limit.EnforceRange(r + diff.Poll()) g = limit.EnforceRange(g + diff.Poll()) b = limit.EnforceRange(b + diff.Poll()) diff --git a/examples/text-demos/continual-text-demo/main.go b/examples/text-demos/continual-text-demo/main.go index 4799304d..3aba37db 100644 --- a/examples/text-demos/continual-text-demo/main.go +++ b/examples/text-demos/continual-text-demo/main.go @@ -4,7 +4,7 @@ import ( "image/color" "math/rand" - "github.com/oakmound/oak/v3/alg/range/floatrange" + "github.com/oakmound/oak/v3/alg/span" "github.com/oakmound/oak/v3/dlog" "github.com/oakmound/oak/v3/event" @@ -25,8 +25,8 @@ const ( var ( font *render.Font r, g, b float64 - diff = floatrange.NewSpread(0, 10) - limit = floatrange.NewLinear(0, 255) + diff = span.NewSpread(0.0, 10.0) + limit = span.NewLinear(0.0, 255.0) strs []*render.Text ) diff --git a/go.mod b/go.mod index 2b6b03bd..4a4d3f59 100644 --- a/go.mod +++ b/go.mod @@ -16,6 +16,7 @@ require ( github.com/oakmound/libudev v0.2.1 // linux, joystick github.com/oakmound/w32 v2.1.0+incompatible // windows, shiny github.com/oov/directsound-go v0.0.0-20141101201356-e53e59c700bf // windows, audio + golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd golang.org/x/image v0.0.0-20220321031419-a8550c1d254a golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 golang.org/x/sync v0.0.0-20210220032951-036812b2e83c @@ -24,5 +25,4 @@ require ( require ( github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d // indirect - golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56 // indirect ) diff --git a/go.sum b/go.sum index addc030d..4e184703 100644 --- a/go.sum +++ b/go.sum @@ -35,8 +35,9 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56 h1:estk1glOnSVeJ9tdEZZc5mAMDZk5lNJNyJ6DvrBkTEU= golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= +golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd h1:zVFyTKZN/Q7mNRWSs1GOYnHM9NiFSJ54YVRsD0rNWT4= +golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20220321031419-a8550c1d254a h1:LnH9RNcpPv5Kzi15lXg42lYMPUf0x8CuPv1YnvBWZAg= diff --git a/render/line.go b/render/line.go index 09c8e217..accb0483 100644 --- a/render/line.go +++ b/render/line.go @@ -5,7 +5,7 @@ import ( "image/color" "math" - "github.com/oakmound/oak/v3/alg/range/colorrange" + "github.com/oakmound/oak/v3/alg/span" ) // Todo: @@ -30,7 +30,7 @@ func NewThickLine(x1, y1, x2, y2 float64, c color.Color, thickness int) *Sprite // NewGradientLine returns a Line that has some value of thickness along with a start and end color func NewGradientLine(x1, y1, x2, y2 float64, c1, c2 color.Color, thickness int) *Sprite { - colorer := colorrange.NewLinear(c1, c2).Percentile + colorer := span.NewLinearColor(c1, c2).Percentile return NewColoredLine(x1, y1, x2, y2, colorer, thickness) } @@ -57,7 +57,7 @@ func DrawThickLine(rgba *image.RGBA, x1, y1, x2, y2 int, c color.Color, thicknes //DrawGradientLine acts like DrawThickLine but also applies a gradient to the line func DrawGradientLine(rgba *image.RGBA, x1, y1, x2, y2 int, c1, c2 color.Color, thickness int) { - colorer := colorrange.NewLinear(c1, c2).Percentile + colorer := span.NewLinearColor(c1, c2).Percentile DrawLineColored(rgba, x1, y1, x2, y2, thickness, colorer) } diff --git a/render/particle/colorGenerator.go b/render/particle/colorGenerator.go index 4b22ceeb..cf5f9d2b 100644 --- a/render/particle/colorGenerator.go +++ b/render/particle/colorGenerator.go @@ -6,7 +6,7 @@ import ( "github.com/oakmound/oak/v3/alg" "github.com/oakmound/oak/v3/shape" - "github.com/oakmound/oak/v3/alg/range/intrange" + "github.com/oakmound/oak/v3/alg/span" ) // A ColorGenerator generates ColorParticles @@ -15,8 +15,8 @@ type ColorGenerator struct { StartColor, StartColorRand color.Color EndColor, EndColorRand color.Color // The size, in pixel radius, of spawned particles - Size intrange.Range - EndSize intrange.Range + Size span.Span[int] + EndSize span.Span[int] // // Some sort of particle type, for rendering triangles or squares or circles... Shape shape.Shape @@ -40,8 +40,8 @@ func (cg *ColorGenerator) setDefaults() { cg.StartColorRand = color.RGBA{0, 0, 0, 0} cg.EndColor = color.RGBA{0, 0, 0, 0} cg.EndColorRand = color.RGBA{0, 0, 0, 0} - cg.Size = intrange.NewConstant(1) - cg.EndSize = intrange.NewConstant(1) + cg.Size = span.NewConstant(1) + cg.EndSize = span.NewConstant(1) cg.Shape = shape.Square } @@ -49,7 +49,7 @@ func (cg *ColorGenerator) setDefaults() { func (cg *ColorGenerator) Generate(layer int) *Source { // Convert rotation from degrees to radians if cg.Rotation != nil { - cg.Rotation = cg.Rotation.Mult(alg.DegToRad) + cg.Rotation = cg.Rotation.MulSpan(alg.DegToRad) } return NewDefaultSource(cg, layer) } @@ -66,7 +66,7 @@ func (cg *ColorGenerator) GenerateParticle(bp *baseParticle) Particle { } // GetParticleSize on a color generator returns that the particles -// are per-particle specificially sized +// are per-particle specifically sized func (cg *ColorGenerator) GetParticleSize() (w float64, h float64, perParticle bool) { return 0, 0, true } @@ -92,12 +92,12 @@ func (cg *ColorGenerator) SetEndColor(ec, ecr color.Color) { // A Sizeable is a generator that can have some size set to it type Sizeable interface { - SetSize(i intrange.Range) - SetEndSize(i intrange.Range) + SetSize(i span.Span[int]) + SetEndSize(i span.Span[int]) } // Size is an option to set a Sizeable size -func Size(i intrange.Range) func(Generator) { +func Size(i span.Span[int]) func(Generator) { return func(g Generator) { if g2, ok := g.(Sizeable); ok { g2.SetSize(i) @@ -106,7 +106,7 @@ func Size(i intrange.Range) func(Generator) { } // EndSize sets the end size of a Sizeable -func EndSize(i intrange.Range) func(Generator) { +func EndSize(i span.Span[int]) func(Generator) { return func(g Generator) { if g2, ok := g.(Sizeable); ok { g2.SetEndSize(i) @@ -115,12 +115,12 @@ func EndSize(i intrange.Range) func(Generator) { } // SetSize satisfies Sizeable -func (cg *ColorGenerator) SetSize(i intrange.Range) { +func (cg *ColorGenerator) SetSize(i span.Span[int]) { cg.Size = i } // SetEndSize stasfies Sizeable -func (cg *ColorGenerator) SetEndSize(i intrange.Range) { +func (cg *ColorGenerator) SetEndSize(i span.Span[int]) { cg.EndSize = i } diff --git a/render/particle/color_test.go b/render/particle/color_test.go index 0ad2dcde..e4cf0101 100644 --- a/render/particle/color_test.go +++ b/render/particle/color_test.go @@ -5,18 +5,17 @@ import ( "image/color" "testing" - "github.com/oakmound/oak/v3/alg/range/floatrange" - "github.com/oakmound/oak/v3/alg/range/intrange" + "github.com/oakmound/oak/v3/alg/span" "github.com/oakmound/oak/v3/render" "github.com/oakmound/oak/v3/shape" ) func TestColorParticle(t *testing.T) { g := NewColorGenerator( - Rotation(floatrange.NewConstant(1)), + Rotation(span.NewConstant(1.0)), Color(color.RGBA{255, 0, 0, 255}, color.RGBA{255, 0, 0, 255}, color.RGBA{255, 0, 0, 255}, color.RGBA{255, 0, 0, 255}), - Size(intrange.NewConstant(5)), - EndSize(intrange.NewConstant(10)), + Size(span.NewConstant(5)), + EndSize(span.NewConstant(10)), Shape(shape.Heart), ) src := g.Generate(0) diff --git a/render/particle/generator.go b/render/particle/generator.go index 53299897..39cc89c5 100644 --- a/render/particle/generator.go +++ b/render/particle/generator.go @@ -1,14 +1,15 @@ package particle import ( - "github.com/oakmound/oak/v3/alg/range/floatrange" - "github.com/oakmound/oak/v3/alg/range/intrange" + "math" + + "github.com/oakmound/oak/v3/alg/span" "github.com/oakmound/oak/v3/physics" ) var ( // Inf represents Infinite duration - Inf = intrange.NewInfinite() + Inf = span.NewConstant(math.MaxInt32) ) // A Generator holds settings for generating particles @@ -33,14 +34,14 @@ type BaseGenerator struct { // to something along the lines of 'new per 30 frames', // or allow low fractional values to be meaningful, // so that more fine-tuned particle generation speeds are possible. - NewPerFrame floatrange.Range + NewPerFrame span.Span[float64] // The number of frames each particle should persist // before being removed. - LifeSpan floatrange.Range + LifeSpan span.Span[float64] // 0 - between quadrant 1 and 4 // 90 - between quadrant 2 and 1 - Angle floatrange.Range - Speed floatrange.Range + Angle span.Span[float64] + Speed span.Span[float64] Spread physics.Vector // Duration in milliseconds for the particle source. // After this many milliseconds have passed, it will @@ -48,9 +49,9 @@ type BaseGenerator struct { // not be removed until their individual lifespans run // out. // A duration of -1 represents never stopping. - Duration intrange.Range + Duration span.Span[int] // Rotational acceleration, to change angle over time - Rotation floatrange.Range + Rotation span.Span[float64] // Gravity X() and Gravity Y() represent particle acceleration per frame. Gravity physics.Vector SpeedDecay physics.Vector @@ -67,10 +68,10 @@ func (bg *BaseGenerator) GetBaseGenerator() *BaseGenerator { func (bg *BaseGenerator) setDefaults() { *bg = BaseGenerator{ Vector: physics.NewVector(0, 0), - NewPerFrame: floatrange.NewConstant(1), - LifeSpan: floatrange.NewConstant(60), - Angle: floatrange.NewConstant(0), - Speed: floatrange.NewConstant(1), + NewPerFrame: span.NewConstant(1.0), + LifeSpan: span.NewConstant(60.0), + Angle: span.NewConstant(0.0), + Speed: span.NewConstant(1.0), Spread: physics.NewVector(0, 0), Duration: Inf, Rotation: nil, diff --git a/render/particle/gradientGenerator.go b/render/particle/gradientGenerator.go index 405e3cac..79e09d5d 100644 --- a/render/particle/gradientGenerator.go +++ b/render/particle/gradientGenerator.go @@ -43,7 +43,7 @@ func (gg *GradientGenerator) setDefaults() { func (gg *GradientGenerator) Generate(layer int) *Source { // Convert rotation from degrees to radians if gg.Rotation != nil { - gg.Rotation = gg.Rotation.Mult(alg.DegToRad) + gg.Rotation = gg.Rotation.MulSpan(alg.DegToRad) } return NewDefaultSource(gg, layer) } diff --git a/render/particle/gradient_test.go b/render/particle/gradient_test.go index 244d9aa3..f5fb88c0 100644 --- a/render/particle/gradient_test.go +++ b/render/particle/gradient_test.go @@ -5,8 +5,7 @@ import ( "image/color" "testing" - "github.com/oakmound/oak/v3/alg/range/floatrange" - "github.com/oakmound/oak/v3/alg/range/intrange" + "github.com/oakmound/oak/v3/alg/span" "github.com/oakmound/oak/v3/physics" "github.com/oakmound/oak/v3/render" "github.com/oakmound/oak/v3/shape" @@ -14,22 +13,22 @@ import ( func TestGradientParticle(t *testing.T) { g := NewGradientGenerator( - Rotation(floatrange.NewConstant(1)), + Rotation(span.NewConstant(1.0)), Color(color.RGBA{255, 0, 0, 255}, color.RGBA{255, 0, 0, 255}, color.RGBA{255, 0, 0, 255}, color.RGBA{255, 0, 0, 255}), Color2(color.RGBA{255, 0, 0, 255}, color.RGBA{255, 0, 0, 255}, color.RGBA{255, 0, 0, 255}, color.RGBA{255, 0, 0, 255}), - Size(intrange.NewConstant(5)), - EndSize(intrange.NewConstant(10)), + Size(span.NewConstant(5)), + EndSize(span.NewConstant(10)), Shape(shape.Heart), Progress(render.HorizontalProgress), And( - NewPerFrame(floatrange.NewConstant(20)), + NewPerFrame(span.NewConstant(20.0)), ), Pos(20, 20), - LifeSpan(floatrange.NewConstant(10)), - Angle(floatrange.NewConstant(0)), - Speed(floatrange.NewConstant(0)), + LifeSpan(span.NewConstant(10.0)), + Angle(span.NewConstant(0.0)), + Speed(span.NewConstant(0.0)), Spread(10, 10), - Duration(intrange.NewConstant(10)), + Duration(span.NewConstant(10)), Gravity(10, 10), SpeedDecay(1, 1), End(func(_ Particle) {}), diff --git a/render/particle/options.go b/render/particle/options.go index 3b53f59e..a0115727 100644 --- a/render/particle/options.go +++ b/render/particle/options.go @@ -1,9 +1,10 @@ package particle import ( + "math" + "github.com/oakmound/oak/v3/alg" - "github.com/oakmound/oak/v3/alg/range/floatrange" - "github.com/oakmound/oak/v3/alg/range/intrange" + "github.com/oakmound/oak/v3/alg/span" "github.com/oakmound/oak/v3/physics" ) @@ -18,7 +19,7 @@ func And(as ...func(Generator)) func(Generator) { } // NewPerFrame sets how many particles should be produced per frame -func NewPerFrame(npf floatrange.Range) func(Generator) { +func NewPerFrame(npf span.Span[float64]) func(Generator) { return func(g Generator) { g.GetBaseGenerator().NewPerFrame = npf } @@ -32,7 +33,7 @@ func Pos(x, y float64) func(Generator) { } // LifeSpan sets how long a particle should last before dying -func LifeSpan(ls floatrange.Range) func(Generator) { +func LifeSpan(ls span.Span[float64]) func(Generator) { return func(g Generator) { g.GetBaseGenerator().LifeSpan = ls } @@ -41,19 +42,19 @@ func LifeSpan(ls floatrange.Range) func(Generator) { // InfiniteLifeSpan will set particles to never die over time. func InfiniteLifeSpan() func(Generator) { return func(g Generator) { - g.GetBaseGenerator().LifeSpan = floatrange.NewInfinite() + g.GetBaseGenerator().LifeSpan = span.NewConstant(math.MaxFloat64) } } // Angle sets the initial angle of a particle in degrees -func Angle(a floatrange.Range) func(Generator) { +func Angle(a span.Span[float64]) func(Generator) { return func(g Generator) { - g.GetBaseGenerator().Angle = a.Mult(alg.DegToRad) + g.GetBaseGenerator().Angle = a.MulSpan(alg.DegToRad) } } // Speed sets the initial speed of a particle -func Speed(s floatrange.Range) func(Generator) { +func Speed(s span.Span[float64]) func(Generator) { return func(g Generator) { g.GetBaseGenerator().Speed = s } @@ -67,14 +68,14 @@ func Spread(x, y float64) func(Generator) { } // Duration sets how long a generator should produce particles for -func Duration(i intrange.Range) func(Generator) { +func Duration(i span.Span[int]) func(Generator) { return func(g Generator) { g.GetBaseGenerator().Duration = i } } // Rotation rotates particles by a variable amount per frame -func Rotation(a floatrange.Range) func(Generator) { +func Rotation(a span.Span[float64]) func(Generator) { return func(g Generator) { g.GetBaseGenerator().Rotation = a } diff --git a/render/particle/source_test.go b/render/particle/source_test.go index 728d68d5..70dd4970 100644 --- a/render/particle/source_test.go +++ b/render/particle/source_test.go @@ -4,8 +4,7 @@ import ( "image/color" "testing" - "github.com/oakmound/oak/v3/alg/range/floatrange" - "github.com/oakmound/oak/v3/alg/range/intrange" + "github.com/oakmound/oak/v3/alg/span" "github.com/oakmound/oak/v3/event" "github.com/oakmound/oak/v3/physics" "github.com/oakmound/oak/v3/render" @@ -14,25 +13,25 @@ import ( func TestSource(t *testing.T) { g := NewGradientGenerator( - Rotation(floatrange.NewConstant(1)), + Rotation(span.NewConstant(1.0)), Color(color.RGBA{255, 0, 0, 255}, color.RGBA{255, 0, 0, 255}, color.RGBA{255, 0, 0, 255}, color.RGBA{255, 0, 0, 255}), Color2(color.RGBA{255, 0, 0, 255}, color.RGBA{255, 0, 0, 255}, color.RGBA{255, 0, 0, 255}, color.RGBA{255, 0, 0, 255}), - Size(intrange.NewConstant(5)), - EndSize(intrange.NewConstant(10)), + Size(span.NewConstant(5)), + EndSize(span.NewConstant(10)), Shape(shape.Heart), Progress(render.HorizontalProgress), And( - NewPerFrame(floatrange.NewConstant(200)), + NewPerFrame(span.NewConstant(200.0)), ), Pos(20, 20), - LifeSpan(floatrange.NewConstant(10)), + LifeSpan(span.NewConstant(10.0)), Limit(2047), - Angle(floatrange.NewConstant(0)), - Speed(floatrange.NewConstant(0)), + Angle(span.NewConstant(0.0)), + Speed(span.NewConstant(0.0)), Spread(10, 10), - Duration(intrange.NewConstant(10)), + Duration(span.NewConstant(10)), Gravity(10, 10), SpeedDecay(1, 1), End(func(_ Particle) {}), diff --git a/render/particle/spriteGenerator.go b/render/particle/spriteGenerator.go index 111b6102..9c5a5cd4 100644 --- a/render/particle/spriteGenerator.go +++ b/render/particle/spriteGenerator.go @@ -1,7 +1,7 @@ package particle import ( - "github.com/oakmound/oak/v3/alg/range/floatrange" + "github.com/oakmound/oak/v3/alg/span" "github.com/oakmound/oak/v3/alg" "github.com/oakmound/oak/v3/render" @@ -10,7 +10,7 @@ import ( // A SpriteGenerator generate SpriteParticles type SpriteGenerator struct { BaseGenerator - SpriteRotation floatrange.Range + SpriteRotation span.Span[float64] Base *render.Sprite } @@ -28,14 +28,14 @@ func NewSpriteGenerator(options ...func(Generator)) Generator { func (sg *SpriteGenerator) setDefaults() { sg.BaseGenerator.setDefaults() - sg.SpriteRotation = floatrange.NewConstant(0) + sg.SpriteRotation = span.NewConstant(0.0) } // Generate creates a source using this generator func (sg *SpriteGenerator) Generate(layer int) *Source { // Convert rotation from degrees to radians if sg.Rotation != nil { - sg.Rotation = sg.Rotation.Mult(alg.DegToRad) + sg.Rotation = sg.Rotation.MulSpan(alg.DegToRad) } return NewDefaultSource(sg, layer) } @@ -51,7 +51,7 @@ func (sg *SpriteGenerator) GenerateParticle(bp *baseParticle) Particle { // A Sprited can have a sprite set to it type Sprited interface { SetSprite(*render.Sprite) - SetSpriteRotation(f floatrange.Range) + SetSpriteRotation(f span.Span[float64]) } // Sprite sets a Sprited's sprite @@ -68,14 +68,14 @@ func (sg *SpriteGenerator) SetSprite(s *render.Sprite) { } // SpriteRotation sets a Sprited's rotation -func SpriteRotation(f floatrange.Range) func(Generator) { +func SpriteRotation(f span.Span[float64]) func(Generator) { return func(g Generator) { g.(Sprited).SetSpriteRotation(f) } } // SetSpriteRotation satisfied Sprited for SpriteGenerators -func (sg *SpriteGenerator) SetSpriteRotation(f floatrange.Range) { +func (sg *SpriteGenerator) SetSpriteRotation(f span.Span[float64]) { sg.SpriteRotation = f } diff --git a/render/particle/sprite_test.go b/render/particle/sprite_test.go index e03940d5..ad878f9a 100644 --- a/render/particle/sprite_test.go +++ b/render/particle/sprite_test.go @@ -5,8 +5,7 @@ import ( "image/color" "testing" - "github.com/oakmound/oak/v3/alg/range/floatrange" - + "github.com/oakmound/oak/v3/alg/span" "github.com/oakmound/oak/v3/render" ) @@ -14,8 +13,8 @@ func TestSpriteParticle(t *testing.T) { s := render.NewColorBox(10, 10, color.RGBA{255, 0, 0, 255}) g := NewSpriteGenerator( Sprite(s), - Rotation(floatrange.NewConstant(1)), - SpriteRotation(floatrange.NewConstant(1)), + Rotation(span.NewConstant(1.0)), + SpriteRotation(span.NewConstant(1.0)), ) src := g.Generate(0) src.addParticles() diff --git a/render/polygon.go b/render/polygon.go index c2086a18..9418c44c 100644 --- a/render/polygon.go +++ b/render/polygon.go @@ -6,7 +6,7 @@ import ( "math" "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/alg/range/colorrange" + "github.com/oakmound/oak/v3/alg/span" ) // A Polygon is a renderable that is represented by a set of in order points @@ -45,7 +45,7 @@ func (pg *Polygon) GetThickOutline(c color.Color, thickness int) *CompositeM { // GetGradientOutline returns a set of lines of the given color along this polygon's outline, // at the given thickness, ranging from c1 to c2 in color func (pg *Polygon) GetGradientOutline(c1, c2 color.Color, thickness int) *CompositeM { - return pg.GetColoredOutline(colorrange.NewLinear(c1, c2).Percentile, thickness) + return pg.GetColoredOutline(span.NewLinearColor(c1, c2).Percentile, thickness) } // GetColoredOutline returns a set of lines of the given color along this polygon's outline diff --git a/render/sprite_test.go b/render/sprite_test.go index d6abed87..b56f9245 100644 --- a/render/sprite_test.go +++ b/render/sprite_test.go @@ -6,8 +6,7 @@ import ( "reflect" "testing" - "github.com/oakmound/oak/v3/alg/range/colorrange" - "github.com/oakmound/oak/v3/alg/range/intrange" + "github.com/oakmound/oak/v3/alg/span" "github.com/oakmound/oak/v3/render/mod" ) @@ -15,9 +14,9 @@ var ( // this is excessive for a lot of tests // but it takes away some decision making // and could reveal problems that probably aren't there - widths = intrange.NewLinear(1, 10) - heights = intrange.NewLinear(1, 10) - colors = colorrange.NewLinear(color.RGBA{0, 0, 0, 0}, color.RGBA{255, 255, 255, 255}) + widths = span.NewLinear(1, 10) + heights = span.NewLinear(1, 10) + colors = span.NewLinearColor(color.RGBA{0, 0, 0, 0}, color.RGBA{255, 255, 255, 255}) ) const ( From 2ab25639d701c82b5826617238437597f68f5074 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 16 Apr 2022 19:55:50 -0500 Subject: [PATCH 120/146] scene: embed key state into context --- debugstream/scopeHelper_test.go | 8 ++------ debugtools/mouse.go | 2 +- event/bus_test.go | 2 +- scene/context.go | 8 +++----- scene/transition.go | 2 +- scene/transition_gift.go | 2 +- sceneLoop.go | 2 +- 7 files changed, 10 insertions(+), 16 deletions(-) diff --git a/debugstream/scopeHelper_test.go b/debugstream/scopeHelper_test.go index 62ed8485..91268fd5 100644 --- a/debugstream/scopeHelper_test.go +++ b/debugstream/scopeHelper_test.go @@ -45,12 +45,8 @@ func (f *fakeWindow) MoveWindow(x, y, w, h int) error { return nil } -func (f *fakeWindow) Width() int { - return 1 -} - -func (f *fakeWindow) Height() int { - return 1 +func (f *fakeWindow) Bounds() intgeom.Point2 { + return intgeom.Point2{1, 1} } func (f *fakeWindow) Viewport() intgeom.Point2 { diff --git a/debugtools/mouse.go b/debugtools/mouse.go index 2c8aae56..9f36e1fe 100644 --- a/debugtools/mouse.go +++ b/debugtools/mouse.go @@ -12,7 +12,7 @@ import ( // key is held down at the time. If 0 is given, it will always be printed func DebugMouseRelease(ctx *scene.Context, k key.Code) { event.GlobalBind(ctx, mouse.Release, func(mev *mouse.Event) event.Response { - if k == 0 || ctx.KeyState.IsDown(k) { + if k == 0 || ctx.IsDown(k) { dlog.Info(mev) } return 0 diff --git a/event/bus_test.go b/event/bus_test.go index 8b227ddb..5567c809 100644 --- a/event/bus_test.go +++ b/event/bus_test.go @@ -90,7 +90,7 @@ func TestBus_EnterLoop(t *testing.T) { }) <-b1.Bound cancel := event.EnterLoop(b, 50*time.Millisecond) - time.Sleep(1 * time.Second) + time.Sleep(1*time.Second + 15*time.Millisecond) cancel() if calls != 20 { t.Fatal(expectedError("calls", 20, calls)) diff --git a/scene/context.go b/scene/context.go index 1485fa1a..5932017e 100644 --- a/scene/context.go +++ b/scene/context.go @@ -13,23 +13,21 @@ import ( // the draw stack, event bus, known event callers, collision trees, keyboard state, // and a reference to the OS window itself. When a scene ends, modifications made // to these structures will be reset, excluding window modifications. -// TODO oak v4: consider embedding these system objects on the context to change -// ctx.DrawStack.Draw to ctx.Draw and ctx.Handler.Bind to ctx.Bind type Context struct { // This context will be canceled when the scene ends context.Context - *event.CallerMap - event.Handler PreviousScene string SceneInput interface{} Window Window + *event.CallerMap + event.Handler *render.DrawStack + *key.State MouseTree *collision.Tree CollisionTree *collision.Tree - KeyState *key.State } // DoEachFrame is a helper method to call a function on each frame for the duration of this scene. diff --git a/scene/transition.go b/scene/transition.go index 8b125ea1..4e251023 100644 --- a/scene/transition.go +++ b/scene/transition.go @@ -12,7 +12,7 @@ type Transition func(*image.RGBA, int) bool // Zoom transitions by performing a simplistic zoom each frame towards some // percentage-based part of the screen. -func Zoom(xPerc, yPerc float64, frames int, zoomRate float64) func(*image.RGBA, int) bool { +func Zoom(xPerc, yPerc float64, frames int, zoomRate float64) Transition { return func(buf *image.RGBA, frame int) bool { if frame > frames { return false diff --git a/scene/transition_gift.go b/scene/transition_gift.go index 706af4cd..e8aee858 100644 --- a/scene/transition_gift.go +++ b/scene/transition_gift.go @@ -11,7 +11,7 @@ import ( // Fade is a scene transition that fades to black at a given rate for // a total of 'frames' frames -func Fade(rate float32, frames int) func(*image.RGBA, int) bool { +func Fade(rate float32, frames int) Transition { rate *= -1 return func(buf *image.RGBA, frame int) bool { if frame > frames { diff --git a/sceneLoop.go b/sceneLoop.go index 958b0946..5afe3a7d 100644 --- a/sceneLoop.go +++ b/sceneLoop.go @@ -85,7 +85,7 @@ func (w *Window) sceneLoop(first string, trackingInputs, batchLoad bool) { MouseTree: w.MouseTree, CollisionTree: w.CollisionTree, Window: w, - KeyState: &w.State, + State: &w.State, }) w.transitionCh <- struct{}{} }() From b512f3f26e99d5edc585c75fbfc6f7b2168ac401 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 16 Apr 2022 19:59:00 -0500 Subject: [PATCH 121/146] entities: remove keystate from TopDown checks --- entities/move.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/entities/move.go b/entities/move.go index f7345eb0..ce69d976 100644 --- a/entities/move.go +++ b/entities/move.go @@ -19,16 +19,16 @@ func Arrows(mvr *Entity) { // TopDown moves the given mover based on its speed as the given keys are pressed func TopDown(mvr *Entity, up, down, left, right key.Code) { mvr.Delta = floatgeom.Point2{} - if mvr.ctx.KeyState.IsDown(up) { + if mvr.ctx.IsDown(up) { mvr.Delta[1] -= mvr.Speed[1] } - if mvr.ctx.KeyState.IsDown(down) { + if mvr.ctx.IsDown(down) { mvr.Delta[1] += mvr.Speed[1] } - if mvr.ctx.KeyState.IsDown(left) { + if mvr.ctx.IsDown(left) { mvr.Delta[0] -= mvr.Speed[0] } - if mvr.ctx.KeyState.IsDown(right) { + if mvr.ctx.IsDown(right) { mvr.Delta[0] += mvr.Speed[0] } mvr.ShiftDelta() From a3bf684123a284320bf2e1b60eb9c679251c3a26 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 16 Apr 2022 20:03:31 -0500 Subject: [PATCH 122/146] oak: add span to test coverage script --- test_coverage.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test_coverage.sh b/test_coverage.sh index 06aa1ff3..a0b230ca 100755 --- a/test_coverage.sh +++ b/test_coverage.sh @@ -18,6 +18,11 @@ if [ -f profile.out ]; then cat profile.out >> coverage.txt rm profile.out fi +go test -coverprofile=profile.out -covermode=atomic ./alg/span +if [ -f profile.out ]; then + cat profile.out >> coverage.txt + rm profile.out +fi go test -coverprofile=profile.out -covermode=atomic ./collision if [ -f profile.out ]; then cat profile.out >> coverage.txt From 863a876881144925e59c914c2cb0d06a3167fc76 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 16 Apr 2022 20:05:00 -0500 Subject: [PATCH 123/146] examples/slide: use floating point spans --- examples/slide/main.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/slide/main.go b/examples/slide/main.go index 3254f38a..49efccf1 100644 --- a/examples/slide/main.go +++ b/examples/slide/main.go @@ -459,10 +459,10 @@ func addParticles(i int, sslides []*static.Slide) { go particle.NewColorGenerator( particle.Size(span.NewConstant(4)), particle.EndSize(span.NewConstant(7)), - particle.Angle(span.NewLinear(0, 359)), + particle.Angle(span.NewLinear(0.0, 359.0)), particle.Pos(width/2, height/2), - particle.Speed(span.NewSpread(5, 2)), - particle.NewPerFrame(span.NewSpread(5, 5)), + particle.Speed(span.NewSpread(5.0, 2.0)), + particle.NewPerFrame(span.NewSpread(5.0, 5.0)), particle.Color( color.RGBA{0, 0, 0, 255}, color.RGBA{0, 0, 0, 0}, color.RGBA{255, 255, 255, 255}, color.RGBA{0, 0, 0, 0}, From 5b31b05f70a7e690c635803d25e14264394201cf Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 16 Apr 2022 20:11:26 -0500 Subject: [PATCH 124/146] examples: rename EnforceRange to Clamp --- alg/span/builtin_test.go | 8 ++++---- examples/text-demos/color-changing-text-demo/main.go | 6 +++--- examples/text-demos/continual-text-demo/main.go | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/alg/span/builtin_test.go b/alg/span/builtin_test.go index 4dda1e49..ecb5be1e 100644 --- a/alg/span/builtin_test.go +++ b/alg/span/builtin_test.go @@ -53,15 +53,15 @@ func TestLinear(t *testing.T) { } underMin := (rand.Intn(maxInt-minInt) + minInt) - (maxInt - minInt) if linear.Clamp(underMin) != min { - t.Fatal("Linear.EnforceRange under min did not return min") + t.Fatal("Linear.Clamp under min did not return min") } overMax := (rand.Intn(maxInt-minInt) + minInt) + (maxInt - minInt) if linear.Clamp(overMax) != max { - t.Fatal("Linear.EnforceRange over max did not return max") + t.Fatal("Linear.Clamp over max did not return max") } within := rand.Intn(max-min) + min if linear.Clamp(within) != within { - t.Fatal("Linear.EnforceRange within range did not return input") + t.Fatal("Linear.Clamp within range did not return input") } percent := rand.Float64() if !flipped { @@ -93,7 +93,7 @@ func TestConstant(t *testing.T) { t.Fatal("Constant.Mult result did not match expected Poll") } if cons.Clamp(rand.Intn(maxInt)) != val { - t.Fatal("Constant.EnforceRange did not return initialized value") + t.Fatal("Constant.Clamp did not return initialized value") } if cons.Percentile(rand.Float64()) != val { t.Fatal("Constant.Percentile did not return initialized value") diff --git a/examples/text-demos/color-changing-text-demo/main.go b/examples/text-demos/color-changing-text-demo/main.go index 6d3425fb..4b76cf6f 100644 --- a/examples/text-demos/color-changing-text-demo/main.go +++ b/examples/text-demos/color-changing-text-demo/main.go @@ -62,9 +62,9 @@ func main() { render.Draw(font2.NewText("b", 400, 260), 0) ctx.DoEachFrame(func() { - r = limit.EnforceRange(r + diff.Poll()) - g = limit.EnforceRange(g + diff.Poll()) - b = limit.EnforceRange(b + diff.Poll()) + r = limit.Clamp(r + diff.Poll()) + g = limit.Clamp(g + diff.Poll()) + b = limit.Clamp(b + diff.Poll()) font.Drawer.Src = image.NewUniform( color.RGBA{ uint8(r), diff --git a/examples/text-demos/continual-text-demo/main.go b/examples/text-demos/continual-text-demo/main.go index 3aba37db..66f309c8 100644 --- a/examples/text-demos/continual-text-demo/main.go +++ b/examples/text-demos/continual-text-demo/main.go @@ -63,9 +63,9 @@ func main() { } event.GlobalBind(ctx, event.Enter, func(_ event.EnterPayload) event.Response { - r = limit.EnforceRange(r + diff.Poll()) - g = limit.EnforceRange(g + diff.Poll()) - b = limit.EnforceRange(b + diff.Poll()) + r = limit.Clamp(r + diff.Poll()) + g = limit.Clamp(g + diff.Poll()) + b = limit.Clamp(b + diff.Poll()) font.Drawer.Src = image.NewUniform( color.RGBA{ uint8(r), From f1ebdf38267a4d9b927acc8a00450e9988d528d2 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 16 Apr 2022 20:35:43 -0500 Subject: [PATCH 125/146] fileutil: expand test coverage --- fileutil/open.go | 5 +- fileutil/open_test.go | 104 +++++++++++++++++++++++++++++++----------- 2 files changed, 80 insertions(+), 29 deletions(-) diff --git a/fileutil/open.go b/fileutil/open.go index 02140f32..7a155271 100644 --- a/fileutil/open.go +++ b/fileutil/open.go @@ -1,7 +1,6 @@ package fileutil import ( - "bytes" "io" "io/fs" "os" @@ -29,11 +28,11 @@ func Open(file string) (io.ReadCloser, error) { fixedPath := fixWindowsPath(file) f, readErr := FS.Open(fixedPath) if readErr != nil && OSFallback { - byt, err := os.ReadFile(file) + osFile, err := os.Open(file) if err != nil { return nil, err } - return io.NopCloser(bytes.NewReader(byt)), nil + return osFile, nil } return f, readErr } diff --git a/fileutil/open_test.go b/fileutil/open_test.go index 5472a371..c1e48974 100644 --- a/fileutil/open_test.go +++ b/fileutil/open_test.go @@ -2,7 +2,9 @@ package fileutil import ( "embed" + "errors" "io" + "os" "testing" ) @@ -10,36 +12,86 @@ import ( var testfs embed.FS func TestOpen(t *testing.T) { - FS = testfs - f, err := Open("testdata/test.txt") - if err != nil { - t.Fatalf("open failed: %v", err) - } - _, err = io.ReadAll(f) - if err != nil { - t.Fatalf("read all failed: %v", err) - } - err = f.Close() - if err != nil { - t.Fatalf("close failed: %v", err) - } + t.Run("Basic", func(t *testing.T) { + FS = testfs + f, err := Open("testdata/test.txt") + if err != nil { + t.Fatalf("open failed: %v", err) + } + _, err = io.ReadAll(f) + if err != nil { + t.Fatalf("read all failed: %v", err) + } + err = f.Close() + if err != nil { + t.Fatalf("close failed: %v", err) + } + }) + t.Run("NotFound", func(t *testing.T) { + FS = testfs + _, err := Open("testdata/notfound.txt") + perr := &os.PathError{} + if !errors.As(err, &perr) { + t.Fatalf("expected path error: %v", err) + } + }) + t.Run("OSFallback", func(t *testing.T) { + FS = testfs + f, err := os.CreateTemp(".", "test") + if err != nil { + t.Fatalf("failed to create temp file: %v", err) + } + defer os.Remove(f.Name()) + f.Close() + f2, err := Open(f.Name()) + if err != nil { + t.Fatalf("open failed: %v", err) + } + f2.Close() + }) } func TestReadFile(t *testing.T) { - FS = testfs - _, err := ReadFile("testdata/test.txt") - if err != nil { - t.Fatalf("read all failed: %v", err) - } + t.Run("Basic", func(t *testing.T) { + FS = testfs + _, err := ReadFile("testdata/test.txt") + if err != nil { + t.Fatalf("read all failed: %v", err) + } + }) + t.Run("NotFound", func(t *testing.T) { + FS = testfs + _, err := ReadFile("testdata/notfound.txt") + perr := &os.PathError{} + if !errors.As(err, &perr) { + t.Fatalf("expected path error: %v", err) + } + }) } func TestReadDir(t *testing.T) { - FS = testfs - ds, err := ReadDir("testdata") - if err != nil { - t.Fatalf("read dir failed: %v", err) - } - if len(ds) != 1 { - t.Fatalf("read dir had %v elements, expected 1", len(ds)) - } + t.Run("Basic", func(t *testing.T) { + FS = testfs + ds, err := ReadDir("testdata") + if err != nil { + t.Fatalf("read dir failed: %v", err) + } + if len(ds) != 1 { + t.Fatalf("read dir had %v elements, expected 1", len(ds)) + } + }) + t.Run("NoWindowsPaths", func(t *testing.T) { + FixWindowsPaths = false + defer func() { + FixWindowsPaths = true + }() + FS = testfs + ds, err := ReadDir("testdata") + if err != nil { + t.Fatalf("read dir failed: %v", err) + } + if len(ds) != 1 { + t.Fatalf("read dir had %v elements, expected 1", len(ds)) + } + }) } From f625c00521e288181508f703eba2964b1d07cac0 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 16 Apr 2022 20:42:06 -0500 Subject: [PATCH 126/146] mouse: add coverage for new event converters --- mouse/events_test.go | 67 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 mouse/events_test.go diff --git a/mouse/events_test.go b/mouse/events_test.go new file mode 100644 index 00000000..08cdaa36 --- /dev/null +++ b/mouse/events_test.go @@ -0,0 +1,67 @@ +package mouse + +import ( + "testing" + + "github.com/oakmound/oak/v3/event" +) + +func TestEventOn(t *testing.T) { + t.Run("AllEvents", func(t *testing.T) { + if ev2, ok := EventOn(Press); !ok || ev2 != PressOn { + t.Error("Press was not matched to PressOn") + } + if ev2, ok := EventOn(Release); !ok || ev2 != ReleaseOn { + t.Error("Release was not matched to ReleaseOn") + } + if ev2, ok := EventOn(ScrollDown); !ok || ev2 != ScrollDownOn { + t.Error("ScrollDown was not matched to ScrollDownOn") + } + if ev2, ok := EventOn(ScrollUp); !ok || ev2 != ScrollUpOn { + t.Error("ScrollUp was not matched to ScrollUpOn") + } + if ev2, ok := EventOn(Click); !ok || ev2 != ClickOn { + t.Error("Click was not matched to ClickOn") + } + if ev2, ok := EventOn(Drag); !ok || ev2 != DragOn { + t.Error("Drag was not matched to DragOn") + } + }) + t.Run("Unknown", func(t *testing.T) { + ev := event.RegisterEvent[*Event]() + _, ok := EventOn(ev) + if ok { + t.Error("EventOn should have returned false for an unknown event") + } + }) +} + +func TestEventRelative(t *testing.T) { + t.Run("AllEvents", func(t *testing.T) { + if ev2, ok := EventRelative(PressOn); !ok || ev2 != RelativePressOn { + t.Error("PressOn was not matched to RelativePressOn") + } + if ev2, ok := EventRelative(ReleaseOn); !ok || ev2 != RelativeReleaseOn { + t.Error("ReleaseOn was not matched to RelativeReleaseOn") + } + if ev2, ok := EventRelative(ScrollDownOn); !ok || ev2 != RelativeScrollDownOn { + t.Error("ScrollDownOn was not matched to RelativeScrollDownOn") + } + if ev2, ok := EventRelative(ScrollUpOn); !ok || ev2 != RelativeScrollUpOn { + t.Error("ScrollUpOn was not matched to RelativeScrollUpOn") + } + if ev2, ok := EventRelative(ClickOn); !ok || ev2 != RelativeClickOn { + t.Error("ClickOn was not matched to RelativeClickOn") + } + if ev2, ok := EventRelative(DragOn); !ok || ev2 != RelativeDragOn { + t.Error("DragOn was not matched to RelativeDragOn") + } + }) + t.Run("Unknown", func(t *testing.T) { + ev := event.RegisterEvent[*Event]() + _, ok := EventRelative(ev) + if ok { + t.Error("EventRelative should have returned false for an unknown event") + } + }) +} From 32f3d91b70cd256c7055b58ec80247149d9c03af Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sun, 17 Apr 2022 07:51:41 -0500 Subject: [PATCH 127/146] alg/intgeom: test span methods for rects --- alg/intgeom/rect.go | 10 +++++++ alg/intgeom/rect_test.go | 64 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) diff --git a/alg/intgeom/rect.go b/alg/intgeom/rect.go index 896bbf2d..03fa8a03 100644 --- a/alg/intgeom/rect.go +++ b/alg/intgeom/rect.go @@ -333,6 +333,7 @@ func (r Rect2) Intersects(r2 Rect2) bool { (r2.Max.Y() <= r.Min.Y() || r.Max.Y() <= r2.Min.Y())) } +// MulConst multiplies the boundary points of this rectangle by i. func (r Rect2) MulConst(i int) Rect2 { return Rect2{ r.Min.MulConst(i), @@ -361,6 +362,9 @@ func (r Rect2) Clamp(pt Point2) Point2 { return pt } +// Percentile returns a point within this rectangle along the vector from the top left to the bottom right of the +// rectangle, where for example, 0.0 will be r.Min, 1.0 will be r.Max, and 2.0 will be project the vector beyond r +// and return r.Min + {r.W()*2, r.H()*2} func (r Rect2) Percentile(f float64) Point2 { return Point2{ r.Min.X() + int(f*float64(r.W())), @@ -368,10 +372,12 @@ func (r Rect2) Percentile(f float64) Point2 { } } +// MulSpan returns this rectangle as a Point2 Span after multiplying the boundary points of the rectangle by f. func (r Rect2) MulSpan(f float64) span.Span[Point2] { return r.MulConst(int(f)) } +// MulConst multiplies the boundary points of this rectangle by i. func (r Rect3) MulConst(i int) Rect3 { return Rect3{ r.Min.MulConst(i), @@ -401,6 +407,9 @@ func (r Rect3) Clamp(pt Point3) Point3 { return pt } +// Percentile returns a point within this rectangle along the vector from the top left to the bottom right of the +// rectangle, where for example, 0.0 will be r.Min, 1.0 will be r.Max, and 2.0 will be project the vector beyond r +// and return r.Min + {r.W()*2, r.H()*2, r.D()*2} func (r Rect3) Percentile(f float64) Point3 { return Point3{ r.Min.X() + int(f*float64(r.W())), @@ -409,6 +418,7 @@ func (r Rect3) Percentile(f float64) Point3 { } } +// MulConst multiplies the boundary points of this rectangle by i. func (r Rect3) MulSpan(f float64) span.Span[Point3] { return r.MulConst(int(f)) } diff --git a/alg/intgeom/rect_test.go b/alg/intgeom/rect_test.go index b6e12326..b3753f89 100644 --- a/alg/intgeom/rect_test.go +++ b/alg/intgeom/rect_test.go @@ -239,3 +239,67 @@ func TestRect3GreaterOf(t *testing.T) { } } } + +func TestRect2Span(t *testing.T) { + t.Run("Basic", func(t *testing.T) { + r := NewRect2WH(1, 1, 9, 9) + p1 := r.Percentile(1.0) + if p1 != r.Max { + t.Errorf("Percentile(1.0) did not return max point: got %v expected %v", p1, r.Max) + } + p2 := r.Percentile(0.0) + if p2 != r.Min { + t.Errorf("Percentile(0.0) did not return min point: got %v expected %v", p2, r.Min) + } + const pollTries = 100 + for i := 0; i < pollTries; i++ { + if !r.Contains(r.Poll()) { + t.Fatalf("polled point did not lie within the creating rectangle") + } + } + p3 := r.Clamp(Point2{0, 5}) + if p3 != (Point2{1, 5}) { + t.Errorf("Clamp(0,5) did not return {1,5}: got %v", p3) + } + p4 := r.Clamp(Point2{2, 11}) + if p4 != (Point2{2, 10}) { + t.Errorf("Clamp(2,11) did not return {2,10}: got %v", p4) + } + r2 := r.MulSpan(4) + if r2 != NewRect2(4, 4, 40, 40) { + t.Errorf("MulSpan did not return {4,4,40,40}: got %v", r2) + } + }) +} + +func TestRect3Span(t *testing.T) { + t.Run("Basic", func(t *testing.T) { + r := NewRect3WH(1, 1, 1, 9, 9, 9) + p1 := r.Percentile(1.0) + if p1 != r.Max { + t.Errorf("Percentile(1.0) did not return max point: got %v expected %v", p1, r.Max) + } + p2 := r.Percentile(0.0) + if p2 != r.Min { + t.Errorf("Percentile(0.0) did not return min point: got %v expected %v", p2, r.Min) + } + const pollTries = 100 + for i := 0; i < pollTries; i++ { + if !r.Contains(r.Poll()) { + t.Fatalf("polled point did not lie within the creating rectangle") + } + } + p3 := r.Clamp(Point3{0, -1, 5}) + if p3 != (Point3{1, 1, 5}) { + t.Errorf("Clamp(0,-1,5) did not return {1,1,5}: got %v", p3) + } + p4 := r.Clamp(Point3{20, 2, 11}) + if p4 != (Point3{10, 2, 10}) { + t.Errorf("Clamp(20, 2,11) did not return {10,2,10}: got %v", p4) + } + r2 := r.MulSpan(4) + if r2 != NewRect3(4, 4, 4, 40, 40, 40) { + t.Errorf("MulSpan did not return {4,4,4,40,40,40}: got %v", r2) + } + }) +} From bea9363887a002656fa03b682c0b8a7110b4bf54 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sun, 17 Apr 2022 10:24:45 -0500 Subject: [PATCH 128/146] oak: update core package tests --- default.go | 6 ------ default_test.go | 32 +++++++++++++++++++++++++++++ dlog/default.go | 4 +++- drawLoop.go | 6 +----- init.go | 29 +++++++++++++++++++++----- init_test.go | 38 +++++++++++++++++++++++++++++++++++ inputLoop_test.go | 9 +++++---- inputTracker.go | 3 ++- inputTracker_test.go | 20 ++++++++---------- lifecycle.go | 7 ++++++- render/draw.go | 3 +-- sceneLoop.go | 45 +++++++++-------------------------------- scene_test.go | 35 ++++++++++++++++++++++++++++++++ screenFilter.go | 9 ++++----- screenFilter_test.go | 18 +++++++++++++++++ screenshot.go | 8 ++------ viewport.go | 14 +++++-------- viewport_test.go | 48 ++++++++++++++++++++++---------------------- window.go | 47 ++++++++++++++++--------------------------- window_test.go | 31 ++++++++++++++++++++++++++++ 20 files changed, 266 insertions(+), 146 deletions(-) create mode 100644 default_test.go create mode 100644 init_test.go create mode 100644 screenFilter_test.go diff --git a/default.go b/default.go index 1e26d20a..12167627 100644 --- a/default.go +++ b/default.go @@ -97,12 +97,6 @@ func SetColorBackground(img image.Image) { defaultWindow.SetColorBackground(img) } -// GetBackgroundImage calls GetBackgroundImage on the default window. -func GetBackgroundImage() image.Image { - initDefaultWindow() - return defaultWindow.GetBackgroundImage() -} - // Bounds returns the default window's boundary. func Bounds() intgeom.Point2 { initDefaultWindow() diff --git a/default_test.go b/default_test.go new file mode 100644 index 00000000..4ad932d9 --- /dev/null +++ b/default_test.go @@ -0,0 +1,32 @@ +package oak + +import ( + "testing" + + "github.com/oakmound/oak/v3/alg/intgeom" + "github.com/oakmound/oak/v3/key" + "github.com/oakmound/oak/v3/render" + "github.com/oakmound/oak/v3/scene" +) + +func TestDefaultFunctions(t *testing.T) { + t.Run("SuperficialCoverage", func(t *testing.T) { + IsDown(key.A) + IsHeld(key.A) + AddScene("test", scene.Scene{ + Start: func(ctx *scene.Context) { + ScreenShot() + ctx.Window.Quit() + }, + }) + SetViewportBounds(intgeom.NewRect2(0, 0, 1, 1)) + SetViewport(intgeom.Point2{}) + ShiftViewport(intgeom.Point2{}) + UpdateViewSize(10, 10) + Bounds() + SetLoadingRenderable(render.EmptyRenderable()) + SetColorBackground(nil) + SetBackground(render.EmptyRenderable()) + Init("test") + }) +} diff --git a/dlog/default.go b/dlog/default.go index e3e2a666..5e59a781 100644 --- a/dlog/default.go +++ b/dlog/default.go @@ -109,7 +109,9 @@ func (l *logger) SetFilter(filter func(string) bool) { // will be printed. func (l *logger) SetLogLevel(level Level) error { if level < NONE || level > VERBOSE { - return oakerr.InvalidInput{} + return oakerr.InvalidInput{ + InputName: "level", + } } l.debugLevel = level return nil diff --git a/drawLoop.go b/drawLoop.go index 3d108bfe..23ff333e 100644 --- a/drawLoop.go +++ b/drawLoop.go @@ -57,8 +57,6 @@ func (w *Window) drawLoop() { loadingSelectUnlimited: for { select { - case <-w.ParentContext.Done(): - return case <-w.quitCh: return case <-w.drawCh: @@ -92,8 +90,6 @@ func (w *Window) drawLoop() { loadingSelect: for { select { - case <-w.ParentContext.Done(): - return case <-w.quitCh: return case <-w.drawCh: @@ -115,7 +111,7 @@ func (w *Window) drawLoop() { } func (w *Window) publish() { - w.prePublish(w, w.windowTextures[w.bufferIdx]) + w.prePublish(w.winBuffers[w.bufferIdx].RGBA()) w.windowTextures[w.bufferIdx].Upload(zeroPoint, w.winBuffers[w.bufferIdx], w.winBuffers[w.bufferIdx].Bounds()) w.Window.Scale(w.windowRect, w.windowTextures[w.bufferIdx], w.windowTextures[w.bufferIdx].Bounds(), draw.Src) w.Window.Publish() diff --git a/init.go b/init.go index f8fd4b56..4197d570 100644 --- a/init.go +++ b/init.go @@ -10,6 +10,7 @@ import ( "github.com/oakmound/oak/v3/dlog" "github.com/oakmound/oak/v3/oakerr" + "github.com/oakmound/oak/v3/scene" "github.com/oakmound/oak/v3/timing" ) @@ -38,10 +39,8 @@ func (w *Window) Init(firstScene string, configOptions ...ConfigOption) error { dlog.SetFilter(func(msg string) bool { return strings.Contains(msg, w.config.Debug.Filter) }) - err = dlog.SetLogLevel(lvl) - if err != nil { - return err - } + // This error cannot happen as it would surface in Parse above + _ = dlog.SetLogLevel(lvl) err = oakerr.SetLanguageString(w.config.Language) if err != nil { return err @@ -70,7 +69,27 @@ func (w *Window) Init(firstScene string, configOptions ...ConfigOption) error { overrideInit(w) - go w.sceneLoop(firstScene, w.config.TrackInputChanges, w.config.BatchLoad) + err = w.SceneMap.AddScene(oakLoadingScene, scene.Scene{ + Start: func(ctx *scene.Context) { + if w.config.BatchLoad { + go func() { + w.loadAssets(w.config.Assets.ImagePath, w.config.Assets.AudioPath) + w.endLoad() + }() + } else { + go w.endLoad() + } + }, + End: func() (string, *scene.Result) { + return w.firstScene, &scene.Result{ + NextSceneInput: w.FirstSceneInput, + } + }, + }) + if err != nil { + return err + } + go w.sceneLoop(firstScene, w.config.TrackInputChanges) if w.config.EnableDebugConsole { go w.debugConsole(os.Stdin, os.Stdout) } diff --git a/init_test.go b/init_test.go new file mode 100644 index 00000000..bc9bdb6e --- /dev/null +++ b/init_test.go @@ -0,0 +1,38 @@ +package oak + +import ( + "fmt" + "testing" +) + +func TestInitFailures(t *testing.T) { + t.Run("BadConfig", func(t *testing.T) { + c1 := NewWindow() + err := c1.Init("", func(c Config) (Config, error) { + return c, fmt.Errorf("whoops") + }) + if err == nil { + t.Fatal("expected error to cascade down from init") + } + }) + t.Run("ParseDebugLevel", func(t *testing.T) { + c1 := NewWindow() + err := c1.Init("", func(c Config) (Config, error) { + c.Debug.Level = "bogus" + return c, nil + }) + if err == nil { + t.Fatal("expected error parsing debug level") + } + }) + t.Run("SetLanguageString", func(t *testing.T) { + c1 := NewWindow() + err := c1.Init("", func(c Config) (Config, error) { + c.Language = "bogus" + return c, nil + }) + if err == nil { + t.Fatal("expected error parsing language string") + } + }) +} diff --git a/inputLoop_test.go b/inputLoop_test.go index 8ef6703b..3ca71e0a 100644 --- a/inputLoop_test.go +++ b/inputLoop_test.go @@ -5,24 +5,25 @@ import ( "time" "github.com/oakmound/oak/v3/event" - okey "github.com/oakmound/oak/v3/key" "golang.org/x/mobile/event/key" + "golang.org/x/mobile/event/mouse" ) func TestInputLoop(t *testing.T) { c1 := blankScene(t) c1.SetLogicHandler(event.NewBus(nil)) - c1.Window.Send(okey.Event{ + c1.Window.Send(key.Event{ Direction: key.DirPress, Code: key.Code0, }) - c1.Window.Send(okey.Event{ + c1.Window.Send(key.Event{ Direction: key.DirNone, Code: key.Code0, }) - c1.Window.Send(okey.Event{ + c1.Window.Send(key.Event{ Direction: key.DirRelease, Code: key.Code0, }) + c1.Window.Send(mouse.Event{}) time.Sleep(2 * time.Second) } diff --git a/inputTracker.go b/inputTracker.go index f4dd6fc3..2f6cabc7 100644 --- a/inputTracker.go +++ b/inputTracker.go @@ -18,7 +18,8 @@ var trackingJoystickChange = event.RegisterEvent[struct{}]() // The following constants define valid types of input sent via the InputChange event. const ( - InputKeyboard InputType = iota + InputNone InputType = iota + InputKeyboard InputMouse InputJoystick ) diff --git a/inputTracker_test.go b/inputTracker_test.go index 322374e9..f3e590c8 100644 --- a/inputTracker_test.go +++ b/inputTracker_test.go @@ -11,6 +11,8 @@ import ( ) func TestTrackInputChanges(t *testing.T) { + inputChangeFailed := make(chan bool) + c1 := NewWindow() c1.SetLogicHandler(event.NewBus(event.NewCallerMap())) c1.AddScene("1", scene.Scene{}) @@ -21,35 +23,29 @@ func TestTrackInputChanges(t *testing.T) { time.Sleep(2 * time.Second) expectedType := new(InputType) *expectedType = InputKeyboard - failed := false event.GlobalBind(c1.eventHandler, InputChange, func(mode InputType) event.Response { - if mode != *expectedType { - failed = true - } + inputChangeFailed <- mode != *expectedType return 0 }) c1.TriggerKeyDown(key.Event{}) - time.Sleep(2 * time.Second) - if failed { + if <-inputChangeFailed { t.Fatalf("keyboard change failed") } *expectedType = InputJoystick event.TriggerOn(c1.eventHandler, trackingJoystickChange, struct{}{}) - time.Sleep(2 * time.Second) - if failed { + if <-inputChangeFailed { t.Fatalf("joystick change failed") } + c1.mostRecentInput = int32(InputJoystick) *expectedType = InputMouse c1.TriggerMouseEvent(mouse.Event{EventType: mouse.Press}) - time.Sleep(2 * time.Second) - if failed { + if <-inputChangeFailed { t.Fatalf("mouse change failed") } *expectedType = InputKeyboard c1.mostRecentInput = int32(InputJoystick) c1.TriggerKeyDown(key.Event{}) - time.Sleep(2 * time.Second) - if failed { + if <-inputChangeFailed { t.Fatalf("keyboard change failed") } } diff --git a/lifecycle.go b/lifecycle.go index 7df9106a..c668a0c7 100644 --- a/lifecycle.go +++ b/lifecycle.go @@ -102,10 +102,15 @@ func (w *Window) ChangeWindow(width, height int) error { return nil } -// UpdateViewSize updates the size of this window's viewport. +// UpdateViewSize updates the size of this window's viewport. If the window has yet +// to be initialized, it will update ScreenWidth and ScreenHeight, and then exit. func (w *Window) UpdateViewSize(width, height int) error { w.ScreenWidth = width w.ScreenHeight = height + // this is being called before Init + if w.screenControl == nil { + return nil + } for i := 0; i < bufferCount; i++ { newBuffer, err := w.screenControl.NewImage(image.Point{width, height}) if err != nil { diff --git a/render/draw.go b/render/draw.go index 81287f14..17648e53 100644 --- a/render/draw.go +++ b/render/draw.go @@ -10,8 +10,7 @@ var ( emptyRenderable = NewColorBox(1, 1, color.RGBA{0, 0, 0, 0}) ) -// EmptyRenderable returns a minimal, 1-width and height pseudo-nil -// Renderable (and Modifiable) +// EmptyRenderable returns a minimal, 1-width and height pseudo-nil Renderable func EmptyRenderable() Modifiable { return emptyRenderable.Copy() } diff --git a/sceneLoop.go b/sceneLoop.go index 5afe3a7d..9a41eeaa 100644 --- a/sceneLoop.go +++ b/sceneLoop.go @@ -15,29 +15,7 @@ import ( // for preloading assets const oakLoadingScene = "oak:loading" -func (w *Window) sceneLoop(first string, trackingInputs, batchLoad bool) { - err := w.SceneMap.AddScene(oakLoadingScene, scene.Scene{ - Start: func(ctx *scene.Context) { - if batchLoad { - go func() { - w.loadAssets(w.config.Assets.ImagePath, w.config.Assets.AudioPath) - w.endLoad() - }() - } else { - go w.endLoad() - } - }, - End: func() (string, *scene.Result) { - return w.firstScene, &scene.Result{ - NextSceneInput: w.FirstSceneInput, - } - }, - }) - if err != nil { - go w.exitWithError(err) - return - } - +func (w *Window) sceneLoop(first string, trackingInputs bool) { var prevScene string result := new(scene.Result) @@ -91,7 +69,6 @@ func (w *Window) sceneLoop(first string, trackingInputs, batchLoad bool) { }() w.sceneTransition(result) - // Post transition, begin loading animation w.drawCh <- struct{}{} <-w.transitionCh @@ -99,21 +76,19 @@ func (w *Window) sceneLoop(first string, trackingInputs, batchLoad bool) { w.drawCh <- struct{}{} dlog.Info(dlog.SceneLooping) - cont := true enterCancel := event.EnterLoop(w.eventHandler, timing.FPSToFrameDelay(w.FrameRate)) - nextSceneOverride := "" - for cont { - select { - case <-w.ParentContext.Done(): - case <-w.quitCh: - cancel() - return - case nextSceneOverride = <-w.skipSceneCh: - cont = false - } + select { + case <-w.ParentContext.Done(): + w.Quit() + cancel() + return + case <-w.quitCh: + cancel() + return + case nextSceneOverride = <-w.skipSceneCh: } cancel() dlog.Info(dlog.SceneEnding, w.SceneMap.CurrentScene) diff --git a/scene_test.go b/scene_test.go index c92b7431..7937ed32 100644 --- a/scene_test.go +++ b/scene_test.go @@ -1,8 +1,11 @@ package oak import ( + "context" + "errors" "testing" + "github.com/oakmound/oak/v3/oakerr" "github.com/oakmound/oak/v3/scene" ) @@ -25,3 +28,35 @@ func TestSceneTransition(t *testing.T) { }) c1.Init("1") } + +func TestLoadingSceneClaimed(t *testing.T) { + c1 := NewWindow() + c1.AddScene(oakLoadingScene, scene.Scene{}) + err := c1.Init("1") + var wantErr oakerr.ExistingElement + if !errors.As(err, &wantErr) { + t.Fatalf("expected existing element error, got %v", err) + } +} + +func TestSceneGoTo(t *testing.T) { + c1 := NewWindow() + var cancel func() + c1.ParentContext, cancel = context.WithCancel(c1.ParentContext) + c1.AddScene("1", scene.Scene{ + Start: func(context *scene.Context) { + context.Window.GoToScene("good") + }, + End: func() (nextScene string, result *scene.Result) { + return "bad", &scene.Result{ + Transition: scene.Fade(1, 10), + } + }, + }) + c1.AddScene("good", scene.Scene{ + Start: func(ctx *scene.Context) { + cancel() + }, + }) + c1.Init("1") +} diff --git a/screenFilter.go b/screenFilter.go index 0e7dfb7a..a86d9449 100644 --- a/screenFilter.go +++ b/screenFilter.go @@ -1,10 +1,9 @@ package oak import ( + "image" "image/color" - "github.com/oakmound/oak/v3/shiny/screen" - "github.com/oakmound/oak/v3/render/mod" ) @@ -16,13 +15,13 @@ func (w *Window) SetPalette(palette color.Palette) { // SetDrawFilter will filter the screen by the given modification function prior // to publishing the screen's rgba to be displayed. func (w *Window) SetDrawFilter(screenFilter mod.Filter) { - w.prePublish = func(w *Window, tx screen.Texture) { - screenFilter(w.winBuffers[w.bufferIdx].RGBA()) + w.prePublish = func(buf *image.RGBA) { + screenFilter(buf) } } // ClearScreenFilter resets the draw function to no longer filter the screen before // publishing it to the window. func (w *Window) ClearScreenFilter() { - w.prePublish = func(*Window, screen.Texture) {} + w.prePublish = func(buf *image.RGBA) {} } diff --git a/screenFilter_test.go b/screenFilter_test.go new file mode 100644 index 00000000..d8d96992 --- /dev/null +++ b/screenFilter_test.go @@ -0,0 +1,18 @@ +package oak + +import ( + "image" + "image/color" + "testing" +) + +func TestScreenFilter(t *testing.T) { + c1 := NewWindow() + blackAndWhite := color.Palette{ + color.RGBA{0, 0, 0, 255}, + color.RGBA{255, 255, 255, 255}, + } + c1.SetPalette(blackAndWhite) + buf := image.NewRGBA(image.Rect(0, 0, 1, 1)) + c1.prePublish(buf) +} diff --git a/screenshot.go b/screenshot.go index 32105885..f0ca1b55 100644 --- a/screenshot.go +++ b/screenshot.go @@ -6,8 +6,6 @@ import ( "image/draw" "image/gif" "time" - - "github.com/oakmound/oak/v3/shiny/screen" ) // ScreenShot takes a snap shot of the window's image content. @@ -17,9 +15,8 @@ func (w *Window) ScreenShot() *image.RGBA { shotCh := make(chan *image.RGBA) // We need to take the shot when the screen is not being redrawn // We know the screen has everything drawn on it when it is published - w.prePublish = func(w *Window, tx screen.Texture) { + w.prePublish = func(rgba *image.RGBA) { // Copy the buffer - rgba := w.winBuffers[w.bufferIdx].RGBA() bds := rgba.Bounds() copy := image.NewRGBA(bds) for x := bds.Min.X; x < bds.Max.X; x++ { @@ -39,9 +36,8 @@ func (w *Window) gifShot() *image.Paletted { shotCh := make(chan *image.Paletted) // We need to take the shot when the screen is not being redrawn // We know the screen has everything drawn on it when it is published - w.prePublish = func(w *Window, tx screen.Texture) { + w.prePublish = func(rgba *image.RGBA) { // Copy the buffer - rgba := w.winBuffers[w.bufferIdx].RGBA() bds := rgba.Bounds() copy := image.NewPaletted(bds, palette.Plan9) draw.Draw(copy, bds, rgba, zeroPoint, draw.Src) diff --git a/viewport.go b/viewport.go index 615f737b..503e4148 100644 --- a/viewport.go +++ b/viewport.go @@ -39,8 +39,11 @@ func (w *Window) SetViewport(pt intgeom.Point2) { event.TriggerOn(w.eventHandler, ViewportUpdate, w.viewPos) } -// GetViewportBounds reports what bounds the viewport has been set to, if any. -func (w *Window) GetViewportBounds() (rect intgeom.Rect2, ok bool) { +// ViewportBounds returns the boundary of this window's viewport, or the rectangle +// that the viewport is not allowed to exit as it moves around. It often represents +// the total size of the world within a given scene. If bounds are not enforced, ok will +// be false. +func (w *Window) ViewportBounds() (rect intgeom.Rect2, ok bool) { return w.viewBounds, w.useViewBounds } @@ -73,10 +76,3 @@ func (w *Window) SetViewportBounds(rect intgeom.Rect2) { func (w *Window) Viewport() intgeom.Point2 { return w.viewPos } - -// ViewportBounds returns the boundary of this window's viewport, or the rectangle -// that the viewport is not allowed to exit as it moves around. It often represents -// the total size of the world within a given scene. -func (w *Window) ViewportBounds() intgeom.Rect2 { - return w.viewBounds -} diff --git a/viewport_test.go b/viewport_test.go index 49b3725f..d46baeba 100644 --- a/viewport_test.go +++ b/viewport_test.go @@ -21,46 +21,46 @@ func TestViewport(t *testing.T) { } go c1.Init("blank") time.Sleep(2 * time.Second) - if (c1.viewPos) != (intgeom.Point2{0, 0}) { - t.Fatalf("expected %v got %v", c1.viewPos, intgeom.Point2{0, 0}) + if (c1.Viewport()) != (intgeom.Point2{0, 0}) { + t.Fatalf("expected %v got %v", c1.Viewport(), intgeom.Point2{0, 0}) } c1.SetViewport(intgeom.Point2{5, 5}) - if (c1.viewPos) != (intgeom.Point2{5, 5}) { - t.Fatalf("expected %v got %v", c1.viewPos, intgeom.Point2{5, 5}) + if (c1.Viewport()) != (intgeom.Point2{5, 5}) { + t.Fatalf("expected %v got %v", c1.Viewport(), intgeom.Point2{5, 5}) } - _, ok := c1.GetViewportBounds() + _, ok := c1.ViewportBounds() if ok { t.Fatalf("viewport bounds should not be set on scene start") } c1.SetViewportBounds(intgeom.NewRect2(0, 0, 4, 4)) - if (c1.viewPos) != (intgeom.Point2{5, 5}) { - t.Fatalf("expected %v got %v", c1.viewPos, intgeom.Point2{5, 5}) + if (c1.Viewport()) != (intgeom.Point2{5, 5}) { + t.Fatalf("expected %v got %v", c1.Viewport(), intgeom.Point2{5, 5}) } c1.SetViewport(intgeom.Point2{-1, -1}) - if (c1.viewPos) != (intgeom.Point2{0, 0}) { - t.Fatalf("expected %v got %v", c1.viewPos, intgeom.Point2{0, 0}) + if (c1.Viewport()) != (intgeom.Point2{0, 0}) { + t.Fatalf("expected %v got %v", c1.Viewport(), intgeom.Point2{0, 0}) } c1.SetViewport(intgeom.Point2{6, 6}) - if (c1.viewPos) != (intgeom.Point2{0, 0}) { - t.Fatalf("expected %v got %v", c1.viewPos, intgeom.Point2{0, 0}) + if (c1.Viewport()) != (intgeom.Point2{0, 0}) { + t.Fatalf("expected %v got %v", c1.Viewport(), intgeom.Point2{0, 0}) } c1.SetViewportBounds(intgeom.NewRect2(0, 0, 1000, 1000)) c1.SetViewport(intgeom.Point2{20, 20}) - if (c1.viewPos) != (intgeom.Point2{20, 20}) { - t.Fatalf("expected %v got %v", c1.viewPos, intgeom.Point2{20, 20}) + if (c1.Viewport()) != (intgeom.Point2{20, 20}) { + t.Fatalf("expected %v got %v", c1.Viewport(), intgeom.Point2{20, 20}) } c1.ShiftViewport(intgeom.Point2{-1, -1}) - if (c1.viewPos) != (intgeom.Point2{19, 19}) { - t.Fatalf("expected %v got %v", c1.viewPos, intgeom.Point2{19, 19}) + if (c1.Viewport()) != (intgeom.Point2{19, 19}) { + t.Fatalf("expected %v got %v", c1.Viewport(), intgeom.Point2{19, 19}) } c1.SetViewportBounds(intgeom.NewRect2(21, 21, 2000, 2000)) - if (c1.viewPos) != (intgeom.Point2{21, 21}) { - t.Fatalf("expected %v got %v", c1.viewPos, intgeom.Point2{21, 21}) + if (c1.Viewport()) != (intgeom.Point2{21, 21}) { + t.Fatalf("expected %v got %v", c1.Viewport(), intgeom.Point2{21, 21}) } c1.SetViewport(intgeom.Point2{1000, 1000}) c1.SetViewportBounds(intgeom.NewRect2(0, 0, 900, 900)) - bds, ok := c1.GetViewportBounds() + bds, ok := c1.ViewportBounds() if !ok { t.Fatalf("viewport bounds were not enabled") } @@ -68,11 +68,11 @@ func TestViewport(t *testing.T) { t.Fatalf("viewport bounds were not set: expected %v got %v", intgeom.NewRect2(0, 0, 900, 900), bds) } mx := intgeom.Point2{900, 900} - if (c1.viewPos) != mx.Sub(c1.Bounds()) { - t.Fatalf("expected %v got %v", c1.viewPos, mx.Sub(c1.Bounds())) + if (c1.Viewport()) != mx.Sub(c1.Bounds()) { + t.Fatalf("expected %v got %v", c1.Viewport(), mx.Sub(c1.Bounds())) } c1.RemoveViewportBounds() - _, ok = c1.GetViewportBounds() + _, ok = c1.ViewportBounds() if ok { t.Fatalf("viewport bounds were enabled after clear") } @@ -82,11 +82,11 @@ func TestViewport(t *testing.T) { sleep() - if (c1.viewPos) != (intgeom.Point2{0, 0}) { - t.Fatalf("expected %v got %v", c1.viewPos, intgeom.Point2{0, 0}) + if (c1.Viewport()) != (intgeom.Point2{0, 0}) { + t.Fatalf("expected %v got %v", c1.Viewport(), intgeom.Point2{0, 0}) } - _, ok = c1.GetViewportBounds() + _, ok = c1.ViewportBounds() if ok { t.Fatalf("viewport bounds should not be set on scene start") } diff --git a/window.go b/window.go index aff1a54c..79901c10 100644 --- a/window.go +++ b/window.go @@ -130,7 +130,7 @@ type Window struct { Driver Driver // prePublish is a function called each draw frame prior to publishing frames to the OS - prePublish func(w *Window, tx screen.Texture) + prePublish func(*image.RGBA) // LoadingR is a renderable that is displayed during loading screens. LoadingR render.Renderable @@ -161,8 +161,6 @@ type Window struct { FirstSceneInput interface{} - commands map[string]func([]string) - ControllerID int32 config Config @@ -186,30 +184,27 @@ var ( // NewWindow creates a window with default settings. func NewWindow() *Window { - c := &Window{ + return &Window{ State: key.NewState(), transitionCh: make(chan struct{}), skipSceneCh: make(chan string), quitCh: make(chan struct{}), drawCh: make(chan struct{}), betweenDrawCh: make(chan func()), + SceneMap: scene.NewMap(), + Driver: driver.Main, + prePublish: func(*image.RGBA) {}, + bkgFn: func() image.Image { + return image.Black + }, + eventHandler: event.DefaultBus, + MouseTree: mouse.DefaultTree, + CollisionTree: collision.DefaultTree, + CallerMap: event.DefaultCallerMap, + DrawStack: render.GlobalDrawStack, + ControllerID: atomic.AddInt32(nextControllerID, 1), + ParentContext: context.Background(), } - - c.SceneMap = scene.NewMap() - c.Driver = driver.Main - c.prePublish = func(*Window, screen.Texture) {} - c.bkgFn = func() image.Image { - return image.Black - } - c.eventHandler = event.DefaultBus - c.MouseTree = mouse.DefaultTree - c.CollisionTree = collision.DefaultTree - c.CallerMap = event.DefaultCallerMap - c.DrawStack = render.GlobalDrawStack - c.commands = make(map[string]func([]string)) - c.ControllerID = atomic.AddInt32(nextControllerID, 1) - c.ParentContext = context.Background() - return c } // Propagate triggers direct mouse events on entities which are clicked @@ -288,7 +283,7 @@ func (w *Window) SetBackground(b Background) { } } -// SetColorBackground sets this window's background to be a standar image.Image, +// SetColorBackground sets this window's background to be a standard image.Image, // commonly a uniform color. func (w *Window) SetColorBackground(img image.Image) { w.bkgFn = func() image.Image { @@ -309,9 +304,7 @@ func (w *Window) SetLogicHandler(h event.Handler) { // NextScene causes this window to immediately end the current scene. func (w *Window) NextScene() { - go func() { - w.skipSceneCh <- "" - }() + w.GoToScene("") } // GoToScene causes this window to skip directly to the given scene. @@ -326,12 +319,6 @@ func (w *Window) InFocus() bool { return w.inFocus } -// CollisionTrees helps access the mouse and collision trees from the controller. -// These trees together detail how a controller can drive mouse and entity interactions. -func (w *Window) CollisionTrees() (mouseTree, collisionTree *collision.Tree) { - return w.MouseTree, w.CollisionTree -} - // EventHandler returns this window's event handler. func (w *Window) EventHandler() event.Handler { return w.eventHandler diff --git a/window_test.go b/window_test.go index cdd02d7b..133d36db 100644 --- a/window_test.go +++ b/window_test.go @@ -1,12 +1,15 @@ package oak import ( + "image" + "os" "testing" "time" "github.com/oakmound/oak/v3/collision" "github.com/oakmound/oak/v3/event" "github.com/oakmound/oak/v3/mouse" + "github.com/oakmound/oak/v3/render" ) func TestMouseClicks(t *testing.T) { @@ -91,3 +94,31 @@ func TestPropagate(t *testing.T) { case <-ch: } } + +func TestWindowGetters(t *testing.T) { + c1 := NewWindow() + c1.debugConsole(os.Stdin, os.Stdout) + if c1.InFocus() { + t.Errorf("new windows should not be in focus") + } + if c1.EventHandler() != event.DefaultBus { + t.Errorf("new windows should have the default event bus") + } + if c1.GetBackgroundImage() != image.Black { + t.Errorf("new windows should have a black background") + } + c1.SetColorBackground(image.White) + if c1.GetBackgroundImage() != image.White { + t.Errorf("set color background failed") + } + rend := render.EmptyRenderable() + c1.SetLoadingRenderable(rend) + if c1.LoadingR != rend { + t.Errorf("Set loading renderable failed") + } + c1.SetBackground(rend) + r, g, b, a := c1.bkgFn().At(0, 0).RGBA() + if r != 0 || g != 0 || b != 0 || a != 0 { + t.Errorf("background was not set to empty renderable") + } +} From a205f3569dca685005d7fd7c866f32f7d0bcfc5c Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sun, 17 Apr 2022 11:22:45 -0500 Subject: [PATCH 129/146] examples/slide/show: replace usage of GetBackgroundImage --- examples/slide/show/slide.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/slide/show/slide.go b/examples/slide/show/slide.go index 6a536c29..a3762747 100644 --- a/examples/slide/show/slide.go +++ b/examples/slide/show/slide.go @@ -100,7 +100,7 @@ func Start(width, height int, slides ...Slide) { oak.AddScene("slide"+strconv.Itoa(len(slides)), scene.Scene{ Start: func(ctx *scene.Context) { - oldBackground = oak.GetBackgroundImage() + oldBackground = ctx.Window.(*oak.Window).GetBackgroundImage() oak.SetColorBackground(image.NewUniform(color.RGBA{0, 0, 0, 255})) wbds := ctx.Window.Bounds() render.Draw( From a58e0eeb632e8d11240c1b352ed15c829d1ea2e2 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sun, 17 Apr 2022 11:23:09 -0500 Subject: [PATCH 130/146] render: add font test coverage --- render/font_test.go | 137 ++++++++++++++++++++++ render/testdata/assets/fonts/seguiemj.ttf | Bin 0 -> 2072388 bytes 2 files changed, 137 insertions(+) create mode 100644 render/testdata/assets/fonts/seguiemj.ttf diff --git a/render/font_test.go b/render/font_test.go index 625c3117..ae229400 100644 --- a/render/font_test.go +++ b/render/font_test.go @@ -57,6 +57,37 @@ func TestFontGenerator_validate(t *testing.T) { } } +func TestFontGenerator_Generate_Failure(t *testing.T) { + t.Run("BadRawFile", func(t *testing.T) { + fg := FontGenerator{ + RawFile: []byte("notafontfile"), + Color: image.NewUniform(color.RGBA{255, 0, 0, 255}), + FontOptions: FontOptions{ + Size: 13.0, + DPI: 44.0, + }, + } + _, err := fg.Generate() + if err == nil { + t.Fatalf("generate should have failed") + } + }) + t.Run("BadLoadFont", func(t *testing.T) { + fg := FontGenerator{ + File: "file that does not exist", + Color: image.NewUniform(color.RGBA{255, 0, 0, 255}), + FontOptions: FontOptions{ + Size: 13.0, + DPI: 44.0, + }, + } + _, err := fg.Generate() + if err == nil { + t.Fatalf("generate should have failed") + } + }) +} + func TestFontGenerator_Generate_Success(t *testing.T) { fg := FontGenerator{ File: "testdata/assets/fonts/luxisr.ttf", @@ -71,3 +102,109 @@ func TestFontGenerator_Generate_Success(t *testing.T) { t.Fatalf("generate failed: %v", err) } } + +func TestFont_Height(t *testing.T) { + ht := rand.Float64() * 10 + fg := FontGenerator{ + File: "testdata/assets/fonts/luxisr.ttf", + Color: image.NewUniform(color.RGBA{255, 0, 0, 255}), + FontOptions: FontOptions{ + Size: ht, + DPI: 44.0, + }, + } + f, err := fg.Generate() + if err != nil { + t.Fatalf("generate failed: %v", err) + } + if f.Height() != ht { + t.Fatalf("size did not match height: got %v expected %v", f.Height(), ht) + } +} + +func TestFont_RegenerateWith(t *testing.T) { + fg := FontGenerator{ + File: "testdata/assets/fonts/luxisr.ttf", + Color: image.NewUniform(color.RGBA{255, 0, 0, 255}), + FontOptions: FontOptions{ + Size: 13.0, + DPI: 44.0, + }, + } + f, err := fg.Generate() + if err != nil { + t.Fatalf("generate failed: %v", err) + } + f2, err := f.RegenerateWith(func(fg FontGenerator) FontGenerator { + fg.Size = 100 + return fg + }) + if err != nil { + t.Fatalf("regenerate failed: %v", err) + } + if f2.Height() != 100 { + t.Fatalf("size did not match height: got %v expected %v", f.Height(), 100) + } +} + +func TestCache_LoadFont(t *testing.T) { + t.Run("NotExists", func(t *testing.T) { + c := NewCache() + _, err := c.LoadFont("bogusfilepath") + if err == nil { + t.Fatal("expected error loading bad file") + } + }) + t.Run("NotFontFile", func(t *testing.T) { + c := NewCache() + _, err := c.LoadFont("testdata/assets/images/devfile.pdn") + if err == nil { + t.Fatal("expected error loading non-font") + } + }) + t.Run("GetCached", func(t *testing.T) { + c := NewCache() + _, err := c.LoadFont("testdata/assets/fonts/luxisr.ttf") + if err != nil { + t.Fatal("failed to load font into cache") + } + _, err = c.GetFont("luxisr.ttf") + if err != nil { + t.Fatalf("failed to get cached font: %v", err) + } + }) + t.Run("GetUncached", func(t *testing.T) { + c := NewCache() + _, err := c.GetFont("luxisr.ttf") + if err == nil { + t.Fatalf("expected error getting uncached font") + } + }) +} + +func TestFont_Fallback(t *testing.T) { + fg := FontGenerator{ + File: "testdata/assets/fonts/luxisr.ttf", + Color: image.NewUniform(color.RGBA{255, 0, 0, 255}), + FontOptions: FontOptions{ + Size: 13.0, + DPI: 44.0, + }, + } + f, err := fg.Generate() + if err != nil { + t.Fatalf("generate failed: %v", err) + } + + fg.File = "testdata/assets/fonts/seguiemj.ttf" + emjfont, err := fg.Generate() + if err != nil { + t.Fatalf("generate failed: %v", err) + } + + f.Fallbacks = append(f.Fallbacks, emjfont) + + f.MeasureString("a😀b😃c😄d😁e本") + txt := f.NewText("a😀b😃c😄d😁e本", 0, 0) + txt.Draw(image.NewRGBA(image.Rect(0, 0, 200, 200)), 0, 0) +} diff --git a/render/testdata/assets/fonts/seguiemj.ttf b/render/testdata/assets/fonts/seguiemj.ttf new file mode 100644 index 0000000000000000000000000000000000000000..77497bf76cfb09b8bdbba41f5dc1009113c2b12b GIT binary patch literal 2072388 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

1*~(>7{-o@s631km;qz4cmcE!=Bq4Nf&Ip2 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�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

5r~zC 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 z zup-+6m!WX|3$1HMln2V9hQ2EhR%`h~6!?orB}85>xj+eRn~nH{aZ|yS<{N~Ni-@0%ZfyJ)q zYoHKb4=tCil>3YFft6TFE!}e~rky#iq~5C@uy!?bw{{3NxM$38X;ZvNE3rSj`2!>V zqGa(SO6|m{<0}M{sn{X3lID_P3LJZ%-b8N%vgLerwoi$#mNdTl6M7T!a!LHwY4ii{ zFm>+feT%wP`*Ji%AxXlP)7Y-tYB3FFUT6IVK}0@gQNdz%{q2$qzsG%lGRIf_jtpu ziWO4^2{uu|Pm|*}|Cc?Bdc*aDgM;d_!GnYNzwXubIKtn*9ndPyJ#g;e;7_QApFf!W z(~hWGpbK$3|D&t?lEEqp1TL`R5ssdEN=> z<`0m$;!V7d%mc_)3_>Z=V~niF5mk+{wP~si@^8@eQ+f7hK}{J<#v(j#BitXLz2E{z zET+jY6OrL~{B=~e^C`!fRZSn9I|FU7o5xW@R$jhxhXR5;w-^k8dDc1dtD@L%pb7~7 zNb68ijbObLX2}?xjK{LldE>@VQ@Ojeeqz{Fwjqf;eBoETn`gt}PM`_UTpXq0Do7HaYCFsLz?8!6~Rv!sd#m$z_>+ zty?c#S5;D5l-XBQ6?D>P2-ndEsfXWc+>!Q;t0J zQ}1Y)(;7?*<86q3{2VlW8`;tV|@AQhd-1UF(mg7+}J#T9c@)Th)hM8$~J zAw(^%VvE08qi3*NBe?rV!P-A~nE&B@t<7ohVusHn295)q5tIU6ZF2FoT8ng8*tO~A za@Amp#4GJXFNP}O;X&xa&Oax!&jL%hijZ(!Bq9)Q(7!1hFnX{yBHTckxSBy>$^VH& zF;EFRNt12pX=+ZkV))>eCrh$e9;&J`2?w?@apzUXE<#-I=~2+yP_l7cP@P*?;xys8 zdf@|Z>*B(5Nk~R?oX;k_qMh0GTP@{f#pSY1ZmftT0)xT_1x{b#Mug+LZ08wY??ue6 z;bz`G1u=MfvcBYD?tp~2DTW?|@PN%Q3yFIx�+iTFqcDrQFTd!N=+z9&Z#M!SPP4 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

= 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�tB8P9920-bJ<^tyid5 zh!Me*7bJwf+J5Q0x;0W8_oI?XiKTAdrR^o{6FN({mqL?6!S<@^87;wBWn<&4TXw9O z8l8Xp54JWmR>tVZR<#CilG=QoU7e4YR5g{k8k-v3+!1N8sHP^Wo48>{JU(N?L|wF| zriiQB_SW$Y_<%H4aIZ2wPJu*L`&*BKq@O?Q9POLhi&lTYATzcKBLaTQHAR*(dxFabNJ4 zi!$7SrQDhE+A+j|A7SLf>Vh9Q@5wr%D5tyF4D(<=ob;uH0@%#HscmoOP3&CJAdy*(@F%B*+3(mMux#;5q&*tuFd^; z@OpzW?6sD9-Ns2IBz2wMN}cxRV^q9zlF{ug1<&cSYiAfEC<4%rk50v)TGnrgC1RFo z+ZQ$D-tPIX*=qAv7JGa~jG}K~_x zj;o3u?Af6(f12{FOA4DTdlbq{+C-& zJ>rYtt5uKybrh-q3qz_Q?6oojEs1@?K!Ld^D4#0NF_g#n>D4nR4U(_s4pVM}E z?F{Ph+>H9V+6x5`Wg~*+A788-{N)#`%uHY zqmnxrNY;mjUcso9eIoFHP=6&Q*?*o$d@}$8QaDkAi*w1y^l0{m3tPGCul(5;FSjo{ ze$All15VD}a`OWVgV8V^`}C2-j&ANpE|(0g6_IUIzxbM2Ef>_ak6`dapK6%j5ej$A zN!UHYzGIa!asek0RY|Fp;3Wgh!UfM{amrypiVP*68p9saMyy?FS>KFD@n2IM)_FUd<~4EO8(tIs z!s;+9b|@iIPLJWWP}}Te!~FKphOMuN*~Hw=aHwN`gYedj8N)3ue3s|mW%4Zxy^#DD z_++NCwiZe87&dnAycAs4H}_bEQ%H?WQ&_L;ngQT&L zr|PBSYK}3z6h2|XoA!*;OP!-4;zsL1+J7Gzys~IYNMBb~34VWmG@VqJ=22z9!65>f z)I16Y6Prm38DsY<{)OxEGD-F~e29IlOSJx1V(i+%KXwh;P7paHy9!Rh8O4U^G{dtW z7eOkEZiJ5?j5~3CCN7|kj2&C3=L)ueB);o$$cs(AH|j-7h*uw_?F`C|QIL@xn;@3( zX5w~4qoWX+mqv)1qCy>Itb9g#TzXLYF8&^QdhOb;!g+HMHyMA+o?bimi6{H1DbN<-c`_4Kr&Rp_NbZY5|xd)O@WuJT^!gc=1Z2pt<0$p`Dd0_5| z(y7sRE&-p+x_5e8|2XGB^6)V0CGrE%0*OxHrb*8)lpf?RT7gu6TkwBo1$UA3;0h4S zUoBm@HhG|Tzcc1?#hm-+-I`o`?K(WnOP_3Yaprf|4RE|94Xk@t`cHGL>{DEG9QxOW5;*dQ*_m+0WkapnrQ`n_%wQjYeug~?-aDMg?fdWnR?|wuiPutiPS67 zOVlfzrJxtzL9b9JuDg~xQSEi=M$R^_n^2xj(VZuu4#!@s<6lFJ-cil#n$w)XnK%dM z!wiZeYrGvDS}@+@EU$zBeda|W;fNMj^gFsP-ADv}gwN_*;59>*04}8Y$68nh2$^)t z#44HlfP4l}3l)e#%ztjuO0smOQ1!L(TW_zd! z&?ekS=t7Qt-Y41_K_Z&)_nqSP1E6q(U$j5N~rh?Z#a(VxX*n zd@D_1f9VVdT45F{#JrBNIBuywzU7B^E?ju$54TL*z2(A~bYE=E*4^E7tajnfnI+bi z=#+(qnMBFU0`Ie*53$1 zu(7La^7S8Aj?bSlE#+^F$R))i6E}r`_bFWYZ6Zc(?Tm#jx9T;qwVVz}|2BaGI{GGEs^4K)4 zH|3rUT7*NQtH=>C7FSrkJqdn4H4QaKpmkn4Jug#E`}6MEcS*2*X;bTpSnP&51C)Y6 zEwt|9^oV1BIke1tY6-D##;jzZ zKf7_lr{;ZeD6JkY?bI96OLnjpt!V45pLpr)gm#C&t~&0L_E-1Bb_Wq(*UtY3H3~J) z@Y}T34P+C!j3|oXi9xP4z2Pp;pfx2 zhn&}%N{t?J4{@>U*pNGOXY}23!zIDQ{JP02Y70AK?b@ar7O~Di=p5-{$RBu=V;O>_$Eh{R&p2;8#by@-CK) zIWWI-V{dJ3@5WB$eQ3v+1D~K2Ov-B^ebjk(?2Np<9$?LF65 z@D1uWje6%#(pONfwcA$PWph`$N;s3rsCw!sR|GkJgYQ=xBk-|MemAw_xKzz7YyInw|>)x1ua^^(b;LuJtrFc zlx&LcM~!050-a5K5cc!avjMDx zHaALkd$_6m+8LAQTAU?C(jh7uN!+fGb3yGh^;1n|uf^iw$sKT& zmwJo1vhMBy*?@-+$SaiU{ss}wpdT!sx1#GJfPa}%-^9!BKS zcQilI{7&=l$X3X47S74}NgI-T#S8y~o$8FC79~kP7TV@cBWpm0EzU#b0Zx5Zb%%jx zs&zry4)h`$^db-;r=iZkcPB#UA%*Jfde6Dk9x)?-j#B=i_P~Qjj}5)Yu6_@dE^wY* z3DO-ZYiml``Fl@lAA-qVq8rh1>|9yp=Al{=rA);Mc%kC7Oi(4rC>2Lc)LnMP_V&-8 zS;MJsP{q=Sf+I;Kb=D`Z>L0l3u(eit;UE`po7`T_TTIUQuy(YrvmVie((8ewxJV04 z|Bp>QpX?!32RcfDs$;h3d4DyylSQtLMyIUj7)*+yQ&wh9Rb`93je4uI^aWY#VPkQ$ z)}xy>;2oD|=;ec4v~^;8wbq+1ZR`v4RqC7@ z{sYOQfow9DF&KhV%DMLR%5SY0quChvp3AP^w%D3`ize(~_L%!FOPQ7bv8>lfua|jO zWV1!}CARVs8y8gc9GZ%SdJY7HqTjH2B+I-}J*p)?c)Gd(pusg1A4wHca)C&qf^6%NM?vSt6dibh={;Qs})(;)`hRp7W z3*4PmDRY_bS+#4N-dsb8E3qhvGb_A^{{!L2C+o1g%T@}Rs{7{5WF*HPaUrpiEoBmr%maw*H1A4PBa(DJTot>(NgkjI``2bzV7oE}&fUW~76U+Qv-V31X)K88vT?hP#ruhj9X@@Ul zH|aWBk?C4_O{beH)NpRE8Lis%|F}R$gIkE{XnN3SkJi$5c8C)S^t4^gilWAHc!X}~ zR}}LnD^x-^X;9*Ws>a0g|5xctEY9!25q;^y?&B9rQlG8}a=sebVN01Gs9$bDL;@iY z2w}A>%9@}Vl4sB*=uLoWM>q^61lS3yk)a;}5{!kxBjOq#xAI=P1%@mlzga|qs!~yO z0RoeN+^D9c&aL%Qf$rfyWN+Hs=OX@5y(OPgCihdcnMhHB?uIn7zy)Lv0n(Vniculsbw+puu%j97f>#g|VY z$Ia=-L+$hHtt&brT_D&wOb`0(fBXu5BLtw+Wrhev-2leTLr>Sz37YtN4FIm3!m(j`slaV zlZ|coEuAg3j{I+_T5|E`E;YdJ)DV3)k8cPbk3+@VsoWAbLa9qw$QiZqPcC?<)$0*w8sh#|PD>8+HKyAHbs8 zg8G3@RM$a{1t*sU!(Hiq>5z}N!gWaBK?npQdu4y24Bm^37*A#(Wn*DVX$vgsC25rW zY>bxVmeN9~&=Df;>kYN1XvA=bg$ty((L`e-;)>Ltp6s>(Vo-aA=9$_ruuH!3(f2iW zj&aDKtyR4CTbd)9U%*C@fY!q22&=jd{GJ^gsBa39ga51WS~6W=&yX`0A|N~#u05C8 z0<<>WOu(#Fkm;HUd2SA?5UygwWIiNl`vO4Q1v_UFf;M^4XwWviXY%a71GHWH$Lj_n z;qwP=1&h}ueKS5IrVXXiHRXcds1wE_x3V=u$gS4i>it90G(Zmp)=a8?9B|t4BQnPW$TBPV<@z9{s+&M@!7F9 z$j64~PPlAdZSB0vCQR5!?;D4%9%Gz*EO_ob;JFhXNPtJ-9h-UVf2~3?y=bJrXruitf0F* zUo)k5Mypx%Wvc)$sYEWD*=*33#cHZU#?nFObx5(U7=d|pma#CePG@zLfE6R}*A{Hy zV#T!$OtLhR2YDUkey=&*^!LKNT^sv_tETnJUh6R!ui~|aBkwFAZ?Ll*u4{Lz-(Q=E zyZGut&8Ns!T0}T+t4=3&ExmNjOdIoIdw#I<&x-Z~npT6@v;LZ`OP%}^(($Sw={rMn zWXu*g`v-?F-ZzaHTv>6FYytmKJ)*xIIm(v=W*Wlb+c+}X02;i-WMr2?`4;t z2hNN1m(j4UQNGjcnwr`29fe)vao(r$IJdlts8N})&Byw(3oTZ%-N&B)7<}DNv9J)u zQ%-h%?zsY2IQhKe@O4w@$e3%EHy8NB;R95C-TYDb3@JO4IkjbPdX zvOAj`-ge7ahqqui3XjT;ZvH5Pa}73+jW><)cf%|7oZ{-v`??P!4?C$rssObfi&!0p z^p1GCJ2+9neOtQWNDfU*2gwX9gn7#wCUHv^t3K~R-rNkxH(X*A4;%drRaqt;3P9dS zth3r9U3jSi>i&86ba2bSA0AD43+3WR8N_7HVZXy9@-{X0xhZwzCDW?T!nfn4LvWxvhoyp4TI9lk_XUd~dg1 z$z%mL2f6OCJj)7DmaJ%#)m~i05156}2Jua%U4fgSxqOzkB2ixxHe^Mw*e2(2{2lsM zE%aP@ri|COYE^m9bhz{OlQW$6hV-I4spr| zn*>BjV<5jFsz;DeLUWoq{U}62-4+VA*|)RX;sJ46uUwCg-JU+Ge3$y&R6I;6Stnlt z;z3US3RcI?BYeQ;5rZ2?aEX`Q2VY4~RrqX9SGp0%Yq-+w#0vyfy0O_f+?cAboB!!o z0F=J^;Ep#p$F_8|t*PF8Ni3n9;51zHAv$q+N89Se=JoMv>2Hpjn9t?-xud=`(2%Th zY<+j{0qOnMzj0%>t6Mo0Ybk3~&Tt$%Gu(UiYu|rxYuALW4}R~pt7-d+uCA?zzW>_J z%`ZMRu)eKz{T+v2+>Grz*!EK|etzkpjMkw`X4g%67^S?OrP-=Ykx2~!U;@!iHeb-; z2>PsvfLwSu63OC!7ElI{fMdx+En1V_kmy-AdDLeE4U;09nkqxdA~AW!PY!>-cikKW z@tAKgn{}CD(+wumoOx^Kn54gu%F1Np@Xq`u_tX5QTyq-emv(`Ya*|Y2Prl|VwwkkM zkIiPvnzH7s37%NIql``Njba>vXN^vS;nqVZtsb1rO~(s({LMY4VynAfev=PrAEx`D zIGMS}>^Xr_mAU8e!re-W1pcI3Xahx5e&E1=S$YxIcU&IZ{N|2_q+h?UdF9jd>*`aD ziP$BZtJk!3Y@rhmaxqRlQ5|2uIkEbWj;drsptK&H?DEBG9Nk^n8^7_o^!|ap?{3AZ z#xgn;^F?c%@)?f98SZV?p@p5RY`^!Zw)F!~vF>GEJs@}Wo$K3pf8R7w=SVdpTgDwR zmPZ1Olc@el!0or|b@noMAQ{PK(Y@5ak%$cK1NnanAJgkiqdym!)EJ0|Y?T%;TAt}s z!@pbCJI9Q^MdRtJ(7DAn)10;Q(7m4^6`XY@O0UUVEYXt=v0Qa1-&}=CL6Lh--QuR& z&}n9CF|w0PZ`sg)=mhkWM|u$l&>!d|goFuyMyME_v=*Cs%$wL1c!sRWlMAyqD?7yX znW(?n9j)$PAz}f2+tVYQU_FbwQB@f1P^;FumdQ6NEPb}KjaytIx($6 zJd7*_;vP1~J2PwJKaW>8)H0!vpZi)(IIa8S{03YJDJUs}UK2tav;+_Ap3aGO8M zgyN`U>^!w6>hK^B-3lMLndx_h%TK|!_y<)wJgP_s@xlC4Z;1i6hEqaLtKdX z%?eE&cr4&il$Re`6=^w&j@jqr?vmFyT5`sm=T8<&FTqRmg2_0{3+XB*`YYaoro3vbo(o zJy~HjX0T-F$!5WUf-2OA%RRyRDNN5bqBIn47b+0Ke#$&O)0#pQ((>|hCZU9WL_2^> zLMyCN`jKS9DCJ_Taw3lDMZvEwK4@qDcOH3-VzLdX3bgc)$TFc`46Q`yJ+{jo7!il& zACO=~I4l!scqW~26fbXxi-5*9YWkqR?$V&hL9_{3LQwMJ;S9}lJ=9GaYVj5h8DJR? z!j(}P2@;K{siEruZb166>^p|0#}vQ<{Vy!!mA`QcX4>1Bp<<}vxKOFDqbe<4U87jp z=q?ZF9qv$aW@+VA1a>x5iPAg~`6r_e7n$p;L@ubR7!Q+*k=IV(^U9xC{+ZUo6NBaM zCapIUs5+%?445qmtJ`cIs0w8*IS_oRSlgySRmJ2%CQ-q`5lnaNiRu?>4?(A%} z0}6Dc;Ha{80xxr06LwcZ`#bqvqcLfHXz%;c-er)slQdbNunRORQ0wV3w7rHyNRpx| zGgg`r)mT8Lo*Ye!6$0{D(Z8X23qU=g{l{Sl#4{)nMf_aNPGTT&XAmud&t-_Un}VIZ z?0!!6S@GeBe`a!)xx`(h*I68{QYUF`Ska$8%klMsL0n8GiSo$P_dkPM_i`B!zF@sgN!kO?6m(fN% zr9A*PgVT@WWkqqBxm9O1Xm3z9R@1G9m(eTat=OU&7WZhEDO_c+U!YQ_8{Gn4pi+k` zo5ekO#Y>A78vlm>ATQFR?7tZQMVb?#zv49?Pfd0r|9Q5rtdrRP0xr-B-B>$BtQ~cl zOE7D0M*pR;BEsaM7(^Y-9eGY5qMq!X4#Y|3XF^`Ugk_;aCKsl`8Lo_{^^8ykEWXO^ zG4W)_2}`@hZ800Q?|;4c%Yg(K*yv7wJ&U z$5o^&a=AcUnA=UsKA+e9gBnEgzx0FpdlG@cqTHAF6?cGn+^ese-WY(bT_fE~GPuJu zSIBBnu zqf~mbRYMd#s%MohP(8bx8LvoyV{|OBFcRV8`ZSjbJJDH4CgyZJc13(1t%FJBNjC~H z7I8&$hf~XEyS)@JgR3YO3&KtgoMB%wrs$|$Z&zu*6oZ(oX9!f4k?kkz9@{nL)K{&g zE{pH?hElV2R!gF0`2#<@8eD?z>PT?ug5f$fk2)Lb?w$-vsM2iR(yFQfRPjU!I?N4W z_42PR$pZhXNiIl94rgF;Fx}eP+H)XV(p_mppmQJuqC5-KSP`5Z>8`wmLd=c~)Edg!@Jr5m{2MWumCcQx3c zQN+FT!obXj7jnU?fA+xgIZZ2tF?cg=XmvLWbK~Z2b8{k5|fDP!c&%0CV8{|;r zZy?w3wDiE&xs!Vr{o}%#nn~Ap7fbiu&iQUFK?DN`aHZw^%fxd@6o>uz1=5zxWto8) z{rJTrN&Efu6Ii+9(|_aEw@62Ycbx%9Y#sgjC)sUF7ibIGMeA#>K5MhoUD8PHVv{j@mH{I>DFSjyc)@)x{VO^=Bt=kMi@mAm^@#2HkdJ>9QTS&HnRUcTJp# zQlazzjO1Sca?)|#A@G0mSj~-`?vT`nc9)FYNg1OB2V^^PfekQ1=m&q+-+B6Oq1X<*e)km&=7Zg*v0rAgZHNZ#E15<-6|Yz9WaXUDT>;=Xsqo z5(-`r1;;ADzuLHegrMD=s7;y|UNPA}w0+jTi&|R|6Nl$Qoko2Md0eDMB#!o@$vZFPr-Ww{gi6BMdfty3Is7` zC#?L;rpUumH+P_R#mkXRcpUuh!(0$N3f;_u&oDt{nX6|pmi%E=MW^>*yi(vSMJDbr z33cU+$5dqDgit&v-*3HU5V|<^JJZ;OZqzB}g4ux{g%1$&AO7#ZscSOL;Saa3v0^Vfy8!ser>vH2_*nP1cV5xiXzo}!p%%*$yOx7%!I3pwjZxi``F97W}_ z$Xp7k#DY&52kB6=QsG)&f9x!unm&)vT)FHtg#sf~h~o9+d%5A5&ah)nTCG5nKY@o9 z5a2|*VKeJ(++K9!-dN-a>^wiL%XZFt?=s=DG5pdE-6ds|~U+RNsMrq#0-nMdDIa=0yVvY_aF-VLO zlFuKd(G+w3Z{FSmJg(}_8`iyd?(|-z8BNpl8I9U#X4Jc^v1H4ZZMn(a##J`L4Q#+* z444`Vg25)i5JGSQAtr?c2u?x*Y)F9wHnBHh(>A2+yO3=1ZYY+9@Ap4e;|~+pDs37_B76`BNjM5 zcxX*#oOcoP;JWD<`6S^1_qxnbUPi4!QLF@kwOd-whMFv-W7?0LiTcRXH@VLq3HXdg zUjTt|REn!_@J8ILcxO0Q^1osyX*O;}w5;tH^pQbDGg}ZHLf=67DH{u=1M_CL5_E1S z_l~a2sv8Gi3zv7Xe8(v`4FeiUjQo4>s0z}$QFD$N{+_@}A}bO!vvDveN6ZDFUKPB%ce0kIk3>G2F5%I4M`^ZbIyiOyZ#2)c zzAUO#)qC>Kks!+T(9+N>)_VxR#sOV}cp&NGESI{9-WL=)fCovRwKm`c^Kpm-?h5*d zFx*iE-3hHs6bzzVHu>FnPe)HY*pzJw=A8;&CGsd-0#G}N#4+AvF>=d*)5eEHG(nK7 zG_saQG#(AwJ~-40mdQ_iqMdsRW3V&dtTYPX3(W(b3Be5&yWA+8FztvcNU@dgKaN`4 z=tTi@6DXn8(4fP&eHYrl(`! z;p`&N8z6;L(iiB}K_ID`J^ElVmzpgL{};p}dEqcnE5lfn9a7}y zg0exdDF%>T7lma>*VE{|MH*$|=1yTS#yq63E2oYc!$)>t{0|F&f;uLQeFb>6^GjaXNL)_4`&e_H4VMt@%r@{m1t0 z|MA+FTH0>d+S9n|s_U;!k+MNj`{eUWPk-a-Mee@dX0t}$xO{AEgRf!v*yWe`{p-iZ zMjHGZ#>SR6=rxv({yDydU;f(DOIH2xx%(6IA3t?!;lfj=K0hyU|8qagpK99EoTwpg z(zqq&4wRd`hSuk{lNfWx?c#V|Tkdx2EMZgL)h8NiM<2v8IJBN~OW%w}~e6&e$oE-TP!cZFW9*3%ysEpEvIYJW}V z@Yc@Uz`m6|jZnuB82RC;mJNnCcv(3!C-^H127S27pBiXs-;PqDoDmQQ6 zUSryRR(M>rS5&vnsS35#g|wVPslYF%MO1sJYED~qgwaLW;+WxKA-Ej5VHrb-5zj1mgBP_DEwO8M8-PV4gSrKdM%XO!H?ntScFvpkf z&h<6LzynaHf;*)=iu%3eHz9j`krIN?QPm7a6|pVpY@m>|{ZbKlCuxc_sTjIN~VmL|R`>by@$UY?OHcmXS{mizBhqs*(zHcy%jhUdU1HN8i z*RgoMVuLK04nSs+ISQzdWi#S|C5sKUO-(hPikg&3)qQi{z@2@j+A5!?rm3mcFf4pu z%c~7`7dk)(U1m|R`hq6W?1J?#;IbRkycRJytNF*}Z^|BLam*6TLC&ZAtajdEli%0# zvA*2hyF0Ye43;&6)@K#o4Er%jc1z(wHfCHr0r$ipSAj-G` zmy@fD_Ifq z!zJIMk;ptiTq}=;K)?giI5TNNxk@gqh6lzBhb#n{bUk0i2LlyS9FW<=!>j~ZhnXbk zJB9TonTE54n3b9a?*SN4Kn;$P9D=uDv&zDFEQK$zxn)nb0O%PEk?`xoE; zQjTliHa=7=XEf)wt=$SssWDQG(A?gU`udTcXtW3aSM)^BwZ(0-e|g7QPb}s+JN%iC z?~keDYm06eQ+bp%1KCzH98ue}p147uxuvJ~mWi zAlv$)R+C3JXV3gN&cM+gK2dm?_qEHOTYI|{HFJL8zkK>oF17B+2!Cei$kw*DQK|Y? zcI}}#0v0Nl7@ZpING}GxBLCUI9;gGJcyiHI17;J*)4#GLO0>w9Tve2Ids}(ALYeTG z+?seI5!ZN3p14v`PBjwF#}!Moku`^+S(k&^1*>>0Fu?(e%mG$ZaKI4OrbayX<{x_Q z!Tir?QKadAu<%y=tD9b4o8M24fn;oK@640Z+z?(AYDyqJfa3oOK>-&%Z*=Co6c)5F zXZ))(*BOUt@}#e@XYjAfG9qL_)_;wdEhDa%f-~9o*y`0@VqIk!nyQN@5VV7zfMaJd ze7$yf5`a&agmnn8q4+_ppw8ul5c%efH)90v!gFKI35g0FKfi!Nbf zl%tIs`Hoq~8?YdOY8Fxqi5_X5h#cX<4$h%M=sW`iY_kK{W1A|{+Bn77;kUlHY2C_+ z&WX;I>#7%BHGXpW;Ng9jr_($3AAWzQpx5w6nw##Lf9H;VouHWPDi89nMs`fr&gNg? zK6ma%IoUoG^EL(KI(<5w+0GW&2QGu-5z%y^pI{1LlC(D(1Sb3V6xvMU+nUkPuAv7UdGbDsOr zY}r0u5WMUm-qq*YbFydbkx!gknUh`B^8Rze^5%~(I0q*@rgqxAQO-DsH!){;6lqbV z3FAsGc+J7-Qy{CIIk*`ECp;z_0qo^u@SS$kB4hAUkr>6;mS=98KQ}jVa^hre?)=-H z*|Olk)-|b6D7AXq0eO-RY<5y%3VbKb3_lPOR zxB!3bx-juff;>GH=Y(nvrkNo^3f&(v5sdn<0RTQT^@L=QokTx)ET=%2ErcgbTFS&? zIV6o-?k@_eST(tA?=N0Fd2pejn&bSCqvj>U=<2q$`T7q^4j%mA`sQu*o{lhC@7#Wl zt2QjW{^X0lxYE0@s%nuC(#bvD{-^WXUwSD2!g1f6!P(_X4S1K^CG`19pPyONX1<-A)rYulZVK9^s3Z~m{Z-D;`kly>9#x86HcdSRcfclZx;0`w2#qSZ1TPPcaJGc9j1tQXyOH-yne7= zWj6^5!5EE2jlWy}mHV$*TC?TZ{5|s0?+x&o4pK_LRFbL`}wvOYqqj|NTnTMXIva%s)RnO0B%Aui_|qr_1aY z%}zyc64S?BEzOR}X;ue;3r(o|cZ%yFN{wD1=hZwSdqvSnRG#Wa^3h`b&_hFu9~;&$ z7~Q+RqhtNv(FOY9#}?zDe(~7Vo4Q}J!VRmFbEw2A=U^}?^;s=G98qv`9HJv-KEgl3 zJ@Gjfdp1LV5}(6rvo=lQ;({)O%Q3%4O3ui;5RXE611XCj7CJ{-AW6u6^vEl(Ol&|a zU0tbJQ)9XHHBKiko_s6szJ=4@{VExaTi6jlrprN3ubaDVUAu%1s*BfUgx!Dn?m9I?B!X5Uo?DD{7s> z>Y`pLye-Xdah{ousbuo}DB>4vC1s$A(UO*u4p?aC7P`RXM+st*-~G6WQlv5>@BbyQB3CN+RbAK0Jsp$#xKn6xhQDH1hWNmQ zc^p19{N;{Jn1#3Lk4{dQNdi>NrDC)1ZsS;i64{IGTjnOHD85f^|{K@R&;E5K$g-9{e!eoxJ&h9SfXC}UM7S)cM2j!>LI)nIL9%!JI>&i4V zCdf_TeOr`o;2u^MKUtKKP`Dhv1iwuo6)s1~bM}iiP89rB{6#H5T!vqoa-p53fo{8U z<(4hnsr~z9FVWtecb+-3Zyy2+*^l)9YhTOduDzBfncG~Pz$4?F@5uPsv*SkuJDq{U z`q$Fm_`Inf6tF|nCicf(Kus~a$~T~!l5boC4cG!5)ddSxfXRUpP!M2D{aKKqL8Z^8 z{~;=X!GvN?5dZ)a=x_z+kMwzjKTPeSctj6y-ie24>9IZa`QB^Ag+FtqM8RPDhk)&N zbUylY$(P_m{T{m7O0g9XSWNyjaG3p)uE>^)m?catV88f95x1m-kSKRJTtqCcmZh==rR^Kjp?_e;Z3Gcx-fC-#Pi!2e`-G^Akp&f%9tNB?M?q!CdPkr1Xcqg}V_;>n~jkAEO4 z|0e$&McafNHn9L*4xk1>8Qe|uPo#eZ3r!ZHEQz!DkGk*5UzARaPAo+LVa;uqS?x_V zx6>vUFqp{LVXJUE_22bJ&iW(hadMT(l>4%9(wcVH4r)V};eV=MAF`&)vHJ}}6s7gu zCWFJRKWps@qgg>`kNIcOy}P2yR|jzVve&1pNLd&j2bmU&dpnk06{*p&QiNAqp zmO_kM!7?wk9%6++IWm@dxlo0I%RD+lWUq@q z%ao;f{C^7C)7LLJzw-%P$9c;u?N)h(K9gHg{oaq04L*&=*N~J~S1-w>4aWd|_5Kt}9f&rK+MpDa+DNiGT*}eeGuh;KU26~80^HVsU0V^X&~c^ZPC@*)4*i_! z^RusWDLo;Z0u?-MDpAncTuz6gIPKy?)pPV6riO=IE@NeNT!**{Gf(e>TIDBD|8Eas z(o2ZEOa2J~p;M@|0T0y?f}kUiODFPwQVhvUpdG*m#t~{k&;*uc741MnhMo~ruw$_& z)Q*^knLvMPJwvbY4z+CZ6LtdrtLm@|xdQ?d}9Dd-ynEy7vYHF6Y!B=24( zD})eD5{+#8*@~p0^K;UO#Ku@txg5{-8x)y`D)n-glzrM9WOo$mY(xZQ!UuW^3$)A@aNYyMTm z>~mjVzOlD=@*7>-=O(&$-M=J%rnR$c_a~N(e5Mob6U*DaPG9H2_JfnB^KPHdUYg&l z7Qf2-6zsDe$~sevlUTL4UDe$8V~EH3Z$L$Y%w$N@(KS zt)8II!RPPDe=*0^TJ8P);_oJob*5`M{nZA3!X>RCLk&d(`JOYLO6Kd?MS5sru!Ws3qh1EN?UHS_)6wq z$v(@SSMA_oKJc$|Kni*d#Cm5j&c(;Mh#R4P7vM5bHyYa54ezI4i zqka-pytyL0js8&&W)!A{W+Z7y5TiC(!d`3sG$}t^cm6c#OI$a}=;x@pP~5ZY=|P9r z8#5=yuD^x*OV=&ek0s1;kJmBy^e&wKaZ%GMh>VjZ7kHYc9F`~YKgqv$cEFbkS~*T- zv}l^naz1X^vjxB2yUy;@zvfB~&vaN`_1hnO@%FV2Yqf)ag~m^>V?pK*{f}!J0)Yk% zzmi$qG2qEMs_ANQ2CUWOogODWm8J4iIJ_smY^W^mDRa~hHF!J?L-md_ccN@)8J)?` zC&%kJs|btxzzarZ{EOUS68(|j4cz5Jp{wZ3{QIkR-l6#qW@gH%`A_>a2@nV@;H19T zr#b!bd7q{r94;AG?19hGh6o+X+Pw%WFNRaPMlzmC4twFR7XX1!c>$Q@Z!cPw3jc+- zFP`v=7v;QRuxQRA`Xf*dhH@_K$AOXt`0EN|X32wWSdt~Lpr^V&Du&9Rr$N`7qor_c z!<2A*dd1+6f*YKV&}g*F-BK0|6u->BQgjlX`$u3Y(bktf7*m`s83zx7KRr~KX=FZgIaVd6zSCWI?Xea&{+dOjE^O zNPeYK;Dw?tmO^os85ERvnCc~a83|lun<{*=N+^mp3UFn*6qGatq!4`Ckv|JT6Q(e- zi&01i>{n7VlmhjHj7-Xmp218?RfrV`&)(K6 zlM!@wZgZAp!v1=@J?(d;ELX=o7I#^xUgxsAKC1&Y4sui$jN`_nMV8=Ac!lH`+BXYaRTj z2#Z`bT@j;&RR3_NRS*SbMbo^A$H+aNqf#eCK641@5b}&CppjOt=tiHAdCQGfmqMb| z^v1;sA8NHVHn6p0!HfU?r)!I|^3FXoX-a|dtpDa$9+|~`%AzwNo1wX)uf^$im6p1! z)@x$f>ad~Q?X#H73Ae@Ewl$ETcQ-2K!YaHwYY3iS*M9lJnkssGuhUe9_qUr2nm=1y zF3iApH5#=^Z7~{X1}sLjF{oNyV~&_KcB2vRZ(wc6Be{l%yevj7avfnG8t-`^RWwy_ zo9HcrMdlHt`N;oz#xA=c|7V@(2^C~aqVW{30>R+|$WP5c4e`LGL8CZT1pvwqU1}bS z&{dpkJR5Qpt7-8OV^;ou(0Amkp?<(z=t@#7#s!p{X!{IGewgO4=#2qb%Ul-_ZvNFG zDV}x}^E4FqsfGac5`%xrfvn?&Mf&^^5RybGrbmpi8}RwOgZ#zC$T36MONazVB62LOMY1=6^^jr8%adUjBB4~G z0Fu8=-mEoP@~0D5v=AB)HQ=-sml^%->eOW}k5T8am{fd&DQGTpsei3;nm{y8C#r~K za3@F=9mn+sZLO#-FEgu+7FD&v6ml9pt}=BBF@k}TpuCw6Liex}Tq77C6(%H_YAMiA z7$hW*B~izABrqzKh)66DpTjR}j7Gal^98O4gvn@EA)@#0uWEEkE|p=}$<2Nl$Y?Ip zd?9}tsB2W23|jf!;4yls&ONjD4VAoD@?-c~{(>9{3o6_v5DwGL&ErO(_R?(W;Ti;+ zA(bJFPbWA5;u#982#yxa7)xl7SPQ8#|HB-~t2<%26}|eik>a&2;F`kUcS6L7aqL0GEq&cRaygr(!`NU}NbdSMA4(7I{rWg{TtEZ9%<`q?&@bkE%fw;OHu|^hC#_JrGdUX0= zJ9>GD6^$C1QV*wm!tJt^`+}Z8LY7IKOYsh~-EN-zBeyvJ82=7!^N#%IxFr)0TPnv6 z+|tdIkY}KTxD&#o-M1XLB4J6my^eWL??U9(q?N+A@ONL)NW(o@aB1%>l&X2T@V}8% z92l;-y(nr$7I3R`TN{N&5CLo7>ii^k^$&_ORiw>7$lt{GZG7=-C;OVTl|#K*)6kNo z^G(^_p-Oqc-FNb9FK(P61)MwKFoVYddwo&P7vT*dt0Pj*bP1X;xe~#Z;3$biKu+(heufO`OXKZ#(Vv z3mV)7uy+3Z+9}ihDLF2l1&Y^kj+J#@j^g3l6YwY1vXe2=|A`p ztJ}?LsahYCD_yaz;6(x5LPq9>B0jT7$BExYM+ zt5$vPrltDHm!|LqxP$JDz?R8BN|=*dd16;*=k5nq^6QIGlOq`V0|15-ir@oYg%Akk z8_1nr1nOI$e2{gRzylEVSCHhx_9V&$Z=~e=2J>|=u^Rtbc^4$0NrY2D#Lkha!>96y zQl@j5HF3ADOzo@)mxrV0z8A$mqZhVlLRp>%NePHb(b^p`*#(lpT+RX&DJ!QSWWjEV zbX!0;0*&K5h3>c$DivPRZpXhOl2t^ILIRo-EnpRhk<})`HH7db5w%X{LU%d~S;xz? z*#R6ZMo|>h!EBMjV${=fG#nRPH$9g_=9rGRgxO!7qCW2w9TyW**AR{)FfgxTC;U{umu1Kf}aK@?gt%NmOBqN|cnKo&xn8SIj}2>6jfKje&^OWV)gz)bsDg!y z(*d-cL3AWVJ=&0b$IAq;ZnA-UAW~)EdY<_SeUa2fk_5oUrO)t%<_bwaEUY(+{3J1W zrYR0+7)hhiD#1KF9f69FJb*wjk_@Q$9Z*0yH??W`Y)7)H$U8``NBDX&Y40D|nBru- zs&ma%oz-Jap}vZWzEIOxb=#F|yH%(&!A;f{*hnO1UA}!+(w(VTw0!xzHj`ud=;etU z^Z#}0t@;1DF>(3mh~3yWZ)EwRii|tCYsYeHG$QF@Z$$eV!wOy$)bVV)UstB}F0P3V zxRKjZv)HRG(?xQP5xG3ln2R_|r=Ke2=3XG+b59rT69pCziymUZiiUfuP=C&<6vRgQM*r2|ABX5Z@~rtv0^6sydemYBFxr!--TkRV2FW0-Au+ ziI2MOL`7pw*kf0?Gn!C3SH1FIE-MHwihEquT@j5{{1fx9z`rL%XbcVCUl2s6!*@3`$p`b^gYV z>bY&z0h?&h>kXnUP~8Tr9p>$KcpkF#SZ|PuDmi-+V=5p5&<~KN7u$c=iDS2JZp~eO z_`1!dpFg$q^Gl*zcJA6R&)T~2*83i~`x^dknZ_PS&tBaY?M}zMR(YvbC%1ZH>8>c( zv97-X9^mN+=KrQG`RpPwbuk zgf|e0LWeAp;ib#UrKB@)59Q|b9g5S!XTg06mQ<$X#JPxGQVSUmA}bjRIGtBMDEhmY z3<0hrTSX6`=QD1}9#`12bo0NJYsB&tN!qacbX!HWh%|l&1$sofh0oGa3f|)UQMQR2 zA>c6DkLq;MdNWa;+@5 zm2{$v{LRqp=7Hl0HMV07)i+@U4=ghV5W1Zo|Z_p-ewi?dx^ZJM~g+48D+ofQar zZ$jh}sz~9x;fl_AG*WUqNR?hCAfWGa3&E{XBSChZ;Ti8wz*xMdNDr_HhuU=YwGSkvNyt`DS>?Arh(qLBrIK+z*`k?=C*Mt<-M zx6fFlqeZsQ3g@5@$|i)VQ!x$x@t#{VP&{X5wfRyV9gPo>uqqYsqXUyv`D$f0Yq;2}+U%A+k z1bC-73$pY6JzMLvXW}NqN&`5c+UfkVp_E7ReX? zou!)GR$P0|_xEOU+xeV9dS{-0M_8?liHndofY=;3!wZh@Vk8u!c?7ftKY3xG3e|@K z)Z~+-7UhqVk|Zv=^lIntFREP_gMhWAdReDSst{qg2BTnwCuL+^q!t2HY$ZiJL$Y?0 z{4V7r5^a{Fm=#x?K63OkQ(?g=<(C4ll{YQEeQjE*L_S%Es>-NEUcdJC#fD67xSGns z@$2i6J?nNx8YiwINh26W~G?kU9SD+ZfKjcmCI?9sQx>OHO+ajNvKd@XbOF zX%npl>1r^(v6?LAFo)PXDU%D>s^QLO*ys}Kq_=sRHa|lMKE`M0`hkWw>y$dQU7wqkq z`$B$^^Vur=0h{0`vkN2RH8p}tA&Lr>K=?}aoZuTl>VCnz3t%9ziR?E9PET}-i zzgj=qkR7eBAI&z5qDw8={gK2gB1aKM2g<;uC{resNC3v{+N^g3+vne**jrjVTEp`+ za`H_E80~aMMn#O6%tzo;#6((W0wp}t2;Ey+*VdAek}FGYM+EJ&h@btplK(21fPLMJ z@yEFg*MSkiqQn$yHra%KG~akF=&|%}(kB})uvJohX_2^4!6VDCfF(B&YEVi7+2Wfe zoJgDK0NLj8e<}%x-8K@y3NiOBqRyaB+aaV$Qv>5WNAeIZAZdt!1Y}J3L!iae+=U|| zod+GmIq67Rx)x88o#_Kpx%%rKd0EC@X)BGS&uOV{m&K0Ye0`}&%|&$ssZhJMB3!%rMUPEy zQ5*SCM0TKH-Z^-InWs@{FLml1#!wG`ylZF7p9?RzDb&2SHxdZVzW#~zk#%XSHF9Wv zWurOrfyN8?vGd*a#E{E~`jWkYFxp2nh42pne%*Zat;JGrmCes(et z>Tap*^f}{h1Gl!ayE%;p_b!{p5w3IjS{zSV19cu%OV<+%q6aPSxe-!} z#QHn?MZK%MBA>5q3;Gmg3Y$l#jwJN5{?xVUGJSfa{%m$<+w2O=;{JT8{0JOD;#`Mvw~7r%fM>DUWjZ!v9+A zsZCZf7|uWnT9GPG679tAm8DLXT8EA<3M%ly-J5@(lm~^`r18e$8Z7a^Hz-E;C3~K*lnU;tN9k%|mF!ZKltaHjm+;(rmFP6=kI+kBzC(>=~$KWQMMjgN$ARDkf>( za;f$tleKN2eg##nnr*<`C<)|YNC-sljrnGn^c~Mc@vY>TR=!~SLDt_r` z@wrnWyGCuLcOb}bSq)}{a*_yi-D&nFU7|*gQ>;*(Eu2P5Rm2X<14=I*ZAg^Sb_Hq@(ZGm`T_aPe)tm#zQ*L`jxl50}%fQBpOvq~V2BJ=S4?D%+Bd(z2 zVP%fjz}D`=tQP05z-lsSKMTbq)+5&PLd}A)_IOWowmebIiN}n+?o4w}ymfRzO5ip6 za((;Qf*P~0%AL5pRn&;9X1S|;P-M4I`V@Zy_dVr)xn-&zfYc+tFzdza8O7;H58f)( z8=3e;Vr#Z{-$;FW`M%!9jY;wQp8B2$dd2moJb_UC$i80gRPVm!>2O7fh+0lQ=^5v7rVuEKSRwKw7r7#fU?O$|&c%3ULBwS|$1%-OOI^*2ZU@Eb zVnD^j?^Vw7a<$&?bt(D}t!pHNYur&Ke2x}nin|aowIoaJQGclt9&oHv{#OMW{@?|) zTsM9FQ0wE0*_u<5mL<3k|AjN6uSXoHnca}VX7_+}(Mu9Mti$ezX8R_LH`ok(O zkeh()IjD1p9$!Exk{t@7LAH%*Ga#1&_V_AJfGMp?WPxEUH=U|NixTeA_lUejXjL3^ zL-sF?xWDus$>#b=6aF%e_{GoH@v@<)<$H}2e{L?bmnWSY*=`J2%X;sWh?9MT-}BIu3RY zp8EWQ?XAlFNZdlgZdE&7z3^lX1kXu?PWV~wL7XE0=o9J6MGVE>H z)6%l1**iS4tS{k@!XWgt%e&VjCvYN16T%73Z>G!LvA>tZMQU(m_UD{JR$Zg=@YWplUQ&KWhO(Wbd|<|^CbhLwTZ?zq`nGuY@G ztnQEXwWgw8waG4*2}ro+wPoRKf3?99?as!1b~z+<4(>>q!K)k1+(r1-x zP+L&6`6?TFV-NV|Rpn|H_(DyU9*fEtXpEy3REwYKKSKo=g#II~E~HaddjCA20m6{_ zD=9$$1KFyn<&F4VZk>STefG7ptH*w~m6lgJRs@Co(A2Eu8n-6-Uj#cl`w}#3o7&6$ zL7KHCbYilCotTmaXc$qc^;I-HKdgWp2f~)#2Vd z`UZ~94v(x_+7plWEL}Aco_&;iN3U19W0{@>wYk~_J(-wW3FEqn4s{Pz=cvmcDf--KTjrCd?BU>X*}DDY;iXL#uXZ~KAv?wh+j^M;2yBWH71uLRahtI_J^ zc3&dX6`_luynX5cJXpWI){em zdAe?v??LZ5n=g^=iC#QYk*-X_YnSU$9tk;_AHzf zKbN2e6)M;g3oIB=z+*84s`2OH1$aZ-;1L2rMsYXB3>k5?+o*Oevlhc8&8j^~wiM=k zB?AC40g~q!DW}E3EzuRGNN-z+utT1bDdbkBU3vs&-?wLzoM=-puI$IRSlDj>8%REL zh~TS%`i#XvZ8BH@7V%j{V)i2s-96UTHg@7$Z(KR~{FQHf6YT@L#_oRTk=bInF&E>W zjLvQh-#X`>Tw?92;m%0^Rrf!14Eyn;`Gm&)wg%dhYwcpk}cXdNWYo^B9y0FfsDT}qts}C%w4)-+I*|Pmr)`_=y z!5r_YGeoNDJ?K7^n%5L7)o4m%P4iN6t=yeXMhyPCh*RY#4~NIk9HE-|OaO%-bB;w! zP^83ZbiO)EArIWC+z}}z2@&hC*-pXf-+{@GxZWRe)+Ac+!PBZy;Uv|YK@}w!(NMAi z_#l5^^7-{oKX_BeN>ktzOy{#o0CM60?rb*(t#6 zAD@+2w+3g0lbO{EdK(gk(h9bs;i(1JRFoPL4ZRCiXELj%U%}QqVgX1LuUI9~#IwQ* z_=BnMRta@EWu%BnYCv`c_gih-hU;#;rh54C#V86?ea(&6Z)npCtD&-OTG&kBmAg00v6yGC z9ow~|YRMOtF8#uisvWz=*3LFt=4{w~<<9B_k1+n{ie`F->%jifQJ2bSFc?*?Xc`N1mEP=4{Ny-`%*CiG~al528gQFCZ zU75HJqdR*d(1og@K`LTexO7YkQ!DTqvIOGGHpW5KU+>74tXEtBO`ETC%VslH<(o zu#Lh>Du-t`8bu{}7AellA0Z8kR?O>ixGKTY+6IRPJ+1rO+OBT#3@#XK4b>k#`Pl5- z<0p^S6KfyxHtuX{+S%wG8eY&5;Wm@;hDWm_)a)l!QoK*wwQ5gCUIiVp;q2l=Ydg?E zz-ZA1>pF(kGz#XH+gEbw_HE1h8lpM`xfwMTb)AbgZK|z00%t??(pQ z(f)|arg61bJnN3DO-QF2AUwG&;H6pU8Ga9&PAPS}e)_ zhW!v(NJY@7RT>gG8+xL$485Ntm{Zg=pye!|HQedEl9SvqAdaGTL4ucKp0z!Jw*$^xi6C)=69l= zmNc&-z5NVm#AbK=tc3fB*@WCa&g6FgOu3Nv%3cb$&s#Xp+k9n9%ib36;KKRs;qmdP zG{x|*YiSy@T~XLjyd?i~J|=7bqx;~N?P1P09_`LlGBu9fs4~+XmBxf1V`3D4Mgf-FM?@cUuYOuUPn;#6?#SbCR&!jHU6x%DjCH$=K;W~20QA)PGxzy z(iyJn7_6eXq};#bOy-{r&(YglkXylB!9jZ>%N@e(p#c3fb4k9hhO4`I+Qqm3)Z6r$*B~KT& z1Tv_>216PKjiO*?#pCEo+>(l6*%5Y3=ZS;Ra8N5t(k9YmrG~SM;x;ih8g}s(v`X|{ zKoBZiz|dXx*tMJVG|<50oqkkx;Ly$wv?&BOT=`*lp=Yqu;%0? zQ?2h?K$-llYp-f+L#n`}OrJ z*7e@j({bZykC2a5ET5m{?Cmdi;FARh)t1}E|a`Xj9Q5IMd@b8~B>G2t$c^V#{! z0>evlN4v05F}!rilDe&1)+H>VaucVu2X@_fbGm-l6`SL}Dy!3h%7%U?DqJF8fdt3$ zh>R1%h}gF3CilBTA}4yvlvb-QJ+!{Ma?_5nOx?CE8{(EAZlyA~*6+Hi#vS80G%By3 zv)Es?qPluTm4ER-eb-S0VOMAR``%nX7L`~7o8od_Lq76gadyi|={mW~) z>wRRnW$u3Xk)G8>KI)}+yBHnl9fa!z$=^|{|Ed^O#bUFBi8+kIZ;zPbb4{}m+p9|ytA^q#-}hl!L!+huv%RjF4y@& zm1X)ettaiSY7HB;W1Byj49^KW(cd-UR$DceklP$|spNtyh(eP3LAG65 zAuCP9lg?bj^4>awztW{aM*()zQhk}GEa^icBxj{Yt=1?ZIm65E zENqPzPLz2gEtMX#k{#}hOY)z_qS}%_Mhyr(@_V_>TU2HZZG&ZEwi&-H;y$CH7vndR zvMz<-s2bp2H zFFEh9kw})1vH>e?%oRf-r}$E4a7jhwvSfTwJTS7L0X-?lS(8aj5%^r9tJbSjtCT8* zueQ5#T(BR>A46#X@+uL0;(1itF$Xz$Gn4eE=%n>{B#e(xcdH zP7xXquof?;ZcGNddnk6j*O32cGr3pm;yC0s4Fop zurmyL>_<>|k>&u;Ll1J;5K-Uq!lzw$_p>?N(8q45^wxGIpm?Bf1`-JFMNEhX+8@O& zSr8IJ`nXkZc3nzCF%S2sBqKQX@lau=}KiV?Q%%^M0 zP-9a>%}6CNO7wL5PlorelnCg_JC0r+Z^N%)qDm%Qs=%Nw-jF|lK5C$wo5xA3L+d%B z$arEc(HH@xDCnM4bd*R8gBdSsJn3Nv$l|`l_QAf0%c89kb1AYnlx%2`aDaReq)laH zj*aVGo!uR^9%npNmZSG05rLEG%WQ(&ziiE_{whyxM|Y=dy*z1?Tg$`MjTJd>x-y{q zxs)}MaO+C7MsJx#EK#f;6F5=>_x&`!Lj>KDO z;%SH!vt)>}6wwpU-(b!ZpU1#I7TGM5@6f9IK8Y8Pm%j$c@N`_00 zm%NOQhvzutg42k}Qb3S>-fCXdLn$ByCPtLpWXu~LASOm+B`HFL7AZNANP~=s-d{Ya=Nmm?gOYo~Pn`FdL2lM-$U=k;+<-6r{R!OcsS%Ll1K% zjGeG+Al!@$rbJ2G1oB7WxuGiDfMgWeqr)c`)gQd+!1|V!^#^V`Sik7x@W_{zrmnqy z|Ek8uRr}HZYU!7jcHMEuE$!u99chEnSKH|9e&92Y%+5V<;#hZSrZ%EcmRZ7MH{NyU zA?{zw?2c4v$HDeg>h@dmdu*=MT_+ys__DRiqS4t5vPA2w)=E)X-P+R>6AX5p#@c9) z55>&^^R*nm@9N3x&~=*EJ4*F@&+%j9O-{SL%E4WRwt%qg5e}8BOJy=KubOjgz`JVe zwxvz7$}4X@diQNjO}Bph=&e^Kgr=q2wyp9G+$XGeSGRVwmH8vC{+{a4+HE^(Yjopb=msm6*g_up_r?M|03BwJlg&Kx}I&r?MXN=!0%O_Wc$LcUE+zZtqa?e9+g2q zuC#dVYIms0xe`hx>BXg z8mJHEzgy-<6BOkErAfi#=NmG!My=OOzJ}OkiwAC&SggIuYgQ`F-m3Ok4E`361(D6N zYG1Z0Vl$CFJ;~p-;EDo%YnWcCZ7%*n zvq4cFLa8}>SSj}>sv}Nkq&iU{0xcQrokho^2LvDMw^UHPB=$o}XCy6uVBZHsj>uZt z@xY0@QiAXIArw@&lgz2(GFzl6c98BPb8zp$7CT%*wn`hc*0gLD=ovq}g6Edex}4>Q z>8ou1-L@Bl5?=N+Pl;4oazJY-*{XUxu z{vAGt-o`80Tv!#*;3Me}*d%ULb+=TjR8_5AO)=467aE<) zm6z#sm#tJf4K|&%)NU38lO1Z8y~IHH&*IXnAt`htwsT|20mLcYTk<)?PkaekmftLS zq2#+5JFzzW3V!r>mqoHH2m+d~gXzE2wbAd$`h|=+>$jV!RCLyY?wsIZ4$d!-0$c^P zUI?V?GN@$6Su#}Dx}B2GF=bi$gS{_M{KGzOhjZYiU|;l`!c8J!wELAiQZULwW~q?l z>kbS00z2RifCdlqCYOpRDBH<~C?hoSZ5EX%`l3QVKgE{!qMy`RsUO&?1D5id&TwesGo7*m1v$1vJ%Wwh2ntNNT6ssqrQK~W%40hGJt#DKRqPF(E z*Ph}od+ICs`=1h4o5Ci}d-g2a+UF)d#a*km=#{omotygZ_EGcK2lG$3_^<76MB22k z&uRG;py0R@qWBxm_nrFuuX9}7&HeTAU4#ooSR?s+CK%ag!qF78@l`WcE#%HR zE?hRQar!dnhc22DiwVVAigS{GVaEIwXbrzvegb|b@^OfvNHztSN;%{wCTHgxb7#)x z&@n!DR#^ScJJ`-K+bDEE!6BgU4R8_$F6K?5rn}5C1zQ%$c;vET2Uvw@;c=~1klB6V z2y7!Z!}Og8?dtq-nbn{+i`*ueU2qt*`lZ+2cmLhHW{Z0J)K0(5fE=k;6l%Rqt(vS= zsK`gj`%vfcu&|nq9cU?J5xZzXi858s;^oOU6@T-uhp-5JXtdL~BsclN{unh_x z(YcB3aPOMEp0yX z28Yd6<)T8#=SX=$JO#H|_9pZqR3HP-_EJrif`toiOpp-f%8{*drXBv2B~DRkEFaOG zfPG$gTdRYQKu^jgs;1!-;G08VYHD#nJ}Shq2W6Fv9v9{-BpNseqQMnnM%6g5Jhxnh zW`gai;qGO9X;oqJ;Gp~A5AlJPMSajGaUWqddI>LPbl(DaL8;%|S^m{CIbk&+TK?Cl zgL4WxvJ3M}{Rq7H66RRIM5DAm)EtTIO(%US)w!q5ve9kki6ds%gc*OH%PbJA0+Tu;|bI@#b zw!^X(65?lwNi6rB%LL&pLj(qkiGyy>G#<{t$x9Th;~nTQ;W2z-MBcMu2VFc>hYbS& z3jsBUEFjpR7J(%cd}}O{o~U6#I|Vr)0?){L1_ARam`|EE4bI4QFF~?<>*ibU{Y2mH zx2}W-f?JxrVOAg2W;l04A;&B`viI7nQ`>(rHuj6{sjIKuJCc>s*E!S8oOtuUKrJb& zAX7ZL8ic|qnqYnI=KS9d?_B-$l~sGMxoTyTUZc|qu><#=eDss;no`Z)xvvd&5O)W#YIR_y33 ziY&D?a$!OL1NKEl7+vwO`zQ$%aESghJe)4-bDJ-xedB&wk! znkbGi{&2VY|9Sza3W#DWMi=vcErK1ZCRyB}|Fp)UmVcGi zuw&MlLKzJOI-=t>RVXC^hnl9;KJogyLde+{k)I}XFDt7_#x0Zm!jo=4-2-~S+vt0f zWb=M0k|lp&@cuznv@)vJ+KmkFtFv|5HK&EQ*PdRZt;<$3Br@8yYFwilynlLrZhOfU ztk=NzN`8t*Npb3+f`$vt#>@~zPA5=Ik|LyKqUtsXA_V2m64{hILhKWC)j>hY5Um+| zEL06+Rn{PAlk*R!6%a(KQI?p^KQ>TaEF6Ke%8rs`;Mj=wVV*B)BS2K$Le@8uS#W)1 z+V=FECe`}>d3^_-*ce`1GvIHYU!5FnZXQim4>kD*Y8Hn#K5?LLUcY7Yea~&ymTKp{ zv~}xClvlI)o5#1l`{Tx(hSSd4d}wyt$(8f(X=%A<{>qbWvkz_R({kFrM#b!1_bp1* zv^}wQ?GtS^sYUngnl1ZdV{dRQbRR)q!CetQuXnq^ z8Nn&t34gd)Nu~%u#grr2oAY1ZzWKRho6Ui&_2`bO6@yttIFSge(sNf-?>K7B2F#m} zJ-2!L%k$|SIIeGCppWah_K7FzZXA&34y(*rrX3_W(qTfPH9VLrtLt9E$;t$k7UasEN$=ayI*2S?^$$o z&ig+53OAIXF)O^`lYGr{xfj_amTC0>fiNT~y`cniifQCLGEtsIoua4sCKeA>iQHsV zFADm?LIUkUfC0c37!QDcHo}Nd(n1iAoI3!!1=iR{bVBxte&I)2@#d21`Z}G4i$+(5 zZx*#G4T>%Xa}PvOjAL5Ijpjb9%W85eo6RWCeMP0=PM6e}-qL7PuVO__{qO=%2rzda zmr-wrZa@hnzJGtdDtYO~cU+&QZpQA~=8>jM_o5G*F|$`=`$D}W~} zil2z?Mo~l(T0gXO{i9H97+w@Gw}8ofH^V%CfJlR~@OW%00)B>}eM7*|<{|#u?}k@4 z;MGg&3s|2HbjSQ4`f~l9>3H9B7jkx6hlKlzr z#HNEmu2fQmDnl_pANAKLq+Gd>{sE+Pp;-^F=Mb?>h3~;tQYZlriPwhkKUU=tZ7OP6 z!AROe?hhkc*^uvmC^7*!$6UKX&Y2;O_mZ>@;DRcFk}heRvW`PgGE6B! zT#`Pq$@bv~Y;=rX>=^xI7#-5FpU$Hfw%PgWJCJm;vu*fTxIAv(_0oX@FYWTQE!jTM zwqpp9QpelYc6hcu{+nBS?zrWun#*!`uQ@w))ymqd_UREHVE&RNVBEYtd;O<3`vL(! z(joVJYxs&QhQGZ>ZBYBMXY;3zWbeM|izrfv{Pc|Z69;B*xpnryCxF9M7q%?@?52(9 zMwUJ~vF^$LNNfsT`K_}9L+Ax6cTl*}(7@Sm9Sm;bJ`zAzY`kVqL1zi`0*7g zJhP7*qz4}4Xsld${P8W%=05(x+_SzgRmBN;x$>UAzTVugykUOqs$cBd^^2=&Yiot8 zJi&uM`{UYwyRs0Nb?~LNfBf0OfEPC!n4-6$f4K*+QP??|KR};PWTpDfFm+8BxNNA+Qvi#h%LXuc)n?PJhps1} z$lQ6$q3Y_ZZn-lffyE7n^3$7Iy{D-#yS2l++Co{+D`&Xze<(~Y=GP%j?>BR2AU+X2 zdh2Eu$6OC8Ix5>H-7zcUO$Z3t26V_ohQR#I0xy6CL_q0oAut6c6v8Pw4*C5I`Jhzl zfRso(X9z2~8G*2BgE{QY-G3l=%PqMBx%&x}t$u*=$ZcQTvFF>gq!1mx_<@n_n~ed> zg@=|syLHb`*ROry^2x6Y=K}R^UBlp-D!s|s*VAqeeCzCmsk7fwRQ3)oi_~mhp0tFU z{fkje9JQK;dTI4PHxE0vaFMf=(JVpD$Zb#Wd?fe6QG49d)Q+-{x6NL2RW2LfeZ^I+ zwWD3NC334TYCin4KmPG&D=V9jt+;4B-g@YY-F28R#Hu0Z_Fv!w8Gz67AQn3g(=f3* z5E=T*FER{k^atxy%7MTnMuH??t4&!TVB}Ur4RtEPNi+y2DPV~OxniQRG{fKu*rYjC zepGG@Et(whh46&r%nO+|{bb+1pKdaRjMzl9OW3#ZQ|F#LlG@cATA!pIvO@zSiKR_W zN;q6T)t0)v(fVOdHuK-ho?N%?$)z9zU*SJb1YnCwuZj+=*w#zw!Ory3#0Vn@+(V)> zbLdOQkavf1w9nkc;&yXy|w4)Z68`iS4p;} zb~RZ)oO|+~n!4KBL%-PdeSRFsw-dh<>rb#dTJ@pZj`rM|M@E^Mn-*SE2cR2Vs;6WO z+%f^Xc`NE|^&p3HP&R^@2W`be1Vqj;lphzQIW^BephFra^oJaWBg zs`BUCL5H~$*e6hr74aMFIIj2i7_bY!DD9z((KZp)i~bde4YwWFq76C^=lf6MlVB12 z^_1eYQj~cxFCidxaJTU!@!LCcFQ4Q5CqL(A;rz$9Gro%Ywd&IKXmB(53cRH;>?EWX|lkbyeQ2| zo?7|HhmPWOYAeQfCXRmSk(E-`MB~KG4}EcVzkT;TPi>}a(6u%{bt?)*LO2tUDMjUtHSIEc8FhWt!Y{GT+H$pXqkMPz~lqTKTns?c>^ z@epPr_tNzAhBNc?GxPApPa;n(eAY)6%)>>KNcV*GeJi3G!aY@>|HTsAm6s_Va=$OY zs4*7ThE7plix*_Nu(~Yx9WfA`Azue)esxttxr|CdYx?w-dvh0_-7hWgqQ%1Rr)KN9 zOzxlhKC-N^F!Wgy1`Z*t+S76g7?*~>eZwn}ZIH_?QdKZ_Vb70qcv&h;Bo$qn87HWtvMe2w8^@|jje4X0 za?T*QC7EUT#Pxd{8undxVwe)$dk&r+7tXFZdlGW->@@|jof)V62$G=2K62u4Q_beR zhkvS3DM~Cl)To?Lm%t;WS5IiP>{AV&kF``iq1L1MMu}>zpwemKxkYC_bO_ReHogW}>-y zA`_rY|J+M!&K&HOCPmm#fLW?gMIeeM2AzrJZJwFy5qYD<^IA&O6S!ZUr35peqivNM z6HuyCO{g$2IBSFS#CkQ&0H#DW0S^M^MyFDj((|e|;K}KTMul4MR$XZ+`-+v*L|x?Z zi8-62mD^fLu5L?&IX8KoND?OngdRQjSv)fRo5G7|8^eFZsk3}okpN>MW0Q;PWK!Au( z0R#%5A(Qj3bKAw|gtM}1WY^1%LLZlGq$Ii4aZ(*A5@MOmO14SF49xGKk5K^AnT@5GPx`qg_Tf|l{Qj_#m@oP09h)5AtjJhf;Q_?(AQ2JApe;B^tuUk;f2240DE6BB$p1)t$!0x$tcuLC>- zquIqk1{gUY04EfmPyzPo2)i8n3Qiy-%98_76@3XXfsm+}y5P6)?{|2?=B?w8qesdS zR*%pZrs*S5i#m{_p|7;8R+PPIjyef{S_psONF_`{(E1BRO+Z&#w^c@)ncKC-1%n$F z5B*49U^#$f2rH7{=!(jN1-xT;hzMZx^DV+g?4@gHAU{g^Rh_c$$bN<19bT>hMvwt+ zjN6Q>Qd}{mdMN3WnYv*~L>2^+u#hc+4yOPKVmt-2C~`$p2^-^AWNVbv7D+6jybVbX zdHa4?S%es47pkh1qdQ%l?i-1S1lug?l>nA_m6NRz3Vlfzrl(i7{ zDU@&A{e>^I?poQb35KP@#I$ILy^)Bh&5I3*tcJZ+L3PWD-7Q~8tU8#voR1(@nHA5B z@FAaAt&;0mCk%IlzM9R}jk?o4LrZ!IlKS^%4z5bfJWPc}DxwLSyE`85^4Jp5O56;0 zfaPtN17%3g#wFwmc{Lu1ugYKF6}j-KKzF<{6vUhSd359ngvzVid}vJ&bAQzr z=xJ}KR1sF{G*p>89L|_m5Ar4h-BiTQ_0ScvL4W)5+$$~@$E;vkn%0@$kQ6Z)Xie1G z$eCcTNwfqfY2LUW(Y&G?ThJ^$BF7D`HfO@zEptDFP>9zN{S*k}Ef{(t*o8?8wAVT1 z+|0NX>@9^yQy?{WPMU4KWv*U7@y9vblzfWsiFuT|UW~8u*WL%faeWJcG`H-1t;QwS zko8uk=@`wIjfwBWc2CH25yv8a1whh-l? z<%@@5dHxd7NoMzD!YNwSOC$mJ$Z85nlo_J16amlbB1)NQp1g=yNYyCAUtoAz8Se^Sc#aS^OeoA8VU)B!m$-ghf&wxUEI*)}~Y?_X)aTXU6MHm4`2T zpSYTfgeCMqr!R&r3~y#%Cg%ih<|y3|#%Cl{leU4ouw9}a48@k(nEyM-x^v|d8)#mO zdt<;e4z@tT4pukiU9dIZ2b%K`I?_uj=87@@yL{K7sd;>5C-FOxmrW-@u4! zt{~1cfH?28Y!Z^z2}F24Ec=Y?Y1ud6?LbHyXU#XhB8`va06@^3Yl8;uxK}3h5hNy( zHmG{3G}H1JNJ6b+mPN*tU4j%zB zCyCdcw0oLUjg=PL^c3HD@aOAuFZCbW0x4%lYs03fH(u`SiK^`puPNC*7@i`LhbcEK zm~4vGqyA2~mY_~rl&JhcHsR4Lq-CPs++aCbOg`SDm*I^_tF#&82I(y9Qwo|rPrs3y z&Yk=Gp?~@6>HY0fL&w4`H}#UDzWTP11Jd`JDPC!f`eWfvr8nHTSa_Wt zrqW@FJN-$cI~nt6eCd$I+dNd06RDCL(JTIYRIU0K>x_$HfPDmk%!9>+7P$gW{Efr2Nm(`klOj0!D`4g?T%5mnikO|H6*cvqK^@2rqO2s{ zkqtcAkS6c1H3j1~Vo(wg)8y206s!pmpS1%02_TzvDxjOc)?3?XEGaKB8W%6(9*-=K zme~zuHa$!v`z|}nm40PA43fRM3tMWWzUoEgT$51zZwoh}s-VDa@3C*b;%^dkvH0ANV3XQ~cSbxCdkT#EGu zE5w&P3rKVb^?*Q#L9LugnIID#RpVOt7}&!1rJ45^jf;y_s#*+&@dx&H_Fwza)!&=_ zzWq64PBxhtI4P0jV*}GvAo=r49-KN{%_-c;EVs6LWKS2>b+&kd9t%o`y8Ug5sKH$6 zs&dD7OzvwwP6eRk}{)Sv-qUWQK~6X>fL42oVHZ!U+hP`#Iec1d3yZZD54PI+?5%%P2$QqF5N*zL}6Q`nuVvN>y-9Im=(*y;P^sujrRi~&~E2IN?i1w%MvMC#oV&@F)zi_NcYF$I6>3*5H7Hv zridCM?63s^QPU`ZfN>ne+z-G*pre$O8HPSw4CE}#m_fRWVvr@51l6cdsaljm*PfB; zWL(?S)uvnZ*eXv+`E+2oq~`;flbX^JZW>vL*K-P$Mn%QjRSGVUdkMBxEDK->HW6oN zB+|5R^0HcYm8;Thh$hWt=}^FD^WikP1K0% zKELi-!Qrp+S~Lf#5Eo%%>L;th|eYrBTRh^%f~qLLq(o_VzZo`uh1Fr_?r@fH3YY_o5piTsKD zPbv=1Lp{w4%jH!+1=wEBWypTSZR2)uySXa>NvwiMK8KbFBolnWnUdio0Th|TnB5S& zAZ^kPVpDlVjLOk7(g}wR07!}iVumNyFOJc*4!#~=08z|urQgq(uFuX-L9#6jYB`o` z0f87)H!-i~VJMMj`VMN|BXSHkl}a*e5$*89iYkfGuxk3G?*j`U;?TPqIIISbbmx`iI_cYO^sH6QyH%&@_59(qP8TEX-Nt-gD0-ux+vVz zBx-c#GFVFuWpZy&r8k$GbXMf-qgF$$#%poLH0b0tRIBz`Tv1J_UNKC2F~nX_%7EDw zEh#gI&0UiO7?XIn>R<|iy(LdYvz$_2TB=ua*+Ti7^I+al=d>%zbj4VWQ88$NAa6-b zl{(AJA(si6;w6>$?L+TnYt)jSOft*O%efb&En*#7@ustQ z!_Ww*Kud|nV$^Dl7EMWjb%?AC+X7M7Nv2ei`ZJ9_&@CMUxQG+8#J++#oZ_x|xL%== zH}7rER*%*MeTs8;?4BB3F}155BUiig(57J553^6P!^$OvCa~wB=VY@1n4DPs zMd+-AyQ6;@w!Sm6{v}Xa8G9!n{lB$}pidmd$f71*C(GXwEP@||I-Ep74rqKeHRmTe z^!SDoA8{T}Aq@@ZhtNm$IdPY45%dBQ)Ib_Y9l$4%b4X`-!QX^(0TPO{cS+0xk&D65 zz`VFB(V1FOYmS+7&ushBhp%v%yauhHw(G3bej8WD@yOZw(0*r&YxNVWTUUH=vOSbp zy>(Z^j*v6DtgqSV$R@`68VyQC=l+K_8X6oWr97;ZC$wsduiBdXDLO7zBpg?qv?~N& zu338HLnEoJtNI%%T|qe*S#t~#XnDRK0AK$*T3=Ge_vw|HtJe4E zOTZvu9x#_VOQ!(Bu1edW!dMey1}YE_SL8eqBV($(&eUiHgGaG7$@-fyqb#bsDx`9W z=s$rnNpfDU-7;LQ4;YlC3PZJ_X>_Oo-XW96t_Ul|PC7pkC0qU&JeaKr; zgSa0Qk&dctN;#6CmtImRE+=Be3AWtw^~` zfQJ=^q}l|0$juFGSUE&?n#4&D{mK)M{phQDKeFNeM zoh0E+Q?@(?7R(8$7lGZ(!-8_7B!@{gpbp56p=WPBq@2avN^T3T#{>>$J|r3-d3Tw3 zU&r~O$}uAieo*R+A(@c~F%-v+h2T(Ay20ojh7EFE9$c~;YCSzWql?X=s&h+nR(=Bq|%kSvAOxi%&T|4xqh~O*P7;T z-q_mNVr-awQg12qmXvu61NRL27x}fJD!+=C%Xw9W%c-dwk0Zm}qRRcDX-|{0t3stL zL(d#_?iF1#A^}2+{i=qcjTC3yYBqT-`T%n)A=Ag+U{KTT0>>X5Vx=#!!1^dHZRlKvWEru>3=KKEuj6s_rW|S{z9)-`D95Z0X zV)ExnaBn-1&6?|T=FV_%#P)A$M&zTEb$w~=y0ad@O*XKrBD>#h72 zn5BqA^gCmWSI^@w`ThPzWc0otoL8#gU2SS%@eeY1=VS8AeJ`PD9c*LA|_04-`t(mq>H?!~JFm^Rc$R&N}sN6kem&m#Kt4 zd--55e6ygpOEgx!#pLvR%H(6`evIF91{AVBG#F-W69>IRI}m*`DzAfP6VAq=mqg#1Ky>YROr9U z7;+l5KLsLcWLm(_NfeTZR$lsI)KO9}70M1#iJ%cd%ss}Hs?22uZSLoSz?pIn$jgjI z1py;M%6&ZQJ-w(g>MbhHUe%ilsw-OD9S6rjJ9e;mHpp4vGlU+gjYAD8|KbpNK$Hq? zeMe7gHUC1)RiY|U=2qs;X-dmXrQGE(-l({BSMzGEMwtEIB#`kwrLv^c?{87&PL-PV zK*WjX42_xLm^q-UT)qETKe_x#^&+NBG%J`{n=I3lPsm?b)d!6-x z(4zXTzp&11YEs37yx77bj^`~GZ%cN1fu?|7m&^_1-NG^coP7Kewvg=wS~tD`g=O>h z;VWd1$$p6r>6Kg!?h>Xvil#A;VVJ2ASUN)^N!-kG5yp}ODh=}}3r&Gc$i!`lm)fN0 zDk=?t4Q3XRLT}tms8&G*hp5+!-r>SCFo2NQY2NHiU$hBcFz6)n?CD|MfZ>Ds zF0^tNUqZSlT?pLU;6!umPvTfCJqD zd!SLMcYBi|OVB^_&m+m5DVLX-UR|kbm+0sVhk6|fS1biNodCk?O6^FE%>1)I2rGwI z9%>$l_=9kdSJ*#Np7D3po7bkNo7PzD&F;a*Q{@$MG3bv#r-$$kO9QO`%mKh$lUX9{ z(Zet}L@g`9BYL>k{XufnIW32y^ix@iH<7-=-r+C^`nlJ8aPCSAzgCOJ^E!j6Ok>uI zfp}9xl?pcO2eh-Ts1;I%m=Zy5*6OgMRI93LXo~x}7K?ULZqZNcE%Hf?{9m<^RF`k| zbmuk6*^~T%<|~@qL)G-N+;*1}9U~IXO1Hbh)eyAuI+s3o%GWYdQ$6Hvx}tgZPJVy# znofR;uPYVNR`n-brM%jt_V-{4DykCgZH*=ip1s>|Gw`LZME@V*=r~9PKxV&AUPrv2 zBXC8Z9Xub20f%9I*VoPdhA)FxAH`%WhiMTg#05S6qB(W`o6`4t$j3cRlY)}RfikWalc~j`AvBKQ`+1Q%zA}Co~8++ZJpMXpSTs~pC~nYGpevC ze_{qLB!4;C#P?o|A)sgPf*_D0mG6Wfc~KO^uz(+60D1H%hPoZ;&SIboh5F`zZluN6 znck7SG|V*)x|{6;bIq&sFqahbAa{us?p*V>1x8ugq6J>l`R?o6XfY+)+Y_|D$*j@J zmY2~%p;OGVIF~Y6wTzsZ#P5J`l#0$oSdlb$;&W6Ijpmc;_4+ediEB@r<;f(&F|nSn(oAm;)ERIgc(9 zxRCBc^}+k`6{#Dm z*=m8~&@vHb9eLpj%sQhNZgNE}TWeO;MYp#QS0uMR9U(U_J`IKmiyVAm_B0)gMd~)i zci1X{VH5fa!mX$al||vZd@6Sk<(+Li;+yIsG5SG%3kicWILHDZK!aw#ZZl0F+(o8B z@h^%G)-k=*0N&@sy0^j?E8{@$QwizaR5UK^nWyR~Mg<)z&jpe}b}s)qen!;cZ3?eH z{{Z*Jc`%Af6cM-8mKDz8L24!P>4Mf8Lxt4^V}lOIV2o5u$*Ar$ti1cVJEd09PD8fPGg^3*machsc=k7&w(b7%8+Xc0 zjca?W=mw?)VVWS5KyLQKCi8`FjV|F$=2Rs~@>cU_6RQvQkW@sLE(8xF5WzI_&n!#} z!YFC3`ToWzOn>2bd!M^|rKrodgh0P)u4leI1lPl8d|_>%)4b6=^GuB5l z)?1h{`0Jz;8}H(fgk7^g+xlO*m)`veX`1s>0RSW!d>^YFNm)Yg04WwjIstPUis;b^ zL>D^HM@^cc*`JSmWiLH=VFj`1<$aj zV9Tr!MTNA~Q^f$&B;hw(b6(*`wKs`w2xCD9IcKGuLmp|fu>>?eB`?S%2l z;Ke%3M;k669!!6e;`rv&yNiAr_au4Dar;SipmwC$%T*6-O0GJ8_?Fkk#$LPS@cC8A zO#{``gC^L$y1{epKw_QWXo|1uiHVBpo>g&^(Z4P+aIL3dRd?vksr8Ru4^mDQMdXttCwEAZK82({PJzvE*~FjoY;2tQf^({ zik@m^u3@|<%4dede!<_dJRV=(fkAkvhmZEIX?XK{+3U`3;AcssC8ET=PPeC+{TNw2 z`A*tU&aPue&JkQIW`0jBXWryB!$1}fo%=W#dV0%}8ljb4B6o(kl%(4-vG+0Q%D_RakxR%@h0nYQ zcFDsau_=^~DnQ%y%UkzuS?NLag3fLdv)4Vke);t~34{pTtmxX31$<$JvnB(5rypDR zAi2vG?Kgs+&K;r?*%>IwIk)gz2Wy<^k$OQT+J*+x+=jE)Worhv(gJep=xjQZpHL7| z{7Fe0*~=94@f0u!f1HDD{T(|rB^}DCFH?Yat3kW(K)v-}AS$F@)-3BqhWa?FDeOZ8 zI^!?%1c4|A^;$6?{5yRKV!`M;=9SFT>^v0anIDo@F;Aw7hLm@bKUZQ8jL-<33-G$i zBfb(w8OsHDJoD>_(;K8{>ne{$xSxIG{-?@ASe#RbJ>+Q+zRh;eo!JeIF-8=3e(T<%a=moudQ4MKxEL zStPX2%Z(DAfv+I*iTKLjvYofpOhW&xMby)6vNN)$P>Gkkq*yTGE#Ru8B?-iKQE!n9 zY;u%T#To)9h;&0*W0*i^v-lMHrVI8H1oa{CNsf+C;5Ec>5~P0QxfSyw6Gsv9n8d=T zn4CcZI{R_DEZfawCNEA@Bk|iBZuaR{-1z9TKRbBvXU{%*;|jg6smh8fyhBGm^{roC zJ9X_ZzxBx@!|g=G1H+l|2Y+yAI5Rc&@CT2kB7?iT-S$ueL9|~=xRsJ91B5roOUWd{ zWzK46>bAbV+fq7xwX-ao$o!E`FCYhf@}HjHa-ueNICp|%9@g(s_?>^EVLG&^Ev~=v z2cQ4o_NJ!ocR%%mEA{cVMWN}23I8>}_}b~q+uQb@{@O2cKc>s9x+it$2M>;q-GjT^ z)jjsnyN{-(%fkv)Yj~OtOL?(UA}8HP&TFl(MO{8ythzd;b)q(;t-{J9{XxRrsls5A zPM+IhgW0c>v_+CE;E2hj%hb}k6Mo9!jJouSC&VMtl&arz?v+FA$*y@nbHMHaen!;8 z+rfHX&8<3l=K*uc!s;iWwgWKasv$=rQeGZOIEvTK(O6YpUe)Mm-FeUB|FCoCKRkZV z&Q{@3wLR*c_D1dM;t8DFx$kSIuO5v?N3TBpHEAwT50S-kv)c5CMTLw1lCVv8A|3(I zU}dv!2d=2IY5UaU-`=BmM*1B4(AyUmJuVo~Aq0{aQ2kX|gWe_<#1t2(q{LVl+vJ*JQIg7~j@=icB( z=b@#Tu+Dy*zQ7^a6rFL^(4W<88@cl?L(Zb9O0+l~<+RaLlHGIXjYcCyu^Wvu&sTXe ziob-=?yS4KReEL#Eo07U_SoIK1|!LPS1vjJ#mPydF?*yT)YIS$+pAnsCOuUlpCN2E`E@&I{(cVh=dpqNMd8!{CMz#w znM3W3wRYB5b8^{T`vzz4vNbtjbBnqH&L-QWze&q&HX8r`MW^?&oW?nt^maOJOa&4R za;x#(DfNv%t0cps#>lYp) zWkrC85}jXCq}0(11n2)HeWiX3|4(?z|MzsA;-$HBDiL{z#Kl}7gzc5MrSgZ)cj>6XDzI{}j zbN6nt8zCM{`3&kWQ~yjEhp=-=ex$odBB^Qa_Yppgn!#EpGMU8Un zSA2I*?kIP|p6{&Wf5PZ~vm`K55x{(*lUJK|Zyt4V_j4k(c|k}lTK}G_4f31R+_`6)_X^CyX*Jw-5FiGmnSB&k>~TJ1|sFE_FB zJC}Yk0F2b*2>v6Yk4UTqT#)!^p&mtp$Iflx_iQ^EX#ebv%@-TIryx846+*XZWmO@dWg;LFba_SW1i=&}K^ z9My;w^x%S!S;&JAgv+aWQsp(d{4?9X`q8VsI@7?FC%W5i=-%_f8tz^T+OczrQY#9+ za9vkEyg9nAX7+bOcO6<+ZY%HY;O^b{qo4eEQ(3yByOEHZe}g-x7(?Dk1vVHQ3(8t# zQzE{POr1d#5mb!zbXE+GF86s?jt!T$bt$dY0j`_tPBjU?&#r!`y&{#UH5%iort-Ek zD~*ZO%ZDS`Z0m=>C$@22;;--w3Rb~gB2nZJQ3F$iZS9Y)U4OPS_qFAx+H&V}-|aXf z>UxF-`(}RK(VY7M*VNHNyhd*2kBceD^5twME{QrO$=E7Cdr9a;1r%45KmK-z;XDNO z#LtckkD|XK@j#k|1=)IFh9G)m_8<%vUZ9*{e2x1qxzjL^A7K!A5tK?ajNlM5d9py$ z{`zgHH-th5dqNr(psQpL$Ucucw?9UG+uz}i2{0@y9Y)geq_v~!a#D~7;|*kmb%-Rt1KKFaf^6K_56PY~J%xPa1$M#;(U_Ov zk&Z-u0yL-~n#Me$%vRL6pkjP+K9WM$dBsB;+i%>NNlzTQ@klClCBEBI#3U= zvv2p&*1o&4*}M8$kM8cfaMSQ@U);Iq=)Sexf!gbC`#@XU?Z>aH70w3RhnEh5&!N#% z<=|4ZK2MFT_OBdYJ!WfaPDRUeqrS2A8&~$4HCn47a^(#-G^Ve={y?<>ZG-|>9y>Ps zib1dS9J>AX2KSb|SFCL|)LnDav6hx&N3RwJqFZ+DuCL#{YfH3h>*Qoz-Q?uf*;A4T zG*{XlB?L$$vdR^gJ^RU<0v)>a=>BZBch}OiU$6J4m+tD#X7?>m>pB8Aed^h5+>8Bt zmL+ut9sZKb_VnjG+rM)6s;d4i2aok$6-jw@rQUSp!p(u!TCcs7zmw{B2>dVjQoFad zHGrO==qzg#4dtFlz2YZmD(0(m=_^h4sKHlLSyEC_>odgcwum9z=q|~9z~M6c^sy$N zPGzEwoGwS8-c?%as_&@?Sk!7upu!QbYBbis>^~Ody159#X%>J9bG$@L^Drlatq5R4 zB;oB~#RyXY{)FT2wvY>!Jh$xq%+lNE7IXn};9KawiM$K9Oa>E{WZIxW1o%jaW#eF^ zZ_UPyRpIp;#}`FI?Lz>R$*QGc?`XC@IouSqs5G`<^OA=Ad~>^U9~RXbl_%bf%fl~3 zvD!xzr$D*t;5TDd1e?X1><~>LV9;rcTtsBWgVJhZ?LUR%9aAT+4$T{e zN7vY8O-;+z`lHKZ`7Nn|H%z~ZQ@W}}>FMcU8Z9mrZ%m<$tQ&1)sR1f=R4r^qyW$?R zTCnEO@RE2E#i_wxPtEEiFCIBR#UsNXczWl~FWxo`rSFZ)zIylS)pvhoJEx-OK|Nm3 z(Ieuu@a;$NJa|aZ;04b>3biD_NP-KI1z%`EWg{lgNc+WBN2G7_jzImUhK5b`fgPLs zB97hD`&;+y-Zi_0WeWl`<|5zb2I94*w6CVG-ld?2Q@HB;YJ6#vr$J+J=bZV99N)^L z*{b{}-9N|uQuK;p_zpbSAkrm8c1t{k$!OBU2*UBu!E5$ljX@ufHL><=t8A!e0K~(z*UJ6DU zX@1!1=OsWSvw~*Q@q(9-Krkg7kE|M75!8hP<>i5}Zpq`zmw$E$TMkE{s&vV@<-51p zIx?LN?u8TRZs^Q(*tRK-D@tt!g}K6GFnTJ?3SW7-kG6~kX)9%tm)Sj$24`(wyfBUN zzFKEP#A7d$!+5O(>`FGsZg>jrmVHrnUiKP?lzZk5!p(AdT%Et|JZ4K}XDFD5lnHu= z`?nU422MbpBs?uWzY?*9Bnbh6SfpQmR=6~Jv?~RP?03jJDPX8pUc_Q9;xGa(DE$=4 z9dr>Gw8`|12{(0!Ov;vE6tMw?yZ|OfVa8S2^v=-+N36v&`+@cwcVyZ(UftSybz2*~ zZ)_(nGCNY!)VB5L9Vc4XKeKW74|m$zJnrT?Z*ClA4{pv~IO3aF*&1;~Eocf&U~oic|l6|KQwYejlnBllqabvNJI`UK^Y7%CAqs8%ms+I+*U z$8S6!-(KKBfk2)GEd>i&Q(!?eEm2;u0~e5oW7md<+QZ@Yp>PPFJG|TWT`}J5tV!A} zwuWUplCj|58!C(%jj_Uz|5SX_(Z6Un1<#E9Dw-OIb}*mp_titI73j z{VEV|?aP0*n~u&l4sGkfy#{9-U>k6RTw-_oPsWhZIML6X<$ z-io=BXf#$$1zAtL}&(L8>E) zJ%B1{O{au^M7`l>5LJdXWmJJ2yhJJ`O2ddKNt=33JQ+bE{_P*S|MsgQ&RBZQz5~0% zV~?#~{h6`w?gRVQq!Xh%CbtEBJ-%k)PfE1~PY`h~jy0_4MMongse?-NIO<)|5MS0q zdz4C5J-Y|_Yv6zXF3hqTozgF-8L5)LX7PmmPSFyzF#P5pQ`BXa^rf{(;>(?(02=BC z`#F_}{3$34kZcPy-^-{VJ%jwUrDsMw8+Pto0Y$sP`sVBQRE;yaV&~2co{`gvgN4SZ z5odkGQ=)c98eMZuQ*m?97v(8dTbTSLfEp!{Tm_}dQ6&V%Q4pBz5|z&+mTlRz!mcRO z>MAu`wtR5PzI?;xr40>BH*Z*OpZZ{7Thw`yQMXMeXcPvO+9>F3o@k@T(-`$&pE19U zpAsLDKd)S-=wv--K~u>w$TVC$V;XRzTn1Vd3JrCH!yQAR61%ohA8Qe>jS^M^yYXq~ zd25Z0il!@0i#lbE_zf8t5a}cH*FxRMnj)IUXq&jB81X>>XpMOBDLMQ$fRhr|O`Z6v zLP_p^D@C@m0l~Xs%w%xCN(x?EB4>Lq))YOV=)O$s_LA46zsu|)eeE?G;(h6?i} z0WjW8#QPXxuoa^bq!dUE(ENd@@a^U`t&6xI!&zWM;gWO{3MFyh0xv|#2OIO9Ks=*k zo$#dKFqkl)gc^-Vr-nrmN|+A?8e6dj7L*LS%(}}ih5)#tUACgJ>PwUiMMlFW^NI(4 zbi<`t>xNIA*x_3B!CkFnf$BWmwD}*mU-j!f<;!XU_C-sV2mV=Z(CBRCXxHmi^xWFF z^vTbDBwaUlXzJsuBpb(cfn{bd#WCO9Qav)+De@jf@uPo8O*O)U&>A&c6{U;~sw~8R zHl7sHJ65)r9EiktUX`wi82tLwky~!-T=wwh&`_vUR~gTQ1VDwO)acPy`ot24MK|** z8IqvD^Xu}1**5(;L?ee%hu3$~5diJm@8TD#&NvaJkwyxZ=wy#uIVofaXIJo*_cU`r- zRx$yh2gxm4pUDB~__TKjJLBNH?gCkGZSt@q?YLw$kQf|I~E* zz_CdG`s4w`ouDTaf9N|#e}B*)ca@rEzbFdjDQDG^&brcwF&J={`1<^gOi=6bhi1RV zY=BfatT4DBs^qz@YjWQ&Xoph;iJtHjF-dv(l4{4Z;J7)>@Di9IYKLOxTTe-l!((n$*#_#@~tQ8~D5q$5n4<%URX z^Tt&@Rgz}8;fEYoVh_}{`jaC~ezOWiADTv+=h?Tw-%fGFipP-c+lw9_GIaEiLO@Wg z9PKuVs|Xg9G{3ZNInUKq;*!eIEtgMT7L8sudHI&*6-)Mf*0F5s-hI1kGRL~(SMOdN zoW16fI_Es+mp_sXBm&kFxxB=R!G_nroy)GQX zGfDlyF6QPW`}3~{+ecQ8`ZKro_TG~5Enhj(5$xJ|+sQjyTJAh~+s-cetFdfbeZWD5 znDr_cDcZ8Jq5UI?O0BjsF|wb*+LZ8`d_8yq>EHk&bSPyKM4nMeBwIiC|F193{%B%F4^MVf4u?^`xVzj#5XsoJTQqd5I{>k)tZ-D7%$TY(k}{ z^5&+5sSE^H?a#IZ+f&xMP`RSE5q;56^ZJLVz5EE-9^ikLv&?t~DsaWPMDa-7^|#)# zZ=_T%p}0i!Ph4|l3(#M z#a2;@k$6VRAZ_*GT=`dp-HK1cc8hP4NtL)4RCf7Sx%;b-{euwgT>_1FHB+cKgfIHe zS>cHID)eZoRi3{-OUe(+&vqRgPgd0TRB7}T8JqY@a{ORd_1I9mNvt5Xm}-5qn$yq2 zA4R>!iR}}-ii|HoY$*sVup@{NABqcQ7LUV{xt19d#3S7|cKSw^4t3V3c|O#!Y;1+^ z=qZZuUsLQD@BgCijV`X0{6Pcrg(-3 z^i#P9pZa}yW4RjD%b`!C;H>3Qhb{#ieFj#nIhzkj+ITn;E)$SXuvE;d0Z|jptr_j( zshbeVpvq?}gIJZ7EBxKZG9WPi6)UkWsbJfZk;Rp5huYf@wN(s^ENMg4nwjdY=O?@F zxcz9#mNx>lid_D5oi+v|f4C3PEBI)e3W12NQei@2?dQmwXBVRc7PYRg_@ zJQMTl&}=#pXmIOXtlyQ1@fphDssOwV$+pbZnE!z6B;ry&f(odgK%e{1%034h$1|8W zGq2-;hk;ri<{J(TT8?t9h~omOk26PxGW`kP;cRxacY)a zg(QY7^Q!`O@BO;bNm<<)Mk5VRnQ~op9fRbcMR6+xl z3u2!yY(U|g0O2hC@JaTAhyXcBw~#x9z!2NX0@|~E!unWLX*QL{oIZQF zwaRR+Y7N_c&SodF^r{C!}3Ju&ZIp4r(jw?{=+*=Emf#I}p zob#X#u#Ux|4of)wH^GHc&8G2hS={6QH&#d{v*z`{CR8N9Rd!DHb40-Sk-Wc#yMnuh zyOFzjPkOK{?;9`K&nrb4L6|mYc zg<;OC1EI(7qg`}S&>sBZ;(5;mz6Mf-U%(#@2-F9bR1#)&B~1W22%ZYTL=dZjlIe$M z)rZ(#iWOo`@_ZF_vZZ!#LFp2ZOsM=D9=BGYe&M)ZukK2_Q`v8Qp2`wR&u*Qfbs{<$HDL#p4-R+*c73 zRZ4whc6EX>g|&L4($TkMX|U8_Ia=P;9FBGLmOGoB?y-?38lqDzsu;=9)}W$P=O{yC z!%{@O#6nG-cDbs|Rj$xT2aG<$2#h4|d0 zuUaE~#J?fYyf1OV(6FyLvEI+W*4v5%@{c;ZJn3v}9w8v(*{zk5?*QZvW)k`f5Q=M^fpENQKT4A8y|Blgm}3 zA774Yy5nctIqFDP<82+SUvy``uR>EEae2CXGL7hSWEPNWWqi(7XN!+CxvPhEw0V0n z8Bb-nyp$8n=y5jlGqpRGbW<_`ti0}cM~H^JsIb~C^763Qc4ceVja@2k_GZd2fGy3f zHpK#VUfM6$Ds%VoYFpGB>WI5>0r@{5^#7@7hch|bgLdWRmyy>0b#>j2{w~eB##^uw~zxvx?Y3LWK;esw7jpz z-#R!l><;#(BN{&3+*N+!+QZfhbrl1dT3#Kf?+my{mM`rL`I{E`oc0s-t3^k1qN=mb zXHo0D$*=~6%VTaee_dwwSAtpVu5R)xG@%ApsoLVL>!_+~bd?DFb^CCia_%H-fd9h( zSf+&arA{^mX&`N4%YkY+#I(Y&&XW;`>F10$h8fS2C(#~M($n!YlFZ0lLufLbR#=oJ z{ik@Z{leq@9~Q%)a04iU2MM(#n^G}{D9A;Qf39q{TcZFP3W9#N+wS38%u!3Iqt2s%O~B%J8a##y zpINE3`f6JOn(|oKU2c#AtW3U&jMHyXDiw00-Ge*_ZG}#65CpbP{Au|<<#!cB`C1$% zQAh|u6MuRe-!S~qVZLFD{0R5L;oKQ+^Whv;mgh&g->4k&+u?ikW3IpeiT{$13Juo1 z@O(%HFKMFWuYe|L8wb}lwC)_Kl?#i++C_q#vhy3(4JNfXDBrj1g z`3N28N_gZ)ifGU!$W<}vVq;lJKA-6|){n*y$Z17o&gHTV==pg_b_}+Vyv0Z|SQWc- zipTHd@+m&2SVAb?Upy|BI*RufkEPs!i`W+Nrsllejal%Dj!Vq0z{H9^$KL4+j~0mQ zTx`+YfZP5y3*p=`Mw^MuvONn1@Afr3O-YNhS@9|2KzX*NvZ1hS*rqCCkxGTa6YmU` z*W_^yaRDjuGs=|W0AjlcWKwIo#w|KJ_SW*iD#Dac&Bq zjW!++I!hgy?0~l<9uK%m%6qZ{iUV4!$07oyRR&9mTx;=I})#dI^fad1;qc zUSh#eWARwYrmcjY@R0gXu;W$By3pNxEi8HaWjEkX^SGSB+c2jXi?ZZ z<}_5;t+|KXjXnO#l*QH1?RU4>6cINw=SP=0-y9OQmXkZr)sl#o&OBTu?q2$M?vv-f zRMA)|s>BjBEO?cBG3VPlJ1aL@ttzopr;hZlUcY|0Sy(;FJ>sah&6FI@+|XrDI=C-t zbY+U`Rb>{p%^4FWwrZ^9l?G>2Z-rHv$rXiln6oXh+J6#Bz2q{eokddX7ay19i{tCb0r&0AGA{8dB? zlxqhq@`0}3=YqdQ0naOcePD{S-u327*?Sf(yKi{4s;a4PV5q;NwxUG%e3=1VNXk?L z!hf4xhDy6tTMlzNVia!THmIIbbbyB=BS4L?1gcjj(2a`98*{@;ektk|KYHOdPJf~_ zXA%E3x4t~5P$|w|7$3Z=Zx@2KSuEyT8TABg@@hm&RN(pH_K`u^godj|4HB5VFyeyf z0z}#_hlW59R>V7Uxsq8xgzyEfFZavY7jnNu0c&|JzrmiYF#FZH61&D~uQ0eQ^1<0$ zX-=+D;@qFjhNp7>_CZmD>ZN@9pO%*RtVW?_kRX#D2hVdIcU1LxMVCy@JWgSBXyza= zpi<-=Wk39<0dC3dx!>O|axcjTdwx1?o7uPMM1LO~z;bbr>r(wmaV4u6Wn^7}s24#P z8I|bgj1rO@E=4taZA#S_It^|^$N$*l2o&&1xbVGFML+hdTs1sg^10 zIH06m`M(63e&?eVb)4$n+319RyN728g81pCzHA7tExH7y!k z?A*C$&rav!f&R32_GkWen>Q~_t2BaGbLi;Jt*y5lJyZk0kaw-w7#LgEde1$#)Ra{^ z%c6%ra9dhH7b~?^Em&eETb#Qx*qy4~8+I2Ev}<;~G1zfR|GiXuWkQRTLvkgmewiX=J$7ZfU^yRIvm+MkZ3eR{nw z9cj9}sX7yPD$A6j&YP~%1#PyFF4X8P<4|E&=?w)m*%MiwKW~dP`>y?;!@N?=-q9ag z=C@T&&E79JmU}|g<&_N)mul6gCEY0xFNlqPZy@y2RI@hLIA6s*bkK2OqpMZV!5GwI?5XsH5}DnY-$2 zKA)}bt}|!ka($q++LrQrQr4RGKv`L^t;Uk}c+!@dwqO}>mzxrS|$MzgJu&H0? zZK&!V9b4u;$}OqduzrQJ)Z#bR-E{JEy zC&Cp9jhdrceE-hkCCKkTgy|$x8PLwAAhc8_V7{As$T0G_!vfjkP%4S)+u{U@B!ogm z_Cl}R#_&ieGnZ%$rSSD@IFy&-HBBQMHmwVK*KOT8nif?Gv0Nz8s<^1mV&Dn;Q#HLYb!-m)!kJGK+c8MZUYaN;C{Oech9FalvD5Oy4P zXn~elplw2-g+gh|ZOd(;EiG^xcSFD1($d>-Z&!fW%J+ZXBYA`{O26-Zx8Kj;*g8kj zS?~Ki?=%1Zphgo66$A=C&iJZKtxIL!_7E#iE9Re{X!- z1_a6?tRyPH%yY&mm?3-#$eNOPuK3Z8E`Q*S%o~}n9@+cXfB)gK+3o!Yzx6vNFg?>> zy!r87J-7n2`>q)aZ9D#_H(z~X|Ln?v{R<~v?;Cr==+LM2a71)z-FGIvX8G9Y*26)< z8<+97X-`@|dUVo;xOe7-4?Oqkv6ol9+I8Ur-*|Q8<-u3q-8o}!YACs%ss8XUGptdc zrET7f>#n}E=B&@&c6k*Da4cfik<3>!zkTC@(s%q8C$6o!$0~gMGm0mpezy&i;vU#lq)~YZ3{M|j##miPC=Cwte z=R{g=dGJev(Z$PGU^>8mSit8BOah)9IP>(-T)XVrRaG=9zok+6%ju(X&R136TK2<# z|LfkPcnWX4aX+5IwWmJ?S$DsMT<=!ZV7BHtm+ph$Xu^Ga7A5*`{{Fj}*FU*^V>E;n8nn>4Sh<8tWK_cT|)jzvyf;@$(v40&)ymGGC-XHRw})tn{> zi*iB%|N5xn59&W-J);~uWzL+uAfx7GCfV{@A#sMiW8Rwy5q+(0%Z4Jn`snhUrR zR-dxTP!RW3Zr;A5{?*2_uQ+&Xr?;d)FG?NPUw>tjr>5BT%Ccv_`sMqtt7+PQ&2_Zq z%D7O^BGUK<9gP}SPIe}9cW&Zw647Jf#tKF zT-$$pdwfahvdZD@)iNtA1-rv% z9Zs5y%;|k+H?s1+#vq|NUZpmugUw|H?y`Y zHv~F@YroX7@{Y}o-un49x^&a*OCMQ1(y(Ra9M`g&H#N+hQ&pK~s9w2mzOQf9rZ0G! z{qg>;lzG;U1?3e=M`dGosm%%AEmLt{cZ-u5jeXssGPU~h9yQ9v)ukPaDn{rU!0Que zow=YUxo~DMebX>Xt8<6Kn2>ggOp%w05Y?9-GZ$R+q*fpeIne zFcJb`1w#XIJe=m}B$3%+{oou-s7dpS%M>{_A2g$A?&W5n>bZ|PauuaoU4IV^_OXxf zj8gJLJ^Km%P*Fqp!l|b;UqMei5IDzc{WV|dM=>~6K(iwopSrq_O2g@XIHodWnmE90 zYVxc2bPWY#+)k4vfbP;L)8ERX!{hcj(V@g`V;1)hueC#9Qn4smIX%nF3w6={u+f

=lrPvZ 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

x6P0;%|_t^CQ1Z^K3JR{Npj&RFeuO>DHoru@O3 zXH?e3z1+Ivapkq_w_JcZ>n7ZHMEqz>uRch8P26X6+jChA;S|X^;%jPdx=MHNo66qb z?0t}tf-l&w8DVigtR~KhKpLZKXCup?CZsT}MA8a-flfr_0@}r*7T|_?wmh8>jE>}J zeRmHem)D%DS##`<`&CKITLcfs=h^ZNIqo|5rcZ|~IYL_K-~WdvR;wyTL5;iWYK#HA z+S+H~=Qrcp{HR zkS^hs9t3)C`7r4^R4scqzjakS704TX6Dihag^?2%Fq^$Jkpl7?4lti@4p0)vpPm(i z2wc$m#PXx{8N6Uis%4Z$%U~TbdQiWzCBsEghl904w8gExh@=>q;S%CfpIU6K(d;51j(teNtDZ70JwAU>eHmTPw#)d3p!{jmIr1j=PHzMv1io$-THOsqk3 zujaFwuWG&nKln-J2Ui(qjA6HDlzKI>T;=;vnvw|l;3%zwspORWKcS9exU?}i4MLU} zs-b`?gUBbbZ5k2|_S%9ChG?O2}; zC1fHBj0_?wF);R@;rRL|2{RlRct%Gk^3KMdq3>QhZ&CUDokNcD3E4VLE2!_$TNk4+GA0U@t7^t( z(E^osq}#pKQHM$lqi-@sPaPwVXQ@0B?m!slWg>g}wvW@6}1*z3{3s z-pg>T8RG?y<-f7=iM_KkY&XkvIsOcHMw=sV(^TU(r2b$TfP6vt2!0ZQqT-Sy2ECJV z4iaqvAoNv_>|dTQBi2c%@O+LSpq zz_Gk&<&lgLPcQk>!No92I6*MaEK76FSbeA29RUuq0!vWACM7cJ@$0E~r1t>gCEXR^!t zByJzK7Uxe8S0KI68A~$linfW*kSr{2vvZCfrzq)3>M4hh+nvg5nMJl*9U@v^8J^E_ zeiNPl{Psus|3~`&`o@p+fAG(b^nWsQKhpnO`2R2H|MSLqzpDR#h;3kGqkdTXEcE{l z&FvEsk~EkMPByELBn_Q?&{9D$+%;sUl9C={MkQ*q3HTy|N~7xTQ2$vqzRLz1A>$8H zq0m(3Th=o@=%+MYc(rK?v~yNaFh>D8W6sJX#5@95*@Dg8NvYnQRyZLsH% zMli(vAX-@&4}`5Em*=a{c6V&MzpvxQjaTI7=8BS0D*~aeYhdk`8D_s3aNXv*&UuN2 zw@3d%KEYCe9ho|2wB;EL{5usjOFt9m9xWZc-xKvXafzg%g94@mrM1&jAA?ZT!wRclows$ZIhoP^QLUU^pr`5*)VEz9GIKXoOoUT zl4bSCmbJpxuQl5`D$1tWe@j*iXY~BJygC@--zo4V7rMAdjb>G^qWORywLiPIKKwTF z@Ur-yb?~Zw0^}<#j7i8hInyB`8Ro7fEVBF9-tgW-MqUu1;s>dIBq_1gv zQ$dZVaw$S!*{)5ua!1fe@h771+)u-;0dLA(x3RA6x@)#xcXN8micnF=T2vjlvV8UY z)L7LaS0tn?wl;^UZz)q{r2xQwY z++}U4uH4cPo!8y&YV`MS-P6c*D3&>Mx(>FC`TeYiFl)`#1jce~EkEE2v`sQ~z%sxx^Pp`Z3-aSh^)}XCy$E;XS%o;Q0yVNzNFNR(M zNDQJKKT;FllWagO*}K=4rRJ|LzcNr=WW{8ym@@E<#~xdbDRig2f!6Q@CgUC9W-Iq- zDB?QApOCI^ynbtcpwZbrXI`{nOJ#M7HPoD5(uPsD78}i`tZO*z=TEg9?3y!&V}3|Z z`aOR@J1l&gMZ?JPGC^=)@L3k75~TEdA_YrV6(falDke zc73X~kBJYl&9G*^p&ymsL_W3!K2)y;pm>}`YteI-6kbZXh$WYkY<1xjC&5^@L@YKb z7158T&#oMOGc6#SSNZnX9_8EIH2yYj+LTXmkwa(yGWIoW?pK<}c2D8=|DUnlQqJgK z@|7o)Ag2?I`MkpEM!yX}WF>Fwzi#DAlPfB@W8dHW%GvXL!O5}T@$*LJQ7DbkX7=7D z?unbY_NAvKdO6<>{PAA$iR$?X+C^$_8~w!CZVvTr{C=Q8-8uHW;M~PObW-W1Yltp7 zUVMb*qnm&^hezZh`hj$R|JlC+&v7k(fM1z^edn;!%eU_2eu%_r^Z+~GEx!&-T#=!e zL^upo1Q_$LD~Ct>q`a|e2ItuLL$020ReI0uJ;}GSd~0b?^CU2VXW@6qN0vBAA0FF{ ztn9V?tnZ9)b9dr?MDWYkbiW3@do=&f)p8%lk=3G)2f96P=GZsx6Q;eNTy-nP&OFbj*wJ0=kI6LV@ zmq=m#s7_WK2WbZu;8LY1xD(ZxWN#H4vCN~lpx@NQb6x!K_$Gskq<$lwzJudldum@g zz3-{ll=F9>4E8tb)^Dgi$Q^%L6>ak*n|0RUw4j*dv03s(S6efuwb`rzkw?!+QJ?3u z*gX2YTp_;%O}uPQqs?P+x#WOLXLC3WcDH$+K8M%Yolc#t(44pIYY*I7Rn?%g7Ig$g z15W4`oPkz9hrU8qx7J;ikB%-zN9K$LF{f;@;EaV9r%N^$8nkpuoMxUbhaArio!w(b zD;m3&K3LP$2uqfADWYq`50iE5Ao<+H~VtbC>9}MK!Jtk*< zP66s%j1HT}V6w`dI*-w~L}0`RJ&&w?RJmBjI-7j%FkYIaPP0kS4LXnA;N?wS8}6Jx@A&c%T#=SytIgvu59FX@Xtc;xXx(ZF+jO}>uN@B< zhy?WowH}<&>`~9?YYDJZ+8o9i!H%NrDdk7<^6iCMLynNDaR?r>&66XbDMmeC)-8h3uR; z2EkM3b_i}fIZj%Y&x;-EPqW*;eJ5 zS^fcec`?sG^8@e_-LKzkCis^xp#JOxsXtNq@+Z&l(an^jYEMcE24*EPrzQU&_zguq z%7vI}O0uNQz2QYp z{R`L~N#>~T;BN}=FmFDXMtpShqi|6VTl zmD_DvxU|Kb{M}bC`qdsM+{576_nyC9*DU8j#?@k&z)+}M2e%Sp-RYnvCOB0$RsF^e zCaMMOk8$_rEP3XNr4QfSmv7JuSLf;qcYpch9#4ZuD-7w3)|}W4k9=k!_L%> zmyTQmz)X&RyDC?GEpL<&go0q!o5}TU(nw>%Ovokxi19I4q%?zVx%5 zC0DRmun}@)t8O-WOS+KXGEK7xT@Y?TX4w~kseMB82QHU$Z~@#qSrA}bS^jF`fknlv zidH_$QelP&3^9x~Oki;!KNf-7El>^ZW|*p0pq~;jfhs`2rg5Blx(wPFUBE?>CG!(- zcT&N!*HoD^S+{Htb%A2+S~l_OG2^#IZ4T9>h;i7SaVdfOz@;-HsjihZUI2t7riqA) z(-MmZ@kk&kym`?eMEar4W3*bt+{&7Az1?jwZVF2UW5eJ?#({|BG9hG0-&WL=EBDzw zxw8eGR(9LLXagIK{5KyUW@ZQ!1#=hV+Q3SW*gWQ44-(_V&Oq)$Bll}-ffhwZM!Uzc zOv`)z3p_u#k+@{;Y+k36J)<3V7zfw3nq0O*-Bl&?I2@^4RB}a$t)RfVt<^Mk7Z}bm znJctlKfm9=KOE``M`lF8QT4%SNS{*_4(jb5BRG9gw1_r~^tM85YTe!fU9QUzrDI2H zV>~YyZ1Uj}1Ny~rLa5NDFR!W06)jey$7afx!kdg%r91o4g0r))t=7EHx$S1-!d!YD z;(ZV9GAUeuF&J5=<7el3z}>{|LVz@H3@~P5&?!I6XorwfMveRLsquurrdo+rl_t>KLyh5YXj-o|``=KM9(mx3u zsSm5;3z|P_{)RLP;&$2~`~)JJ|1xz$rdPlMV-W*?gV~hq1?~hdqVf*JI9!>W24>_i z!e#ajuoS82J@e1WvLR>(e%6BIn-<=Rcn-)F#0+goG5npa zuYB!e#btG|j;ca~$K#TVr`P&yzNjrq>0a~8Ydl(S!Wy=c)e>!MOnLhrZsbneYYSar zU!kca@oq=WJa=B6E-&Jm^Tz&oX{a+)mWC*ytcbDaZ+-Ppuh!ymjL9ayr63uo=ManEbzTc@KbmtC8q4JBgXS^R!aQ|ZH>QhxuJ?-SqP#ib-)r8m%%B}8%*D;Tgm zwBmu43Gs!cOs=IE?UU+C>MKeMfo2&DnA-;yP4_&SKb8M$>nFP%(Q5C{;Yb2L#)w%UGbZTEm4UMS(~~APjIJ^B@i)UOCKvi9dt6&_k;T0UzAmDt#8}IVP$MV9No;k<( z6a1La#`=7+lo+(lY2o=XiRaR$e2>s(^qY*HJe%KBKw~SkqT&E~vF!NlaN>@I1KIT_ zG-kL9&A*NLA}QA{tm)RQgE#U^=*;|E%^A%Y@X}@IS5__#o4b{3=Q_DrxB&DV3sYxf zj!-u1Gnz5KNtNc*d`~Q7XuK#%4awRdjVJ5RW1(aZ=8%ME5-_{WDI^6Wq%WZfO1WSo zVZs)MDnu$E8dM)9Rz4Iw}#P~-S) zBC{VuK~m6RY^PZJu|_-~e(p#{P{W&ygd9l=3UIYax`ZXkkW6uU5@|+g#BmOWI%E|I zHj7cRVYwm&0CI|RB!kIX_!{tA-3{~ZT-yly$y@JU7kDQ;y|Z&VtOZ!kcYK1gzV#ih zocw+@+FYG3Pj}XXmvXx_N;nwggbYUM_1xa=zkL2k!m>w(JdDjD1 zT=Br2JIm%sKW%HR+TOvfJNwv<^|`Um#kJfS^gD{>Zn$npG!+(*Oi_BXpN5tDg=y`< z86}d-A1t&wjRQh|?LcZoxp(vWlVi`HJo&iED*b%e7Ph1Xvp4FU;})V#6hc~N_K<0j=W zw|3jVU%i9lZig*QZijiFes%0$$+c9H)x%qw&OSz?LZh=+i~sg!w>%Xs;c!cZ$I^S#Rpk{|-PG%?wol*OT~gA$ zd3sEVtbDq=bz?#~B%FR)tXa}oT->>&Mtph%T7(bno$)sDDIDJO$F;s%yRNvlp*kWN zox`K87Kij7|Dg{mqbE;t$3ip0vvS==Wd(|{B%KRA@nne$MWg5JRiDu%UJhgeA>)oo11*^xyq0fWxG48qJ8C}nlhcEPr+@O<+P(*J z`xbHwuHg)Kr@OYV+ID7t^o>)7}3k*+=e6#BntAPVvA z$&+aM#^y%+JOC!@@D2Q`5lhGdWmc*i4u`{n@}FE0egOH(pFusz>zYU4-^{^L(5^$I z`&vT$nUy<61lN>->XVO5Pbg1tJ&yXY(n@nq^~J!cenYJ;CNG}|+m-3>8GeOSdwA0` zj1v$Qhr!bQ(U3_dR~lu8=fo62>wcP}U_yJFWY zT}5+8LmYI=AIPqpvEA(6kBN2KGUO5K2yL4~=UkGH+8{HIE&Q>+$y%+7VEfm z_lW=}Mpp;3S%05$FMclw2e^Q|5IxHX>#zc6c#l-gESMIV@kDXL2}&PCRFD5$w*F}( zlN2>x9VMJb1{lR~ky1XCd5?P)9Vx%rm;`=GMyCYDI7FB+s*LMAvXnw?Hr_Um%B;vh*GrH2NN3q;%PW1TcE+%KHPg%-)w)ZUN_ zLx`^H80RxBi1**6If}}?r!+5XUeWx5W&QpU-Ds-0soWfH0k@hvz<;$@-gl9VmjTVxfd9~?LGMYe0H5uu7n6M^+Prc>TcqIvZa<;3Iy8>z< ztpL<&P=FIMJ_YGZODF_+i|jknhHwoQ$Rq@epaYq{tSBXv#0}Jjv^Xx7M3P=m%_wd` z1|;@C%!g7TElva56OGa+%NW_2$+{GzxfG;s#xe#!N^f@N@5gb3=aFoYQmO_(PltcC zp%y$g9SD7+Ht1rmrA$t8ZRCP2@&=*QL@Ht}vayC)gKW5jvO_UJnWRRL${~k@$r?~C zv?rztU8p6Er`7|$4#NQ@3P|%)mhYPhJd0B2%+bh{I%_P5hUG+_)-vP^NyPWW)G5@ zgPsD@f(87aSNVEMN3De^?^a>yh&O?(m)sgaHi}QC4r_=bSpck_JU3vtaLVI^?wy~HO<_&qF$2k69;GRPv%!trviytZf-4&wq8Ftn4=2? z0wGGrR-6k6LkRdrJ(Q5amVIZAy>u{zP?oNFMSQa-2KZHYY8G zi$juG$EDL@vNE#WMKW!S#vY*3g)~MQ<$Q*&9JA4h#&~GCnI$(GZBDc~oi^aj(Fm)s zsZDk9b8H&5;GU4zv!`iQ5pBgTJGtn)NCr|dmx znmmHRsJYpv;qhB-Ok8?y zRM$z!`qdwi?L%nQC` z-|>XKys5sUhTS-p6Zbvhpxm)6AroDO{I76l7Mi|rUGN*uLX$)bE*4~U7Pt-ZGqav6Plheqz5bls!a4mLr_^s;I=4`;x(Xb5j1SAuR&9l$ zK!GS01Sa^36ie1xZPjy9UT@u;D%lrHL_H!{37&mKdQdzq-v%AsfV%?;xttP=6Gw>u z`MI}@T)_C&Iq5fTzq?CkvFPsl9X*c(x@^_`3N>D&d&ZziGk!3+R490XHma5+Foy)n zNtu+6WTbN_Bdz&6GL94OJ8Dld$1SWv6LmVghY688nfNd@PMJo5n~LOqOjcRjX5R>C-6!F)D#D^ zoV20T8SyaDO;UqQXyT{pb7I@%4Lv1NbN8cx=^mlY6C6f`ewUk zo@RyS256n1LYJD)18?mIz#0E3G|yKxuW8;uBm*;!MWU*7aIKKZtFB+B7=uf~{$m<( zM(=b_dr?)UpgAH?g8xZ%Vlf8z{h&$FHgg?; z)Ps?7Xk>)32A?Bz@F+A#I>-f`5f-S#w7>*;lAxJ$a6OUxiPS?0e;kY^RhQJdn5xUJ z7}Jm1(cY$f?uI7GoEvMe@{qKD_vf_qJyq>7!DIsvgP(S~8=YMACtRqyiM||;``-OI zkrK*^<72NAVUF#lSK%ebmWbUey{OAQw^5DSg~Di~7iRNOmE zh49SYOM|xf)|Vv_7NI1*jGWN1DyLCSHr47Yg2r^!NqucoQZ_lN(nd?MYxGSZ8VqxR zAw0)Bp)e(ohC{=_SS$!9^@QK09UH3U^nCw3H_L+QzwOTp=qq(N@FOa!45^M}Exy~L=` z?UnKaAulp`hB;kMt~5RF)7i9Kr}W0lBDzm0I|_;lz5q!OPBzw*XtgCZjY-s3Ii);p zLF?2hwvANqElPkZCOaIm5B_OXEa6_5xs4@=#fkyE#2^>`I?2`^$m-&kvB`!0ti7GJ zzc04OaXHxGC!|4K`|@_U&_Brz=Z^{f+A`STtags%M&|ai%Q&;iir64Z97$q-ulwR8 z!iR}YX=RYLjS|boqBts+NksU>7eJh3V=)H>XpV@Ne#1)HSOGkIM#53~b>!dWA~S}!89EbbD776sG(0JYihM+wEoew0I$q4<<>EV@ES;UA&m+B(H?qF zXL2XOv~=CLGXlS*L5yU)o7A*3#EqcxwlzMjtuvA6Z0n@Y#9w?}%d{3_PL9!{U53C6 zeoa2Zt-5abbM)Atxo6lH+z9dFcRNtc2ln+QQf6>)rZ*FiVaR_Nv;l4 z)}(NI@3Z#E`gTYW-y438xD)xInQNhFwTnGI`5Z zeA0%LfS9b+bMT^&5YGr#mMO{HF#6H%4)Q;Ylr%4EFM8+ex7|=eOQpH`rxjOMR9;>2 zsgd3nb;7ik>F?++Ik%b@XYhs(7YvI2*~Bh-r+Fs2MJd$Kr))diAE2)Y`}D zI;ZfP#=a|ee|_b7NJSveroiXUU-{5)Fk#YoxTvm<%q-Jh9DVT#Xk?hQNk z2u@n%fm`%CoqoSD4<|28D?M}rbZhi?5`F*(tX{AC&56*##3$B+8yz@+k2LxS_rt*c zrICiQPfD*(>vtaki}iL%;t|)}RG{ERraxum6XuZkJG0p)W(vxWYkZy{nX=QGQJy$W zQG0(2MsjXxbM;TI?(e_)71tCu;oR^C)bak6Xfx7?Q`Dg6@LhvRJfMpPI&h2CdaKby zk2g$%5hZ^_Vtz?xG>FgC1Ghp49nprYZ@M=h;>c{#GHOT(m}*$Jl>pGyGj$A9M&<=M zvr+D`%vfDhstdX6dh5ojYI;+J*B*&1s1z(^%5VJTb(JAe*)PuaCeH0mcu4?F2NQ#| z5{_vLi$Zy!vJHJr&5PHgMa$Sj(FUhd0+6melQD~;w3o*p@p@BoMncw zaRwZbko?iQhwStTJk=1^;WbRI8pDDO0!C3VJM4HMe zB2<-^D)%DnDBOJm?H6C5{TWf>N}ufOqiuR#%`l$#LD*GPW)2>Znpp2FrxB-SMkC@= zNugQ?HeTeV7|7SaCJh^Z~cj>Sv5leV-3vyj$4x`)SwT>L&Vmr_6-O0uH zR%%J#y7OoE_t9XtCT7K{F>%j&95|X zBYN$J*Se1D;BMy*afi7tbKmD)!yRKqKor5*OOp-657o8^LI=7;$0K8cI3E-hwvr-2 z5U{EPzzE1#1OgcXXorkg8Tb~`1&XrHTc**FPn-+{iXO8d@;D!?%`!yh0?&NUvan;| zyjg>R$tt!1ieMa+eC$9^l8HiqPL@5A9MlMGlUp2@ocwvxF_70dM74C)h@`M|CyH z4#cdBqebL*d-wXAJXO<6m*wVwUi~B`s;jv2pKuig)%itJYfB9LC+D`Edx_hw_t^p3 zVb-1d10X?2w+FMr;e$p3r z^u!b7g~o36{l)Bd3CgdqU)ii2j{C?vfYs(4yI#4M)*@|t6J2A~X?}koU&^t#v@;%= z&wV4!w^k$nqr%pBu={bFCG4$rw}smqDy^n~)xPb9J=<(h+bgHEhuig5U97#*gBHM# zcOPuDRd|f1>K5+&{3A1TPD_rIALLJrp-DD(%;e~*UEqpWrKe6Mw2_UhZ3p}aUF0kv zr$Lz5z(s-<)+XJiWNcUi-K*>7nqoY&aw^#unoYh`g)d00T{6de)Rk}q8q2drU%_|2 zlV>0ccerO?sy1juIvBhXm>2a7~;>CRfHH)Ve=NY&}b447v`VMYu(N$Gs zI0u?t*-uS#$3Nv~KQ;ddS~c`P=!3)%)6D2px8vS(dxyA!!cvJd$gNY;$(|g+YOZe5 zAI{M)wjj+X*QOmTDH$~8n}Z$;_fBpB6--`H2K^x3RBg5jIX!#0)>hfTNu`DD=^<{T zSXXM5|KqBg%I2(V;t#M?hf~>E05}+?L11i|?qq~1Ka4Sh7f#r%ZT}pf`;aT_pP7H$ zKIztw$*1@Oz)*zU$`~?~1E(t$BsPK%ED6==N?Nqq9cMj(hMr18Wqx7cZtmEOPJ4wt z-xct=YfP=B9}go;&plDSct%aG-C(qI!8*0)Bf22w8K<<5-B$$N{D5XydI8s>$h?3C zECN_vQB+*@YrgeAjYU>#(Gwj1>Z^)kF+r}A+&dpfKHdT7X@6q9%@%se3 zdE=Tj2`~7Ssw3&lfF8Nw2IOI;)3m6Eq5YMWrTm6vPtQOubt4wq+cS1Atf*M9GtHT` zdXs%*1J@B4UyRB#8%FG7>&G4>lH@wbHsQ_yXT`;Q^rYXBc}gk;B&AeGtbn*zR(F{2 z+z_GSTbgUwlE7CxBpiiLo4oU|!p4nifh2Qwvv&LgEyISe4zOdpf&($C>EZ>x!Oi5atXRCO@sZ zvL{x%^6436DoAA+jkn-pxHekcDAN#-LQuDvNt;c=(Y?g%X#L2@kJ0YHeHpQ#DhMEH zsF2Z+7QSbaFmWG$fbl-Y67ejc=@Ys`i2qQH1%5>tm=O4?K0taBX%ces@9YP$I1;F3 zr&F`{A5CnRmS8`B!eOeqs>szGAU=yv`AykR7wyBvp||!!w+ygeJS=XPQK3}l={SL; z2*QzkF48-1(L%V?D`P}8#;in*fO8{Ce z*}_irYlrs13|JWnOU!(+X_;;>0elh~pM(ZTsvsD<9tt>#1lQw#`&%A=``d2=_6Pza z3~xMy#l$BrabL#Uk$Ivz)7luUyAIItR4pXA<|OGDQm0gPG+DKM9Qv{o%I2i=RBdReKn@ zQJ`?RIgq-AI|7AgwK~B80-sO|wP=EI)-y@H0AM9ryT#q(`Ux8@Rpv>a;wrbhs@Nkj zSxML9`7fS-O8y*>1DM|n`IWe0=3)}F5q+@Fa0_BIKcLK-|HuqE-;%@0P=@m58Alc< zGlN|uL8rD-Rc@}-I<>tJ-aC>h=S#HDB8LlWCy$FDMI!~{ZuHI3-}5h1pl!IT3yHZI z+4JoAtt(?dgapYS7|FTwhMifUGoGe(XTgwE+K^qq1F z-)&|79_Djlu5$VvVQM^zy5eV1QJm>LPK!$qF9*-Dli{xk5e)X*b``*GYh3{Pb*1o=@!@K5J_!}0~)h%f7kLIPHUPFh*I-pra zYL;}w=tOItPLF<`#%|)C5f>c4OJ+G`Zl2RzbTe}%->6u1;q@-K7dAIr8U2!-%9#H6 zh%i~=M^?O`-Ksvz=+V)m+2`D_jGnW9I`E_jvm;#KfgaeLZlX7n+p2~2t zvhy0 F^nGsd2uA?~(@ZAkYT?N5uxT@?lA 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%0AfDNg@ZU*Go^T$>1nF_5rSutC6 zd3LkEaJEw0;^$+LC>A+Hz34A=nevb?u&fN8S%W{-d5tB`ZHY@4d|&=f=WdfNSEtLh znRa)+F+uT-u?A2}QKGvy?wxf?+`p#*^`=SZM+O{%E5hC;0+yTu1dMUpPl*VywA?@N3~ zi?h9%W`zR?tP{TNxa)Gc>+>l{vpUSI5X8Q109zQt}dB;N+Js^0Qf zl~yZPoO!t&oGkga!Q|L-jeDK5&8A16`h~YG`Kx%_f+{Ad9cZ zZVj2kQwwEFL9y&lebZc8SmtqOeKVMlwioAB)ke&B85S7ao?^YuZnxg#3p%@M!~y6?=D}AcPw)wo;IlFf zKHfZ6oLY-EWWlRqN2;+;a9WH@l@kwiJLSBt(V?bCGZ#qJ0ZhejLmw8m@feS?F2 z_L_K$H>vlwHq_et2L}7?wGFM_A&RrE$b|{@Fy&#NUUMAtfN*qX;VWuywP*2 z5GNf78}U5J)>N^9Oz)f|7tbmOvdY=@niFXTILHR{h)X;2qfAx0pk@aY+I1+fA{joW zb|93wjiQUVM|&OX77K+SXYxpi?Ob9g9a_{SW}=Laua$qEYcDh!itM>Ca~>;tGsQE{ zWr~_lr&)X!U(aIv<7zQX<7_W({P>>*b7o)otgu_SpW}4>4t~35V3BDTePTpx5@+#_ zK_N(J+I&0+NNNkx4=8fbbnFz0#X_9qeBW7t{wTAI)=5}UJR1k5tv6xgp};nm==24g zK5ZHlrt9ritu<=FRTTIKYi7l(IE4YTAz&8R%K~xPfbM){?N7^Rdq0;(dXc3Ot|i)G5z^CXYkDGgI5=S6aNF*-zn=LkV?3};1>?!}B$cgN(Bu=%u+k@x)}Op<O8~+{J~3#qL;pW%9-7%F4We%@)X;@VnFd6aWX%bejU` z#CH`mXLp%W%w7E&Z5RyIYSJrncV}lOAF;<*pSik^kl%_&dQ&hiI47Xa&CAmm3v(4T zC%rX>)v^|H@-t~(l>Il2)l!DoV|eY(309x77C*uX?4vEe@iRKSXc9u!eefw=+x?NI z^x0G9v&pwUt1gbY{;$p%V6=U(&A$%%2a0Q{6XICYip=5;#`_s zh>0T4@J-EpgeBy4WYcX4fO)v8#FakX-eY%Z0)&&UnuP4OK%DUn}hQXfI?tiJD#T%;f;ugPWKmbdiM z{7H4u!nw{pNnN8<)3<5i-51yaS4TFtwP~s{Yj4bGd*o#WkI`A|?}8oV7nolG3k;?g zrTkX9G?4y|utR#CroT-8<@z*UoByHk+89Vf(1{9kal`j2DwRXDU>Geyh~OAxVb(6UOUrlDYbgSz-hBnz%86YYJCLUDzOgOUgNwN zDGL~76|<02NZOZyK(aGa6g`>Z@DN$`5Qyp-&3F?!MM_a0o8?A(<+^W&?1v4GuC-dLL3ed~7){rbA=etqaW zw|0++jzF|Typ&uf=wEQ;^(CKg-P?M}bUy`;B=-^VQdb?qBDyN=`HBD4wdlU~e8jHN zTXa*l&YHD#iq3LvT7}Os31P4>i7PmYVTlE5PN|l3on;76>$1GNpA`FkbPmIZ(%hQX z*}=iGSuHiWm#ljHpFeeB{ndv=^{z{DYg%TN4F=}4*5qD$Z2!*Hjg6~!Ja%m4QdbmC zt8`CvZ&KS8Yp1pDt=jad9rH$>p?sC}0QfrUN*=Ft*?flbii&cB*Y2uRs{qa1Dz)@; zx|4q8{zA@v&Nq$dy8WqJr>|U=_4IwRGaWx&e3(j@WXk@m%!v;&4?fI$_^@Mv+rjtrNL0-FL4bbc!v2ZYL3)ws<}d&Hu^W<|WXsaDy8q$lHg0_G;r`W4{S(Yb>F4Rm zDtd1?_Vwiy4@cU*@wt6Fc%JNgZsSDrB0Xy`Zj$_SFztH~XTU{%w~8P)v+@+-E%tb2 zT?ROcEb97B;;a>r{3FjiFRlU0L%Ua*cs|?M#KXL*ccT$aBV50Y@=3~j z;Hz1g_2x2f>)fR-KfrSquj71+Oy2WBrgrKqi8%}%_s$HT{K%ha77Bv*3HY^M1G`>> z?m@_(dPaW+x_IRW2Cgx}M)Hq9HD#mAK_jD=gU*J}X^t?5X@Y47(=Mjn zOz$6E3fs*6qqU%qF+ITaAgG1wEvTQ2GSypzgD95?Iit6L<_a@G-Asd{Cr}PEjlfp3 zOsL~>d~_qqja+UTy%Xi;(F35ZqnCkBhG%M-u!O%|Hu|q9FX!@#(O;vyA5T$+tG9t3 z;POE(KQa0YYM$gCPH+!HTt10k1%&wMeW0xvr2yIxJv90#=wYTqs0qSySpp4?9t90E zrMnFZ^<2J;>1w7oU`7Xpom~Fz=nE+CJw3%07i=ab!C4ak$=?y|YY98Y9UZzKw9tEwyJzoxLVOlo273B!VszPYM z$WW9QGw96G{h;mKekHeA#qEACg{S3jS8~lNrfa!o9nY27+o>gI1 zQ~TMtN)=Wg(FD^Drd>?CnJz)3zbauF-hLHk{_~(KFi)z4%Ww}>!fNjGN^W@-)2o?Y z!*mnVYcYCN@Cl|XZswXTOt&(FKKZ>8gbn`ByJ7J;wB9?)eu?|CK3mm1<##`#Fhz>M#%Q1GO+M!?@L99=;7q z>$(o>`q!YXqpyR~>aN4;rZ%gXKFDnz;__amw65#0uIGUs#+EtN$2uCdMj?S+^f_4$}nF4yIj9yD`(ExHsx& z71Oo+t94A*Gu^;+BhxFGUdg|`is{u%uVK20>1L)|m~Lfy6VscS?nwR-*SeScd61vt zA-?WjrjKx&LtKA2xfd;uaQ#uxdLHw7=A!l3*G`~@M!TLzyB?$cHp(>G^*q}3Jlgfl zMe79`?RtSmyB@m$wLFAzuIJIN=h3d`(XJP0wCge2Z^LuK4INGl^ZECnVWtt-o5nDo zPl47mjbok0aP?n-&gSwQrisxbsOezZHF_B3Zmz!!_YlJzrXH@uIK+gjm|o5F8m60= zZsuQYVY-#+O-yfQx|4g@$Mj*Qk8u5y-2aPQ^AgizOowoX4Om%EgD%4}Ht^os01opK z%1>}T?Tif=6QU*OKZ3fMmVr0MF*5gohM7jNuHzUPs;Orh$83ya zyedIyX2$WRPJ^~$KZ;|1QqAnq24^9 z__|j!y@u%~rq}YAT#r*i9K82R&>Q)FHuJYzm~Lfy6VscSZsRt$Fuj%OZA^EJn$W{e zzPEe%>fhz(dH`=Nj`>XQ;vs&Dy-fFU%ZHgh!aYC6qkWL+6FdS>a}Ph{9uAE<(ZgY; zN4SThOkd<4USfKT=^wcMH6FboerqSuTO(HA0O$_z*hZ|QJ)nm{n=o6Vpcaf(6WZJf z8U%`K!VDoA0e5Y}4EYOaJ=YMHXu`dOKxYCOHeo*80y>9jf@ufSPH=`M%mkucT(gMF z-CXYBGU4GSVJVka^3_){y=?S2>R0o1*YZ`?Fkmw>--9MQ-^L(_>5tUp4XRpc!xKPOM2n zq|JC!2SDj9G~+Go2c3ezo5A_1nrE zXmIpp&@fZN-mSPg)zmYkwbROPtrc&L^3=`-XK2M+Bbs2^&TTrl+=+S8iWNk(i)$8f zxtq&9TwV+u-ij4OZ3q>#GAd}rGyV+a)qLHxe64j%*E8LK@oW_~f>*SHThg6e$$ehM z^lGNpFx|wI)=n$d4qat4*KA?BmFZ1PZ)UoU+uXwRR;ITx-2u+rina4H=)HW!Z(_Z) z@=R#O9H22IT+xa-Ky)9se32B?xJ0|p6hQwjKy|--gaJb?ZSSX@!N&Rxa9#ZALKHvxOR;5!=Q(mp5#8?L_ZxE znQHu-56grFSbbffdEkKyum-72cfNq{d;#Y60LpZFT7bDt4!;(1ZD~5;PC9q6hO~F({2{ z507dOM)d^BG^#y(Chfsn3ZYCV(;lI7bQp9YQ#z&g0KpPnjI)0a=1dFdGVX0T(_XGw z!Q~6NA9@!(co#(JtlA^cS+z%?vuY2YPkRJ9pY{lJKJ5|ceA*+>`LqY~itd)qq&=8j z_kli!S=WR73sgSH1L)|m~Lfy6VscS(jK$~_e{T~nZFb>=V?#_=rZ1O zm+`7xhBy9e)Xc`dybO2sC(s0!JD7GcrMp^&nLsVqFN{En&~x6H!>LmFZ1PZ)QponB}+!y2>H&x8=Bp{X#FU`zKHu zrCxq_z5MQav5Qd+jZ!b(8c}*{z5LdCG1I6_Z><+IjVQgfUd%M2^wxSY(}>dhS^-I_ z3)H}rq)aRD)VG0_;vQDu9^M9}XJ5h3z5**ng>nbibTOq7Sb;aM0lkvTG!83pKSXI9 zR^Wb!Zf3fL=~kvUF}<1TgM8gbxco!#^%WS6&x0NYy$I|2c}Vd{rn(Y4!bVV%qO61z z7P%*m7l9 z3#<8*y_!$itNDDrn$O6anQLJmz+Sc)T(x7&r5UAAk;_ zd>_j9!upD&)AzIV_9(Vh5YB z+fkbbFp@+`X7vDH@d3WpgXq6jc#!*l5dBk`WaAI_(W?w}8@V3uuCA2k_N?=n)2QuHSULX}VR41Ahr*VCARA=JSj>1WGgTX`X>UM4PW-U!fWJL!N;@#_EhsnR zSBKFXv=QiSGAQ+PnEN@5yP6DrK5?oe`0Yken*T?5ZXe;feT3)sPtazvaFkmf<(5ae z{)8YXK##)^V0;AIJDmKP1yW&NA)eI9pLaB-1{Qa}AYArhQx>nf7t; zmQA1}(>{(lPi2y6AIDjPdLWthalE~mpd_(B&NA)e0?D+G3nbG%E|5(7xIi-P;{wUF zk7HiZU6D-tIL;~ih2OJm@b@em{5|gQ1Zqe&_ZyiK(?eMMRHoDP5ID(JP&!Qy@o9R9Pt!wunjYfQ^bpV;U5ifBL%{h&=`=mWr|BU+ zO%DM}P@i;~9s-siN~h@|Uhk$dao=($4z&S+eG(9BHX?jSY)AW!) zr|BVqPSZme=QdC}O%L&DdI)lrVw6b|HH7h}F{IP<5TB-p_%uC)nMv*GG(9BHX?h56 zLWe5AkVwh)>f)n2pq)PSZoo_lEd1eUfq4Nyc3#nTMamTe}VXj&RpW=Cmi7 z)1G8bdy;Y2N#?ge`QU6Pnctpd+;x(1*GY^O)f4VI$++tzta&-bGwKxP(%Zr*%%xjEiEp36O#U$_XatcpJlr%4=u$%u8lr%4=1k${m;&*zA-{~nlHMJql z%PE00FQ@nop5iz7CS$EPG5_C2yg-s&yvgU&H~D<}CZA8=hKK`F3cP35JCY?#zrhBDLCoOaj+Jaj_HnPeRD6$0yOGI&k3W|yXjwWf{ zqPRs=+?(M-RKx{}popUXcWC^4`t_&Z?;l=$=Q+=F?sLyQ_uRAY$w{$+U(W~${NuN| z!*T?DypphN;8(Zm!?LlLUg{;w+>zFB90mEDu&mOSofnoh)_bU7+00wybz#{Ov5htO zJ!!C>)EikJYUHhdq~S955RZ^#tvh@PRdEW;-vJFGfu`|axzZAN%`84to2H>*2{lnFMVV<{hgkY zqT))=X;a3}>X_XzagL{{W7f=$S!3r+>6lUIX_z+6bM}-;ljqF#oZUXVeb&7835Dmh zPwHs*3?AU=KfPn>l(X9>&7C%O*17GoW^;t6xUi(}$q0i7oHX}Do-*4r)-z|;*a_{^ z$Id$6(=pLAXL5V5b55GoF?VK2J-%c5%&{}3w9hV_JZH|#em>v)`SS~>|CP2v%)U7n z&g_^pYwXO)7y2f4%$PIV_ur(?o;!2qv?=WqJRw7&XIRHv&-Aeudgjh<=X|6gr1s3| z@Qk0;K6XyK*E3!L z#`tM-Cy>eiNqonQX%~8OrsR6sr;j5o|Gf@8{N?PQQhPG`gefy7d1kfGo-=F8_|Ogg z?+G~5e|=S*%z>OKoMle?^w8a(HHEWI=$JoaTF2PlCnfX7_GDH2tkC6ja3A5^IWyjQjJFscFg|5`hQG&+Ta7`6o*t^cB3^k^BAv#Mu#P8QhnUUZ zM2_`{rjy=hp5$0GQ;=q`Aj88K)u!>^L)U8xL-WblW}ghT^VyDOrB17D#x9D(l!@Aq4b?gXckBJoWnz^Sj0l5`d<&BR@Vl=6_<3Cp?{SDF3E#+-y=4y2?4|`Y~PX zqr(&WUr4OK=UXB97&_WV>KLH7Mgbc`_Ufsp_I%dUqWY| zK$`wKB9!yPIC?Ihp?iKIpL2;H%H275@5zV1Vuy4cSVDKTo!E1rm+*v>@k0K4JoJ30-L@_IR#l?#Z$gD#`zE&WCbn+R3ZWA$~3~LZxmT4BfMTx*t7h_K8oN~C0|SUN>&m1LH6W7R&vbm zk^aUAdOaF%1pefWmoV+a%6{z)!v|b%JO|lm9D)bQIFf#>WE@M+PclvtYwmnx6sf?#tpo| zl#O?hV1-7g75PEF?mn3<_ zJwlUmnZq+SjNX)SjDR5jwCLAA;4<|$v!}f>@I5DDznA0K};q(adO_~vLD(r~hEul0s;#_z^ z#0aiyVZ?a2DB^s0QN(O`al|5cNyIXEX~ZhHGGYz9B4RzfGGY^46%l|}MLYzrj(7sz z#CS!M)<(Pv*G0SwZ;tp7-V*USTp#hRP^C=~hvDXkU*TN_e&dIIgH?Es!3ys+#1iuX zLlS(@kO?0$6u^fK z3|}`ahi@2G!8Z-7;ai5A$)%l!4RDv?F1XtefO`xNzz+>u;75k1;OB;I@C(BZ_$8wo zMcQw8AAV){5FRjmhPNLK2jGu}L-4TSXZVxh1UzDt;8CNQn7?0)EX6y%JjI}V)*eHy0lCeK>nvu6S?67be^cv5C#m2!{ z%Z)?vQ*9hA%yOG?3f@lP`IF=`jUD(r*Ek1xgmD2JW4uVH@?_&O^fQbr;T+@DXf86| zfQMx~c?Nlf@m6B4GTs5NGj2w|*64?~8}CQ6$@nm`-?)`y?>9b!yoKjalAkp0fX^9U zCq3JZZ{g=<<2!hM%eWivGVX|Uw@Pp znGr6(zbdWQBGq8akvH7{ks=?6EI7VVsl%ojk8b#U-Ufx0D5wcy^6SGS9A2 zN#WTwD(O7CMkRx1*QjLj>>8CUsS0NE1RIqco?1yMkjQPNP$IV#AJ3?y6iMW^QY;OI zCDJfr_K`-y3h6vpDUE}DC2Ag}pEMa(N#ws$FLl5MX*O(>=EEjw5p0$&h5e;v#2g^4 zfCHr~;3?8o@KlL0rgECJ8lEoQ2+x+*!E>bbaFBF694y@l&y_aAA<{kM*eHo_S}3EX z2jF?qqi~G$1RN_p3&%;@i8)bv8BUTIcPo>nH{cZMZ8%kW51udWgdNfzI8*u3ziWAI|>H@HOl11^;#;4)c)%ViZ_CY#_2 z*#fVWqu?sp0k4wd;MH;>yhe7zYh~ICWsOXGq1+&6!W-orc$1tD*UE)(om>oWm1#AU zJ7ro8E-x0cYLG7zY)2}u68tWVe6=vD zQSx;#MqUGB<(pufd^3!fZ-oi+2AC*sgh}#UFj>AArpN*4k-K54`~XaoABI`-7MLw> zg*oz5FjsyS=E>V&zWgHe$va??{2DBl--IRdJFrxKAC}3xgrxSBKZ5<_y|7CD0#?fh zV2%78td)P@D*DURVCre|2{dOb5om@fwCw6=g_d0%uh0^yQLMi_ zUaDjXi+Z(EDm3*brAp}P9ZEAE?okF3|32j`#8k6{-(a}-l;k{ zHlU^>Kcwc7&aG+@{-07y;InEOnwQjmSl?8c#nRqYn~{&Ir(iv%o(6wY&wziZX9lH&FXJ3s4-`%cWFB8)}r8j%<`%F{aP}7K+DA2 z7A=o+J*gEUKhON0tiP;P!Z)-U^zSmuC+oYl7OrcrMn6#hQllTJf1?dT|ARIR{V&>i z$S1T3LN&?S`9d*8Y8OCjed8m>JEM`(}3k=nCxl=c!Ft-S%y(Fszv zq)$Whvpx%+&=&~BEa{g(vrbRR?9f*sJN4^@Z1(6k!7P0}^y+tDEz@ah%>DEra-;r` zkj$<67UVN@dcWquI=x@>2>oR=CN~~lFs0+|6;lrJ-!&Bxf0wBY{a#a*FqywK z^~d_7X`nEgkD6$&&BsmTK%_8{1Cg?6II`Jv9&(gvJd8C>f=<)<=shNWp(!%kG!MDJ zv`9oo_A^~BOp*Of*9$%J4AU(_jT~aS6P{7xK5} z3}PNJd*KN)H3J==enPWY%#FfqNi?5^oMxs6V#ziSgI@C}SZp3k%u4elSZAItWJ`bZ zEc64-^WYigg>aCWl5ZJiUMftM3FfPir&y=d zgJq5RVR)1IQFycYF?g$aE8Jjy5^gj<%~5{ycKD$AHMrIME@^=n^R4+$(tjk9KELJnNUPASawPZH8X3v`wZ=r!AGW$8bJ1r+79;0JGM2HHMDpxg zDK5{F3CGt7=P9!DSx+n5YxG(Yp_)X-; z@Nnc8@OUKS8h-1RagEIs$+*U5=cm?Ho72KI+R`jmq1bXQyp^zdE%a?{MHc!twlWKS z8(XD?zKyNgLf^(#Z=r8vYqrq0v9(#~+t^OE(6_OjX`ydp8)PYiLoF3>q@^DmW2u1? zEcI}*r3p^6w7{8`0dS7xRJg!$2E52}HfdO98H#+lWdvMh84a(sjD>3~6X044Z*y$x zEmPqJ3*%+mCJVhC+dY=qFkqPn@3UM8AF^Bow^%NPPgtl$ZO>RPgWD`C;Y*fP@Kwt- z@J-A0@LkIdaHnN0Ik3kRM|$Tw~3GYpvAh zQR}Tc}LgBXsmIx_Yv0f&$Xq%OOX|%&iKPo!W zN*foQY`s~i(OFh%_2@$DJ+P0JZ`DROSRX?kU}a<%eWrCg9AbSHj<&wdu@kI31<}*2 z9}8RbMb_`|x!8ILF1H?rE3HT2RaSB``daI8xZ3)=h>YG~Bj2Jo+01z8v_(O7{y_7P zEdlv)TM~T6mPV>xuw}s=HhN0YZ`q27^Pa5~&2C!-{KQrTKeyEp|7%+_JY*ZdSq|Ii zFGU}7S>MmWqyAKpIPb}t-Z z3&8Vi-EfSJKD>RbjXu16oQ*!beY|ZeoM3wjPPRP@r`RaN_Ng|?u>E`+W!OH=Mj5tG zw^4@e7uYDn_E|Q{uzj|TGHjn?`w-5x(L1%zvwa2^+P;8`Y+u2PY~R3(ZQsL7Y(KzD zZ9l8sq+wYC? zpno7L2YE|W0emW|M5y-dQGMZyQT6bps8;xL)ah_X)L{5Z)JQzP5p^EN?u?oQcSUu; z-BI)5o~TRVhf$ZqkD{(6{ufa^*~aoG<<(c`jz9rZXd4@W%*e~Q`x zk3_uTVEwJt5A-PhDx*xs?nK3b=ac4FeL*}2Ox5q8><7}?IKImTq40d01k zub3D+El5m)ofag;8FpHbm>fGTNQ~FM5*FEML1N16v>-8+c3O~_YCA1R zOuczXP6Sze^}FL+w0kF(d8W$m8wIO2tgIZ-p1wpA~w{B0KX@F^lc5 z3pHk?{XLGl#=aZgVE=?T>+L)>F&peWH8Gp)JT)=**uN)!(EcNQz7H!flu-C^>WP94(hR(XB^aHG20voobh!>Dw=m4S>(n?jzaW%9mVhq2eT6~ zUpvUjn1c>xCt{8`8u0&%qY3$hqfN-MM#pJFi8VPG-^E%Sg9TdyIflYm#|ZRp$5`T| zIVNJwbWDahj;S!;F-@3bD;$)}*ha?^p~s%;xRUtiIOylZj&Q6MTI>YJ29BNTU>+~_ z0tfSWu?rmcqq)TK2-eFTPjT#O2c#~*oaUHKSWk}$!l5x-UEJ6ht}bp`4EsdH&5wB-{gRkHa8(RF^SB#g z=$Xge7V{IlJLWfdU#t=9^|CuQsim>4@w$nhz$laRAxXFy-j^3t7C72 zHL-UIDZVk5UQm2XY!D8NWyBqSW-O&Ten{+A;*5!X9(htMJ<|A&SbC)K^J70ib4lz+ z$SYzQZ^mB}`wf~KV}B5l@f%~gFY*33Bbo=|bbLM%7YQGYv%xKKcKBEvr8oZZxCFR0 zj($u0({ai0nYdK=Y+MF>E-o8BAD0KW#Zmvq?}#fQwQt1rf$zrk!~dSRdiYsf3)ZjV zP7!+ik8y*@nG6A!qhlMnh7)Gwh2?hqPW+IxipRvo3JA81H7$@ z+k<9x++KKd+2_N$FiAusp@i)Pb<8OtZ#BYS3#@`F~##5&yd=<~#PdE@yotE%*JR{A7 zZ{lBs-^RZNzl(ndZ%5*H!=v$g;m`43!C&GJ!ejAA;ji(Ofy9Uep3Ou<0?%fmF@a|@ zQA*(1Oq3INHWQTu>Z?RsLLrPw=mVn@YN0)$1v(N=hcOA~!lZ=JFgal&Oi7plJqhz* zYQiNjEn$T)BxWY8ggFUZW1=tNI^>ds)v!F_23VPJlQ1S$C)|u&m#`i-Cfo-5Coubz z*p_goFeRRo5D;?Wums*UB#usa7CMPa| zX^G2WR^sI_FY!ttJBt#Tr*c*#-iTb2cnfSwq=t76NZc$W=jn;}3e7nr@qXfuNPGzW z*u=+>+Y_HaK0onUctPTJ5$n7>agT^{u1jQw%6UiPj~vyR_$wZ|6Hnm(5vLK&(@ryd z$;nKn^GzpnQ_lCCJRQytof&98cjm)yohA4`%{-UADr-O%TJ1Qt1;gvHKnu*CTaG0UB=!Aj>Fu*%8% zFITPe9oXPx2Fx|U`5`>Zxlbsrq0R%yW1NTJWarOtrjzpNn(K;y3tck2)TP7aE(576^xg791R~-5qUEB-TEv{s^!Ns`Awb?}r>*{ndgX-#b6~c#H)Y7iUT-4I8r(FGn z?Aqq4Lw?!S1YdWx!gpM!px@P*)|SO>Wtg+pDB3*9}=^}H~&!zr*Mx1GFb;Ffqvrok=l}hXJ~iJTNIK z3nnLdVP;YZ%u1?+*-5o9C#f0cCJlsnNoNW}QbE$$!kAQ?G#E`~61~=>zDdkXCiP2V zW-_TNX*#S}k;NYak;kilA z!68XI;LxPE;jpCLLQfi>v=2^5`WCh)9f1>*PQXdY3Y?s5gR_$9pC`>uPK9&WYF9HhTolK7< z>6+v#;I+xu!0VFN;O&;=TjBcTyWp+K-SD<#=8BVUPi9n-v>};MNz&%z*U7Pak{J~y zbtk`%|1HVPD<(aY%)DaKv&qaWCOwyY7(So;E8LbM;0q}#XL%(h5)W^tMB#0BN+SF` zB@KR&k`KR3DTDh{YT#EXE$~3f8Jy)%O6b1)kP^BtKc5h?4TA!U;=C0kP1e=XUXvIW{wo`X>-ufph*_n|%IQ(;Vw zOW`?9PD%MjSd$A=jzOPCfkmDeSnNrIC7vQ!>Zuj>49-fehqF^pg>zDe z3QO|R)ONTmbrxKndMUgt^(wd`^=5c^>fKz$>eTz;n$)fEhSV3}jj3!xGU`qxI1k(+>`bN+@E#` zewB6{9!Qtr*XdF4n{*faHa&|RIF?=le@(B2$I}PG-_p;8zo(CbC(`M!rpW2^S5uU9 z`l~5wI{noYE&WQUr(X|E>Fb0wB{BVO=uCeYy3(JA?)0}{Qu-$_IsH3fPRUFE1?FcM zpf|$;3o;U5VMaRiWfTe}rB4REtdxq3ey}p59`?;>f&DU0g;g1h2UD6ehQt0D<6uk1 zRM?s^3$|q}gaa~`!m~53gy&?ehJ!M0frB$P!gDkHa7f03A~Iz{#?!Dp;}tkD;{!M; zV;`KHaS%?)pdCq>m1%&pGfi+#rX9}Bbi#R=X>fjKo-m~>%`AhNWO7eaZp`GKrreatJxy7gxsjaQkl6|E$h;rk znaQ{&Wn(7qQ&Ki%@;)VHbLMNDu`BaE*q!+iyf5<$cz@=1@PW)D@WIUAg`V@SHb;RH^Q&7Ziff5?tx!t-4DOXqSa3MHtTs({!`Wt zcqHpBcr98ec89bqU<0n&VCw}WWNPVv-iQ4>?5!>M}ciQ z32;D89vqlc4Nu8AT||0@<_w3!awfvzIs6WfXGG2=aAeMva8%As!s0nUXA_*3b3dG( z^Awzs^9t<9*$HRnd?8GpML7rIMLEad#kmG}NiH)9o=bD%;Nn~lDZe(i5MGyC4X@7~ z2v_G0g==yr!W(ku5OYKBCGd{imGI8o)o^3(t#DH=wUcLaF13^AzFcZ2&;7a7PM!yH zshvCz=2AO(9?IPZAI|-bls}hy3_hPH!EJfeke(Ovs3ASu^Qa*`FXojAv*(?>I{0qh zK=@wXVEBIC82CZn`EX|*<2%pZJjQpP&+=BleRFP|asvB~{B$g?hdhn(`~4IiI)KsnPko#ZI;7 z^VTEPkFe9JdRBC=cy{S}h zKE0{bf_!>YsfGFUrc!!j)d*rad4Vk6rp(^?Ce9Zfr}@DYw3R7eR)8(H|gFr`f@e2tjX3g3bk6uyV%qQXyvmUda; ze$KVJkltF_Erq|LzsqMt^Pta${FILwhO`%b%nYZ!=3|VO_O>ri7}DPJdEri9AxC}c zV?{^W7rwrn@mn8bw6q_5P3VvLC@pD!`WR)T%RWXK>57k0M!M=_l##Ca7-gjEK1Lbo zCLd$rbgPfCaJtRMSU5e($5=Q$+Q(Qp-R@&7obK>37EX`%F&0iw@G%xnPxLVsPIvkk z3#Yq$jD^$P>;TO#r~1~yblH?`2r( zdkdENcENJrURdip0PB1|z?*ia;3W03}%ilT&?eo9fiFsBbGqRvmBSX3mW^z)0# zNJ&Rgh0xP4ETUJCzPN~9LHgxI^a|3iDLR`tYl`T%q~B3Qza{<7q8V^w(L%VXXa(F{ zv>M)3#IIzeKU5Te4;MWKA1T@nA1!(ZZYlZ{K32qYo&IbQ&vp89MLgH(&lmGtr*A9P z;0whzxV<=zl)PD-0^cgmfo~TV!*`1N!FP+B;CscVaus`vhrrK@$H9HY)8XgE3*Z;U z%ix#A^a0X;D5ejP{$ue*c(^zSe=2?y9w~kn9xZ-_ocW{p9r$PQ9-(E3;(aip_#0>_ zJ`9b;^i?tW5%{E~L)Etv@mN*2Mwk`>Tbay=|6xmBncl_i^C-xBJUjD985Eg4lM)GZm+ zCDbh$H6JU(#3Fo=}Neu^g4K9={mTu^bWYF^j>&T zDSeWR6{Yk^GA=KD9%N~V0%C^B*%HG1;2W20^on`ysuCgED?y}$E zo^lm_SZ)_m#@=#DW5ze-l*WuB<-C*4I9^^Lv`k}pxll9B<>Y5(Tsirf8DD-TOeh}? z6U!$+XZZ~1DqkR!%(U`Lgr4awXWk~WxO^2XDZdt$mal=ns4sY z1#ju|C|uv?8F*`-m*H)Fc)yc*d!IdAV`m@wW10Rw^v5y-edv#61}o@~Wp-82AIt2n zAP+Mis~`_EAFtqv&fHqT6P@`)1y6M5lNCJCnNL;F1IgT0K@TMJg$jBgncFMqfn>f| z!CHdMmnz!f%N0}M8x$yU6^gViDX|L3^F~b;SzgLlvvw(TeNfZxzhhW<^vm z8VNI@h5N1?tL6cwc6fCLOCbX=oidTtWU%`8ythR~| z(4194|0HWz1^tt(u@&DDb8^LD*ipfZch=mB6L3)_^E_EgD>crzqS7q%tm`Uc;PsVB zaCK!CTvO?TH&j-_8!H=xDeI2PQ{bJIgW<-?^Wdh+DR6V;Y`Tp`wX1JE+})S=Ygu3RX{dSXCqPsH*-#$(~TfN|o$MRi_CxyQ7L3*X+4f%(!MRtYXGBdvO(W-Py~l zC|%iCR!tRJ_L{0$Sl3m}gSS<&mM?o_)g>J3uj0LVc6ZfEVm@4THQZXY8tXGv^n0^k ztYQu-`>m?G@UXjz8Jp}csDx zBhH!CQE*sw0{Su4%v9&JS2I(cGqpMkKQpRxk!M#IU|m>UinqnpydTfGth$<`uBmQD zb3^q2cuO^7w48gYhjUb*dX!Le9;#;Dc+O+hld(QsJsrMKO)ll^s3wM>TW%xvuIbk<+Sa zJ953%uc9fd<~v-u{i+!kH#fmH3NlEa;ciP?P7bsENbdH8n}XoO??RBeL9kY8a8_K2%dj+McXo9F+Tf z&8fna`+5x{h1~aQMxxnM!%BeMy*0Eoxd&>dlfuI_^N^3%(8tUDqh_&?^Q4-~psD6c zq2xu^TqmTwxSAWFt7aYa)X?wE%dBA?MP7c*U9h;uFZ8^snulQjnkUhmQu7>f&aByv zd~VGvaAXaudGkiqu#O^cbPek$^3JOvAM(c3d=AIf9N=7&YYxIGHAmpon&a^NS^=lk zDsXyjBr#{#M#DL^tS`!&TkC@JYCUj%Z6;h$n@7w`Ym4CG+CFeeZ8cn4+X$D{w!!7K zrwdcwwY9Xod24IWLvwp=J1M`nb_VRMoe%xBi(#Pl3K*xRIe>PEpMb*xFw z`?YQoJYIJ`{H?A7{$9uTP4Z6E@qLrLKk8WdkgwG(hkD)B&{TI5G}mo_k#+Y%OWgxP z&Ue&33S;V?fU$MY!niu_V}5)c_c1@A?oDCNo2GwZ&DS#>|a?7H7zPQ3zi>lx4H zm)0|$%`dBGJeyx$&v-V!Pd($={EGToSXtjH)cpGT(_usXVAxnc5;oP3ht2g;OX_3!ZYeuz%%QwhG*5^0MD*p4~N$?Czd~=p7B@y$a?0)@<-J(Cze0D{%Lq# z{dQrV#9o)dQ%%N5e9EY!(y1-uoUJsEQbXRygm08HSqS_TiS3X?9*@+?Ave+tZv{< zy0@-@H|gHSh8u+LJ+*pj@W*w*`VBmGkE zFOAjkSRYS|TVQKsCZr&)ks0ZNr%Wn(Lcr_Y2lGG1@A)qlvk!g1ehqi4$l#1>WCu1~Iob z4TUc>@&2XY)h6D*6ui?!`&F>3X%?(Vs`^UqM{wZ)~ z|7>_ce;=IHzXHzgUkB&(ZxyD(OZ&4ca^d3sBjA$$?Qm)T4!ErUg>ZTQWx`sxrvLTu zhW;Dijs3geP5qyMYy0nj>-z76_w@e~-rJuVqp-7u-JlBnEjAcvNrJ(ae7tRGDTj}> z)WOGF_?@A`tu5!kCt60qCtD_ws_iWu@Wqz-@THbZ;ma+T!yPTx!dF_>!gpIX!1r42 zf$z862R~@p0(Z7N19!E&1V3we6Ygu-2|sW76n@e275uX05ZvGL3upYXH3A-PHN&4; zW8sn36nL~X7yjH@DonnJ)*5JNC9izOR`SXxwUSppxs|-~DXrXPpS6`fhR@b|F^pu^G$4HeUxuf8|$NdliOGy<(tyR`Y7MjwuA8ewxe)%+wXAB03)0` zzy#+Fh=%hAB)|m&QsCkNS#ZgK0=RTQ8C*7?3N9be2rnBj0A4-dOnA+JA@JG(qv3S} z+TryBroq(%W((Q3ZomR~^8i*&_-+}%stMov0hhyD2VBKY1%rez4i@>wbA@gkip=U` z<8Tpc96@*#;nCR6Lmnd{jN=HiF4;H%J3SwE;}XWn*ry;*6*HRtzMb$LgzqH0k?AR z5xS4jeS&T;@@L5VkiS6wQluDJi^lielZ^-P`L#&pTkpd79Xn2ZFEryp5obI^ntl+q z?35O7{0Z9;cBVLrjd^e5F~Yx!JmYcUH~x-%LUbAb;GBPoO?*E-Uy2Z#WE5;rA%c8U z-YY30Pf|q=-B%S~%l`y>`zE!VD8A6fhsq@|XHYuBP=HN3Ad%ozF3ivD( zT@sVL68i~DrF@og-adR*kcPf|_9N|8oTr-e@(ToEU3XX)L}v)=y282uy0Wk?7}ojG z{pByvOZV5Y{;;m|q`zj)+n;l_aPC&l-Nv~GaQ!`c1N!c;KG;iNhQ2GT5A@Re(FenN ze=mK=PvBql{;E9j*KqE)((XQId69kv^=2mis|6}FdQ5B!5Y7`FSd z`~Sfn=;i;P?EYT%&i`@zV$#2a^e-jd%XsFO^ITF#OUyS)my5|#kG&gv5PR@n>|NLc z*aQD!4`TOY_y3DM@PF9-*gHAC^Zz;i8q!Z+N4kz{xSnfRO&O%!kZuqQ+3jMo^j~{7 z_8|7)zu3F52e1eJ#U8}&$L{|Zd*J`D`>}U&eCPi-{#Md|8)>IkE^Q$FcW@8x6eFdL z)U7?X?yxP0&G0u{SJ)Q7R`xerFl_T<^Z(5j=w$!s0eg4Y9>gB}o4pKsSJ)oF9{8Kxk3AT+`?34~W)Jxf{2z9I*xt$U zo&Pz03+aE1V;^TP(5yZT^4o z8Temp{;;i6dVzFqC!H@+eqRz7vByfjw1afMLOOeFhF-Sruq_z2mG!c9g>8Yb&ELxw z4BPzw;4|>Q*!*EzCp*0e=^fJfF6n%aG`>$7KOl`gdP7*>9o7fK`m(UTE36NM_5QFv z7}op$<|ptkdVg5o$qq9@`h@g+N_zH^p3g|nKGM^pH-z=wVSO;HFAM9t!umj1?+@#P zVZHxvegglZ_lNbJ>}(^XZ%7Y2E=%8uT-}MUFs%3g%}?N8^!~8EQ)V+SnQs}%GM|bF%Bo=V4G}BrB2PA>i$t~v zO}6rz&{2e=3EPR|5czT};W#l-ju(^V1nf@2F6?gPWaJcKkv+ss6_Ii};S79cif%be zbg>r@Q{loR=ZR!?1oF%DKV^RBR`wwmp)Vm^DgtsD{^*0s73@G&DHh87E}zUVXUP0g znp}gvmbBI3ub#9wh*r5#w8+d<$<3lv?k~)8i;(12^aF@HkYi5e^EA?Ty3pk_@O>6x zeql*IN1Q1SLN^%O5OhPuD0vv?8;))y;Za=YXmsrUERQ8TjyEz9X@8Y<-iFXg@WlSe`;xB+ch`tMb zH+sf&@&o7|M1F{LKa7t@i1#RQ7}Lp*bN;R5&lALZity81<1^e_)>6yQ6W&HzSp&x& zNJ4%IA3OMbh4`;>+-vxGow#q{^G)JY&#@;`zWgq>_prT>?E`E(vF*mT2iu3(KEn1f zwokBqitRIO`$VezIp_X@bL=Pl6=mcA_v35Q`3=|d9Xjd+`5^gpNNkpWBzzeCPxw1R zoTHS(U(g++9Q}%);~f7x;S=1)KSZk{cu^7|S`-7aQJ54-#40Eim9QrA6~=UmS=1_# zgxQurv7w6+IbpdQIT)6^kON^ki0lu`fnKs7xl@V9PXc}t@zW!BBL~BB7jhsh2a)|@ zInYb?BX=qu{G{S14L?0{H*zp6cOeJDauC@cmIJ+HKXRv%i=RCFw3GfGxf?kcmb;JxVL6EG56gjGvLCrqVLnV@ zK1`W`pB}jzIT)6^kON^ki0lu`fnKs7xs$!ggfb65^YPOocOwVGau;$SEC-SOVL8xC z_9J&Hm*D48{7^545;pUgJHP~IS`hE z$o{Y#=q3A+JK0-JDA(g>HGX>JZscHC?m`ZPs4sC++IJT{XpAdH_vzhOj7aA-~Nh?|zl{kl#mURjjfLdAG1Cydz~VIH7zj@)Y{1%BR%5v<1pO{C&OXr2UYXtnhACIZXH`!bb=nB}_Y@uu4GrmG07UeEr5T zC(!*tUi>K*sX|<+Mu>%~krz;s$Wdi<3OW^?CPt~W1u844RSTb1(XQG=n;MO57x}7# z_&straxg4+AqT>85ZND=1HEKFawogh@pVM}xbf2?cOwVGau;$SEC-SOVL8xC_9J(y z>G;XOPbPkPx z0&0_pRawKLQh%$gF=xY`jTUSq-i-AIRQ*LLJ1OhrCT! z&*h#D;oc6#&v5i3M2yP&b#)Zs^9YaOINrsn;|Nb6+>Vcl=qBN3GUu6!?tIcd4S&`(B*HCV6 zz(4ytt81~Z!{5#LxJ7u>^&*u$2xXNOaq8{t|45yo-btK|_}_${?=`D;p}!mbz34mf z>F2rwoG(ZkyYShK|NF5$z%dV^dx-0Pm^hCRcMJN*h|4a`D(j!rCphnuobxH-JcI37 z{69zB=do=g&I?@2i|AkCoG)YJ8;2_I2-Mf`!S~M9Hwg2NKz)m2-WD^}cd@;P{(W@R zA1ZI;)Lq2ggPs+g>PO_!C&-_2t$PW7hK)Kz{hZ^!Al+ZGYvz7oRSyv7YtG4UJgMJ` zQk6H->i42VJxCf3;hR3CdKex1Rj917QIDekS!`5)!QZdgj&s~^9QQlNoZz1RDTGF~ z!p@7lR1kR@YqK;3Sw+^6sYf)kh}C#cpwXw)Y(mzeh|l;;vx_>-A!@Z)^l|9oiO;ub zHGV%ubD?viOA@(!MKE7W5oXOpIF;jhrdhPCu%BbDmL*EHZ0tG6xgtl)6S~GTtQ8P0 zBA; zT+TBOfAjHoA-09YStOFRi$pm)Q3~x+Y>Ua)C7f#+;pK$cA4H=q*H)sxg77Njt2mw& zGaB#JLwi(e*CAhzpVgfA2JEbp)ovm!YYDR&Lc0YWD|fY9ky$08@l0tOxJKq8HQHfq z6E;@!YIk9~8{0kD?#0$gy8NO{3lgUbeK+@qwphEL_^g-;?R}}y7HfPnLgU-o+7|SW zajmq++7sxX4hYi$_ktmM8|W zC#R;n(7BP5IW`5^BV;{Q^==mjhy$XN)Cb(WpxK51J>qQy6dz z{+zpoXP{jZV9wpDJqg(>UMh9DgP@%D&F8S?QF0eK6s3$%i4>h9M8eq2StBJD)+YQ2_-zaj}r&QP1p}QH~E%@OZ%lfUv z<9)M!J8^n!-Tz<8=W{D*W==+@|IN;?`T8^D`LiNMe-7O?bT6RWj{G9`<|S-9&@nHgvsOuGUPgZ% z{hR3CLiaZ1;~n%o^ZNUQKS16|+1Mop>a?Nk9hFiAKta=pK>hyaD5;8&k27) zct7E<2p=H)HQ{dwe@B`79^VHkH-{)!w4eH6X$?oW|V6PaU*5N4A>M3{`iW0Hh!q75~v!f(<A}j};S5abkigo_GnuWJ(m1OinS`>fTuow(Pkr)!a@q_>|EKWQScXxM4 zh)h*?$L&T*Zrt77-JK-w7q$pZXJ%RQd;geEpL(9>oIX`O?bTHS@E<6)e+BFnS*}Ex zV~KyT^k6*Pp8g@Mj}brot1xOX#}fbQjPbjMjQ6i86Z{-Y{39gf=bL!{TI9G6<#ma_ z9(CbZ;^*DCe+>Bg;2Ti)4XHcNIsF?`Z^jVt|A#o6qTxE#&pT^BbD{gULbtUX;@<{* zTXY>A&-^=*=T5Z!&a^$x68w|Na|(HO zaNS*;V>rujRTpO)P8&|SILmOVPE6eirwmu~b3FC)+`+#W|0kxd@$b$5iD$h2ec84= zXYlj>*nc40L2xs`XTl#0cPQLpaEHSk0e2)E*Af0>WVHWS8Otcf;y(fHiEt;$aR14& zrvFs1)4)!bQT{W~aUAuZ&GH<|=gJ)ad2*%ye5v{`kXej;EdGn(IF9-+m4g3r%Cjgl zi?#ns>^bCc6|wm$nURsjU*mtO_|IsxeA(uAz^-GR*Ax2&{@XWEz8U@&8R5TGhWR;` z`0qf=%*6gX*-m#!%zqEqy{!K}u(@FO%V7Wiz?k3H&#}b+FtHvX=3`)wQ>Q1;J&Eoq zVsic9e-`XHu;;;EK=%^Z%jExxB>k_F@9UJ`fP0gDhhvHVZQ{N|8@>ll?_mE2{LeoG zr|*vc6R=Oo?=#|XU+@0{{7dv-v5s%xzJ>b^{CoHxz7I zh~V2I{R13N0&#Gz%L7U28AyTAcPGGgc_0f;-lvhSO2%a8-0q&gxL&CxrkywCtD1qZ>-{aAo2+p?_fs?`L%NID6c)UjmoB@6&`m@OM zY;tBF3!Dpn9y+eo0~f+yM4MbJ69c?Q30y{*{se(p@Uz(#R}kw;aIOggR}+)|zkzGn zUNyFzqApyg2W-~sz+DG+J$~H(25zK$6TY0c1Gl2Njr!cqcDn-~`o{(CWF4Hh8Na({ z;9edjasL~bi|_sTJplh8+(Xp&VSFAT58h=59tV4Z{GXK3fv3JOq zB*3{l@FMz`sPD_P`Ky#)W4*7#zrl8U6Q8%>c%KsB+#TTD9pL^q@B!=mkUTzOJs+e0 zg!O)kh8cVVU!ePv@>lrLr!~N{w7_>@oWBD<&~DrZ1b!w4?^FW6Qvcs6&!hYY_MhbX zmy8Z}6Q)d+gMvPp8SEj$f}Fd9%gU%=FSy=}^6qE6clNblNaDdTmVrU`GsY}01as0qn3sI80LFe6eBR+b5_FFk@A;J+c7jbuo0V|>`( zg7mx(@&#~ka~Tudf|y&P-3q^L;CRj-97kQZV}0Y{ClGfcIdZ-X?ns=S(C&;cUtk3% z<2wbvspzKR$37R_4Q_YJd%*1pNAKYv_r*c_w+Hv7&ildb4|f1D4Wqv(E*O20sS;SaA9{1&_z)1a9R{f@74T;3?=%C9l&&1y3jMGtiz% z8=MV)4*a>4&%^h8G#4-mKj*a|U!4Sb<`ldXjy~$a%gJk&Ob^bcUYy&4bL7h4RcNl3 zD}vXM=e6i+#85IP$bJ{J@pbUKj%{~6+zsS(Bir{TV%!4HH{HS8h{>2e!8^$7zi94c z{dWskeGuJ4tcQ1*!AH*o+(35I%u`=xIvAf-@HriH@r zP2kPo5jiB(BFluL(jyd;nV~rG5^``T2~S^vPzG(Q3=d^xWQcQKC@;f81@uMuHuy4p zh4t{PIn;-BvM+}Ekxzf=7aAY~L!9$MD{z`!k@8BE2T|rZREYipp&`T=O3YP=!*z6M zb+JO+lZVy>8%93E(TxOOOYG3v;)K?LqrX6ieK15%`ViOAA)ZHtHlVzrj0$apy|Ii5 zvHyiOl}U`t-z&5^xok;!E6InrCl75Sh0r+4+o2ne5B&u~6VYx@?mLj=`p$>;LqmVZ5YMDS2ZFKhg=U~* z-wPcAekfYbccH`KjzDuH{Lyec^9>yfcO3Zf;3t5y?=jy0fDq@q5c^)}G~%BQe_z;OoZ-(n=9i( z_fwAtz&Xc-9-_S-roA4ay&k2Gk5T5CROku*PfwE5Q^b4*-LtHZ?>|G&^Z$K;crW7r zGWaWKc_tO&nN;X?@HfcwO*DKL8G4%-oaaJ3=MC|$DD(kZ&U2xU(0z=C?dd!@q2J;Dfcq1lzhof0 zPXBN>Sti_FdWC(`Gu%TaggM`Zmz8+9m&C%oB@y;Bj|P3i!|a&hFtcVfp>IYTk#1qW zN)1QR#^DmgNOC)yqRcrjoRI-x?p4F=XW=|P1@uMYv`HY$SH0mfcsqO_mdnBQMbi)8 z{%`}qmnYr|#9I-J=U?HKi8&aYd)6?cpM-}>@9?UWSCjGK)ukF<6MGnOhEsxZ`j-x|#}GA6vOj17;Iy~EqVk7s=o(QYq=@DAj#BjuebPr`39_7s*=$&=?{;a#Zr zZg9JU?E$wZ%e~;(-@<#t?F+Xb7|(#i>~CSNFT)4H&46Qn3m*b@C>-xt!t~Jz^Bg#Q zBpmx&_!uy*FT;%Y6XyCd%(LL|iEt;w@hmJ%Kb`PtEKi5y>)!C0aGdMH=YX9HcOJ|0 z;rQA&OkbVw#c-E^T?%&@%gfm7rq(n7Pwnk-UfF&+#PW2f8o2p?uNUE<-KrRV}|F#JplJVum|BDV)-!K zBXEzxJr4H-*pqNiv3wft891H^ho6Ug0qjM%msq|G$Nm?774CJoH^AP6dy6I4nBjNe z-i3P~?gOw7;XY#dG2AC`pTd0(_XXIOa9^?f8txmoZ{fa&`vL4nxSv@54EGD%uW-M^ z%>(-b?oXC~&3~LMJ({{npvfoF)PwFhJ*8XIGAx&c>jl>vE&vw<3&Dk1Ho-N+Mc|@v zF|asXf@Kme1($|vh0B8F;PNaBa7DN_xH25)xTbbq-}I4wP0NAzmA*~=!MWaS;vCns z0?QTgSs8l}_F(KG*h6J<6X&-k&TmbtW3Pcd40|~C2yFJbrnRxx!Cnu06!vKBvDoWl zb1&Dl5%$K|n_zE>%~ah@n`3icYht4ArmeBJ#U6*f9rgt5iP-dkYuXW;Nsya3pEYql zYnp;h|F@=Huy@7Y4SNr4rm$_|-DMNkkxl!^grfhx7W_Eu6R=N|Y7_n5nohw!6`T9DChpgo&Xk!=XQAQz)pRa4 z_i9ZSU|)!R5%wk6mttRr%{i=THue?RbFi<%=DBXuwb(Umg>7Nm*besf*f(Hvo!E3U z_AS`AV)GoN=?-lAG&J3XeK+eF(fow{3-+(H?Qhugu>ZjRQ@S;aNHf=d%rVlf zxd(Pn>}9ZfVfV)NV+XOBh`u?DjYD%ps?F>R%`u5LvoAC!u{j4dr?J@&nzPvK2h9cS zqD*h*IoTj)dd#^qin(@1ORwfJaAR4= z`sg>nm;HfRPy)@H$bjbmz;W(r-dx5rCyF$0MR^;R+fp7!?D5zWz$P+#&kop}Z<=>z z$;8&pld*aC(#(X`&AVXlhP^xX9@u+fGr@ZE-q`zMGdXqh{@4d%AHG$6JA~9Y<$8!qikCEor$c1+d z&FmY^Z^FF={x&?B_TSO!t=`IrS$>a#vZIPZ* zW%e40^pcs8-ZCxXm#L8eb0P)NhGcjoEF&ZAFU)OIh|rfh62p#*jwD1yl4uxpCBpqt zq*aQMtmGp(X^XJWM2cwGXChp)MYv{*R3yNhIE4uNO{6az`%Q#vw#WcD#=MFw568X} zSxH7mR+dqbL9BbQ^pEh~GD1Jf$SQEFvaZ$8tuEsue8C%8lR6AzeZys9g!4#br1Xxk z|3ucokM|9c^<-dV6!AEhFyl_&$og;_;Ikq1-Uw`Cben*03ceX}HYb-Ys0ZT_Mc9WT z>_g1X(-vVYyvTO=jK`P#D6%~`-?K$_M7t9_=amTOl?eS}B8;sOnMOPALObpXz8gBu zEs;IJ_5zzuK6}fU2;a#@IKM>b8xz@|dL4j$Ao1v59hrg8OmaJzx^te1aGr@A4u2%} zQP@Xgvu{O?!)D)#ux~|9!af=MRP596XWxpP$?|NLJe!D|%X-d}Vj_{pPgncYB8|@X;gL6&fD(tJVd50LemV6YL2D89yFbC{WxtC2 zhW$J1m`7dyV7-4biJ%Yc>yJkK0j*r!_3#Nj;D!gKbP9GX1-Mape5y`=F z(g$uixPFxTQ|1|a3;h6ER-n8h>*X1H%OLE*_*LPDVy}X|D)#EwYhbU5Jsf)k>mA8@ z*OJLCYh$m2y)Mi3h&PJ7#-JGswm#SfU>nN#mW?Fevaw8LmZtG7^nq!iA3)3I=(eCf zTS{MJJJ^=7ZES693tJgmyKIGBYvH`r!Z)NX6N%GdJJ^=7ZES693tJgmyKIGBYhmAP znL?bY#ObgdY|Gd-wl=nft&FW*w!*G4*OavEMV#rx>98Ga%h)!yHnxSWjICX^!mhP& z{%kpjIP`-vwu5aM+s4+$wy>44waZr6wU#4@!@0KQDDvsB9c;_kHnujlg{_ROUADrm zwQ&4sIf*zY^ItgypHqo(I@lQ!V0Nr-EoZS!&z9|&BP-Byt|VIM1JS}cy5&L{)^d@I zV!o{2EtgWJA8yO#1pg|$oE;9*~0fBEzeVr7iiBH zWnjxoa){x5hIb5a!P_prYIxi58s2j8%J7!qmB)W!eC^`h{tJ0!_!|CtLHsw#|1I)< zoANs{q~%@y6MRS4Lf?p%4$gt|xj4(k*>F|3e#TF`I15g>{FIB+o|tY)$xWa;{-sxNa@jq2*Eueoh0bcAvt2rkPB+k5 zE}cTB8t8Nvb;_ly5wEr|UX=T^Xm9fH%gks%`bC2>AR3ZlG|cRV9h}c_Hk<=zxwxv~ zEI1oZyEtVy4QIhA7q>8`g3}GS8k~ZwE%1wzXF|F~ld>7}@J)`UnV&Gj_GrbOsFC2DQLaIvd$Zg}#zeV?i0+Sl0P%Q673CRKbS5~@sG{6EL=VG*d|FT{s?@+kM@(M!R( zCy&m;o=qEZu8+=<3DK+g|6eWRqu0>B*D?>N0@tk5!k50jQQl=nuLrw9W<+mdd9xf6 zy#@PL{!g6eqjwPNzwAqQavb2@N|bji(R;z~V>y>Lz90Vw;CZ$ieF*$vmXDx)6zyZQ z?-O88@?T|ktSF<5M!8>zGCouEdD`;@+Ve%~%X8i6E8wrvwv6H%<(?t>2Fo|`=bj27TXMrJ~^>1&}>P} zt*8_GN^D#3arp4gBsKwiqWELm6K@AJJ4*l9PG}~9PbQZsG9fk=4h#f@i8R%vb=MXf9lG|Zy7w)@b z+;_*gmX0yTNsRp`#yiT`apcH%DKYk;7=3bLC$r8|Se^>bwR7wY84){EhQ-dJd^UNU z3&wsFJ0INz=q_Y=5ghwcjOSZ1_N5s6QfxNua0NNd!RFpO#=aE07P|(o&}-^%Q+8PQ zb+TFPdf6hzHFNAH>Uj&xTgj9A?%3_h}=2KTJD4B74UkCAY_9{TR>7Vo#9MQ)r%se}*}0pOtEi@8V)FfN`A} zW8aK%KOcLA|HrE`H1?XP*z4r5Yi?dJ0nK3RtkR>C+#n~t0E6Sw! zO60IIxebyD@xfp`ABzuRcHE)NX}c=g)hMqnD!vA}tSO`8!-&bbEIvXKar*Ma*MeUM z9nZ(&>%otLryoIljP#F>6(_#F*zpa-if@F5zWs6DZN@pD#ksGKZ$`dbfNu#-Kc4v3 z_-zBXEgJUIIQQuB2`ndqZ7=!w4y=!7WbvKgcV=Cj*Wy!%JyizAr=i(}?uG29@!hfa zz;93Vdr2(LeRQ1tG`=tE*$E|CmmbxB?_5^soQH`I(x=)5b1z-9S#7~pq@zZ5w{0tcu=RP-nHo9}b&xJov z#>CHOoqRtQzmRwrkw5!t{8DnhjJCX7s`1&BuV5Qo$@aJk`)Yiyk+Ja_HqW8sT86~g zSL2S%j9(`Q$8W&Ck^chsx6HR2h~Gl~x1zaC2FGv5muJy&o<+wQSv7t)x_i*vi{?Hw zbJ5(7<^ePhqIrnAJxm=Rk-qUqu^$Jc?@s(lu%~2b{AudL2&D1nz@I1H3)JgHv@gN) zJUadg%f&eh&M}kN1+e3saZ0-m7HZlWL)5=9xDD4{9C@m*1(9lj6RFRj7Of>2tC)+3Hnwf_--}9@h7o47}p62W{^s3B_k7CPcZ&TVtagcK*x1;VrQ0<&@ftNf@_7uRD7p#$+U|U61(EJ8-9DB z+Y`-R@Y7{_VsCQU2aa!86FjG9F6ohp1BiJLx*6az@!>d>I0XHn@Q2A>iNjgX5$KLW zb2N3NKVgF7P=Y?ZiQ|cL0{Ro-Pa^gyXifz`jhOT&OwgY&aVFeZ#5$YU=fa1&aAn>xKiJH5;H;<`M+{-5}eb$>)|jFFP~L{#Eabf1Zp z;P{aE68J!I5Slx8M!sd`?6$DW=N;MMUv})WG@+?^a~w}rEfAQ{gNRxVR)YHC!3`y*#Z}p z{>d2raX9)qC6mP9J##Vx*NP?!o|7@jyo^p3!P?N2z{)HuXxoX!Y!Au4aQ%qYpYj0s zfufVki+Hq5`&8YL{ zqLN$S&v7BS6`F0px1|jjO**+9?Z+zDt;gyS9}$@{zHDf|~s<-fo^MDh&cpGlmv z;5i;7&p~@0`1vfkhe$FSa`Gb9K_BDfCB(iI>@wQna@u1S`7%~ulKb-H9Pq1%&3nA$ zHR!LE-pQIIlN!#VY{NTX*MVJ+?nZFF$4l}JjjgZj2`&96lfTID3>Kl> z0v<&ZV<_FYG^Oanl_Fq@XOStsA5Jl*St<*jlb)#pcoClai&P1$LYd=9st@JmDEE~K zss3OCzy^XX54Hjr$CDK2_tYTio*GQNs`yhw;D(}G6>c@wwL1DWD6a`V4DAT;k?0tg zBE|VVwGQ~Yl-ENy3XDE1DbDe!vEoZH8)a$(@C~JZYGeGk$4K$+FtsUlqQ7!#b97ta zzokq~Z6(Rn)-oowjf_Z*L%SW?@o?8I?MSm@`-h&jV6C z4@j{urw*fhxC~3NKc|i)#?j!%$n?~)Y$NvN)Ct7kd*T%Pa*A_%>QvT8f3MW(X!({t z#XUxfdyLdMEO{TFI*-`rqqzXhMc@~MU4rkWEO{P~x*U8Kn%UHi{Wvv8Ca11Kf3@h; zHRR8J?7|&zAGqbgZSX3%_TUz{0#_bfn>b!v8N9YYe;xT;FZ-l;@1MGn*f)_6-vOl- z;SRVD-16WycokfGa0^_4D-W(s951d6UR$8&_>#Iy=A`Z>pL@vVUUK2xU}`SdBF=%c z4CnK3Hk>wG)x%kE%5ciVX&2{>so-jht?v=?d{hoj@r`ooaq@hEJo&CL^%U45&VjQG z=kstjoHkt5!&z|3aLU7J7w3(s;A)Gl??v)_iT~cquwC!B(-;a6MW_ZxZsPW*XtW$F*|{F6NYl46?A&Ql$n&u|W$1!uXqs^M%n z4X0h)LO%;m!Kpf&?u1itHT-Jx{nE>dqawL((_Rdq5ZOxOfZR z=izM^ui>j6-g5B@UU_)!;l1&di?98?{y6z3WYct#{8QwgCjSiiw~~LB{1@?#i?`r? z9^Q8G8ouh`Ef=rgm50|J-Wy-J_}bs=FOxsd0Ma~vOw+eJ&GW}}e~G8L*GLZ(e|mZ8 znO;Fgq`5XouPkHIgIQLkDLs_sD(F^Yxw-_>Yw*Z{d;aurxRET^Vz~~>by@O0AkF)L z^jMaRZ<=QIzx0L@N^d0L^u|(3a~+W8UO&Al_GS`HZ-H)0*1Hw?Y%Sf=+u*}BK$$JbN){sPX0%b(~;!F`9FOOHs1@Tk7M1( zqvaYP&3HQLli~PYFnuc6X)-B&x=c><9enys+U_i{bKuYAzrs6#^!fZhE~I=Bxm`?d zTmz&pqkK93v#^={jY~8}+_}GVj>Z%si83Zn8Az%rxh|^u5Hmj~M^t9e7_SybWLNgty>TC%j%l ze6<+=F!?jqUiwkC#pBqF^O1g%wt9+f_cZPN40U`C{CV&fz_|}dzXbO(+$(Ue!SQ?{ z{RaG-aBoTX^xL$@JH+EYAk8@@%~&7CcCamD+t}LJ7Pd0BcG(KMmj0YLUl8w0*6}s= zH`w1|e~V{ORAZ=Sd;`2lihg8Ids=?h!IRY{qEK^u*>Endv3R zWOxpk31IW?A;bMarU|j!7XypY{w7Ffu7@`m|?SvH6xblfy1x7v+jf8#eoW zhCc0?cI@S_`=aTGJpg;4^vx{KtHc%HSCm9%Ww1fAU1qS1&s1eXW{C94@Z2xMJwawQ znUh%^zcu8_%$hPgGaPJ$^vH~qo*CXbWY(5}nRUVVRzEXJ`e#O?9fNj#uni=T*$~Y} zQq62anQ`he%!iuU44n6ZnJv(6Nvy5Fwt?T4@;GuDkIgY4GZFpvwAT(YHp8>N%+4}7 zGl}vP?5X%qBR1~@Gu+c>I0j_)z;{m>o!LutW;*ra7?5G+v<%PqGW)|FApXpOvSx;v zfHN~>ScdVmG6%DcLs&1zfei1|Gl$E_%n{V%Ncf{pH zBXfxyoVk>BUnbKsm(%XNcgS2p+$+g%4u0GdWUeL-*Z!GnS*L>6;1=oRX z-7^mo^CA4XUd`~FFT;43naA;Y0*-!e8NMCPJOjtQc;-3Q^*rsxbz_FUx|x^JF~(Nr zRXFC&%e(>pCgrziH^#`wyd%NPyTo~q7$3m#4j}Up+{bXA!10VP!~J;X3%D<-_gDN! zJ8TErGPaGajcs8oV{4bKuxptgiSrY2ekM+b?OhY|Gd-wl=nft&FW*w!*HpvX8g+B2I7VYitMGGPaGajcs8oV{4bKuxqV6FKCSr zr-e8jwu5aM+s4+$wy>44waZr6wbnFo_$ITJ>lkA@*p{(vY;9}{TNzusY=vEGX$#NLW5iCbapmlAQjEm5^E_GOswqP8R*3nXI<$Hrxj%}^ppP%5^q1*v-JSV2U6x+ zgVq_852noX%2vi9X+4bc5tQjK)Or-%d*=Ww8d>-ZVDKid2>xGmrrhExy-k-K!MtK(H*_64iX}yy2Rg|x$d=2GmDRT^K zrQc91$FNqLGRLsi>nYzr`9{iI)3n|~`BuueQNDxne<|Nd`7X-$P`;P)eU#^t>-}K= z1LHYj>qC?uru-;n-chtZPWcJS^h;=cn({N0pQZdf7$6%jQ{){r;@U(tG`AhJx!FVsx`Ykr!xwU=|$ML82 zC$OKvenH1|LF?~e^T7U~%)MJHV~u1*x@EhIWPJ>e*+cfs_5|a5w`?yk#`Vei!2)1G zhUww@Aln4q3?2b%0gHmg!FV5$O@gJsxJJlw0Lo^;a`@*d^FAWW`-p4_O&LuEoa=-v z*9qCa;Qc6bosb=fy*&1c*ehW()<~B9CtJlHg5N6Gycf)_CcU$(qodzYc1`Tz;5_%w z^4(5$E%3F$*TG&7obL^?qp=y^Aj`A=?E2Unf^P)QH`m!sC~r!c=Y`qL@!b-8E9|YY z*@v>@@Zp=C?07J)5wd*ymSxP%><-dDyCX4oM#Daooea+RpxLQ1H9JlA%I+fZ?5>i` z?k4{1?r8TQ&R%Gzv)mg!&;GOfqS+secY)ah!5QBmJ4422XUfFv!7?O!h)goPvjpB= z0&gvW*Gu44L;h&;KZd$67GjotJIi&o8ql!_k*1dn#>k8vNs-%v%D1SGTQTUv|OiTc_*2@5}W-ydo}ho*fng0%{@!j z#&)o;!@dFgM(mrgZ^6D5`!;O$?JUGDI4$J}bfmtrh2CIT;7iNJeFy+Fu@pWU$V6_Fh_gOFZDA^BL_eX4} zk6HI8th)pEfji(9xaGpD;5N7h*DhRvTi^;@x$yaMbOT(0*U;A%=sC`1={KMKmVCY= zpYO@%2lDB_ec%qb1#Y?UD!2`h9Nhp{;5GEM1$vIB*?Hvh2YSXq z&+;rR$MdIb2kwCTz%6jgh1=j&a1E|qxCO4j6}WQY+QjkV%HTEhwfXuS*Lyjx_i|j< z*$@gfv z1oWaOJ}1$I%UN1ztm6TcGEBmm4VY+zKpL zl)PM(%42*^=K@Y#xfe^(P)=OH&~Z)Y1H4E zU8omhGw0|lm1F#;+#YNn`c~)ml6-DDb=#YIb*^#H_?Dot(Nve9vCya`Xml6Wr50!o zqFyto$4pr^cQEx}jH=wB9A^&WcR2sM#d!z5JG=#N)!}XUD!hi*b$AP2!Pnqb9bTLG zssXPIKi|K$!2dY%Kc01+K<+29kDSE*-hp)ob39lT%=Tak%<^FKeRUm7{f%)=m^%y2 z*)lVC4(n#j$=rFg+4<5hcY!qJ=&zRR(D;nTF&Ybv<|4} z!UyRa^`K=Uc}`ix`w=lmBKFCfSB#~jZYbN|F0a9dF0i>I}LcB;q3-|)$mpWUKw6D;1|YMjrhDzB;P{@ zhy`*Qpw~Ws-UP7K{82O+KF*?WStR?7dqti>!Sw^RppwnH{DWj`3 zjK?)}o_8~O-p%BBH(L6JkMV8T$AP*KP6ulJJ0+@ z`F5F}??ZbnM;rB}&HB-1yrazzz<(hA^xramzB+!6%g<`yS2cc?YkjuMPdD&Wb=GIO z{8R(KdU@)9>8D(NwSTOyN_)~LHa}E)<(Z!|zbfsz8tqFzw)`5jDbJ(w!)VXplt)PS z{77_bq2qhD{5lfI^Zq)&9^0pW9G{8fm^jwIj8ipnY!gTS%Q(u!u}mEGFXJq%m;V10 zN0~UaCFa95etsji&&Dz?zlluE|A+0dDgX7&*iO6?%x}SV+LCRvl}yWT4bPaS`EA(` z=VnD#h?Hae8H zI!yBU!}-7R&03!KEFK>pJ`O(CQutKyvGLJM;iK@e@KH>B z=;awBE`KunGvDat`8Fnh8vFR^wBZ@F-sRlaB=+qL{ ztGlREMpw&UKz%Qy{V$@<%%PRPM11*6sV8HE=jr#8pGAFVb8NeUbIz62dk(rqK0cR^ z)4<2__*7j!b^{;n^3mj`Ts~F(R8EMO)Z1Iq&e_ps!Q@ zdfMm)_NNU9^_ z8F#Y}FxOF@_m}zmsN-Cg_fxkAs9T55=h8WKbe7RoT{^ptP8*$a>8v_BRcF1ri#kpk0`QUJ9*pX>0$8`#SBwJTdtw{H8)$8`+M`tsv=&Xk=dTP*&cv=8r|cdk zU=GLv@4pJ|v{@fnwy>ORSLiF_3;k%{#kD@Pj?r36&{omfMyr>gRcI}vRZGy$&p|JR zRvB&WA8}Wr9affVVG#8nO#Q3We~82ji*U!_7P#fYZG&rY?ZPdCD{$q)bpu=(yoSD3 zSd)B)@!uUz%n@vxkusyO7P+lWZtIZSBHriX9m88LzUty_!)q6>T)bs?<>KA(^%8hx z_*#L!X$8K)D{RQV$$fTVW0_OfMDhjRwG}p{9*grn5AS&Rs)x5dyz=mthxf+UOW;*u z8}i?lyvOmsr>|UrzH)^Lv^#y}3foh!9a!$jezB7bDKPek(ff?vF?tKV)rr1p^tRD! z^tuzhGJ4DC6?)Z)eqla(DfP!PAx&F3Kvk{3%O2UUb@1? z)aw$qDfhpH%ZRavn*iq+&VloJINNYGT-C+Rk7*gsg7dCV8%}#-&i7M>QwuoW{S~g3 z2?hGC6|QBQ)Wly<Tmug^1qpUnFFH0_dkW( z_%Gc~`3~yC`^dtb>{lHc$D?uTXl#$huA{L$8mo>*do;R^MtL-9G0pwd>jC~h%w<-1 zkpIj>)Q|Cy3X9`DgF7C)YH-_wD}!4ed|@2j09OV24i}#0T>1>h+h@t+IdWnifWiyp z_afz&ST3${(D+;$r;f%(Q*~+VIvNX&a%rqO8tqw^uA@;Njas02lX|^HUEZcHjK5NN zm-@ZOf9HMb^8x$AhY~AvXnaQFbfT#mjopbx8I9G6X5qSY7c{D_hWp0?-)0qRz&cfu*d)$pqoekIS}_+R}_j*L%N zpxr+!4v;``pfnYimnp@@aUA0K zOdRX~5XUA?)x^>Nhd35-l!>GM4{@}sUjLUk$`z-!#C&*ADc+h#Sk z&FXBAHMr$plQtU0_8BhQ6-UU_BHu_9*J58-o9(uaOe?MnwjTZ+aUA0KOdRW9#Bod< zn>bYyNB@gBwuxgAN0~V4U&OIY9PO&tzlozw9Oa5r`xp7B;)ZN5`lJ>&W_$7NN%22y zuT41~Z6>3Oo6ET37BaZFr3@-=g@&1z$*s|EUrv=85?6?c$CaYx!{C)#0W+GrAOHJNr{Jf7lI$rq>b-)4NR z;;#IU7x(euvTPP({B4nx8lC+&->9P z`*YkrfMdXcv>)$}i_EcAO`kq>+MXZT)JBE zNb1WRCB>tu-!ascv6G6&asD};Ixse3k$1pF?tzQUMN&M4cvc`~`kI8wz6XsZj^zj&uy zWKNdiCA1r3!WEg9#iesxI-k*5M(4P6wo6wvI&E~eOJ})s%IK8QSuUM+=@zbcp-#JW zs*bK^;;AC{+r_J?&ox}HT+4B!#yOMzxJ6Apc`sbFskcMDJ9JJ1ozLhjqq7_6sz#@c z&T61jMz=6O-9Wc+y$f|}3A$SG7V3K|^}UUKh571=cW^BIFUQh5spnnPlYYcS`Vkj- zS6sZ0>$(oTWAr|c-fEz?jlSy9>jrwu=#@vW8t8R{d>ZLh1AXlu@gJsr7z?EMsBBhz zjJ9}Ot|&esR~C7vTzrc5dYU$RhU3VyGO5^D>!9_awYs3S(N@vwE@&;Z3a#pbR+}8U zqE$v)`#bI{w8N{?ulO4E<~zb7-y0U+r0#F=-*_8r5%0kJ3~w3Uaq%{M)$rQzwu`sm zmEo1)Ef=p{@fY&i#VZ$IGybah5&3`2b<-!ZY4KC)!8p%F#&In&ze4d#w%=DA+rFkg z->{!Ej!N-6w)yuQ1AajFPhSULpU2m#7jx4@Obl?&IdIBs0I@LJo-*oPx6qr(B#iF?AhI8BQ6lw!m)#^4yS|xYuptUbk%%>DTrjX=-EshqlegcXRSy zq;b&r&{!^w<^VuL;y^BK6pw z`Ygg7aG${~7jA=B4X$0d1+EOPT)1|{apTH`*V?9#4}GWGrjgSw_$EvxMOgi z!7YQ^2Co`i8{9IuGPp9h_QY9;D-T|4V+^deeaU4%a@wDK4j`Wc$!8Jnfcp$?xo{i2 zYH;nsEpTOU<-)ZqjvH4lyw-LY`5aC@N3c&HNlr(R)6wK~3^^^%IdDG1Ssu=Ys~S#w zI15f0PI)-(is|K)i>tMrOrEF6#J1B|o-RGx&R{<|lXJ;gVj4;MGmT=_Hx=`mW*y=Y@fC(*j`ss-#N4gW0bWq zZgJZ+(xdHK+J*bJHbt9g+Jx^Y+Zy{h`1$^YpN(JjU-()0sej?8|7D)4Q$OC#wlUs% z+by&i_knF4WuGZKrd%~;+mw|lTOPgklvUf^#J`7aaWC88KDNhP)^R`Ae-FqpZU1Av z55heJ{xI9=5j6kQJ1)Ji3wqn7uXaIix%8?FdhOD8B_GwP{%P8W@u1qC<^RlBc5Tno z1~1Saywh!ai8f-+indp18^$|sdyTew9qtV@jr|;tpRbF4w#Tp9ML)~qr@H8;J$_xy zQ+4Y1KJEDd$AAx|f7?gmZ~K^b{Df=YPx*g;CZpOu=X&D{X>0pZ3TrV8RN3YPUPW0NNpPx@>dR0eXbH^_&BT`ycno7OIE-_|c$uCYRAj_6Q;9;3oYLcF% zX6aFipkc0{QdFjtVluT9mr11rcv8lcQu3ctT6&i<(yhe1z*0^Il=9NIQ~)aygLjH0 zzDX@r;M%27>LbNcUu?$mEA=Pd0GV7GNIb>^E3E)V|IE_LV1w`-3_pZ2@4QNkYf@U3 z99O5j20FgKEDe+HCBDBbjRa#JfzsO8>xjR!F1f5n&Z8ty8Ur_$oEQ(Rv;lcBwq9vt zFvbZf@lK}1I3cCYz&8iq5}fxjCEmxBwgKN(MwQ0N=+bu7a{?UmikG%$ojVYFN9k4C ziFGo5aEWojN{p>nnu5C~U=qtd?8ue2W=*FmKNWJu{i z)^QNI&X9p6#ttnV40kBH!|*vA-y`6Ul;NeLWN7JVFvj639S6_&!KD+hPb8m{q<`sT z8Cg1oILrr9VveBF>5?yzP`(=7HTYjkxkg!GYxEWx8?D1SucHpvv+Zs`!?~w)Gn!l2Zp;x> zx{Yl^U!u|-Xc&91bSD_&3776ccdx`t_er8Om*xHN4-k*BLraXmSK>Kb=@IJxs0=GT zM%^A~yD%nK=_xc%v;Jqu z^e_8lK)HwXbzu&e17^7}8_WjNF3bY6 zz?2KqVA_KzFa=gC)33hF{GVmULpQdAZ5i9f*2cE5m9e$UR@k+2j5v(#RAy`^V>{TE zv2AQ^Yztc%Tf1z9T`T8^lP69AeUWx)lcK>KFrUFJgV|tJgK2|VV9H?1VA|!o5K}I! zR_0h!?#Fuj)BXckFJljumuKCKQCwb8rWxLWw_UvD;ca-!#cL05!D|<n$%$!^;yK*@D{vdc+10E@EYER*Z6A>zc9XK zc-4T{CVnGc8NRl_e_irlk2Yscm-1+tRURW(l*h{K^7>%BBQG;PV|in^O=LuwZ??;u z%JA}LlsA`=nc}Lo0C%B!7 zF-h{}$>^uzHx11$wAHTCt-L$sJt*% zo{8pQ*3aCLCeV zI`|n9ET1Xi@>yulp?og7^JGSucX8zl&|WB0%NM~jKU10c+RB&8%<^UAc{%m!(EE(u zsiU`DddujmMsL^ATQ0pedS&!h9ldtxl_wuvN3S~3t2+9cOJ6HDIP5D~drY2*{ zN;WNP+L8IE$~JB5z;UiAUr)Q;KpWji8+G{j@Nqivv0Xlv@u}itcj9BYe6;aV_*iv( zYUHNKP1o_6pPR1ZGrvAHe3Z*ax$2`D_{?vEn#-qFzJqpS?8`FqVVCb>U3b%d_sC{t z=C^TiHk=R6sl!=tRXDp2r{NTwRfkh1rmn-)45$9)9wN_&WlH%GnN)t1n2(X`n%cW5bG`bT_&E%|Hnp&CbkMc{@fjPv=ugK8ys~o3Z zbJPoS4Zm@t>w{H>u7DG)gG;?qqU4yd9?L%&`Y6JMq4X? zL_2)UdFvC7jh}Kn`%DIvKc~$5x$>7B6Tbrgnl@Qn=NO&O=&S}h+vuuBryJ-jqf}p=W%@hgF1KcJ{NDpJ08C3;w^aF z!z&lB;VlpEj<4W#CwvWFE#xabL@GUHP-PhzU0GJfRC>vP3S)*={L;I^7^8;wxp)WO zXLzfQzwPqZhOfE&EqG=8mEpU)ccikGXBc&-CewP#jnRJ7hkIs$)E9?DkbSvDNDCXg?hA8 zk3QJEJFE1S{uSPxRd{!1w7v#f$ECH5w%R~zyR_P9RRgW%(yAropqE0cT-sWNcW{+K zGPyEX`c3pR0@@ zzmep(7Wu8s_F@jh%DU3CvL5Rg1vgp-R>rVB$CCT{Y_|>{A3jbeKDNupGCoy&>`r_v zmyb3+3LmSEPmSCZx#>DS^K;X6eCF4uhL3XjC|7+{1E2YAP;>dzDx1=7%*$NaTmlv5 zWv6AxT z`#au_)ORPzS9a!@I*DWJWcK4J{AZ@hjLJ0X+`;=?ybbSo_^OMy;B61DT)c+2JiI%; zg4dn!HF)(mzZdyWC-=R{eIIh)SNc|X=U3UEI`Pi0vN&%W-hubk;Vr}4@YOoJHoOI| z>hQ|&xU1`B>fpN@-Z8w-@RrBl z_V{bV*NneqcxC*RC%*Q?_wvfa*D4p0|HW*BOW4;hm7$f(WLV{L{$o6Mtjy+rb_I31 zlDf>HE{kh@b+nGrS{`k+j@C9>?a`__TFYpaM_Vrky%btyw6%(+9W2gwJU^{)Pg`Mp zqRREMS%rIA7iYuy;G8;~1y_Z$>u?%Q!C7@UWn$_&T+MLmZ|-*Tyo3DyOMZ9C*veh9 zY2|Ltcf1R%+{-%dgPY6w?tZrE1LXccwp)jf4p zt~^Vb_k$JQ4_00Pf06%veXWDmXS7x)+Cjv%(N>LCccQJKwa_Y~Rh?+(=c`>gEJ>?e z+S=c7-=H1dlz4@E-^$z6^gRlHTe8#k`&}XqSk9Pfo|0i=cRQ{5F?IHu( zyNSQOyYy=3UZ=gMOl)692DL9Mv)X&fxc1)CyPbJN+k$Qwdp;I26d%d~~I!!&4(bb4o`#T=* z?ArMbusttL?FH&rlter8{I&CROMW!qI&lr2wLyUI0q)xHYxS0(OhGO&Gh>EFHv+i@7!aBTX< zwT}c}i*@sjTl+e2>%sAyxqUQwj-ftdCEvb2+js-&u_4=yK5FgsQET4>o^eas>7&*K z9|s@bQu^5VRF~4n!bdHokNy|AsekzJY`uM3+F~5-vK{RzccMN3GI@79DICB>0{$lT}mGdAGMS|`d{Rx{^7G5?Y28@u?Ow4C+)_(2JO>n zx4mh%edP4^eQCG-Xt(|051`!+M7v}k2Or;3`q=nXm(s_=M=hm~{ujBafB4WJul;b^ zGbl4|Nc&kFcg~hc z?dM4M_H)snC&Sv$=XU`<9U7lUNSUYT}7R)=64PCx>iQDcj$Z`orBIsXBnN(=&Bx_ zjm|=+Jv!ylS?Dx6<#h85 zqrM#)pGV`MvC&vAP1U2Z(O77-OQSp*3ynsjTpI7XG#a%8jY3mHQ(F*+z6|a668Ap- z*K?`E{aiP6U_LO%V3xtEV79@u!4#NfFy->qbueYHTKl7{_c4wyk8>P)g5%AT9B-Zm zdxkuo;te5@%ae+ zWAIPFKLh_9oag!NjEm9!71%dm%-hxe9oY9^KY;PvyPdvQ?Z1%2ui(ECXCBxeU|gHE z|0TWqFfK)(?jn8YAJL}=CqS9L41GfXkG*$~bD}yQ|IhAbv$xzf z$?j%%b7iwhCYfaDxML|IwU(kHwU(kHA}S)HB1MXb6wxB$rHIxdDpKkNtvks^OQ}VQ z7AaMvmRh7}5h*HKiqu+)m-?aR`#vGsNOu?7@8|c&@Adl1%Xgl0p68r7=RD`k&gGdI zadFHcCdPQ*L(C;AVqDXWdC2!-$NK?e&E&O+rdTWae1kN`H%McC@&nW#A}>r{guDUd zag8;`L1B#dHHL}!WknbDRwR8uM^hTcj)`|f-))>=x?!F56xxCdF>$cai9d z-6oPHn>;pEC7WCyHa*yMm29$o*yOM=OEzX7HrcXm^<`t0*>wL~Jxk~pe-mPN)3;AJVr&c2(HrOLjTza(&o!Vb@c#%VL-9!_LGmSF$s)GyAZU z+sz)OomsN$roQfftM6g@`y=|wz3Nyu{xj)wmVWa7s#p(mKF|Drls-Quj*0zPTogNG zpU1wc%szJn`yTAO%Ivd8u+L#{mf4#}u+JXWo+H_thuL@cSwGh`Vq6P}tzm3_&N!`Q ze4b={o?=e?f-zdh7(LAxt*3v#WQ;a2Mu*B&mCEExWpb3s9idEDsZ39)OqMd)Ba|^q zWpbr5CS}Ycl=-A>+5e)9St`@bcDnoA&aW9az6})P+dwhC4HV;9+t>??+3$oB+rs*J zQCMP!Z1QC`xjt-q%51WI*yPG=%sywL~J=^KmEBIsweS4L@ag8I!{r%W3 z`o`bT*z5G~4f;nMbL^096}I^@+Z?vJK5V&5*2FefW@}<=_F*gAko^yA z%`)3=>h1owdf#Ro_R+_`Fb=#YEB04WAA6U-5q}favHj%nZO$0q@{GO5*t}2P2iShd z-;{rdb7LQg@iFda$B3DZacmI#S6%sD>dI4BRjIDr5$ej9)z#BWT|Ly*RjMm{gt~gl z>dN&}SB|>OQeEZ|>dKYXmF=ajY*`=stIK4(vSoFdz0_rv)zy83cA0UmkHxEnC2kd| zc#W{eYeh|*??lJzMRlC-hsHS;i`zwA+#$kor)Y}1$Zy2nEu3+WI5+MUdW_1UlsM`OZDZbFL#9c@@4h)^ip3J_4SnM%TizV2=(=p)tBp~K9l-#rTR?j zGmlVTuB^UnFZId(W{^W;9CWsCh>2Id7#qwH03hb9IB(Lk2>!Xf*sgABb>gXxe zk)@7oA9eJU>M;ALBUh@!qzI&w$oOZEtLn2bmE2z8jHI=X2`cOUIA;|6}=dsA_~ zHx(a*FTQ|pi1&>XuN&uihxqaMWGMdlBK|l5e|(8Porvzs*z{gDPuZ$c*<2rG^L>=< zp=?*FY_^ZGJ$;nTQPwP#HTx)=>!WP8tj)cZHR*4*kFsW2+3r5JYsPt3b^KJuZzN+$ z{BfM~uK4NXeO=6sj}jH}(a2|@I}_bmY-aBnSBn+#ZWWK>3zme_V#D16OKjPmd zZz1*GO1+Dy_cqGhF2=>bCzA0yXb17b@jJ0wLb!#$*zBHv3tmeKa*q2&`)A@$vaP4ktt0(3+v0v<{Fjv9Kzn&FYy4UAH!^n5k6<9qq#eH`(9jNf1A&pYCaajt2^ z|3`$5+Y$CT}|3bx|THG zDooUq*Fc_)JO_DB^0=On;Ce>FBPJ)j$j!(t{Q9tMLvBa*3ul7;ZXzTiiLj_nL_||! z0QnulnuwC_L?1_=5TS%3h9;6?NP=e`65N+bWXRJf$F+=vPWl*Zxt5VIge7sTP!gXP zm5D*3Cc!%e6N9ngT1Mh{uh34eWh71}eTryLj1X;! zQ-wb6dmA>Jo33jH_Gk4Aq6`ZLk<4YtG>^sKAIIpmK+e=fT5)OjBA z1>{elZx@oDNE;@RzL@q*rrnp2zKrw~+I=~F_$Kl+aeU$m`Z!$#6EjF(DRPOKBAd8M zn2A}`akcO!SXYTT)P0QzB<8ZMYsqI_CFTix;(Fmo5D$`AK>9}ddK25ZneB5OBk^6* z3q?!fR^;2z-;Pg+wMYJ~`osh19~7q~R*0U&Ln5Exx^3bS?7PM61kX4pa>zYwKQC;FM;WWfDDz|bz7qee zLibZ)Bpw&XBz`6u62yBa)`*i6JWG{W%l4k6-d~WnjBDbm57!D4Tq{icj`S96UKAH4wo=FMse2pSc?o~LEG8ycTZvb&+kwri z*#40;=Q)YjXyfao-w;a^yTv^Tt`{c$gl-Sz{!IQ}`n8WV=LU&)D9gRv#Jl9}C-3i~ zHgSM{zDJ)qFGzey-aoMUh;|dBn&6xu!8t+VW5&23EJ_6*HK`PnlqzwtVi6M+E9n}c zC|oa8>O@kh7g?o2)G2oI9mpJ0DlU;%I7U_6?WTdTu07RAQn*iHnPr1m$>+QQ_Glg>|N|&XkO(Q8eLH z22$7O(COqKBdQhtJ}bvk{_~U_By7qTNFT@lLqxN}dpnh(wDXI!^91a_ggxs_8OAog zBE~7h#dzf;>f@TBG6LPHqDmP_-K;a^H1he|rF@;X@Z5~@4f02eka8w@XQ3N|{n;X= zj3sXzd0a14#*=p*b#Px#;d-IMJw1hI7!{sjR4yhxne-*3xn8JTM!lDlHoE8?e2R z^iBBiW^uA|i|MZW9)t)dX(jC=ZDzb$Go^7KRtkt9~8rt71aHZ2r8^Ig>|NMGfzzF;T>>Fj=FoO zo3*AqO1~asoPJE3S5gmaP5CKykE7?=MP)T(_5|rQwCm@TdlLOq4~V{?G^y+?cAC;tO%KE#**pw9n6cM#wIle!B+B!#dh`FobE z6wYLos7Y3nXBAVEe1A7tD=toQjXv2xo=sFI?c(Gl&kiS@;-sWY>}QPM|!t;lWE$9hW!_~je6$q;!F(gTn?$cs`YMmjF?{83esiby1rY?JHr$uzo* zxG1TK@yUT=T#~irMzq@&m=Eb$}`K#W_!sqOL^VNtJ&^sw)<_iJBRIF z!*=H~4u|rq$j_JZbL8hr`Ca7ql=8FWXG{4e`MFZQNxoTDPqvSIvy|VBeRq;$^yC6D zJb5GQ;3g4F-i(iKp-p_NBe{_Ibu06aXS9>IWA{Dg@f~7f^7~>^aK2e{%pSkydXh=RtyH`-xL)8B;b#Sk^7n>?<^4R41 zvFXC52b*j^HYPSXY|MUaX}{ zT*rRwY4)}2*~k2nxv+tK=riO$%beaQnv>6omgFYp`>*jo*VL2T?@j&|J;!iKj^UD9 z7_%3#J(QO(<>koBmGXK@d0FzZrMz4z&m_+* zq(0suncPJiUSmFTT-b|E6*hTna{btJVbg<6wjUc4n;bS~KQ?k(*`u&AvFZM_9{!Fd z_tGcsb0@jao%{>^;XZfrU-|h`evbTHS$$QlONEI4{6V#be?psEZsvoTb9m|Hp|l4!_p?{?xLQ*^(i6hQx&2%RVf-$+>cN3 z9)eW02&b%KQmTe+{<}>cn<{K_{n+$i(}hj8ADbLDCN^e2Hrdj)`m-@hHr=1plXB26 zCw*~=x>O^5anrv;dHGUat}L&ol$R~b%a!uXvb=0Bd1fiEyJ*+ScH6|fRJ-_k%1_?| zv>_^#8Lq`I1epADf<%O|~DKT*=1l$0mCe zHfG7D`!n@?fqo5UjE)ntQ$y$%?_)>}rC(nZ*3=2hVdu9B{&q|27+%#tow z(wSwtPwLF}qccmo?qWHPX;UY$eov;2r_kOJwDVNjIg)n%OP5DiRnp}S)AgY1D(SL^ z>2m1IlFmF#mo2OFaGhDE>n@i22JIY8`_5oIc@IyDc$d@|+DU9`>X5Fgq|29dxiVc> zN!L@-Wy^GCNtY|>%rf04b!Pj~nI&C!vE2Ez^8(s;=r>>b?J51{O266CubG;RJ?{ic zT`CeKIggwx$vw!~lAJ^S#6DXlo5U-4reabCH$Gd}4T<1#Nh0WcfDaE^kQcJ1hUbeA}ZT$e7<>-D$ zd7k4*-A{RrPg5%>{}8%|$@>v`#EGQ3smElSygw+#Ie3b5@Km1t@}sonG3+=8Ppu^H zC)B@6j7vRE9Y3Rv)s%Sxd%i`M`Z@Zw!jgIl9Wi$)j+s(Cvyobl9nYYoHc-#6sP7rt z{Vdzv$bRxU_N$xNK5=p>z9pUd4Rvg0yL^i)#kqKj_kO3gh;OD|6jM{2i>J1sdx?7f zfV`b;yn^3|lS^?Pp86wg+$Gvl9OI zDu0*NDq&YS2Uo2ktk#H-S}T%jJ!$UEs@(fjdC!mPBu&h}+DM*TSXGaxQJctX7K%!Y zoa!UZb!D|(+^YJ;LNy?6SA*g5cY%lJq~-~_0^$bwt51;U!ok>wbWs>@hix~Y3E5IubwQbRnE25 z5yGOLitek}oFf{TDe5I+gnB9MyNt1zB2H2-r~FjLk^3|171YN&VbpI? z#|*}W`!niQl$|A<>eaMoHo9+%W7Rq081)*_rCy8vIuTUAL;gJMuE%b^7_KfL|3>V=B_r*AMG4mUx7Ow!e_+vsz1WtkFagtm8lZ5rRLCc9a+t@tw*W%G3r=J-cN)} zT}A#+spoNQiA_?UU^{Eb=em}ajgF6%`?>O+x>8uuRiZA%^pVy|_4SL$-4X%pnqK7jmO$NV~;JX^$A5 z_KH-xNz|uX$oGkgbSq_ug-y3px1ag~B7B%GkFKhu%N?fcLDyB%We?Nk(3vHjd6+I+ zR_Eb5vrN~Wj?zw^F-pg1UtG*iCupleJCn5YU%IN2E??5+%5+^NT~A4uEz_ALU9O}v z%XFXAne9hsmUP`|_H${Sb{<1JyJ#oxB}nt$@HE#L%XC#GUB0BtmFc=lx}K6QTc$Hh zx?D+TmgzpJGuw~OEa|$_Lun`1Hq$52zAuSj`b6f)F!I>nrrF=7PZB-plkwXr~GVjiBS4$qAh*8Xia~ea$Mg`^X~5S8R*WWzO$%rj8M{NQ{Px|O!^#gZ2DYu z^F&Shd~tpH0`ZOX1o8Fsg<@3tB6O34HGMJjXR+*3$j zPkZK5_YJgf0qwg{EK1)bZcpDV&Pm@Q#-$fx!?m{bB5{BEHt}Hkc5z?&4)VUw_70e0YpMT9w(}Hy z;aS@BI>vx~ZkqQXrnz^Q{uMUQQ1)4IS9&A$K1ZFK*#7h6|Au^GDbv3tk66m|?}Rt~ zBKcd{AN-#Ez&7$;V!y!gOL{xw_6qZL2itg+`gc+{*I?4S(7n$8Jd2s$EiOvGDb7uE z43p;j8tFZ><|L zxiXvHwq;_IJ%UX)Hm0=U@JnPW#Md+22hCK8(=)tRGE>d}#O!5iL^e~~r%ewwd2Fis zvB_c6gH2aIHd$IZ|lyQstjE6pXsiTR0HPffw z^;PKe{ph>U_w=JT(dYWn%lflN(3?elfc6Km4bk?nuw{7OBr|}vchL4jx~ju;`7&MC zVY;3&oq3opSEf6>&TKzAv#8^GOC}{k8I}2y7Qsx0c51Y9AZ_QGOs02z9(`3m`X2OM z{pfS(&3^RRBh+txsvkuAzaT7`!J;yAoM^}lVZ4tQ&dgBZ$`BuyIYC%6Ct~wu(U=(~ z7G=I70-52WJ#&({EyMXn<`nd&q94f``YK~^8f)lljKS%Q!PglB&Nuqd=h0X7qwhiA z)sH@h-t0%8JwpBFr~0#L|5)13cPcXDX#crlVrD#jIFI(9Pe1zBSE0}MqwhlB(~sUn zpX*02>(3rRZ)P|b%S>jiU&30y6#rdD`=`);&c!lQX@B4PD)jk&^j+wC`q7){bN%RL z{n;bv&CHdwe`gKMY*2;qMS*&+<#F{wln)*mNPT=FrG`r?99DlTxJ>L$vJ*zIpawTOXfbt z^M1zj0mkz|#&ZSZ$$i<(!;I&DUapFA`TwF^7v*~Xi*hFAa{om++0N{LS=w-><*0&v}Ra&0p!myVP@JyF7MPM`724UDr|A<*+-N_GOQ9yJpeu z1N!?R{Ux?E^AY=p|Dn&sxn+2MD)TY>hk|I*1p9~H?ef@F9fe&Fc3nqdm&49H3cKu4 zZr42APOA|@s}(7&PGq%uVbvPwpG{2C?4qKi%cHC6L)U|@s}Efco!N&j+fSWluR1U7 zY!c^c&Ei3gcdBYW+T6--n`qG5MOfpyrN+6F78D^Zgf2`TF}d0R`t{keRg}$Bwu-Vj z%H|F$o2P89RJQ7{vR#zzp==jrvy{yqROUQkM5oX}pg@JDvIQb>_z?F`3`Dk)QWgfcyp$(NPsqD9Yb z+5e)9SuArNp_?AMc0Kchpwj=orx}sF4v2$5}k=I+lQ_jo%tCZaU9xW+Q)ZCv?chP=K!@sd3o}x z$jg=G^^n&^UbZYRN1jPucUfMxRMsrZGs&y`#EwhVLOd!eE5`H7{YqpZ3i7{DC{#$L zQiVZ-1{JQn^2);V&p%&y^UXI4`}glJNSikMqlKt@PvNYS_7rZp?ybU_?193=4?kQO zH*Q?vq?1mPHpTxcj@w>n8T@YH^h^F)xcTmP3hSSJr*QV@5rw%|UsAZ|&Kn9V^Y;~= z-?*mWI(<{YcHsww5jTHOxcSE)6rS5w+|DP}{Ofn&)`EEO?SgosP&j^Lp>XxK!l&E% zml4vkrwih#KNiGm2MgkFg~HT*AN6V%HNRExJ-M(@|MHr`RqyRC{G{+#~bK%NYt}d8wn!VahpC<~7SBk>Jn?+&m_AeD)eCs>C+AaPj`g=rS|5{P_V9VzU zg}s;bYWL#{Md77cqVVdH!G(QKU0>M$%1?T=TNM|D?VrbY!})*KafQN@6(#;yZ<3 z+ zpE|Enc!coXFDiTw_#O~dz6X7eAb0zC*R=0ZA6LwLKlQCa{<-gI9*Z0F(Ws)?6;YliS%e!=w1MDp^>F279h%$KMuSyy3S zEv)p2$QMet3x81)pyr|CG%;RG6?4TRv0UWEQ)08&Dc%tuS2!wy6`6{m6{l5Mo@o}Z2RDbQEc2~Uo*>ojut1E6r>WR>)s61Jr5Pv7%EQv-<~M8u`Esbn%m3Lvi$bXrfaQ-rS-Bj^QU(F zXVZ1u75}tp}r)A&g5HT@CoGvDa=|%rnGHT`jgy6{++WFah zAsUObuRK>Cr}M^&GD{)&8gN;TU~867(?Zy>4U_ZVuO!B=>bJfBV>|tgZE?HS<-Pwq zVp;0$ZRN|nBbKGVy|=iEc&sD0`QYbz|5q&A*L*CEbM^Ax{~gVC8;11$?`X=pw)g(; zXv#Lv>iyr*l=V0F{_kkYMppIyuivtA4_(Dk#AuFHq$C8_ng!3Wvme5@{^$K${4e^q z`hV}==6~J)Xa8RR+x~riV*Js)n$h^bDBDlVZK8|zpDvcdqy0PE_dd+cSWf(3 z`QL^=djBW?au)Y!pK1C3?O*=?&6bDx3)0)aQp>C5nG5r&*#2>Xr->N(qig@s*~z}} z{Kx;o|85@GIr6_x`n8;G%AU#dqJf;Ll%E&1eR>`w^`D#*Nx9;}3ooBmJl1O@CI5OK zIs>X9uaUps@(jqsKC6Y}LcT!GvEk|BeEN2sAO>1ICf11;#4hnJi_ldOt{7NxLdEG7 z=T}UtxUS;%iu)=at5{d@LdC9%cPmAut1`?Hf^4BYdY}yzdp?^UIHfGjarMQk4@Dm6&)5_A= zPhIla^f%42H1^ZV$4jQCmgy-!ZS7~%SBw!Am9~m1OS5HwC1V+E8EzS68E?7NGSf28 zvdFU3@~~y44Ra>jw)xqjy^|93_R-aZqwt7MhkftM^vFZ>_XCtZmkqRksecj+v7yY(&W ze(T3I^)<~k18OoggKLJ@jH(%5b7{@Ynt3&gYL?bKT(h#~shUkS+iG5~d8g*1T5GMl zHdvdiJ+}75+S6*s)=sLOUOTt;mf9t?57g#s*VH~!yQOw#?cUn=>niIUb!~OAI=yaa z-H5s~>n7Aqt(#r9pze;k<#lG=<8|xnHrH*hd#i4L-N*Iy_09DI>NE9&>xb8msvlo} zY5mOldG(9xm)1XAzq0R+#ar~ab`YlFKX*pO^Ew&BEv(;CJ$Olp|kFt_2B zh9wOTG~^rBG(6L=rD12o-iG&Wl{Sa1%@(uiwxPBWwli%LY*THsZ3}F7*p}N&+vB$N zw#~Nfwzq8iZ6Dj~?alT9_Kbb7eYky;eZ2ir`%L>h`y%^N`@{B?_NVNd?Az?G+uyN& zlDJ*(Z?Yz5Uex z<;N{+IBUvthV(4w;JY~Y{s(8S-qzKvueH71cA)K_?bdc@yRW^|KZ9eQmpBT0hvN_{ z#~;DK=K{wEP7RzLm>jq&a6{nsz|R7I2Yr^f}W5TC~&kaut zUl(2+UJ+guekS}<_|5P~k%mZfBpMkQIX*HXa(3jR$Q6-mBDY4CM^;AGMm9(OKA_N1 z-{I--cf>o4j_-Fo)UmqbR~=hB-t2fUS`}@KhN1(b$45_(o*$hWofG|T^q#00{aJKV zXG5pjIjr-n&PzLQ>s;QM?|d@0Aa-Z$q1ex2n__>6?TuH(1M#lpnaK;1mnUZ>mnVCY zo0ES??nxdi`BQ(chb%2j`YCvYw35>g^VNP&nTG@nK7A3 znHib+nY%N&%-YPR%*&a#GVg0v&7&o>!P=?XcFF(qx2Y*TF0k)dstZLV!TGPK=dyWPe+yd-VQY!BETL58-xZIx{e zGPJF;J!9h=7Lv9twwG-?k)dt3ZLjTJWN3TecF3aq4r^R-km0CKiz(&eH=2hPq0t6Peq3I8TQ%s>yV*+fqkK!{z}^KwlBA@K!$eH z{+OL-CME4_?d$Cuk)eIFeXD&tGPLiqzh&Qt4DI{vAKE`gh7OCP-od+)B^}KUzheM0 zbR--ZM;9`540fF07>*1bBORk0yuVG-G2SuJaVau%Omob1%t3~Zd5)VL#N0|c7CV+Y z?n8!-haEY`N@VC*?Rd(u0U0_rIbLvVLxzqWj@KP~kfGxp#{tJj$j~XARwwWBl61PA zK4%aaI-|~{b09Kw9_t+9JP{c>Pj;T>9E}W}W1Z(aCm}=U6z6p3EM(}M>zwbr1sOVT zcP?=*Lx#==oR2v3$k4gUxyHE;89JYFKJVOu44p4KcRF_?L+4)SyUzEKq4S`t(p4*} zC0!1e*VTp$U13+ur6NO@?i%D8iVR)DTq9gOPb}#=(>2aD0U5d`yQaEkAVb$|*LAK1 z$k4UWb%*P2WawJ%TH)fIagwgbT#vifB16}D*GAW7Wa!$;nei@U=z7bw&$S;Jx;}J$ z+-O0DjrEPL#%571+30T^(3n7mjhV)-#=*$2@r1_VjU$m^b<| z#+i+C8s{Oy#+w=!H7-VmjY}KvYkU|PHs%^vHm*j7jZZahXxxMh8((PL*0=*1Hoo4t zr|}(R*m$7vBMyP9CEZrH&FvP|l5U?n=#C;ochWu3eJnC`4{@L9J{cLhPjioUk41*= z^WBr&Q;?y1x_g#;E;4k_ci-Z^9T~cpxR<#fK!)x|+c$Z*jkj z4Bb23yWM+{q5EC;`|g9t&{OHD^*BVeB!4^FJYi($iFs6yjto76JVQOhkfCRU=XB4R z$j~#+Gr=<%8G5FAW_V^JL(g@d1)hb-&~u09ZqIUL=vm=0J&z$n&*Pr8p7qGkv(dBJ zvlSV7wtIGY-a>|+eV+ZE50RngW3R4Bz4kYQ84 zX;sr2WZ1N>>6xbIkzv!8rk9&`BEzQLO?#W(MTSl9Hyv!QM25|^&5mZTsFrMQYYsQZ zkYTghtTzurhRs8phc%BthRvrppV>SP88%O7p4>bY88**op51&MGHhPZys-HWWY~On z^YZ2u$gtULeysU%WZ1m6d42OnWZ1m9d291_WZ1l``K{)C$gp{T^M}nJBf}O;OMQz= zR7a&p z2pRf>&+4;@YDu5l=ko=Tp)cx7`UWCH-?6?Sz7vt5?_}R;zR}3gH`aH)ZxS-}P4P|l z%|eF0xxV?nTacmecHa`;GGxf{-6LEJua@+!;z(~DGW0#;d)~JN8Twx4&dY9O$bFP| zeeWYf-$CxC)QW1!RtLw0ZOD+j6|q(o8Mf-JgIb3o!`5M~BU(>KhOK9|j%%HO3|l9+ zPHmlm3|nWnUe~$+8MZELy`%MRWZ1gAbw#U*3|k*-eY|xoGHhMny0LXLGHl)2y1jK5 zGHiXTbzkd#WZ3#)>&I;tWY|{U=4xve)sk)gwgGJkWZ0Hz>uMW}4BJj<8{Re&8McjT z8`Cx(8MaMqyR>Z@GHjdKHm7YKGHko4ZBg4|WZ1T}?Y_2$kzre|ZDrePWZ3pp+lIDH z$gu5&wry=YkYU^FZF}0@L53Vrf7C9JAxGA>cDJaO%U?eDg~-+mAo`YZjleut=*^n3kn{xCB1$NZ{a zM~41E{-OS1$k0E+f4cunWauB~pWvU24E<9%hnS5F{nz;y_!lBW{~i9j{mYS|e}&)l zKZXqbkNem9*CRv!M*n92R%Gbk&Nbh+kRext_xnFYhW?MaGFmUHCAkjT9PlHN z!+{(!46F>S4m^bn0~-RH0xuxLz_!4S!0X76^P+bG2asXlqo4>{MYUwm7IX)F$S@cT zMuSOY7#tWpHaG+s22Tv096Svf21f_S2G6$)6_pmn@K5V*(9VX6<=arT%z>Ka8mL?5Lc?+sR4g|`)p85eEW8g1?Luf+mO#aF z7gQ~GL(Osz)GbS)Vc|=SXjeeh@(|Q44@2GZBWPHD3>EIsOL*23-8kS!}#lqX~(f$T%md#MN@C|9SFG0ofGE^;pfSP4H)Ge<-!}11H zEW4pee_ktZArN zGf=f^P_qt%y7hC=upSE)EAOdCI|yplFF@To7#dbN(-fDs9T3Y!+Hu- zta9$DRyp@HtDJkfRn9%bItnV*Z$Q;L8fsQK4|S`YhlcfBs948C)p{P(tmi}BDrci% zodgx@#Za|!4<79$P`6$R4Xd1iidD`))p`Zgtka=x{T4K=v!G(V8miXWP_xSUsaxgz zG_2o&igg}Tt=B`%Iv?uR8=zs8vsAIlS*lv)EY+;HLfyIu8rJVa#kv@();pm_WQNqr zIc(HOeUyABmxo&2qfoDV3>x)gp;CViRO`nZNy-dg&dtUV2BX zm)_CqFN20#dRcLw1y%PLsJYLEx?9$1xTVJxxAeH`mLAvK6QJ(C5E^b-r{b1%s%}}Q z=9YEpoc&0x^tj@d9#`Gch9;D;eH7!oHK-dJJWi;1Tu}8iLe1lb zy2k?zkDN;i=VwwY=aS|b0Ci6XG(2+ED;_z2RF9lLnn%tbopU&}-ZfD1{v4{_wNUdu z33bkF&^F0FDowJFYLo1v*0claO|L?uX&+RY{sPsecc9kvSEzF)fwpB3R9fWBR9gl^ zt>rkVw+w+s%TJ-w@;Fpmeg?Ic)lhGF0vauH>q^TnpxUwyYAsJgy=6T#eBDs-nNam* zq2`lwSeNl1Xp1%biZ%O+HT#M+6A>b{vIfQXOQ`xbK+PvTuFDt^w7-Rl?**v(eg`#< zl%@7XX!zs^C_Xs?s!xu9=GzH%-yfmjlfG7b($}i*&rtL2g*s6tQY$^K_@u{Gj(M2eei>2XvxRq_*h&)}r@Yi{5W7dSAw=pbbE!H3-#KITN&2 zITLi^ilkPKo6;(Kt+vWuYpt@^daLZU(fTG-TIF0-TV?yTR@r{NRkq(~lipO?q&L;J zzd@~SKh)dg95&iy%ayi&K(*~7sI~nM)Y}e1qrKRp_F|9Pi#=*D_NcwsqxO1il=cRw zw%efAZijli0~+nJUrM{&m#XbeP-}07dV32r+Wk;zm%UcoWv{h%*=xOB_S$GqL#18L zd9_`GTKhn#x63(i_^*MAe=b!0*Fw#I9n}5bfrelDTJcL?s~mMo?eC%P-v$l8^tj@e z9#{R+nXgKD51Y8?MctsEaC&HQc-&{)B>kKJum_qfzeP2oB`Fq znNSOy1@*ufXap{V3P;vbdlA$Elb{~B7#e};Pzihss(~3$3tS0xj=rTL4)ITsl6Affn`t&`~d2K<a z1;_)HP!CGa8o{CmgGCPpiyjOXJs2!{FevA$64am?lyg-J%DJisb!Y^OUI-Sw5G;Bj zSoA`$=!M|9*eJpAPz|03wcz_$#OepMhHNS*Qm$LL>Nls06n`HTV+Lf-gfo_y=eN--1d|dPEKG zfm-m-P!Gy=X9PclN>HvTHCWsu1&e#6;6bSkRZDHiDz%{+sD)~w9;$;zsJMyYXM~Q0O6c=Y4Gn@?NUkY8B-fM?8U~fnSD+di z4zbK{Yf9YN3mv9-0h|ko2Y!lHOE9 z#dQ?AvZ$R|)E504D*886^l#{fqIN-1Tl8Y)dr5$b_TC=b=pqfiSy2KCU7p%GdOmC%z=4Lt?5kX(0qNUl30v=J(y=b#$e1hvqw zp&oi38X@U%B_utrhNQ=}&~~VYUV%pFEvSTw-Vg05YKz_v6}=z&dr^A;s-gFa+V`Oz z`T!c?N~naZpc=M7EiC7Q9=1Xw+zgd)3sl2CsD*7~$dy4Hs8vxVS>Y#T6RX zi`wB(2}_@K^2Q=l5Y9BSdIP!G$M zYlOcImGB&>hOdEIcrMh#*FqzF8&tx#LpA(8sD-6Z^|17*5iWW#T=ZbL=)rK&gW;kF z!_sR?Sb9wjORs6+l~51=1RCL|p%PvX)$lK&7Ty5$@UNf|-U5~Ii%<=3gy zkwH+2d;zKvxn{MDz{s}bpCEh4?FN2HgH$Y`iU&VXv7uYN$q@fLde?)FVHKM&voDMC8grq{9Z(6i0aZ{RAlIYOA=jhQA?JYFA?JYBA?JYJA?JY6;ebkq6RI69 zsCCHspm)gmV06fpt91CF+R+NNjy9-wv_qpq&IF}H&IGk13bl?-sCUGm(J>Gz9iM}0 zhYq!lW1!yA1&xlOQ0e$0R69<9TE~~5-fK$@~jgECt>3ABd9qXai@k^+8Y=B0`Z=urh0#rMG2el5l?(`11?u?FI zQ0aILsvWOGt>X=-ckG5n$GcGJ_#0F^_Cu}X?@;eJ0F921q0&)+YE(ciS^@QFB{ZTo zs6_2hjmk0CqH@gjs2p=6Do0g`%28FLeyBwQP>%+o5iPE=XmOQA(?xBjsMU(vK~RZ) z0jkl#P>UW1^=NUGMNchiM;5hTEox6IYQF}J=s8e{j)Q9ST&P9ILp^#PG@_S4C3-1T zqnAM~ItA*{%b^jy3Mx^#n$+mkP>arndi2}Sh{_eDMCA%nqjCjlQMrQj=q=EQE{00< zPN+tgKrMO~)T4JpBl-|jq7Oqg`Xi`CAAx$b8yeA-P>ISppho2!(4uk<=utTbjOeeR z5`6}$(PyC+-3ayQbI^!xgG%%zs77CgTJ#T4k8X!XXERhfTcFzMgIcGY^LnTBj?pP+ zveGGMvf6nJ)H=JM-f2Lia}-oMzX8?G(NOC=1L~b;LZkB{sB}((YUjmJ>zoYrPC3Fx zryN72Q;wn9DaTOjlw+uO&VfefJy7Xf3f0bgq1L$!>Yc@XPNy6brPC~Gvqf#LsO^D9 z=W3{QJ^|IvHBjsPIn+DXLZefz3#C)83$;^@o7O4EP4ATBX2foXO6+@3joksY*!Q6x zlfE-z#T6PWuFzOVe;Khip%Qxws*I>N32IIvw z7?(a(;?k#TT>4atw?jSdhelkkCM7-)s&VOSEiQen$EB~0_%Nu%zXH|xaHz#kf_nU9 zXe7r$B`H^snv^R@OUf0bC(nmQQu zO26yLC!vunj&rg&&dK69CyV2pERJ(h?)Q|W-0!JLIp$hYj=7$cV{Rn>3YDbXAF4^Y zKh%=@p`QFZG?M>-O7bJ9CjSR&$%9Z&{u3IhTBxMzpqi?OTB-r+DH}9W9;l?eP)#*K zE!7P5lw6fYDhicUCsb20sHNgiPbHv{lAcmhT~JLKP)i*P_0;E~kvah?sV_k_bt2SK zUxs>0de%tEeWQ|+`$jb-_l;WWbf~Ak4vo}UsHDz;YD)TAOG#hrDd}q?H32HA3!$2t z2({EjP)|*QMoRixNl9O;DY@s=Qd6Ox`X)3~Id2tpFI3gHp{DMGy80JrsP98X{Q#=! zhfq`H*y^erTO%EWN;(A9bQo&s2-MR9ppi~NC9Og=orYSv_*Ww>=edy{RMdW18AH4X9*BLp5^-)G}v6J#!W`G8aH4BR!>Nq^Gou^pu{Fo-#7h7fNOtR5MpV zEi)bJnQuWOQ(S|Y;u_2p*I;H|QG0z+`+cZn7DF|2C)6@apq{x48krwKB_r3Vnvv^N z%gA-AXR^@9{0u6Y)lkhm0kzB;sAql-jm)p0l6eNInP;Jv*$DN_bI{1V2$jrMsAhf- zwahlCXI_Fv<~68fUWaPt4X9;yLp}2*G%|9{DjB(E)y&_amN@|R%zMz#DxjiOLRG7R znr4BzRt*i!0Ts;&Rm}x8tr6;)8yZ>%R5a;FRqKSBCjF>u(vOB_Kt+@OQnk-RO_TFb z*W^4jwBbYE|OLPpBP11o^1iF~pEhtDRjtzjjgW-9(Y+Y9Fs%SG%cpD{Bd!Q~yJo&o1O?6xAcGm47qWoaJ zwcb_lt@qXY>%;ZY`b522Kd`>5eo+08`V;C$)Q={{d~*Ht`Z@Ir>Tf5?d_{e}es%r& z`sax=-&Mc2{y_c54Yfp?`x{~n0~-c63?tTjOv8kRDGf6lt|Qufal`V4M;cZ(tR>$3 zg@)}7yBpqV_>hQmo2}UvCT_QjnDdiuqio}d&Yeco`Fz_V+ucOp=7>9AXWL}kN{sCu zBF_)nt#%iYv{7Qu2iZ@wk0knh4Dsg^i9nx54Eh|R&~G9ReKC>f_YsSpBN}}*@#q_f zNPmHt^c_T{?;$Sz0Fmi}*mN7w=|1AqqeQ3=Bu0G*QR*iXr#_lU_4A2UpF*_yEaKJY z6S00fG3)m^OvfssRW}l~zQggB<6UA>EyS(+oCBOHk*6mRxjx!C-Z`1b(mBMgFC=>X zZsONh5W)T!G3;xJV&6y{`^(PPo%@{cy9AN!E@IjJM6)Mc8CREUuN*8+*F^gvg{D8mNzVWM9A{4yS_>k+)goy*mzBRqh%0xsYVmAGDDp0zlOU5WBtqg%fxy9`~3Hb^NChjAujMg z;(tU;@aOzFaUoGFkBN!?RsL1tBL8atYB7oEm9^qx|2qFVG19=EXzi5Dbe$v z6PE=B1&$X}h(tM6Ob?6>oGoSrE(}Z-a|6=@SBd$7>$ui^3z7A=i`$4fSuSoT!u}89 z&cGXiJz`1VuSAqA3;Z)!DIN&gxrY1*vGBKwp2$5B-oOy);Vga?G4KzGCpv!8v0AL@ zSl96@v99B{9b3gS9lJW-6wi0O+wq>*((!S$O1vDkab~wOx+}U%yg@YlFtNLH6z2kO z5)*%$*xPvzNAGVF7r#Kf8@rt&>c0^m|B!e;wvr>{4~UcBBo4;5a>V=3*xuOQipto> z@yd!SV&#`t)FvNE_Egj*pGZDg;UrRiP=z;jLTXq=6EX4wE85b7(nBiRiI5*r5zc%g zGo~Vvxgc{pH*oN6g5)nVnHjxyr|0aeh)dsKf1XJ69oUzp?7N9aKVUyd9JDDn;uuDx`Dn*D$3)Rmo?>0jAi{jUV47FH5;BE*tUPepi&Z?k?95;<-n8Z*Vs5_wiK>3SaVyc(yBqfrMSak1A#U31_G4d`B6?bNcM&x`%srAg z>2W;&GQ~Z^J%_mHh3>^fLaz{(Pf|#CxR(+eZ6ZD5e$2hvy$pUBgo*}k*n`bA|4$p4lnhzlD_k857B&ONo zttFz_=M5tTy)ojLk45V84)G52@|Ak;2qKurdM6;A@10EC@+_p8-nrfd-bF|YiCA9d zrRUxUye84gYmioZ*LgP*sci9XCQf;$_bsH|-hD(TA4K}7>Hjo$9&k}y>)+p97F1L$ zz|xl8Wt)hA12(XufY=awFGx|8Vh|BKqGE}$MG-qzM2%uMiG`@~DjMVJMp0w$ovX&! zeShaU2V?F{a`V2Q_y68kKReI)&Tr4m!^}BnX6HQTjKbO8xw=g0TorN2I%jXB%+CIZ zMsA8!W9LxkcFtXp>V!DtfzCsa8tgm_G02%njd#v=o`v{hx$}H{aJPXN7Asp|Lj8vja8sdT{BbDVc!)2b!Vx)2r5xm}|5UI^ByATI_1gXO=CtR#9KO=Pk z5y1Cdo+4H1@)FU%cu`0*}KbiKVlb@n0@2~Msi`Ft`}UdBbFEY zL?rJ^H<=suiLqS{ZYsnGDBaXWa5*B&t!bE@tKCt4CI{YHs5Wj8%mqoD#Y<_b3W3WyBdM-EJao_qiKNo7-!51!8tl+7Pkp>aIh)uF~C%Xx;kmC~fYI-9r(hi_(TT z-Cphk-G?AG7}2>I?kH{UwE@w%-?$${s>uB)B5_NQI_rMf z{WhX-mF^D_gZmaS2ucryhdm;1-H~$j(0OjT_Mk^GQb#>bA)fXsQkOk$dp!1d zfz)$E(kj)JWJN$OvBwrE>bz3 z%Mt6k8L3U4J3RM#9!BaQqFhgVUO=kE^C}`-OObl)`NH$P#!jZxC=uK0q){W~uF)f+ zH4rID6QpU5-fN{M9I>q3&|j_8^wGp>5;bW^rD{fNvNR||nrWIjnp{mDQp+{#G@H?P ztkmq#?A09BoIt8ra~h)wuOoF;b5~P}-d?5Vh3381PU|33YAb1-v}&ypDZSQ5%lclG z+8}LnZG<)osYq=%Z9nv&Dz&lNL~WXOEK;MjS=t%ec}UIC=4$h_>ycWg-K^b(UQ4BR zulBI^gw~4GY3&8=b@VYRwRg3p7^x^j>b=fR=YU>ArOrvG)){raNcrdjbq#ebWC~q# z)(@y_qw9oa7uM6K>!-u-KHXp)e!1&Xb)&HytHZB0UA7Lt*K~7qXfJh(Sq~k?J#NBs zvu+obdvrxu9@G_Md4lz|>CWmdV|i6~7t8xP{4Ul#*Wt;A?mg=}^D6I!-??7Zz1*=> zd*QdOmzni*VdP{GmJPk&n^&k;J1iqvUzJx6)<5Mn&4m2;UXQ(AVEK~u z_~;dSdn_yIov>8t@hnKM(|cp-qYuQguD&srP4(eeM(Crk?4<97Wgk82f<9iKtWVdE zM{2BovVNw1K2r1ai}kDY8<1MBFVyeR7a_G@e?)&$e-!0dh8x%67 zL1rj#sEXbpr9oxT7|aHLqqsiT*H~FAnKxvXpL8j&=)JIdeDbm!qq(v0$H?qNpx zG!HbRe3}!@@XefV#_=&{nsI#0GuYF9^L+DCU0a!rJloDzm&t6o7~Onk%Qw{>AzP%o z#cZV=x;kWwbvwwu)2(5)vR;QbcFD7=2J8AVtBUq|#;i+9jk?Ubb=I9@*1ZX8FRa%S zpKi?7?CO(5wzto7veC6Fla1HCX4XgLzlmAjjXJyqQl9Ns=s%fR{|5ePWJ3@e0EXYQ znT6jgn1$b`$rhov91Oq1$rhtup7A^M-owIg6|?YrD6^_))HYc79m*{HzRE289>XmB z?!zqn9!|D5o_{lr#eq&}3@|(^N{Jzc@eve}oe)nS*evcsA8+{CnqtRc$Y&>Ed zVBt6BDkHxoX5lwx3?{!Pk_|z`2pE3PV-|j|Vitb?M7Buxl3DnTw~WIU>kgBBhnNm9 z{B~m&ekU^vzcF(e`Az2se&1jWzwxFd^1DB?@H?GsZ}f^Vjz$j$v+;<^fQ8?f!IJzA zU>1JoFpJ}zMK%OiJ}~^I@&mtDGlt)1$rd5%0}Q|0kS#`h3FCLV?aab&cV^*t3bXKA z$t=nVogesplQI0Ja*5+TfHC|YNwzooaTrIVPlnle#F4or=&RfBPN1FMSG zJYW`ndot_RSwnugH_=RG48Nn9h2I%ud;6Ru8|`zKY`j*(Ec|}KtnWrm9cJNoF0=6a zHrWuw`+?#2T4v$*4rbvu>E(+M;|7M`eaRLh){gNzMC8H3Z>sO`o6aBnrg8Q? z!5Ds1eS+WTh~FXV5$oYM`3JuzGlt)48N&9!SD0L?+{sv_3)eggWuVV;WxEw z@SExr{I0;(!|xns;Wu5M;5U^k_)W(Fe$#P;-&9}VH`NRH-G=3Z-y4~Q-@lLz(Ng)8 z=i})%*2@bx>n)u1R>Y68_4ycQ$8}=p#LycEovu5`PYj(HdXUhmeTPmAofvws&{M?r ziJ=oiZzy!ChsaM1omg+hlX&vaYaGwdS#RMC{kYJnJje?;LnnrQLg;kdp%X(VhW>-l zr;6uqWo}%F3OMcme57{;S61rALVVKi}J%6x+p)&J3<%bhcooD@^e?{MzRIy z$ALf4iQ#{#(5c-;`5=Z)44v9H9A96NpBOqZbZSSS`w5*GIx%#ruh9L4P7IwGI<+s* zYYUwiIx%#r$IyEUoftYXbZSSSQ+o;jiJ=oie@FT95eLf8KQVM-=J z;|aMQEbOCx%`{=ovyMhE5EkFp%X)Q6#7`96GJD~ThVLG{jbP%&d`aWen)s7CdE|%<2t!c44oMI9g#m+=)};8q2CpHL!lEx zCx(7c=#7L<44oJ{-Q~&i(KFBYPYj(H`beH1efC@@)>}A3&l37Lp%X(VhE8ppJRhS2 zd46K(#Ly>;{1b#u44oMI6rpDdoftYX^lYI|6gn|om(0Lnc#aJeG-10Hnksm)|=)}msRp@PmP7IwG`Zl4r z6*@6=V(5E?-bLud(21e%6M9#n6GJD4F6uUVZ@7P=ZgYlyK;-W(bYkQuhF&D}9zrLE zP7M7Aq4yLzF?3?+=Y$?3bYkel&`X3KD|BM$#L&+RJx=Jv(21d65PH1OiJ=oizbN!U zLMMh!44t31e8ki6{#^MBDcg^@B66J)(Yi zE*3f+H+cbP==?ZZJ(mcbjvI7h==?ZZJ(midjvI7h=)~CnGNE@TTfiAQG4$m^7v-Nb z^s@3lmFtMO;>U*=e;+TWR_#2Y-w--6bYdKzFNJ647jTBo%du6PAoS-VKQVM-%3jGaE3leY`?0|iLrfR=!1n`P3XkXiS<@5aeYEe zA#I;C>IX4&Q9dxnkn5s+aE30*2Sy)qU6c>b&_(&cxJ0gt^1&IpC?Du|<~lL<&+EAr zBMsU5e2it}Ix%!&I=_!7;0&GLM_4hgk?)`1 zM-*^|PK^9lgof`bHa7aS~jhv0^ScM5JKc$eVDoJ|!4j}@#EoGsWz@KnLB zf~N^~6Fgn8yWkm|ja2S%e6)hs3cZ%#b%K2b=L_}|yk4-s-~z$51&i`(j1qiS=)DD> z6Wm8|iQvA1&kOD+_=4d6f(Hmr7Mvh>q~IZfGXxJ6JW6n);L(DU1dkE?xnNPBF@}+s zAATII7|qDpLwr9+uv+j!!JdM11#38)Yy{sIEc`Wf7tH;(U@Rfqj}_wuX@3}1$eH_X z!T3VX+;0m;8gl04#)2`2oO!*qm_+@}C1tr$Vb*5_lKA=ina6GLAq^tnPOhE5Efe*Yla z7&>nUtQh&ob!rEo6GJD4f7IUK@1u4BIx%$KPFOKolIN#(0y;5tV&td#g8aqwy#mhA ziJ{*T`K>}HhE5Fqw$OhPIx%!&=y!xp^%(mnhE5FquF%hk{KU|Sq2CjFiO`9m6YH%t zs6N2|`&{P?ofx{S$p2pG#L$VMy9u4{Kja0Rp%X)=dMnSzI8k;S3pnd7oS{=ahAtO6 zuh$mN(5YTS7xyEak)K#^^`YahxA+KuFrpIs(OWS7ky$IoR&uT&SR8+hiR8LC-WVOp zSsY)ClO(Ps{@z+O1slm)Fbb0ECc$+Dn+4YsTtjeu!QO%!2o7Rao?k1BY(Xtz_)o02 zVmu|+>G~)y;0&D@dWg{JdI_BvIx+MXLZ|B|bYke@dWzAReEW30fKCiuTt6^wlj|MH z7I216thf3Z*m}LiPes;>@sOM~g86mKg7K4Vy%l35xvmrJFW5^kzm8cjx{|){&+C!J zU$l1^k4O12YLDx@9$7Gck29|~7L4TM%uL({Od|mJ` z!J>R&{36dU$`?j5a=sTb}SeNNc*du zA@nJNGX;Mkc%tB0g0lqA7CcGt9Kn+X&*dz$q4(7w=1t}#V{i20Z;+JBv$4kJU&cSh z$;#pTa=fdEf1AA-h`;ag&%clNHvQ>)H2J<8f3k0TY>{uv7H=L2LNIGnWlM~`YJ+)V z%i-N4OJtRltCjim*17T!AQz2_Ai-)Hw8GpYld-LJn-}2vk z57l3L!2TZg-ca^oZ(;nqZ^6RYQ&|tZA5xAp%#X?6&-+(r@2|X7;O)DAe%}AMWbr(I zb_V`94}UWi`+L|qX751L$;@~IS0LWq*HjiNYa@%2b(8hM8#NWm4m1a1S64)TD!aMf z!?HWgf!KrQKAv@BDWEt`p1&K1fan)k6O&HLDl=6!5V^FD^qypJvL_D_YfrR$GawxRhQ+tU1w z?Pz|-_B6j^q?;4eC2pQruEtmig>nter?{5pQ(Q;$Ddzuw@1H{E^S9rc_jl{e|KDeX zwU@tdk*Z+L-))ip-Z5Y`oVVVRsNt-Q;QRQaRuY<95WZn&^OSuLY1R_6`sa#NT`VTwseVtr%- zu%|!%n)r z@+>V8v5qxpDX_dxOU&qi^g~)=MhCPxzi$!#v;|VL`2;$sFJakLjVN?wH}w@PyVES4 zJ!qEBp6bU~(@XsemeFdAP*4t}**IfpHqKZzYoFriOxe(xYK|jOcBb6mM_HNr{g`E3 zv+?dJwXBjsZ!q&~R`qmjg1!$jFIw1*k8v1kz|%cjX@%I3g#+kd~i_!mzju)TKpMB&o~pC0)1!Dj$I zvG@$eClQ}v_+UgB_8`YT6nd!+lRtF685pMPlPQM_O-BY zgncXQJ7MV;3ARhWgsP`w#tzy(=Ir2>esN$u{nCJ~%-6%G|Lqpb-vQ^o1I_x;m1h0u zMzel&r&&LG(5xRl{nhwRFPi%!n&$o(NOOP0(A*!fH1|iGe@&Ufpk_0G81!rg5QBlu z0Aet*89)psHUkLC2yYAYxX-agy-}kcsbzY2Et9dgy8czYmOIn^n`jl-J%fUHQ*j_^Y?d{=aG;UbEWG=Dx)ecLP|WrNa_;16X1X4=k(G(v6n5gT@*UTH;I~ zjVtvZwhuVO$_d8#XB)#a&fm|2&nx_ed? zsUDbNm#^#TsS&AOm{FIni}o~&)IiS~A{FE5EmEwmf&hvU^SZ^V}q5d9Jss;FBGZ{cB}; zIYnNU=OV0HppeT0DoPdXY->5#DBNvjQna0YEjzhVp4C7hSLSt=I!eButWmGhWU5i1 z*#8c=#TqV4LDi4L!HYv7#ed1`lZ`2zy2^(v?su%_!Ps^QMWemOSKAir+&?eNb%>Ou zydY)S9L%#($Q265I&fH?(c)O8?dwanGk@iBsq#l}<+ku^B)MtRRcYs_=-N5JQL1JK zDDPOlr#Tl=w7V%aqh% zDXGzE3CQ6kX_;>0==z)9B_S!!uX9>-(lA|A%MeN9QaK<<3JRN@z|{;hePMrL;_m^D7!SQuXLDskT$ z-TJS7&Yr$h`e%)2*L-h<#_h>GHMpFA%SF{ED3&@F9B8vc@#xssJ=)Z0bh(%Ie9jeB zod+fEo%8zX>$G{V*Zv$f^jhBdYhJcXdLB5E(>(O;JKKL)mNnYk{Z>M?(x)FrZh5{T z&tZ3Ayo*`WWZvf&YtC*q|C$BNTbw-8VRJ*56m9=a zIceoupLo7QSuSt=hJmfRH1K<~x_XS)wW&JYgddw8=zsWw!UolAb(XvWj)<+~i9_n? zfVZ?dWkp8*9IJ6#(D$G9lb@uXoiKUdO*bl9o(83>q{?(M)O~rrQ}{6ZN6p`)zu8`^ z@KC+&RirK~zgF2^YAdzQYn2z4-EweR+OUSTYsaJ}`X`kYSpS%mq}s!VCa|@&hoz>( zj)+McUi;%|WM`2|D+;SWz9RLoD~}p%YgXDz!}hHYnpCH+ z<>HpmEl1u5WbIbm9=a#seqeyx$dqMk=Z8cb36wP(V|T+Y^unZys_Tgd#zb#hx_4u4 zl{cG1uOybVDnHcj+<;Ba;Vt4*Pqliq(< zJ=~M%B3vZ4`|))eA2qv^fRd! zX;))30&CrDK0Rs`(YlTQeH-$Bsde*~%)HWTKb97>ez9@7&IyB((PpytO&2Hy1c*ki zK|o-jBn8zCqDD??5LjQJl=eU3pJ<(J{-kyOkFAkqetP}e*&FM>Pk0qR_VZ~`$L9>2 zP}sG==s7<4j_ryno5n2Mc5=A=8|xBdAJxv_OCICvBvyOd$owpKL*LFrHynECxaahf zAG=RD5qEq`d;h?#-D*YFEjRsrg4e#Lp>Hl%UpD2y*!1jisaw;RMBknf+b;a%uAdst z9QozQL0(ID^|I^ND*KnlmI}p{oBXit-pZ&9%j9X-<&E`kx8#&R(RWeNqX%ny<<9%% zX!FP+!?#?%kv95F|L}!-uMhGbxoFdO4gsp!vMTcTZToepQhYeBnf;B`;TK={+B9_A zKiF2a^!9|h2lA(W5f^Me7Gr(#{iS`T_wT%)*UcWa$>*p3(%eQjorXNvTC6mbwMOG{ zq(<}R#>ASNj~DEA<>eo1s?8_ORjd6)$FHqx_Ac&h&{LbfySI$|wfP4riq-CF%GOe= zHDOZAfSOVbR(L8p>V7LcpIm^VMxe1s(RE6QNeNI%PVB3;j+F!JNK!yxt-5s@1lOFv)Jeo_NJ zDTo@t=(4{V4PaLZw=iXl1~BZe8bI1XSsVBlyGWBNv18>Zmw!+yB-y`IW}7U9T(;tu zW1TBEt89L_Dzv1sWkpPmUE5}wKHt|_z2;Ej7HyIIn+I_Zm)EIUC4W%KYBE_VX% z95V0N^h=F15npCcdtbfY+*rM3s9&S?zRvS&o^FtHyWWRNCy&~xRLhN9uLr+McE~8H zP^Fd84ngs;l&w)14=On;WGobTMbQ-g0tWm~+dzIX_P9qTSBu&kJXU+}p5c*_`JehP0^ib<=we59h!ABJaeG*=mH}B8 zN+xgqx==gfmlvMnI#z2?<`MZFiKv`*>KH^Jv}=e95J z7LR$6=={pYtxB~i8#*jLu%Y{<0Y`rMO!vIw`o+cfED!3oYBJ)r{$bZ!0_&q)}_fH>SXDJrdQ9GzdO^b zO~}E^4`%g#Y;(vnIr(;%dhvr&$GYF|^g@3)wb^DV%dQ+Q0Z;fPz&=_vxGrn?W$I50 z3%jrFPq(u673P_zfBDomR_>;(jObY+F4vfBZabh<;d`ScF4Q%VYMY*BO* z;uB(`)8cd?Bhm(^q$Z?|Vokf$K&mU%2?(rLM+!#M9vDDaM`HNjyRrUH_nIqKCT_iQ zF=C$2*rEPz*Y;h%@%^HXhN!PjUUH2zR(Wj6x3v2zP103+Q0}KL3!Gce_h>P1b8a8W zd_gw!?wEZKrUZIs2RV0;mtF46WgqMH95apE2j!sD<(hc zn(`*m5dMUxQ{F!IEbD~%?7xiVU@)3fr{x4$mgCO@ff z+vUS6+d~I+70X)pjcDETr79m=99zi-4bLa7`5)d}R%G9=qEzAsR<=~tu7dbc=PYMy zWYWZ3rW=$K=SUO3$aHeplr^Avw;Bs?nH=BxT(j@Ipy$msD`VC~|Bn~Xtg55FQmt&0 zxAv=c!+Sh0=jb2DuR~gP9g@QGTIPjhH~af{#UE=)Dk?+_>H}R6x|Cf2a6yQW!llqM z#swkhuPz9+*(N@@*Jjm>)iP}LZ{7{#SXW&*<4_-)(E69|?f7cs#gn5twwG`9Py4KQ zQYFWYC-;w;y~p2LebvmQfqS|ujz{VoqZVBn-TZp@Z@2VVtiI+c&))QH#?#MFJ!~X@ ze0~3Hd)uR5L|iZJ?0l)i#(6jId@ZeD}$E~^83D{!~KDMnyGR>*EPFd&OPweiGVig0ZnS9Ry=xtSd$M^ z>>aNhw2z)udTx))gUHV(d|$6tztsmG>>XFJ#TaYnRIkTU@wXXqeR|7X?42A=UvSF( zrSaGCJ+}MRzVm8I_KA+&?k*cPKXFrVJL`*42R68l9$53qswFk++KqG{c&v#gNt;z# z@gKh5{@8N+tyd4n?YyyOeOkRek>7u2sBTWL*tpZo&w7QoblSUpdtv)QM_07?kU7dL zbGfq=f44>Te(pz?>%C63yjSbqx6dO^_*zQ>GuxScB8>fe-S75f-Q`8giW{cvn^+^w zuG-^tuLDc6zN^t?*VZ9Trmswo-jTf0aovFptxBt>yqgi2xb6Lwjz?!2j>Yd=<~g-` ztfGnEmY%cs-1NG&v#>a3M@AQ0Ylwf;rul_yGd6C|%NgN*e%@5a5&GJJ>&qwS^`2=u zkoRPAvDeuLnhwVnKW=^XS9x5@^orw-CLFz;d_RBT$$*+49KP?}r=-2d%97W$mpAk8 zsv3ICarHYXtK4Y(A{bb9DR7u`nl1(Z_9I~8wEvO2Y}~`6uHzX;&EIb1{``9J+wXw@ zTsDFNrFy~qqEVkPKw|h`|Gko>`1j`&3ig~rf#(#ca~n%vr&d+_e^rvaA**Wpy5BtA z)x&E=3lE>6_j*Nb*kc#uu5A6yghQ1yml_N`QoW>NY0$w%c7;cSf08=|v^X=p@~GIU z~Ydg;Bv{Z3z5(s`S`@1ZT{3uj0r{4|iWUgNO&c^al zKW-1*-M8ehzs-n^gP$Ewde*SdO4al5Z>|Q#Zc2`=m$5D{ri$O0=3lGwR%<6w(sV>YIN$=>J4|d?pN~YQOmiL&X3tPCfnnD)2%c6 z-ksiIvisAOwR_&2)5vdgogUxsZu&m(%yye5TeoeQ7c~C#vP|D!BD>A?!aVrF$*~hU zf3vj8S8j&M$De;=ll{f7{Yy`EIxuto)V)PsX{P?J-n&lJ@D4KN2DhpIQ5Yuh`)E34cywBGBwCvDSj=q|D$9UyH_@eKh98`C|IO&Ur?ORLv z8)sd4*n7p6x0edzuYb32;+RKgAGN*Hx@Nwk_qzOXgEDW=7?{z2TkXl`x-ac>V5GPA zKOZF>@}BKGyLp2S-(8y$I{k2kcHdjqwyd4D;Me4r8M+?6j(rC#SlqNjoyivpr@35S z9{D_{aBp~CV(#gyXQ$2lc#ews9K1#@1f zoVZY$IA5AL_v1nGw~;1JlA4w6P9ay-`K#TrpINafF~jjND?+kQ|^yQ&cOVXtG`z=GZ>IV$t^Yzg(L=L7n0}E-XL&R&$@Y)rb0a z8kl{^Gp7E+>?;?Zy?m-#xwyu)AJ#5B^|)_L$c^6RmQHPIH`2~xw{?WpX@7L|&eETc zcqsQ@3HgVE_v6cPwI42gv9eE2iR|pk@O?d>EnHinZA8^Ync7pbn%{3-vbI^+NKL&X zr&q07F?zKAb;JVg#y71DnZGQ5d0^=7whOO67?I)r@P30uqg>m5IJ@02c*N~3uit+D zpkn6zghpH5N{^K7W?i{5A}MBW6U(x0ksS_XcGs`Ws21oo`bmiW)@E@!ij|5g#(H$(QJr+?>K#Ru zZjdY$Rc#o$c}J}@XBz*sW_KAiEM-t?^svFBbe~p4^dTs-BG*ox_QNCw;`?mcI{;TJAIof~Osuqzw-TW0@Zb`xKY>TdRaa_A5 z%u;&qWpSSyKUPeLeDB`>crS<7hQfC3xAa-qfAi-B;o*xG8*c_4+;vbJY=8V=%PXE| zr_Aact}9iKHMbsm=9IhJ;;H@4K5b+B&8fqUTy}O^(*REJPbb;=|lvP!4 zg{{m|c;oiO_}e+M3&>J9V^uXOnzR0EKg9pI`|Xo5*;jJ?&1;*0iXWkz93}E&nX?V3 z!n(==0;M{Ec+^m@POpC}k>j$WUd_sB@6a#yP=i539-V&vcu&<&%L*Qdu(Hyql0!8^ zZpY-pZ|WaJzsS1nnzQ$PQzj`A>Xxf9Z^PuGOYI*Pe3o>6TLar_4OWbH32l8Ya?~$@ z%WRIMp1XSTN!YhPyR8Ua&}hF$&czFDe#$-Qb<}3{g4*3)tjyW?{lgPKXMTOOQH6$v zlqHkeb#?e6cgLeqo^|@U^*wRBX@!XwHoyBkGN<(OzEApgF1=DU`1B$F#vN>4f3~4U z)Vkb+1a-$%{+nl29Wqz_Mb!x%?HbzEc3Ru_YAvH~aqzushC%BS!~D8N?Ys6Sc;)ov ziRUtkJw7j~e*ee$%BrU`OIJqbcS{+R(r?YC$fE7{p8C%kdAFeM`r!ouK}(_+T|YYd QdGf6|zZBPwq31gNFLyI-Gynhq literal 0 HcmV?d00001 From fe8c1c68b0e1a5e826c194501bbea5609afed1e6 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sun, 17 Apr 2022 11:31:15 -0500 Subject: [PATCH 131/146] render: expand test coverage --- render/cache_test.go | 10 ++++++++++ render/drawStack_test.go | 4 ++++ render/noopStackable_test.go | 1 + 3 files changed, 15 insertions(+) diff --git a/render/cache_test.go b/render/cache_test.go index 2782c4a3..c194eed0 100644 --- a/render/cache_test.go +++ b/render/cache_test.go @@ -17,4 +17,14 @@ func TestCache_Clear(t *testing.T) { if err == nil { t.Fatal("get jeremy should have failed post-Clear") } + file = "testdata/assets/fonts/luxisr.ttf" + _, err = LoadFont(file) + if err != nil { + t.Fatalf("load luxisr should have succeeded: %v", err) + } + DefaultCache.Clear(file) + _, err = GetFont(file) + if err == nil { + t.Fatal("get luxisr should have failed post-Clear") + } } diff --git a/render/drawStack_test.go b/render/drawStack_test.go index 8ff14adc..0ecb6e09 100644 --- a/render/drawStack_test.go +++ b/render/drawStack_test.go @@ -26,6 +26,10 @@ func TestDrawStack(t *testing.T) { if len(GlobalDrawStack.as) != 1 { t.Fatalf("global draw stack did not have one length after pop") } + cp := GlobalDrawStack.Copy() + if len(cp.toPush) != len(GlobalDrawStack.toPush) { + t.Fatalf("copy failed to copy push length") + } } func TestDrawStack_Draw(t *testing.T) { diff --git a/render/noopStackable_test.go b/render/noopStackable_test.go index 5357c611..ceb8ebe9 100644 --- a/render/noopStackable_test.go +++ b/render/noopStackable_test.go @@ -20,4 +20,5 @@ func TestNoopStackable(t *testing.T) { if noop2 != noop { t.Fatalf("expected equal noop stackables") } + noop.Clear() } From 8e93c59a1908998a92fae7a232ccc8b390548d6c Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sun, 17 Apr 2022 11:34:59 -0500 Subject: [PATCH 132/146] oak: add driver config setting coverage --- config_test.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config_test.go b/config_test.go index 426feb57..9a313d77 100644 --- a/config_test.go +++ b/config_test.go @@ -5,6 +5,8 @@ import ( "os" "path/filepath" "testing" + + "github.com/oakmound/oak/v3/shiny/screen" ) func TestDefaultConfigFileMatchesEmptyConfig(t *testing.T) { @@ -115,6 +117,7 @@ func TestConfig_overwriteFrom(t *testing.T) { BatchLoadOptions: BatchLoadOptions{ MaxImageFileSize: 10000, }, + Driver: func(f func(screen.Screen)) { panic("fake") }, } c1 := Config{} c1.overwriteFrom(c2) From c32fae7a83cc3b3896562f1b59962cc7b4ce15e0 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sun, 17 Apr 2022 18:57:26 -0500 Subject: [PATCH 133/146] oak: add mouse propagastion stoppage test --- window_test.go | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/window_test.go b/window_test.go index 133d36db..b29d0cb7 100644 --- a/window_test.go +++ b/window_test.go @@ -6,6 +6,7 @@ import ( "testing" "time" + "github.com/oakmound/oak/v3/alg/floatgeom" "github.com/oakmound/oak/v3/collision" "github.com/oakmound/oak/v3/event" "github.com/oakmound/oak/v3/mouse" @@ -95,6 +96,66 @@ func TestPropagate(t *testing.T) { } } +func TestPropagate_StopPropagation(t *testing.T) { + c1 := NewWindow() + c1.eventHandler = event.NewBus(event.NewCallerMap()) + c1.MouseTree = collision.NewTree() + + e1 := ent{} + e1.CallerID = c1.eventHandler.GetCallerMap().Register(e1) + e2 := ent{} + e2.CallerID = c1.eventHandler.GetCallerMap().Register(e2) + + s1 := collision.NewSpace(10, 10, 10, 10, e1.CallerID) + s1.SetZLayer(10) + c1.MouseTree.Insert(s1) + s2 := collision.NewSpace(10, 10, 10, 10, e2.CallerID) + s2.SetZLayer(1) + c1.MouseTree.Insert(s2) + var failed bool + <-event.Bind(c1.eventHandler, mouse.PressOn, e1, func(_ ent, ev *mouse.Event) event.Response { + ev.StopPropagation = true + return 0 + }).Bound + <-event.Bind(c1.eventHandler, mouse.PressOn, e2, func(_ ent, ev *mouse.Event) event.Response { + failed = true + return 0 + }).Bound + <-event.Bind(c1.eventHandler, mouse.ClickOn, e1, func(_ ent, ev *mouse.Event) event.Response { + ev.StopPropagation = true + return 0 + }).Bound + <-event.Bind(c1.eventHandler, mouse.ClickOn, e2, func(_ ent, ev *mouse.Event) event.Response { + failed = true + return 0 + }).Bound + <-event.Bind(c1.eventHandler, mouse.RelativeClickOn, e1, func(_ ent, ev *mouse.Event) event.Response { + ev.StopPropagation = true + return 0 + }).Bound + <-event.Bind(c1.eventHandler, mouse.RelativeClickOn , e2, func(_ ent, ev *mouse.Event) event.Response { + failed = true + return 0 + }).Bound + c1.TriggerMouseEvent(mouse.Event{ + Point2: floatgeom.Point2{ + 15, 15, + }, + Button: mouse.ButtonLeft, + EventType: mouse.Press, + }) + c1.TriggerMouseEvent(mouse.Event{ + Point2: floatgeom.Point2{ + 15, 15, + }, + Button: mouse.ButtonLeft, + EventType: mouse.Release, + }) + if failed { + t.Fatal("stop propagation failed") + } +} + func TestWindowGetters(t *testing.T) { c1 := NewWindow() c1.debugConsole(os.Stdin, os.Stdout) From 53c2f793a3969b7a6591044d890d7fe05c875002 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sun, 17 Apr 2022 19:09:08 -0500 Subject: [PATCH 134/146] oak: expand general test coverage --- alg/span/color_test.go | 11 +++++++++++ init_test.go | 8 ++++++++ inputTracker_test.go | 3 +++ loading.go | 5 +---- shape/bezier.go | 10 ---------- 5 files changed, 23 insertions(+), 14 deletions(-) diff --git a/alg/span/color_test.go b/alg/span/color_test.go index 99ded583..3b712cda 100644 --- a/alg/span/color_test.go +++ b/alg/span/color_test.go @@ -42,4 +42,15 @@ func TestLinearColor(t *testing.T) { if rng.Clamp(color.RGBA{175, 175, 175, 175}) != (color.RGBA{175, 175, 175, 175}) { t.Fatal("linear color range did not pass through value within range") } + + rng = rng.MulSpan(1.1) + if rng.Clamp(color.RGBA{100, 100, 100, 100}) != (color.RGBA{137, 137, 137, 137}) { + t.Fatal("linear color range did not enforce minimum color") + } + if rng.Clamp(color.RGBA{225, 225, 225, 225}) != (color.RGBA{220, 220, 220, 220}) { + t.Fatal("linear color range did not enforce maximum color") + } + if rng.Clamp(color.RGBA{175, 175, 175, 175}) != (color.RGBA{175, 175, 175, 175}) { + t.Fatal("linear color range did not pass through value within range") + } } diff --git a/init_test.go b/init_test.go index bc9bdb6e..48135ded 100644 --- a/init_test.go +++ b/init_test.go @@ -36,3 +36,11 @@ func TestInitFailures(t *testing.T) { } }) } + +func TestInitDebugConsole(t *testing.T) { + c1 := NewWindow() + c1.Init("bad", func(c Config) (Config, error) { + c.EnableDebugConsole = true + return c, nil + }) +} diff --git a/inputTracker_test.go b/inputTracker_test.go index f3e590c8..db1bc232 100644 --- a/inputTracker_test.go +++ b/inputTracker_test.go @@ -48,4 +48,7 @@ func TestTrackInputChanges(t *testing.T) { if <-inputChangeFailed { t.Fatalf("keyboard change failed") } + if c1.MostRecentInput() != InputKeyboard { + t.Fatalf("most recent input getter failed") + } } diff --git a/loading.go b/loading.go index 70c68e8c..67c9a422 100644 --- a/loading.go +++ b/loading.go @@ -27,11 +27,8 @@ func (w *Window) loadAssets(imageDir, audioDir string) { } else { err = audio.BatchLoad(audioDir) } - if err != nil { - return err - } dlog.Verb("Done Loading Audio") - return nil + return err }) dlog.ErrorCheck(eg.Wait()) } diff --git a/shape/bezier.go b/shape/bezier.go index c7cce062..b8fb18e3 100644 --- a/shape/bezier.go +++ b/shape/bezier.go @@ -64,13 +64,3 @@ type BezierPoint floatgeom.Point2 func (bp BezierPoint) Pos(float64) (x, y float64) { return bp[0], bp[1] } - -// X returns bp's value on the X axis. -func (bp BezierPoint) X() float64 { - return bp[0] -} - -// Y returns bp's value on the Y axis. -func (bp BezierPoint) Y() float64 { - return bp[1] -} From e69d5dfc2cf6bbeac06b2e84f424521bd6f07b74 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Mon, 18 Apr 2022 07:13:14 -0500 Subject: [PATCH 135/146] examples/bezier: remove point.X() and point.Y() --- examples/bezier/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/bezier/main.go b/examples/bezier/main.go index eca12490..770f9b57 100644 --- a/examples/bezier/main.go +++ b/examples/bezier/main.go @@ -97,7 +97,7 @@ func bezierDrawRec(b shape.Bezier, list *render.CompositeM, alpha uint8) { bezierDrawRec(bzn.Right, list, uint8(float64(alpha)*.5)) case shape.BezierPoint: sp := render.NewColorBox(5, 5, color.RGBA{255, 255, 255, 255}) - sp.SetPos(bzn.X()-2, bzn.Y()-2) + sp.SetPos(bzn[0]-2, bzn[1]-2) list.Append(sp) } } From 3c73dd9a4432c5ecac3f0ccae4578ea2969e3cb8 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 23 Apr 2022 10:40:46 -0500 Subject: [PATCH 136/146] event: add persistent binding methods to Handler --- event/bind.go | 7 ++++--- event/handler.go | 2 ++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/event/bind.go b/event/bind.go index 4e66fc38..4c0b7fea 100644 --- a/event/bind.go +++ b/event/bind.go @@ -46,8 +46,9 @@ type BindID int64 // UnsafeBind registers a callback function to be called whenever the provided event is triggered // against this bus. The binding is concurrently bound, and therefore may not be immediately -// available to be triggered. When Reset is called on a Bus, all prior bindings are unbound. This -// call is 'unsafe' because UnsafeBindables use bare interface{} types. +// available to be triggered. When Reset is called on a Bus, all prior bindings are unbound and any +// concurrent calls to UnsafeBind will not take effect. This call is 'unsafe' because UnsafeBindables +// use bare interface{} types. func (bus *Bus) UnsafeBind(eventID UnsafeEventID, callerID CallerID, fn UnsafeBindable) Binding { expectedResetCount := bus.resetCount bindID := BindID(atomic.AddInt64(bus.nextBindID, 1)) @@ -73,7 +74,7 @@ func (bus *Bus) UnsafeBind(eventID UnsafeEventID, callerID CallerID, fn UnsafeBi } } -// PersistentBind acts like UnsafeBind, but cause Bind to be called with these inputs after a Bus is Reset, i.e. +// PersistentBind calls UnsafeBind, and causes UnsafeBind to be called with these inputs when a Bus is Reset, i.e. // persisting the binding through bus resets. Unbinding this will not stop it from being rebound on the next // Bus Reset-- ClearPersistentBindings will. If called concurrently during a bus Reset, the request may not be // bound until the next bus Reset. diff --git a/event/handler.go b/event/handler.go index 5537121d..6a28fd03 100644 --- a/event/handler.go +++ b/event/handler.go @@ -16,4 +16,6 @@ type Handler interface { UnbindAllFrom(CallerID) <-chan struct{} SetCallerMap(*CallerMap) GetCallerMap() *CallerMap + PersistentBind(eventID UnsafeEventID, callerID CallerID, fn UnsafeBindable) Binding + ClearPersistentBindings() } From 21f1006c2b306a9a19b241ab641fd2eea19d341d Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 23 Apr 2022 10:50:30 -0500 Subject: [PATCH 137/146] oak: bump v3 -> v4 --- README.md | 28 +++++++++---------- alg/floatgeom/point.go | 2 +- alg/floatgeom/point_test.go | 2 +- alg/floatgeom/polygon.go | 2 +- alg/intgeom/point.go | 2 +- alg/intgeom/point_test.go | 2 +- alg/intgeom/rect.go | 2 +- alg/span/builtin.go | 2 +- audio/fade.go | 2 +- audio/file_cache.go | 2 +- audio/file_load.go | 10 +++---- audio/format/dls/dls.go | 2 +- audio/format/flac/flac.go | 4 +-- audio/format/mp3/mp3.go | 4 +-- audio/format/register.go | 2 +- audio/format/wav/wav.go | 4 +-- audio/init_darwin.go | 4 +-- audio/init_linux.go | 4 +-- audio/internal/dsound/dsound.go | 4 +-- audio/play.go | 2 +- audio/play_test.go | 8 +++--- audio/reader.go | 3 +- audio/synth/filter_test.go | 2 +- audio/synth/pitch.go | 2 +- audio/synth/source.go | 2 +- audio/synth/waves.go | 2 +- audio/writer.go | 2 +- audio/writer_alsa.go | 2 +- audio/writer_dsound.go | 6 ++-- audio/writer_js.go | 2 +- audio/writer_other.go | 2 +- audio/writer_pulse.go | 2 +- collision/attachSpace.go | 4 +-- collision/attachSpace_test.go | 4 +-- collision/filter.go | 2 +- collision/geom.go | 2 +- collision/onCollision.go | 2 +- collision/onCollision_test.go | 2 +- collision/point.go | 2 +- collision/ray/castFilter.go | 4 +-- collision/ray/castLimit.go | 4 +-- collision/ray/caster.go | 4 +-- collision/ray/caster_test.go | 4 +-- collision/ray/coneCaster.go | 6 ++-- collision/ray/coneCaster_test.go | 6 ++-- collision/ray/raycast_test.go | 6 ++-- collision/rtree.go | 2 +- collision/rtree_test.go | 2 +- collision/space.go | 6 ++-- collision/space_test.go | 4 +-- collision/tree.go | 4 +-- collision/tree_test.go | 4 +-- config.go | 4 +-- config_test.go | 2 +- debugstream/commands.go | 2 +- debugstream/defaultcommands.go | 2 +- debugstream/scopeHelper.go | 18 ++++++------ debugstream/scopeHelper_test.go | 10 +++---- debugtools/inputviz/joystick.go | 16 +++++------ debugtools/inputviz/keyboard.go | 10 +++---- debugtools/inputviz/mouse.go | 10 +++---- debugtools/mouse.go | 10 +++---- debugtools/renderable.go | 2 +- debugtools/tree.go | 6 ++-- default.go | 10 +++---- default_test.go | 8 +++--- dlog/default.go | 2 +- dlog/default_test.go | 2 +- dlog/dlog_test.go | 2 +- dlog/levels.go | 2 +- dlog/levels_test.go | 2 +- dlog/strings.go | 2 +- driver.go | 2 +- entities/entity.go | 14 +++++----- entities/move.go | 6 ++-- entities/opts_gen.go | 10 +++---- entities/x/btn/button.go | 18 ++++++------ entities/x/btn/grid/grid.go | 6 ++-- entities/x/btn/grid/option.go | 4 +-- entities/x/btn/option.go | 16 +++++------ entities/x/btn/textOptions.go | 2 +- event/bind.go | 2 +- event/bind_test.go | 2 +- event/bus_test.go | 2 +- event/caller_test.go | 2 +- event/response_test.go | 2 +- event/trigger_test.go | 2 +- examples/bezier/main.go | 14 +++++----- examples/blank/main.go | 6 ++-- examples/click-propagation/main.go | 12 ++++---- examples/clipboard/go.mod | 4 +-- examples/clipboard/main.go | 16 +++++------ examples/collision-demo/main.go | 18 ++++++------ examples/custom-cursor/main.go | 10 +++---- examples/error-scene/main.go | 6 ++-- examples/fallback-font/go.mod | 4 +-- examples/fallback-font/main.go | 6 ++-- examples/flappy-bird/main.go | 22 +++++++-------- examples/joystick-viz/main.go | 14 +++++----- examples/keyboard-viz/main.go | 12 ++++---- examples/mouse-viz/main.go | 8 +++--- examples/multi-window/main.go | 10 +++---- examples/particle-demo/main.go | 24 ++++++++-------- examples/piano/main.go | 24 ++++++++-------- examples/platformer/main.go | 14 +++++----- examples/pong/main.go | 16 +++++------ examples/radar-demo/main.go | 18 ++++++------ examples/radar-demo/radar/radar.go | 2 +- examples/rooms/main.go | 14 +++++----- examples/screenopts/main.go | 10 +++---- examples/slide/main.go | 18 ++++++------ examples/slide/show/fonts.go | 2 +- examples/slide/show/helpers.go | 4 +-- examples/slide/show/slide.go | 12 ++++---- examples/slide/show/static/basicSlide.go | 12 ++++---- examples/sprite-demo/main.go | 12 ++++---- examples/svg/go.mod | 4 +-- examples/svg/main.go | 6 ++-- .../color-changing-text-demo/main.go | 8 +++--- .../text-demos/continual-text-demo/main.go | 12 ++++---- examples/titlescreen-demo/main.go | 14 +++++----- examples/top-down-shooter/main.go | 28 +++++++++---------- examples/zooming/main.go | 12 ++++---- go.mod | 2 +- init.go | 8 +++--- init_override_js.go | 6 ++-- inputLoop.go | 12 ++++---- inputLoop_test.go | 2 +- inputTracker.go | 10 +++---- inputTracker_test.go | 8 +++--- joystick/driver_darwin.go | 10 +++---- joystick/driver_js.go | 22 +++++++-------- joystick/driver_linux.go | 8 +++--- joystick/driver_other.go | 2 +- joystick/driver_windows.go | 4 +-- joystick/joystick.go | 4 +-- key/events.go | 2 +- lifecycle.go | 6 ++-- loading.go | 8 +++--- loading_test.go | 2 +- mouse/default.go | 2 +- mouse/default_test.go | 2 +- mouse/event.go | 6 ++-- mouse/event_test.go | 2 +- mouse/events.go | 2 +- mouse/events_test.go | 2 +- mouse/mouse.go | 2 +- mouse/onCollision.go | 4 +-- mouse/onCollision_test.go | 6 ++-- physics/force.go | 2 +- physics/vector.go | 2 +- physics/vector_test.go | 2 +- render/bachload_test.go | 2 +- render/batchload.go | 8 +++--- render/bezier.go | 6 ++-- render/bezier_test.go | 2 +- render/cache.go | 2 +- render/colorbox.go | 2 +- render/compositeM.go | 4 +-- render/compositeM_test.go | 4 +-- render/compositeR.go | 4 +-- render/compositeR_test.go | 4 +-- render/curve.go | 4 +-- render/decoder.go | 2 +- render/drawHeap.go | 2 +- render/drawHeap_test.go | 2 +- render/drawStack.go | 4 +-- render/drawStack_test.go | 2 +- render/font.go | 6 ++-- render/font_test.go | 2 +- render/fps.go | 2 +- render/interfaceFeatures.go | 2 +- render/layered.go | 2 +- render/line.go | 2 +- render/loadsheet.go | 4 +-- render/loadsheet_test.go | 4 +-- render/loadsprite.go | 4 +-- render/logicfps.go | 4 +-- render/logicfps_test.go | 2 +- render/mod/cut.go | 6 ++-- render/mod/highlight.go | 2 +- render/mod/mod_test.go | 2 +- render/modifiable.go | 2 +- render/noopStackable.go | 2 +- render/noopStackable_test.go | 2 +- render/particle/allocator.go | 2 +- render/particle/allocator_test.go | 2 +- render/particle/collisionParticle.go | 2 +- render/particle/collision_test.go | 2 +- render/particle/collisonGenerator.go | 4 +-- render/particle/colorGenerator.go | 6 ++-- render/particle/colorParticle.go | 4 +-- render/particle/color_test.go | 6 ++-- render/particle/generator.go | 4 +-- render/particle/gradientGenerator.go | 4 +-- render/particle/gradientParticle.go | 2 +- render/particle/gradient_test.go | 8 +++--- render/particle/math.go | 2 +- render/particle/options.go | 6 ++-- render/particle/particle.go | 4 +-- render/particle/particle_test.go | 2 +- render/particle/shape.go | 2 +- render/particle/source.go | 6 ++-- render/particle/source_test.go | 10 +++---- render/particle/spriteGenerator.go | 6 ++-- render/particle/spriteParticle.go | 4 +-- render/particle/sprite_test.go | 4 +-- render/polygon.go | 4 +-- render/polygon_test.go | 2 +- render/renderable.go | 2 +- render/reverting.go | 4 +-- render/reverting_test.go | 2 +- render/sequence.go | 6 ++-- render/sequence_test.go | 4 +-- render/sheet.go | 2 +- render/sheet_test.go | 4 +-- render/sprite.go | 2 +- render/sprite_test.go | 4 +-- render/switch.go | 8 +++--- render/switch_test.go | 4 +-- render/text.go | 2 +- scene.go | 4 +-- scene/context.go | 8 +++--- scene/context_desktop.go | 2 +- scene/context_other.go | 2 +- scene/delay.go | 2 +- scene/delay_test.go | 2 +- scene/example_test.go | 2 +- scene/map.go | 2 +- scene/map_test.go | 2 +- scene/scene.go | 4 +-- scene/transition.go | 2 +- scene/transition_gift.go | 2 +- sceneLoop.go | 12 ++++---- sceneLoop_test.go | 2 +- scene_test.go | 4 +-- screenFilter.go | 2 +- screenshot_test.go | 2 +- shake/shake.go | 8 +++--- shape/bezier.go | 4 +-- shape/bezier_test.go | 2 +- shape/condense.go | 2 +- shape/condense_test.go | 2 +- shape/holes.go | 2 +- shape/holes_test.go | 2 +- shape/in.go | 2 +- shape/outline.go | 2 +- shape/points.go | 2 +- shape/points_test.go | 2 +- shape/rect.go | 2 +- shape/shape.go | 2 +- shiny/driver/androiddriver/main.go | 2 +- shiny/driver/androiddriver/screen.go | 4 +-- shiny/driver/androiddriver/texture.go | 2 +- shiny/driver/driver.go | 2 +- shiny/driver/driver_android.go | 4 +-- shiny/driver/driver_fallback.go | 6 ++-- shiny/driver/driver_js.go | 4 +-- shiny/driver/driver_noop.go | 4 +-- shiny/driver/driver_windows.go | 4 +-- shiny/driver/driver_x11.go | 5 ++-- shiny/driver/internal/drawer/drawer.go | 2 +- shiny/driver/internal/errscreen/errscreen.go | 2 +- shiny/driver/internal/win32/win32.go | 2 +- shiny/driver/jsdriver/screen.go | 2 +- shiny/driver/jsdriver/texture.go | 2 +- shiny/driver/jsdriver/window.go | 4 +-- .../mtldriver/internal/appkit/appkit.go | 2 +- shiny/driver/mtldriver/mtldriver.go | 8 +++--- shiny/driver/mtldriver/screen.go | 2 +- shiny/driver/mtldriver/texture.go | 2 +- shiny/driver/mtldriver/window.go | 6 ++-- shiny/driver/mtldriver/window_amd64.go | 4 +-- shiny/driver/mtldriver/window_arm64.go | 4 +-- shiny/driver/mtldriver_darwin.go | 4 +-- shiny/driver/noop/noop.go | 4 +-- shiny/driver/windriver/buffer.go | 5 ++-- shiny/driver/windriver/other.go | 5 ++-- shiny/driver/windriver/screen.go | 4 +-- shiny/driver/windriver/texture.go | 5 ++-- shiny/driver/windriver/window.go | 8 +++--- shiny/driver/windriver/windraw.go | 3 +- shiny/driver/windriver/windriver.go | 7 +++-- shiny/driver/x11driver/buffer.go | 2 +- shiny/driver/x11driver/screen.go | 4 +-- shiny/driver/x11driver/texture.go | 2 +- shiny/driver/x11driver/window.go | 12 ++++---- shiny/driver/x11driver/x11driver.go | 4 +-- shiny/screen/screen.go | 4 +-- viewport.go | 4 +-- viewport_test.go | 4 +-- window.go | 22 +++++++-------- window/window.go | 4 +-- window_test.go | 12 ++++---- 294 files changed, 762 insertions(+), 757 deletions(-) diff --git a/README.md b/README.md index 43c6944a..8af2618a 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ## A Pure Go game engine -[![Go Reference](https://pkg.go.dev/badge/github.com/oakmound/oak/v3.svg)](https://pkg.go.dev/github.com/oakmound/oak/v3) +[![Go Reference](https://pkg.go.dev/badge/github.com/oakmound/oak/v4.svg)](https://pkg.go.dev/github.com/oakmound/oak/v4) [![Code Coverage](https://codecov.io/gh/oakmound/oak/branch/develop/graph/badge.svg)](https://codecov.io/gh/oakmound/oak) [![Mentioned in Awesome Go](https://awesome.re/mentioned-badge-flat.svg)](https://github.com/avelino/awesome-go) @@ -24,14 +24,14 @@ ## Installation -`go get -u github.com/oakmound/oak/v3` +`go get -u github.com/oakmound/oak/v4` ## Features and Systems 1. Window Management - Windows and key events forked from [shiny](https://pkg.go.dev/golang.org/x/exp/shiny) - Support for multiple windows running at the same time -1. [Image Rendering](https://pkg.go.dev/github.com/oakmound/oak/v3/render) +1. [Image Rendering](https://pkg.go.dev/github.com/oakmound/oak/v4/render) - Manipulation - `render.Modifiable` interface - Integrated with optimized image manipulation via [gift](https://github.com/disintegration/gift) @@ -40,18 +40,18 @@ - Primitive builders, `ColorBox`, `Line`, `Bezier` - History-tracking `Reverting` - Primarily 2D -1. [Particle System](https://pkg.go.dev/github.com/oakmound/oak/v3/render/particle) -1. [Mouse Handling](https://pkg.go.dev/github.com/oakmound/oak/v3/mouse) -1. [Joystick Support](https://pkg.go.dev/github.com/oakmound/oak/v3/joystick) -1. [Audio Support](https://pkg.go.dev/github.com/oakmound/oak/v3/audio) -1. [Collision](https://pkg.go.dev/github.com/oakmound/oak/v3/collision) +1. [Particle System](https://pkg.go.dev/github.com/oakmound/oak/v4/render/particle) +1. [Mouse Handling](https://pkg.go.dev/github.com/oakmound/oak/v4/mouse) +1. [Joystick Support](https://pkg.go.dev/github.com/oakmound/oak/v4/joystick) +1. [Audio Support](https://pkg.go.dev/github.com/oakmound/oak/v4/audio) +1. [Collision](https://pkg.go.dev/github.com/oakmound/oak/v4/collision) - Collision R-Tree forked from [rtreego](https://github.com/dhconnelly/rtreego) - - [2D Raycasting](https://pkg.go.dev/github.com/oakmound/oak/v3/collision/ray) + - [2D Raycasting](https://pkg.go.dev/github.com/oakmound/oak/v4/collision/ray) - Collision Spaces - Attachable to Objects - Auto React to collisions through events -1. [2D Physics System](https://pkg.go.dev/github.com/oakmound/oak/v3/physics) -1. [Event Handler](https://pkg.go.dev/github.com/oakmound/oak/v3/event) +1. [2D Physics System](https://pkg.go.dev/github.com/oakmound/oak/v4/physics) +1. [Event Handler](https://pkg.go.dev/github.com/oakmound/oak/v4/event) ## Support @@ -65,8 +65,8 @@ This is an example of the most basic oak program: package main import ( - "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/scene" ) func main() { @@ -79,7 +79,7 @@ func main() { } ``` -See below or the [examples](examples) folder for longer demos, [godoc](https://pkg.go.dev/github.com/oakmound/oak/v3) for reference documentation, and the [wiki](https://github.com/oakmound/oak/wiki) for more guided tutorials and walkthroughs. +See below or the [examples](examples) folder for longer demos, [godoc](https://pkg.go.dev/github.com/oakmound/oak/v4) for reference documentation, and the [wiki](https://github.com/oakmound/oak/wiki) for more guided tutorials and walkthroughs. ## Examples diff --git a/alg/floatgeom/point.go b/alg/floatgeom/point.go index 7335f1ea..2edda851 100644 --- a/alg/floatgeom/point.go +++ b/alg/floatgeom/point.go @@ -3,7 +3,7 @@ package floatgeom import ( "math" - "github.com/oakmound/oak/v3/alg" + "github.com/oakmound/oak/v4/alg" ) // Point2 represents a 2D point on a plane. diff --git a/alg/floatgeom/point_test.go b/alg/floatgeom/point_test.go index 49617207..a0b0c976 100644 --- a/alg/floatgeom/point_test.go +++ b/alg/floatgeom/point_test.go @@ -6,7 +6,7 @@ import ( "testing" "time" - "github.com/oakmound/oak/v3/alg" + "github.com/oakmound/oak/v4/alg" ) func Seed() { diff --git a/alg/floatgeom/polygon.go b/alg/floatgeom/polygon.go index 92ccca3a..a257dcf9 100644 --- a/alg/floatgeom/polygon.go +++ b/alg/floatgeom/polygon.go @@ -1,7 +1,7 @@ package floatgeom import ( - "github.com/oakmound/oak/v3/alg" + "github.com/oakmound/oak/v4/alg" ) // A Polygon2 is a series of points in 2D space. diff --git a/alg/intgeom/point.go b/alg/intgeom/point.go index d8038baf..d95c07dc 100644 --- a/alg/intgeom/point.go +++ b/alg/intgeom/point.go @@ -3,7 +3,7 @@ package intgeom import ( "math" - "github.com/oakmound/oak/v3/alg" + "github.com/oakmound/oak/v4/alg" ) // Point2 represents a 2D point in space. diff --git a/alg/intgeom/point_test.go b/alg/intgeom/point_test.go index 6e28860d..a9869f40 100644 --- a/alg/intgeom/point_test.go +++ b/alg/intgeom/point_test.go @@ -6,7 +6,7 @@ import ( "testing" "time" - "github.com/oakmound/oak/v3/alg" + "github.com/oakmound/oak/v4/alg" ) func Seed() { diff --git a/alg/intgeom/rect.go b/alg/intgeom/rect.go index 03fa8a03..43d0cd98 100644 --- a/alg/intgeom/rect.go +++ b/alg/intgeom/rect.go @@ -3,7 +3,7 @@ package intgeom import ( "math/rand" - "github.com/oakmound/oak/v3/alg/span" + "github.com/oakmound/oak/v4/alg/span" ) // A Rect2 represents a span from one point in 2D space to another. diff --git a/alg/span/builtin.go b/alg/span/builtin.go index 8e0666f7..b82ecd61 100644 --- a/alg/span/builtin.go +++ b/alg/span/builtin.go @@ -3,7 +3,7 @@ package span import ( "math/rand" - "github.com/oakmound/oak/v3/alg/span/internal/random" + "github.com/oakmound/oak/v4/alg/span/internal/random" "golang.org/x/exp/constraints" ) diff --git a/audio/fade.go b/audio/fade.go index b4e14df6..8311653a 100644 --- a/audio/fade.go +++ b/audio/fade.go @@ -3,7 +3,7 @@ package audio import ( "time" - "github.com/oakmound/oak/v3/audio/pcm" + "github.com/oakmound/oak/v4/audio/pcm" ) // FadeIn wraps a reader such that it will linearly fades in over the given duration. diff --git a/audio/file_cache.go b/audio/file_cache.go index 229b98f2..a6a021c5 100644 --- a/audio/file_cache.go +++ b/audio/file_cache.go @@ -4,7 +4,7 @@ import ( "path/filepath" "sync" - "github.com/oakmound/oak/v3/audio/pcm" + "github.com/oakmound/oak/v4/audio/pcm" ) // DefaultCache is the receiver for package level loading operations. diff --git a/audio/file_load.go b/audio/file_load.go index 0c1a8e94..640dedf5 100644 --- a/audio/file_load.go +++ b/audio/file_load.go @@ -6,11 +6,11 @@ import ( "golang.org/x/sync/errgroup" - "github.com/oakmound/oak/v3/audio/format" - "github.com/oakmound/oak/v3/audio/pcm" - "github.com/oakmound/oak/v3/dlog" - "github.com/oakmound/oak/v3/fileutil" - "github.com/oakmound/oak/v3/oakerr" + "github.com/oakmound/oak/v4/audio/format" + "github.com/oakmound/oak/v4/audio/pcm" + "github.com/oakmound/oak/v4/dlog" + "github.com/oakmound/oak/v4/fileutil" + "github.com/oakmound/oak/v4/oakerr" ) // Get will read cached audio data from Load, or error if the given diff --git a/audio/format/dls/dls.go b/audio/format/dls/dls.go index ed9fa9b4..28961920 100644 --- a/audio/format/dls/dls.go +++ b/audio/format/dls/dls.go @@ -1,7 +1,7 @@ // Package dls contains data structures for DLS (.dls) file types. package dls -import "github.com/oakmound/oak/v3/audio/format/riff" +import "github.com/oakmound/oak/v4/audio/format/riff" // The DLS is the major struct we care about in this package // DLS files contain instrument and wave sample information, and diff --git a/audio/format/flac/flac.go b/audio/format/flac/flac.go index 7db92455..d7899942 100644 --- a/audio/format/flac/flac.go +++ b/audio/format/flac/flac.go @@ -14,8 +14,8 @@ import ( "io" "github.com/eaburns/flac" - "github.com/oakmound/oak/v3/audio/format" - "github.com/oakmound/oak/v3/audio/pcm" + "github.com/oakmound/oak/v4/audio/format" + "github.com/oakmound/oak/v4/audio/pcm" ) func init() { diff --git a/audio/format/mp3/mp3.go b/audio/format/mp3/mp3.go index 7a6bdf30..14fb6ad7 100644 --- a/audio/format/mp3/mp3.go +++ b/audio/format/mp3/mp3.go @@ -11,8 +11,8 @@ package mp3 import ( "io" - "github.com/oakmound/oak/v3/audio/format" - "github.com/oakmound/oak/v3/audio/pcm" + "github.com/oakmound/oak/v4/audio/format" + "github.com/oakmound/oak/v4/audio/pcm" "github.com/hajimehoshi/go-mp3" ) diff --git a/audio/format/register.go b/audio/format/register.go index c2dabbc5..1059030b 100644 --- a/audio/format/register.go +++ b/audio/format/register.go @@ -5,7 +5,7 @@ import ( "io" "sync" - "github.com/oakmound/oak/v3/audio/pcm" + "github.com/oakmound/oak/v4/audio/pcm" ) // A Loader can parse the data from an io.Reader and convert it into PCM encoded audio data with diff --git a/audio/format/wav/wav.go b/audio/format/wav/wav.go index c66e953d..e3168c59 100644 --- a/audio/format/wav/wav.go +++ b/audio/format/wav/wav.go @@ -13,8 +13,8 @@ import ( "encoding/binary" - "github.com/oakmound/oak/v3/audio/format" - "github.com/oakmound/oak/v3/audio/pcm" + "github.com/oakmound/oak/v4/audio/format" + "github.com/oakmound/oak/v4/audio/pcm" ) func init() { diff --git a/audio/init_darwin.go b/audio/init_darwin.go index cd4c922b..6b8512f9 100644 --- a/audio/init_darwin.go +++ b/audio/init_darwin.go @@ -6,8 +6,8 @@ import ( "fmt" "github.com/jfreymuth/pulse" - "github.com/oakmound/oak/v3/oakerr" - "github.com/oakmound/oak/v3/audio/pcm" + "github.com/oakmound/oak/v4/audio/pcm" + "github.com/oakmound/oak/v4/oakerr" ) func initOS(driver Driver) error { diff --git a/audio/init_linux.go b/audio/init_linux.go index 33646b18..4c562495 100644 --- a/audio/init_linux.go +++ b/audio/init_linux.go @@ -7,8 +7,8 @@ import ( "os" "github.com/jfreymuth/pulse" - "github.com/oakmound/oak/v3/audio/pcm" - "github.com/oakmound/oak/v3/oakerr" + "github.com/oakmound/oak/v4/audio/pcm" + "github.com/oakmound/oak/v4/oakerr" ) func initOS(driver Driver) error { diff --git a/audio/internal/dsound/dsound.go b/audio/internal/dsound/dsound.go index 0064033e..1295a2da 100644 --- a/audio/internal/dsound/dsound.go +++ b/audio/internal/dsound/dsound.go @@ -7,8 +7,8 @@ import ( "sync" "syscall" - "github.com/oakmound/oak/v3/dlog" - "github.com/oakmound/oak/v3/oakerr" + "github.com/oakmound/oak/v4/dlog" + "github.com/oakmound/oak/v4/oakerr" "github.com/oov/directsound-go/dsound" ) diff --git a/audio/play.go b/audio/play.go index 90baf501..cbcd299a 100644 --- a/audio/play.go +++ b/audio/play.go @@ -8,7 +8,7 @@ import ( "io" "time" - "github.com/oakmound/oak/v3/audio/pcm" + "github.com/oakmound/oak/v4/audio/pcm" ) // WriterBufferLengthInSeconds defines how much data os-level writers provided by this package will rotate through diff --git a/audio/play_test.go b/audio/play_test.go index 5042f82e..e6939421 100644 --- a/audio/play_test.go +++ b/audio/play_test.go @@ -9,10 +9,10 @@ import ( "testing" "time" - "github.com/oakmound/oak/v3/audio" - "github.com/oakmound/oak/v3/audio/format/wav" - "github.com/oakmound/oak/v3/audio/pcm" - "github.com/oakmound/oak/v3/audio/synth" + "github.com/oakmound/oak/v4/audio" + "github.com/oakmound/oak/v4/audio/format/wav" + "github.com/oakmound/oak/v4/audio/pcm" + "github.com/oakmound/oak/v4/audio/synth" ) func TestMain(m *testing.M) { diff --git a/audio/reader.go b/audio/reader.go index 12b777a5..ac460b31 100644 --- a/audio/reader.go +++ b/audio/reader.go @@ -4,7 +4,7 @@ import ( "errors" "io" - "github.com/oakmound/oak/v3/audio/pcm" + "github.com/oakmound/oak/v4/audio/pcm" ) var _ pcm.Reader = &LoopingReader{} @@ -127,4 +127,3 @@ func ReadAtLeast(r pcm.Reader, buf []byte, min int) (n int, err error) { } return } - diff --git a/audio/synth/filter_test.go b/audio/synth/filter_test.go index ef078d3f..d760d921 100644 --- a/audio/synth/filter_test.go +++ b/audio/synth/filter_test.go @@ -6,7 +6,7 @@ import ( "testing" "time" - "github.com/oakmound/oak/v3/audio" + "github.com/oakmound/oak/v4/audio" ) func TestMain(m *testing.M) { diff --git a/audio/synth/pitch.go b/audio/synth/pitch.go index da844d82..fbafa528 100644 --- a/audio/synth/pitch.go +++ b/audio/synth/pitch.go @@ -3,7 +3,7 @@ package synth import ( "sort" - "github.com/oakmound/oak/v3/audio/pcm" + "github.com/oakmound/oak/v4/audio/pcm" ) // A Pitch is a frequency value which represents how fast a wave should oscillate to produce a specific tone. diff --git a/audio/synth/source.go b/audio/synth/source.go index 2c643486..48ec4948 100644 --- a/audio/synth/source.go +++ b/audio/synth/source.go @@ -3,7 +3,7 @@ package synth import ( "time" - "github.com/oakmound/oak/v3/audio/pcm" + "github.com/oakmound/oak/v4/audio/pcm" ) // A Source stores necessary information for generating waveform data diff --git a/audio/synth/waves.go b/audio/synth/waves.go index 9e31336b..45695163 100644 --- a/audio/synth/waves.go +++ b/audio/synth/waves.go @@ -5,7 +5,7 @@ import ( "math" "math/rand" - "github.com/oakmound/oak/v3/audio/pcm" + "github.com/oakmound/oak/v4/audio/pcm" ) // Wave functions take a set of options and return an audio diff --git a/audio/writer.go b/audio/writer.go index 2af11c4c..07d07013 100644 --- a/audio/writer.go +++ b/audio/writer.go @@ -1,7 +1,7 @@ package audio import ( - "github.com/oakmound/oak/v3/audio/pcm" + "github.com/oakmound/oak/v4/audio/pcm" ) // NewWriter returns a writer which can accept audio streamed matching the given format diff --git a/audio/writer_alsa.go b/audio/writer_alsa.go index aeebbe2a..f26257a0 100644 --- a/audio/writer_alsa.go +++ b/audio/writer_alsa.go @@ -9,7 +9,7 @@ import ( "sync" "github.com/oakmound/alsa" - "github.com/oakmound/oak/v3/audio/pcm" + "github.com/oakmound/oak/v4/audio/pcm" ) func newALSAWriter(f pcm.Format) (pcm.Writer, error) { diff --git a/audio/writer_dsound.go b/audio/writer_dsound.go index cf28decf..348d9d2a 100644 --- a/audio/writer_dsound.go +++ b/audio/writer_dsound.go @@ -7,9 +7,9 @@ import ( "io" "sync" - intdsound "github.com/oakmound/oak/v3/audio/internal/dsound" - "github.com/oakmound/oak/v3/audio/pcm" - "github.com/oakmound/oak/v3/oakerr" + intdsound "github.com/oakmound/oak/v4/audio/internal/dsound" + "github.com/oakmound/oak/v4/audio/pcm" + "github.com/oakmound/oak/v4/oakerr" "github.com/oov/directsound-go/dsound" ) diff --git a/audio/writer_js.go b/audio/writer_js.go index cc7d6ef5..17cc428c 100644 --- a/audio/writer_js.go +++ b/audio/writer_js.go @@ -9,7 +9,7 @@ import ( "sync/atomic" "syscall/js" - "github.com/oakmound/oak/v3/oakerr" + "github.com/oakmound/oak/v4/oakerr" ) func initOS() error { diff --git a/audio/writer_other.go b/audio/writer_other.go index 70b53202..b38e8d24 100644 --- a/audio/writer_other.go +++ b/audio/writer_other.go @@ -2,7 +2,7 @@ package audio -import "github.com/oakmound/oak/v3/oakerr" +import "github.com/oakmound/oak/v4/oakerr" func initOS(driver Driver) error { return oakerr.UnsupportedPlatform{ diff --git a/audio/writer_pulse.go b/audio/writer_pulse.go index fc892648..490b9e42 100644 --- a/audio/writer_pulse.go +++ b/audio/writer_pulse.go @@ -11,7 +11,7 @@ import ( "github.com/jfreymuth/pulse" "github.com/jfreymuth/pulse/proto" - "github.com/oakmound/oak/v3/audio/pcm" + "github.com/oakmound/oak/v4/audio/pcm" ) // This mutex may be unneeded diff --git a/collision/attachSpace.go b/collision/attachSpace.go index e1a7a9e3..4955ea25 100644 --- a/collision/attachSpace.go +++ b/collision/attachSpace.go @@ -3,8 +3,8 @@ package collision import ( "errors" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/physics" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/physics" ) // An AttachSpace is a composable struct that provides attachment diff --git a/collision/attachSpace_test.go b/collision/attachSpace_test.go index 34eeb965..22a83a09 100644 --- a/collision/attachSpace_test.go +++ b/collision/attachSpace_test.go @@ -5,8 +5,8 @@ import ( "testing" "time" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/physics" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/physics" ) type aspace struct { diff --git a/collision/filter.go b/collision/filter.go index d0be173e..60beebf4 100644 --- a/collision/filter.go +++ b/collision/filter.go @@ -1,6 +1,6 @@ package collision -import "github.com/oakmound/oak/v3/event" +import "github.com/oakmound/oak/v4/event" // A Filter will take a set of collision spaces // and return the subset that match some requirement diff --git a/collision/geom.go b/collision/geom.go index 62901050..7a39ca2a 100644 --- a/collision/geom.go +++ b/collision/geom.go @@ -7,7 +7,7 @@ package collision import ( "math" - "github.com/oakmound/oak/v3/alg/floatgeom" + "github.com/oakmound/oak/v4/alg/floatgeom" ) // minDist computes the square of the distance from a point to a rectangle. diff --git a/collision/onCollision.go b/collision/onCollision.go index 8c82aacc..bd4782da 100644 --- a/collision/onCollision.go +++ b/collision/onCollision.go @@ -3,7 +3,7 @@ package collision import ( "errors" - "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v4/event" ) // A Phase is a struct that other structs who want to use PhaseCollision diff --git a/collision/onCollision_test.go b/collision/onCollision_test.go index 110036d5..838e6b16 100644 --- a/collision/onCollision_test.go +++ b/collision/onCollision_test.go @@ -4,7 +4,7 @@ import ( "testing" "time" - "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v4/event" ) type cphase struct { diff --git a/collision/point.go b/collision/point.go index 168110da..b165d183 100644 --- a/collision/point.go +++ b/collision/point.go @@ -1,6 +1,6 @@ package collision -import "github.com/oakmound/oak/v3/alg/floatgeom" +import "github.com/oakmound/oak/v4/alg/floatgeom" // A Point is a specific point where // collision occurred and a zone to identify diff --git a/collision/ray/castFilter.go b/collision/ray/castFilter.go index 71ba7d7b..6f41a22e 100644 --- a/collision/ray/castFilter.go +++ b/collision/ray/castFilter.go @@ -1,8 +1,8 @@ package ray import ( - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v4/collision" + "github.com/oakmound/oak/v4/event" ) // A CastFilter is a function that can be applied to a Caster diff --git a/collision/ray/castLimit.go b/collision/ray/castLimit.go index 46bc245d..583249e4 100644 --- a/collision/ray/castLimit.go +++ b/collision/ray/castLimit.go @@ -1,8 +1,8 @@ package ray import ( - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v4/collision" + "github.com/oakmound/oak/v4/event" ) // A CastLimit is a function that can be applied to diff --git a/collision/ray/caster.go b/collision/ray/caster.go index 90adcd5b..5d2ae1ac 100644 --- a/collision/ray/caster.go +++ b/collision/ray/caster.go @@ -3,8 +3,8 @@ package ray import ( "math" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/collision" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/collision" ) var ( diff --git a/collision/ray/caster_test.go b/collision/ray/caster_test.go index c8e7fd00..25e9384c 100644 --- a/collision/ray/caster_test.go +++ b/collision/ray/caster_test.go @@ -4,8 +4,8 @@ import ( "reflect" "testing" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/collision" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/collision" ) func TestCasterScene(t *testing.T) { diff --git a/collision/ray/coneCaster.go b/collision/ray/coneCaster.go index 2f935cd1..db7108a0 100644 --- a/collision/ray/coneCaster.go +++ b/collision/ray/coneCaster.go @@ -1,9 +1,9 @@ package ray import ( - "github.com/oakmound/oak/v3/alg" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/collision" + "github.com/oakmound/oak/v4/alg" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/collision" ) var ( diff --git a/collision/ray/coneCaster_test.go b/collision/ray/coneCaster_test.go index 2a73765b..b7d84ca3 100644 --- a/collision/ray/coneCaster_test.go +++ b/collision/ray/coneCaster_test.go @@ -7,9 +7,9 @@ import ( "testing" "time" - "github.com/oakmound/oak/v3/alg" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/collision" + "github.com/oakmound/oak/v4/alg" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/collision" ) func TestConeCasterSettings(t *testing.T) { diff --git a/collision/ray/raycast_test.go b/collision/ray/raycast_test.go index ce2ae5c2..a1eae541 100644 --- a/collision/ray/raycast_test.go +++ b/collision/ray/raycast_test.go @@ -3,9 +3,9 @@ package ray import ( "testing" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/alg/span" - "github.com/oakmound/oak/v3/collision" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/alg/span" + "github.com/oakmound/oak/v4/collision" ) func TestEmptyRaycasts(t *testing.T) { diff --git a/collision/rtree.go b/collision/rtree.go index 836ade53..d8e3a5d5 100644 --- a/collision/rtree.go +++ b/collision/rtree.go @@ -8,7 +8,7 @@ import ( "math" "sort" - "github.com/oakmound/oak/v3/alg/floatgeom" + "github.com/oakmound/oak/v4/alg/floatgeom" ) // Rtree represents an R-tree, a balanced search tree for storing and querying diff --git a/collision/rtree_test.go b/collision/rtree_test.go index e2ab9662..76dd50aa 100644 --- a/collision/rtree_test.go +++ b/collision/rtree_test.go @@ -10,7 +10,7 @@ import ( "strings" "testing" - "github.com/oakmound/oak/v3/alg/floatgeom" + "github.com/oakmound/oak/v4/alg/floatgeom" ) var ( diff --git a/collision/space.go b/collision/space.go index c217ac48..7634abdc 100644 --- a/collision/space.go +++ b/collision/space.go @@ -1,9 +1,9 @@ package collision import ( - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/physics" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/physics" ) // ID Types constant diff --git a/collision/space_test.go b/collision/space_test.go index 8c41e398..3a4fe14b 100644 --- a/collision/space_test.go +++ b/collision/space_test.go @@ -3,9 +3,9 @@ package collision import ( "testing" - "github.com/oakmound/oak/v3/alg/floatgeom" + "github.com/oakmound/oak/v4/alg/floatgeom" - "github.com/oakmound/oak/v3/physics" + "github.com/oakmound/oak/v4/physics" ) func TestSpaceFuncs(t *testing.T) { diff --git a/collision/tree.go b/collision/tree.go index e32cd5b4..70069a5a 100644 --- a/collision/tree.go +++ b/collision/tree.go @@ -4,8 +4,8 @@ import ( "errors" "sync" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/oakerr" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/oakerr" ) // A Tree provides a space for managing collisions between rectangles diff --git a/collision/tree_test.go b/collision/tree_test.go index 2f380524..8795ec8e 100644 --- a/collision/tree_test.go +++ b/collision/tree_test.go @@ -4,8 +4,8 @@ import ( "math/rand" "testing" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/alg/span" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/alg/span" ) func TestNewTreeInvalidChildren(t *testing.T) { diff --git a/config.go b/config.go index 2f994689..d6a43b41 100644 --- a/config.go +++ b/config.go @@ -4,8 +4,8 @@ import ( "encoding/json" "io" - "github.com/oakmound/oak/v3/fileutil" - "github.com/oakmound/oak/v3/shiny/driver" + "github.com/oakmound/oak/v4/fileutil" + "github.com/oakmound/oak/v4/shiny/driver" ) // A Config defines the settings oak accepts on initialization. Some of these settings may be ignored depending diff --git a/config_test.go b/config_test.go index 9a313d77..527da619 100644 --- a/config_test.go +++ b/config_test.go @@ -6,7 +6,7 @@ import ( "path/filepath" "testing" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/screen" ) func TestDefaultConfigFileMatchesEmptyConfig(t *testing.T) { diff --git a/debugstream/commands.go b/debugstream/commands.go index 8ca6e69a..c37fd31f 100644 --- a/debugstream/commands.go +++ b/debugstream/commands.go @@ -10,7 +10,7 @@ import ( "strings" "sync" - "github.com/oakmound/oak/v3/oakerr" + "github.com/oakmound/oak/v4/oakerr" ) // ScopedCommands for the debug stream commands. diff --git a/debugstream/defaultcommands.go b/debugstream/defaultcommands.go index d3c7dd8e..b189b731 100644 --- a/debugstream/defaultcommands.go +++ b/debugstream/defaultcommands.go @@ -5,7 +5,7 @@ import ( "io" "sync" - "github.com/oakmound/oak/v3/window" + "github.com/oakmound/oak/v4/window" ) var ( diff --git a/debugstream/scopeHelper.go b/debugstream/scopeHelper.go index fd689ee3..0dd9a6dd 100644 --- a/debugstream/scopeHelper.go +++ b/debugstream/scopeHelper.go @@ -5,15 +5,15 @@ import ( "strconv" "strings" - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/debugtools" - "github.com/oakmound/oak/v3/dlog" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/mouse" - "github.com/oakmound/oak/v3/oakerr" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/render/mod" - "github.com/oakmound/oak/v3/window" + "github.com/oakmound/oak/v4/collision" + "github.com/oakmound/oak/v4/debugtools" + "github.com/oakmound/oak/v4/dlog" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/mouse" + "github.com/oakmound/oak/v4/oakerr" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/render/mod" + "github.com/oakmound/oak/v4/window" ) // AddDefaultsForScope for debugging. diff --git a/debugstream/scopeHelper_test.go b/debugstream/scopeHelper_test.go index 91268fd5..955589a1 100644 --- a/debugstream/scopeHelper_test.go +++ b/debugstream/scopeHelper_test.go @@ -6,11 +6,11 @@ import ( "testing" "time" - "github.com/oakmound/oak/v3/alg/intgeom" - "github.com/oakmound/oak/v3/debugtools" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/window" + "github.com/oakmound/oak/v4/alg/intgeom" + "github.com/oakmound/oak/v4/debugtools" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/window" ) type fakeWindow struct { diff --git a/debugtools/inputviz/joystick.go b/debugtools/inputviz/joystick.go index a1c0c16f..ec2e382f 100644 --- a/debugtools/inputviz/joystick.go +++ b/debugtools/inputviz/joystick.go @@ -9,14 +9,14 @@ import ( "math" "time" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/dlog" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/joystick" - "github.com/oakmound/oak/v3/key" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/render/mod" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/dlog" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/joystick" + "github.com/oakmound/oak/v4/key" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/render/mod" + "github.com/oakmound/oak/v4/scene" ) //go:embed controllerOutline.png diff --git a/debugtools/inputviz/keyboard.go b/debugtools/inputviz/keyboard.go index d259dd69..165271f7 100644 --- a/debugtools/inputviz/keyboard.go +++ b/debugtools/inputviz/keyboard.go @@ -3,11 +3,11 @@ package inputviz import ( "image/color" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/key" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" ) type KeyboardLayout interface { diff --git a/debugtools/inputviz/mouse.go b/debugtools/inputviz/mouse.go index 350c4ebf..65c81310 100644 --- a/debugtools/inputviz/mouse.go +++ b/debugtools/inputviz/mouse.go @@ -7,11 +7,11 @@ import ( "sync" "time" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/mouse" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/mouse" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" ) type Mouse struct { diff --git a/debugtools/mouse.go b/debugtools/mouse.go index 9f36e1fe..eb8391ac 100644 --- a/debugtools/mouse.go +++ b/debugtools/mouse.go @@ -1,11 +1,11 @@ package debugtools import ( - "github.com/oakmound/oak/v3/dlog" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" - "github.com/oakmound/oak/v3/mouse" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4/dlog" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/key" + "github.com/oakmound/oak/v4/mouse" + "github.com/oakmound/oak/v4/scene" ) // DebugMouseRelease will print the position and button pressed of the mouse when the mouse is released, if the given diff --git a/debugtools/renderable.go b/debugtools/renderable.go index cdf18499..02371cd1 100644 --- a/debugtools/renderable.go +++ b/debugtools/renderable.go @@ -1,7 +1,7 @@ package debugtools import ( - "github.com/oakmound/oak/v3/render" + "github.com/oakmound/oak/v4/render" "golang.org/x/sync/syncmap" ) diff --git a/debugtools/tree.go b/debugtools/tree.go index a48c8658..7340eeba 100644 --- a/debugtools/tree.go +++ b/debugtools/tree.go @@ -4,10 +4,10 @@ import ( "image/color" "image/draw" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" - "github.com/oakmound/oak/v3/collision" + "github.com/oakmound/oak/v4/collision" ) // NewRTree creates a wrapper around a tree that supports coloring the spaces diff --git a/default.go b/default.go index 12167627..4b14c2f0 100644 --- a/default.go +++ b/default.go @@ -5,11 +5,11 @@ import ( "sync" "time" - "github.com/oakmound/oak/v3/alg/intgeom" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4/alg/intgeom" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/key" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" ) var defaultWindow *Window diff --git a/default_test.go b/default_test.go index 4ad932d9..00a9feb4 100644 --- a/default_test.go +++ b/default_test.go @@ -3,10 +3,10 @@ package oak import ( "testing" - "github.com/oakmound/oak/v3/alg/intgeom" - "github.com/oakmound/oak/v3/key" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4/alg/intgeom" + "github.com/oakmound/oak/v4/key" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" ) func TestDefaultFunctions(t *testing.T) { diff --git a/dlog/default.go b/dlog/default.go index 5e59a781..bd042a1e 100644 --- a/dlog/default.go +++ b/dlog/default.go @@ -10,7 +10,7 @@ import ( "strings" "sync" - "github.com/oakmound/oak/v3/oakerr" + "github.com/oakmound/oak/v4/oakerr" ) var ( diff --git a/dlog/default_test.go b/dlog/default_test.go index 8d938658..8ad57f21 100644 --- a/dlog/default_test.go +++ b/dlog/default_test.go @@ -5,7 +5,7 @@ import ( "strings" "testing" - "github.com/oakmound/oak/v3/dlog" + "github.com/oakmound/oak/v4/dlog" ) func TestLogger(t *testing.T) { diff --git a/dlog/dlog_test.go b/dlog/dlog_test.go index 4ca38f1a..5791d1ff 100644 --- a/dlog/dlog_test.go +++ b/dlog/dlog_test.go @@ -6,7 +6,7 @@ import ( "os" "testing" - "github.com/oakmound/oak/v3/dlog" + "github.com/oakmound/oak/v4/dlog" ) func TestErrorCheck(t *testing.T) { diff --git a/dlog/levels.go b/dlog/levels.go index 01559a89..dde2c489 100644 --- a/dlog/levels.go +++ b/dlog/levels.go @@ -3,7 +3,7 @@ package dlog import ( "strings" - "github.com/oakmound/oak/v3/oakerr" + "github.com/oakmound/oak/v4/oakerr" ) // Level represents the levels a debug message can have diff --git a/dlog/levels_test.go b/dlog/levels_test.go index bd3cb585..95923ecf 100644 --- a/dlog/levels_test.go +++ b/dlog/levels_test.go @@ -3,7 +3,7 @@ package dlog_test import ( "testing" - "github.com/oakmound/oak/v3/dlog" + "github.com/oakmound/oak/v4/dlog" ) func TestLevelsString(t *testing.T) { diff --git a/dlog/strings.go b/dlog/strings.go index f0c19433..ee65f911 100644 --- a/dlog/strings.go +++ b/dlog/strings.go @@ -1,6 +1,6 @@ package dlog -import "github.com/oakmound/oak/v3/oakerr" +import "github.com/oakmound/oak/v4/oakerr" type logCode int diff --git a/driver.go b/driver.go index 87f04f3c..94ff3afa 100644 --- a/driver.go +++ b/driver.go @@ -1,7 +1,7 @@ package oak import ( - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/screen" ) // A Driver is a function which can take in our lifecycle function diff --git a/entities/entity.go b/entities/entity.go index ce28ea84..02e14106 100644 --- a/entities/entity.go +++ b/entities/entity.go @@ -3,13 +3,13 @@ package entities import ( "image/color" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/dlog" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/render/mod" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/collision" + "github.com/oakmound/oak/v4/dlog" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/render/mod" + "github.com/oakmound/oak/v4/scene" ) type Generator struct { diff --git a/entities/move.go b/entities/move.go index ce69d976..05b71c2b 100644 --- a/entities/move.go +++ b/entities/move.go @@ -1,9 +1,9 @@ package entities import ( - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/alg/intgeom" - "github.com/oakmound/oak/v3/key" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/alg/intgeom" + "github.com/oakmound/oak/v4/key" ) // WASD moves the given mover based on its speed as W,A,S, and D are pressed diff --git a/entities/opts_gen.go b/entities/opts_gen.go index b3519ff9..4be0dbfe 100644 --- a/entities/opts_gen.go +++ b/entities/opts_gen.go @@ -5,11 +5,11 @@ package entities import ( "image/color" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/render/mod" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/collision" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/render/mod" ) type Option func(Generator) Generator diff --git a/entities/x/btn/button.go b/entities/x/btn/button.go index 460aa762..5f8b34a2 100644 --- a/entities/x/btn/button.go +++ b/entities/x/btn/button.go @@ -4,15 +4,15 @@ import ( "fmt" "image/color" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/mouse" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/render/mod" - "github.com/oakmound/oak/v3/scene" - "github.com/oakmound/oak/v3/shape" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/collision" + "github.com/oakmound/oak/v4/entities" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/mouse" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/render/mod" + "github.com/oakmound/oak/v4/scene" + "github.com/oakmound/oak/v4/shape" ) // A Generator defines the variables used to create buttons from optional arguments diff --git a/entities/x/btn/grid/grid.go b/entities/x/btn/grid/grid.go index 87cefc28..1a83c008 100644 --- a/entities/x/btn/grid/grid.go +++ b/entities/x/btn/grid/grid.go @@ -2,9 +2,9 @@ package grid import ( - "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/entities/x/btn" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4/entities" + "github.com/oakmound/oak/v4/entities/x/btn" + "github.com/oakmound/oak/v4/scene" ) // A Grid is a 2D slice of entities diff --git a/entities/x/btn/grid/option.go b/entities/x/btn/grid/option.go index 47b02609..d044f5f0 100644 --- a/entities/x/btn/grid/option.go +++ b/entities/x/btn/grid/option.go @@ -1,8 +1,8 @@ package grid import ( - "github.com/oakmound/oak/v3/dlog" - "github.com/oakmound/oak/v3/entities/x/btn" + "github.com/oakmound/oak/v4/dlog" + "github.com/oakmound/oak/v4/entities/x/btn" ) // An Option modifies a generator prior to grid generation diff --git a/entities/x/btn/option.go b/entities/x/btn/option.go index 4d846ad6..97e8e440 100644 --- a/entities/x/btn/option.go +++ b/entities/x/btn/option.go @@ -3,14 +3,14 @@ package btn import ( "image/color" - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/mouse" - "github.com/oakmound/oak/v3/scene" - - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/render/mod" + "github.com/oakmound/oak/v4/collision" + "github.com/oakmound/oak/v4/entities" + "github.com/oakmound/oak/v4/mouse" + "github.com/oakmound/oak/v4/scene" + + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/render/mod" ) // And combines a variadic number of options diff --git a/entities/x/btn/textOptions.go b/entities/x/btn/textOptions.go index e48e2683..c8ba4bfa 100644 --- a/entities/x/btn/textOptions.go +++ b/entities/x/btn/textOptions.go @@ -3,7 +3,7 @@ package btn import ( "fmt" - "github.com/oakmound/oak/v3/render" + "github.com/oakmound/oak/v4/render" ) //Text sets the text of the button to be generated diff --git a/event/bind.go b/event/bind.go index 4c0b7fea..9e8276d2 100644 --- a/event/bind.go +++ b/event/bind.go @@ -3,7 +3,7 @@ package event import ( "sync/atomic" - "github.com/oakmound/oak/v3/dlog" + "github.com/oakmound/oak/v4/dlog" ) // Q: Why do Bind / Unbind / etc not immediately take effect? diff --git a/event/bind_test.go b/event/bind_test.go index 4fe1d942..12d0414e 100644 --- a/event/bind_test.go +++ b/event/bind_test.go @@ -4,7 +4,7 @@ import ( "sync/atomic" "testing" - "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v4/event" ) func TestBus_UnsafeBind(t *testing.T) { diff --git a/event/bus_test.go b/event/bus_test.go index 5567c809..31441f7f 100644 --- a/event/bus_test.go +++ b/event/bus_test.go @@ -6,7 +6,7 @@ import ( "testing" "time" - "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v4/event" ) func TestNewBus(t *testing.T) { diff --git a/event/caller_test.go b/event/caller_test.go index 10707660..4011981a 100644 --- a/event/caller_test.go +++ b/event/caller_test.go @@ -4,7 +4,7 @@ import ( "math/rand" "testing" - "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v4/event" ) func TestCallerID_CID(t *testing.T) { diff --git a/event/response_test.go b/event/response_test.go index 7064e353..4d3616ec 100644 --- a/event/response_test.go +++ b/event/response_test.go @@ -5,7 +5,7 @@ import ( "testing" "time" - "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v4/event" ) func TestBindingResponses(t *testing.T) { diff --git a/event/trigger_test.go b/event/trigger_test.go index 2dae1215..aa233564 100644 --- a/event/trigger_test.go +++ b/event/trigger_test.go @@ -7,7 +7,7 @@ import ( "testing" "time" - "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v4/event" ) func TestMain(m *testing.M) { diff --git a/examples/bezier/main.go b/examples/bezier/main.go index 770f9b57..7abe6ebe 100644 --- a/examples/bezier/main.go +++ b/examples/bezier/main.go @@ -5,13 +5,13 @@ import ( "image/color" "strconv" - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/debugstream" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/mouse" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" - "github.com/oakmound/oak/v3/shape" + oak "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/debugstream" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/mouse" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" + "github.com/oakmound/oak/v4/shape" ) var ( diff --git a/examples/blank/main.go b/examples/blank/main.go index 9e9fceee..6de09b14 100644 --- a/examples/blank/main.go +++ b/examples/blank/main.go @@ -5,9 +5,9 @@ import ( "net/http" _ "net/http/pprof" - "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" ) // This example is a blank, default scene with a pprof server. Useful for diff --git a/examples/click-propagation/main.go b/examples/click-propagation/main.go index fb9b6e73..973c3095 100644 --- a/examples/click-propagation/main.go +++ b/examples/click-propagation/main.go @@ -6,12 +6,12 @@ import ( "image/color" "image/draw" - "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/mouse" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/collision" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/mouse" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" ) // This example demonstrates the use of the Propagated boolean on diff --git a/examples/clipboard/go.mod b/examples/clipboard/go.mod index 36dd7c92..ea009487 100644 --- a/examples/clipboard/go.mod +++ b/examples/clipboard/go.mod @@ -4,7 +4,7 @@ go 1.18 require ( github.com/atotto/clipboard v0.1.4 - github.com/oakmound/oak/v3 v3.0.0-alpha.1 + github.com/oakmound/oak/v4 v3.0.0-alpha.1 ) require ( @@ -26,4 +26,4 @@ require ( golang.org/x/sys v0.0.0-20220403205710-6acee93ad0eb // indirect ) -replace github.com/oakmound/oak/v3 => ../.. +replace github.com/oakmound/oak/v4 => ../.. diff --git a/examples/clipboard/main.go b/examples/clipboard/main.go index fbd31d67..07751f20 100644 --- a/examples/clipboard/main.go +++ b/examples/clipboard/main.go @@ -4,14 +4,14 @@ import ( "fmt" "github.com/atotto/clipboard" - "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/entities/x/btn" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" - "github.com/oakmound/oak/v3/mouse" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/entities" + "github.com/oakmound/oak/v4/entities/x/btn" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/key" + "github.com/oakmound/oak/v4/mouse" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" ) func main() { diff --git a/examples/collision-demo/main.go b/examples/collision-demo/main.go index 809ea868..30998bfb 100644 --- a/examples/collision-demo/main.go +++ b/examples/collision-demo/main.go @@ -4,15 +4,15 @@ import ( "image/color" "time" - "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" - "github.com/oakmound/oak/v3/shake" + "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/collision" + "github.com/oakmound/oak/v4/entities" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/key" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" + "github.com/oakmound/oak/v4/shake" ) const ( diff --git a/examples/custom-cursor/main.go b/examples/custom-cursor/main.go index a7d391a9..d9ed51bf 100644 --- a/examples/custom-cursor/main.go +++ b/examples/custom-cursor/main.go @@ -4,11 +4,11 @@ import ( "fmt" "image/color" - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/mouse" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" + oak "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/mouse" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" ) func main() { diff --git a/examples/error-scene/main.go b/examples/error-scene/main.go index 02de8666..a188ec48 100644 --- a/examples/error-scene/main.go +++ b/examples/error-scene/main.go @@ -1,9 +1,9 @@ package main import ( - "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" ) func main() { diff --git a/examples/fallback-font/go.mod b/examples/fallback-font/go.mod index 9d13c9f9..3a304a64 100644 --- a/examples/fallback-font/go.mod +++ b/examples/fallback-font/go.mod @@ -4,7 +4,7 @@ go 1.18 require ( github.com/flopp/go-findfont v0.0.0-20201114153133-e7393a00c15b - github.com/oakmound/oak/v3 v3.0.0-alpha.1 + github.com/oakmound/oak/v4 v3.0.0-alpha.1 ) require ( @@ -26,4 +26,4 @@ require ( golang.org/x/sys v0.0.0-20220403205710-6acee93ad0eb // indirect ) -replace github.com/oakmound/oak/v3 => ../.. +replace github.com/oakmound/oak/v4 => ../.. diff --git a/examples/fallback-font/main.go b/examples/fallback-font/main.go index c32b8d26..cc8e5e1d 100644 --- a/examples/fallback-font/main.go +++ b/examples/fallback-font/main.go @@ -7,9 +7,9 @@ import ( "image" findfont "github.com/flopp/go-findfont" - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" + oak "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" ) func main() { diff --git a/examples/flappy-bird/main.go b/examples/flappy-bird/main.go index 6916b6d0..2cde1e34 100644 --- a/examples/flappy-bird/main.go +++ b/examples/flappy-bird/main.go @@ -4,17 +4,17 @@ import ( "image/color" "time" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/alg/span" - "github.com/oakmound/oak/v3/mouse" - - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/alg/span" + "github.com/oakmound/oak/v4/mouse" + + oak "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/collision" + "github.com/oakmound/oak/v4/entities" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/key" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" ) var ( diff --git a/examples/joystick-viz/main.go b/examples/joystick-viz/main.go index f25deb5e..33edc802 100644 --- a/examples/joystick-viz/main.go +++ b/examples/joystick-viz/main.go @@ -4,15 +4,15 @@ import ( "fmt" "time" - "github.com/oakmound/oak/v3/debugtools/inputviz" - "github.com/oakmound/oak/v3/render" + "github.com/oakmound/oak/v4/debugtools/inputviz" + "github.com/oakmound/oak/v4/render" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/event" - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/joystick" - "github.com/oakmound/oak/v3/scene" + oak "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/joystick" + "github.com/oakmound/oak/v4/scene" ) func main() { diff --git a/examples/keyboard-viz/main.go b/examples/keyboard-viz/main.go index ab227996..332b316b 100644 --- a/examples/keyboard-viz/main.go +++ b/examples/keyboard-viz/main.go @@ -5,12 +5,12 @@ import ( "image" "image/color" - "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/debugtools/inputviz" - "github.com/oakmound/oak/v3/dlog" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/debugtools/inputviz" + "github.com/oakmound/oak/v4/dlog" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" ) func main() { diff --git a/examples/mouse-viz/main.go b/examples/mouse-viz/main.go index 39e8f471..6c0871b5 100644 --- a/examples/mouse-viz/main.go +++ b/examples/mouse-viz/main.go @@ -1,10 +1,10 @@ package main import ( - "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/debugtools/inputviz" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/debugtools/inputviz" + "github.com/oakmound/oak/v4/scene" ) func main() { diff --git a/examples/multi-window/main.go b/examples/multi-window/main.go index 120e0840..c263786e 100644 --- a/examples/multi-window/main.go +++ b/examples/multi-window/main.go @@ -4,11 +4,11 @@ import ( "fmt" "image/color" - "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/mouse" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/mouse" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" ) func main() { diff --git a/examples/particle-demo/main.go b/examples/particle-demo/main.go index 43782294..d74096ad 100644 --- a/examples/particle-demo/main.go +++ b/examples/particle-demo/main.go @@ -6,18 +6,18 @@ import ( "log" "strconv" - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/alg" - "github.com/oakmound/oak/v3/alg/span" - "github.com/oakmound/oak/v3/debugstream" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/mouse" - "github.com/oakmound/oak/v3/oakerr" - "github.com/oakmound/oak/v3/physics" - "github.com/oakmound/oak/v3/render" - pt "github.com/oakmound/oak/v3/render/particle" - "github.com/oakmound/oak/v3/scene" - "github.com/oakmound/oak/v3/shape" + oak "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/alg" + "github.com/oakmound/oak/v4/alg/span" + "github.com/oakmound/oak/v4/debugstream" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/mouse" + "github.com/oakmound/oak/v4/oakerr" + "github.com/oakmound/oak/v4/physics" + "github.com/oakmound/oak/v4/render" + pt "github.com/oakmound/oak/v4/render/particle" + "github.com/oakmound/oak/v4/scene" + "github.com/oakmound/oak/v4/shape" ) var ( diff --git a/examples/piano/main.go b/examples/piano/main.go index 0af325a2..e746151f 100644 --- a/examples/piano/main.go +++ b/examples/piano/main.go @@ -11,18 +11,18 @@ import ( "sync" "time" - "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/audio" - "github.com/oakmound/oak/v3/audio/pcm" - "github.com/oakmound/oak/v3/audio/synth" - "github.com/oakmound/oak/v3/dlog" - "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" - "github.com/oakmound/oak/v3/mouse" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/audio" + "github.com/oakmound/oak/v4/audio/pcm" + "github.com/oakmound/oak/v4/audio/synth" + "github.com/oakmound/oak/v4/dlog" + "github.com/oakmound/oak/v4/entities" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/key" + "github.com/oakmound/oak/v4/mouse" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" ) const ( diff --git a/examples/platformer/main.go b/examples/platformer/main.go index 4d88a73d..ce5b056c 100644 --- a/examples/platformer/main.go +++ b/examples/platformer/main.go @@ -4,16 +4,16 @@ import ( "image/color" "math" - "github.com/oakmound/oak/v3/alg/floatgeom" + "github.com/oakmound/oak/v4/alg/floatgeom" - "github.com/oakmound/oak/v3/collision" + "github.com/oakmound/oak/v4/collision" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/key" - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/scene" + oak "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/entities" + "github.com/oakmound/oak/v4/scene" ) const ( diff --git a/examples/pong/main.go b/examples/pong/main.go index c84af099..b67aa0fb 100644 --- a/examples/pong/main.go +++ b/examples/pong/main.go @@ -5,14 +5,14 @@ import ( "math" "math/rand" - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" + oak "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/collision" + "github.com/oakmound/oak/v4/entities" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/key" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" ) var ( diff --git a/examples/radar-demo/main.go b/examples/radar-demo/main.go index 89112e00..7d157255 100644 --- a/examples/radar-demo/main.go +++ b/examples/radar-demo/main.go @@ -5,15 +5,15 @@ import ( "math" "math/rand" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/alg/intgeom" - - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/examples/radar-demo/radar" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/alg/intgeom" + + oak "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/entities" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/examples/radar-demo/radar" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" ) const ( diff --git a/examples/radar-demo/radar/radar.go b/examples/radar-demo/radar/radar.go index f755369c..58ce0b44 100644 --- a/examples/radar-demo/radar/radar.go +++ b/examples/radar-demo/radar/radar.go @@ -5,7 +5,7 @@ import ( "image/color" "image/draw" - "github.com/oakmound/oak/v3/render" + "github.com/oakmound/oak/v4/render" ) // Point is a utility function for location diff --git a/examples/rooms/main.go b/examples/rooms/main.go index 6e1354b6..9fea3120 100644 --- a/examples/rooms/main.go +++ b/examples/rooms/main.go @@ -4,13 +4,13 @@ import ( "image/color" "math/rand" - "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/alg/intgeom" - "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/alg/intgeom" + "github.com/oakmound/oak/v4/entities" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" ) // Rooms exercises shifting the camera in a zelda-esque fashion, diff --git a/examples/screenopts/main.go b/examples/screenopts/main.go index 5ce3e691..5418277a 100644 --- a/examples/screenopts/main.go +++ b/examples/screenopts/main.go @@ -7,11 +7,11 @@ import ( "math/rand" "strconv" - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" + oak "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/key" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" ) func main() { diff --git a/examples/slide/main.go b/examples/slide/main.go index 49efccf1..c273bef5 100644 --- a/examples/slide/main.go +++ b/examples/slide/main.go @@ -6,15 +6,15 @@ import ( "image/color" "log" - "github.com/oakmound/oak/v3/alg/span" - "github.com/oakmound/oak/v3/render/mod" - "github.com/oakmound/oak/v3/render/particle" - - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/examples/slide/show" - "github.com/oakmound/oak/v3/examples/slide/show/static" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/shape" + "github.com/oakmound/oak/v4/alg/span" + "github.com/oakmound/oak/v4/render/mod" + "github.com/oakmound/oak/v4/render/particle" + + oak "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/examples/slide/show" + "github.com/oakmound/oak/v4/examples/slide/show/static" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/shape" "golang.org/x/image/colornames" ) diff --git a/examples/slide/show/fonts.go b/examples/slide/show/fonts.go index 53e95c5a..67d10308 100644 --- a/examples/slide/show/fonts.go +++ b/examples/slide/show/fonts.go @@ -5,7 +5,7 @@ import ( "image/color" "path" - "github.com/oakmound/oak/v3/render" + "github.com/oakmound/oak/v4/render" ) func InitFonts() (err error) { diff --git a/examples/slide/show/helpers.go b/examples/slide/show/helpers.go index e15c6201..33ebedb1 100644 --- a/examples/slide/show/helpers.go +++ b/examples/slide/show/helpers.go @@ -5,9 +5,9 @@ import ( "path/filepath" "strings" - "github.com/oakmound/oak/v3/render/mod" + "github.com/oakmound/oak/v4/render/mod" - "github.com/oakmound/oak/v3/render" + "github.com/oakmound/oak/v4/render" ) var ( diff --git a/examples/slide/show/slide.go b/examples/slide/show/slide.go index a3762747..e0258bf5 100644 --- a/examples/slide/show/slide.go +++ b/examples/slide/show/slide.go @@ -6,12 +6,12 @@ import ( "image/color" "strconv" - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/debugstream" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" + oak "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/debugstream" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/key" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" ) type Slide interface { diff --git a/examples/slide/show/static/basicSlide.go b/examples/slide/show/static/basicSlide.go index 3b2d01ce..81728f45 100644 --- a/examples/slide/show/static/basicSlide.go +++ b/examples/slide/show/static/basicSlide.go @@ -4,12 +4,12 @@ import ( "fmt" "os" - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" - "github.com/oakmound/oak/v3/mouse" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" + oak "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/key" + "github.com/oakmound/oak/v4/mouse" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" ) type Slide struct { diff --git a/examples/sprite-demo/main.go b/examples/sprite-demo/main.go index b607a412..cbd7bff2 100644 --- a/examples/sprite-demo/main.go +++ b/examples/sprite-demo/main.go @@ -7,12 +7,12 @@ import ( "math/rand" "path/filepath" - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/render/mod" - "github.com/oakmound/oak/v3/scene" + oak "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/key" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/render/mod" + "github.com/oakmound/oak/v4/scene" ) const ( diff --git a/examples/svg/go.mod b/examples/svg/go.mod index 1b5782d2..8de5eeb6 100644 --- a/examples/svg/go.mod +++ b/examples/svg/go.mod @@ -3,7 +3,7 @@ module github.com/oakmound/oak/examples/svg go 1.18 require ( - github.com/oakmound/oak/v3 v3.0.0-alpha.1 + github.com/oakmound/oak/v4 v3.0.0-alpha.1 github.com/srwiley/oksvg v0.0.0-20210320200257-875f767ac39a github.com/srwiley/rasterx v0.0.0-20200120212402-85cb7272f5e9 ) @@ -29,4 +29,4 @@ require ( golang.org/x/text v0.3.6 // indirect ) -replace github.com/oakmound/oak/v3 => ../.. +replace github.com/oakmound/oak/v4 => ../.. diff --git a/examples/svg/main.go b/examples/svg/main.go index ceae36bd..b55a284d 100644 --- a/examples/svg/main.go +++ b/examples/svg/main.go @@ -6,9 +6,9 @@ import ( "fmt" "image" - "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" "github.com/srwiley/oksvg" "github.com/srwiley/rasterx" ) diff --git a/examples/text-demos/color-changing-text-demo/main.go b/examples/text-demos/color-changing-text-demo/main.go index 4b76cf6f..84121b4e 100644 --- a/examples/text-demos/color-changing-text-demo/main.go +++ b/examples/text-demos/color-changing-text-demo/main.go @@ -8,10 +8,10 @@ import ( "image" - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/alg/span" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" + oak "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/alg/span" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" ) var ( diff --git a/examples/text-demos/continual-text-demo/main.go b/examples/text-demos/continual-text-demo/main.go index 66f309c8..927f1bbf 100644 --- a/examples/text-demos/continual-text-demo/main.go +++ b/examples/text-demos/continual-text-demo/main.go @@ -4,15 +4,15 @@ import ( "image/color" "math/rand" - "github.com/oakmound/oak/v3/alg/span" - "github.com/oakmound/oak/v3/dlog" - "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v4/alg/span" + "github.com/oakmound/oak/v4/dlog" + "github.com/oakmound/oak/v4/event" "image" - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" + oak "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" ) // ~60 fps draw rate with these examples in testing diff --git a/examples/titlescreen-demo/main.go b/examples/titlescreen-demo/main.go index 1bb2fa6c..f3d45228 100644 --- a/examples/titlescreen-demo/main.go +++ b/examples/titlescreen-demo/main.go @@ -3,13 +3,13 @@ package main import ( "image/color" - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" + oak "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/entities" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/key" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" ) // Axes are the plural of axis diff --git a/examples/top-down-shooter/main.go b/examples/top-down-shooter/main.go index e5c6c818..2f021cc2 100644 --- a/examples/top-down-shooter/main.go +++ b/examples/top-down-shooter/main.go @@ -6,20 +6,20 @@ import ( "math/rand" "time" - "github.com/oakmound/oak/v3/render/mod" - - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/alg/intgeom" - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/collision/ray" - "github.com/oakmound/oak/v3/dlog" - "github.com/oakmound/oak/v3/entities" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" - "github.com/oakmound/oak/v3/mouse" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4/render/mod" + + oak "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/alg/intgeom" + "github.com/oakmound/oak/v4/collision" + "github.com/oakmound/oak/v4/collision/ray" + "github.com/oakmound/oak/v4/dlog" + "github.com/oakmound/oak/v4/entities" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/key" + "github.com/oakmound/oak/v4/mouse" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" ) const ( diff --git a/examples/zooming/main.go b/examples/zooming/main.go index b28f831d..19bee5d0 100644 --- a/examples/zooming/main.go +++ b/examples/zooming/main.go @@ -6,12 +6,12 @@ import ( "image/draw" "path/filepath" - oak "github.com/oakmound/oak/v3" - "github.com/oakmound/oak/v3/dlog" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" + oak "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/dlog" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/key" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" ) var ( diff --git a/go.mod b/go.mod index 4a4d3f59..4d60493d 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/oakmound/oak/v3 +module github.com/oakmound/oak/v4 go 1.18 diff --git a/init.go b/init.go index 4197d570..f9a09dd1 100644 --- a/init.go +++ b/init.go @@ -8,10 +8,10 @@ import ( "strings" "time" - "github.com/oakmound/oak/v3/dlog" - "github.com/oakmound/oak/v3/oakerr" - "github.com/oakmound/oak/v3/scene" - "github.com/oakmound/oak/v3/timing" + "github.com/oakmound/oak/v4/dlog" + "github.com/oakmound/oak/v4/oakerr" + "github.com/oakmound/oak/v4/scene" + "github.com/oakmound/oak/v4/timing" ) var ( diff --git a/init_override_js.go b/init_override_js.go index 1df10f17..3bfae168 100644 --- a/init_override_js.go +++ b/init_override_js.go @@ -4,7 +4,7 @@ package oak import ( - "github.com/oakmound/oak/v3/dlog" + "github.com/oakmound/oak/v4/dlog" "syscall/js" ) @@ -15,11 +15,11 @@ func overrideInit(w *Window) { } if w.config.EnableDebugConsole { dlog.Info("Debug console is not supported in JS") - w.config.EnableDebugConsole = false + w.config.EnableDebugConsole = false } if w.config.UnlimitedDrawFrameRate { dlog.Info("Unlimited draw frame rate is not supported in JS") - w.config.UnlimitedDrawFrameRate = false + w.config.UnlimitedDrawFrameRate = false } w.animationFrame = make(chan struct{}) js.Global().Call("requestAnimationFrame", js.FuncOf(w.requestFrame)) diff --git a/inputLoop.go b/inputLoop.go index 575ce2b5..6137c188 100644 --- a/inputLoop.go +++ b/inputLoop.go @@ -1,13 +1,13 @@ package oak import ( - "github.com/oakmound/oak/v3/alg/intgeom" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/timing" + "github.com/oakmound/oak/v4/alg/intgeom" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/timing" - "github.com/oakmound/oak/v3/dlog" - okey "github.com/oakmound/oak/v3/key" - omouse "github.com/oakmound/oak/v3/mouse" + "github.com/oakmound/oak/v4/dlog" + okey "github.com/oakmound/oak/v4/key" + omouse "github.com/oakmound/oak/v4/mouse" "golang.org/x/mobile/event/key" "golang.org/x/mobile/event/lifecycle" "golang.org/x/mobile/event/mouse" diff --git a/inputLoop_test.go b/inputLoop_test.go index 3ca71e0a..2ac6d92b 100644 --- a/inputLoop_test.go +++ b/inputLoop_test.go @@ -4,7 +4,7 @@ import ( "testing" "time" - "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v4/event" "golang.org/x/mobile/event/key" "golang.org/x/mobile/event/mouse" ) diff --git a/inputTracker.go b/inputTracker.go index 2f6cabc7..5ee79c1c 100644 --- a/inputTracker.go +++ b/inputTracker.go @@ -4,11 +4,11 @@ import ( "sync/atomic" "time" - "github.com/oakmound/oak/v3/dlog" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/joystick" - "github.com/oakmound/oak/v3/key" - "github.com/oakmound/oak/v3/mouse" + "github.com/oakmound/oak/v4/dlog" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/joystick" + "github.com/oakmound/oak/v4/key" + "github.com/oakmound/oak/v4/mouse" ) // InputType expresses some form of input to the engine to represent a player diff --git a/inputTracker_test.go b/inputTracker_test.go index db1bc232..a3fd31b7 100644 --- a/inputTracker_test.go +++ b/inputTracker_test.go @@ -4,10 +4,10 @@ import ( "testing" "time" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" - "github.com/oakmound/oak/v3/mouse" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/key" + "github.com/oakmound/oak/v4/mouse" + "github.com/oakmound/oak/v4/scene" ) func TestTrackInputChanges(t *testing.T) { diff --git a/joystick/driver_darwin.go b/joystick/driver_darwin.go index 396d1ceb..5bcb09ad 100644 --- a/joystick/driver_darwin.go +++ b/joystick/driver_darwin.go @@ -1,6 +1,6 @@ package joystick -import "github.com/oakmound/oak/v3/oakerr" +import "github.com/oakmound/oak/v4/oakerr" func osinit() error { return nil @@ -14,19 +14,19 @@ type osJoystick struct { } func (j *Joystick) prepare() error { - return oakerr.UnsupportedPlatform{Operation:"joystick"} + return oakerr.UnsupportedPlatform{Operation: "joystick"} } func (j *Joystick) getState() (*State, error) { - return nil, oakerr.UnsupportedPlatform{Operation:"joystick"} + return nil, oakerr.UnsupportedPlatform{Operation: "joystick"} } func (j *Joystick) vibrate(left, right uint16) error { - return oakerr.UnsupportedPlatform{Operation:"joystick"} + return oakerr.UnsupportedPlatform{Operation: "joystick"} } func (j *Joystick) close() error { - return oakerr.UnsupportedPlatform{Operation:"joystick"} + return oakerr.UnsupportedPlatform{Operation: "joystick"} } func getJoysticks() []*Joystick { diff --git a/joystick/driver_js.go b/joystick/driver_js.go index eb36b4e0..063c8ec5 100644 --- a/joystick/driver_js.go +++ b/joystick/driver_js.go @@ -1,17 +1,17 @@ package joystick import ( + "errors" "reflect" "syscall/js" - "errors" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/oakerr" - "github.com/oakmound/oak/v3/timing" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/oakerr" + "github.com/oakmound/oak/v4/timing" ) -func osinit() error { - // TODO: listen to joystick connected and joystick disconnected? We'd still need to +func osinit() error { + // TODO: listen to joystick connected and joystick disconnected? We'd still need to // list from getGamepads every frame, it seems, to get new button presses. return nil } @@ -63,19 +63,19 @@ type jsGamepadState struct { connected bool // osID string // index int - mapping string + mapping string } type jsButton struct { - value float64 + value float64 //touched bool pressed bool } type osJoystick struct { - cache State - jsState jsGamepadState - newJSState jsGamepadState + cache State + jsState jsGamepadState + newJSState jsGamepadState newButtons map[string]bool } diff --git a/joystick/driver_linux.go b/joystick/driver_linux.go index 4aed3e51..67e11c41 100644 --- a/joystick/driver_linux.go +++ b/joystick/driver_linux.go @@ -7,10 +7,10 @@ import ( "strconv" "sync" - "github.com/oakmound/oak/v3/dlog" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/oakerr" - "github.com/oakmound/oak/v3/timing" + "github.com/oakmound/oak/v4/dlog" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/oakerr" + "github.com/oakmound/oak/v4/timing" "encoding/binary" "path" diff --git a/joystick/driver_other.go b/joystick/driver_other.go index 34d4f06d..4f2abe8f 100644 --- a/joystick/driver_other.go +++ b/joystick/driver_other.go @@ -3,7 +3,7 @@ package joystick -import "github.com/oakmound/oak/v3/oakerr" +import "github.com/oakmound/oak/v4/oakerr" func newOsJoystick() osJoystick { return osJoystick{} diff --git a/joystick/driver_windows.go b/joystick/driver_windows.go index 7d64b1c6..4485699c 100644 --- a/joystick/driver_windows.go +++ b/joystick/driver_windows.go @@ -3,8 +3,8 @@ package joystick import ( "sync" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/timing" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/timing" "github.com/oakmound/w32" ) diff --git a/joystick/joystick.go b/joystick/joystick.go index e2f12513..856381b7 100644 --- a/joystick/joystick.go +++ b/joystick/joystick.go @@ -7,8 +7,8 @@ import ( "sync" "time" - "github.com/oakmound/oak/v3/dlog" - "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v4/dlog" + "github.com/oakmound/oak/v4/event" ) type Input string diff --git a/key/events.go b/key/events.go index cfbd06f6..143261f2 100644 --- a/key/events.go +++ b/key/events.go @@ -3,7 +3,7 @@ package key import ( "sync" - "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v4/event" "golang.org/x/mobile/event/key" ) diff --git a/lifecycle.go b/lifecycle.go index c668a0c7..b202e8d8 100644 --- a/lifecycle.go +++ b/lifecycle.go @@ -4,11 +4,11 @@ import ( "image" "image/draw" - "github.com/oakmound/oak/v3/alg" - "github.com/oakmound/oak/v3/debugstream" + "github.com/oakmound/oak/v4/alg" + "github.com/oakmound/oak/v4/debugstream" "golang.org/x/mobile/event/lifecycle" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/screen" ) func (w *Window) lifecycleLoop(s screen.Screen) { diff --git a/loading.go b/loading.go index 67c9a422..e0d75271 100644 --- a/loading.go +++ b/loading.go @@ -3,10 +3,10 @@ package oak import ( "io/fs" - "github.com/oakmound/oak/v3/audio" - "github.com/oakmound/oak/v3/dlog" - "github.com/oakmound/oak/v3/fileutil" - "github.com/oakmound/oak/v3/render" + "github.com/oakmound/oak/v4/audio" + "github.com/oakmound/oak/v4/dlog" + "github.com/oakmound/oak/v4/fileutil" + "github.com/oakmound/oak/v4/render" "golang.org/x/sync/errgroup" ) diff --git a/loading_test.go b/loading_test.go index 3d03e82b..ba242a69 100644 --- a/loading_test.go +++ b/loading_test.go @@ -4,7 +4,7 @@ import ( "os" "testing" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4/scene" ) func TestBatchLoad_HappyPath(t *testing.T) { diff --git a/mouse/default.go b/mouse/default.go index 0200513f..afda470e 100644 --- a/mouse/default.go +++ b/mouse/default.go @@ -1,6 +1,6 @@ package mouse -import "github.com/oakmound/oak/v3/collision" +import "github.com/oakmound/oak/v4/collision" // DefaultTree is a collision tree intended to be used by default if no other // is instantiated. Methods on a collision tree are duplicated as functions diff --git a/mouse/default_test.go b/mouse/default_test.go index d44fa0d9..64684588 100644 --- a/mouse/default_test.go +++ b/mouse/default_test.go @@ -3,7 +3,7 @@ package mouse import ( "testing" - "github.com/oakmound/oak/v3/collision" + "github.com/oakmound/oak/v4/collision" ) func TestDefaultFunctions(t *testing.T) { diff --git a/mouse/event.go b/mouse/event.go index b17cbf06..7ffd5309 100644 --- a/mouse/event.go +++ b/mouse/event.go @@ -1,9 +1,9 @@ package mouse import ( - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/collision" + "github.com/oakmound/oak/v4/event" ) var ( diff --git a/mouse/event_test.go b/mouse/event_test.go index e77c2f37..97df2d0c 100644 --- a/mouse/event_test.go +++ b/mouse/event_test.go @@ -3,7 +3,7 @@ package mouse import ( "testing" - "github.com/oakmound/oak/v3/collision" + "github.com/oakmound/oak/v4/collision" ) func TestEventConversions(t *testing.T) { diff --git a/mouse/events.go b/mouse/events.go index 8ed4832f..628e4926 100644 --- a/mouse/events.go +++ b/mouse/events.go @@ -1,6 +1,6 @@ package mouse -import "github.com/oakmound/oak/v3/event" +import "github.com/oakmound/oak/v4/event" var ( // Press is triggered when a mouse key is pressed down diff --git a/mouse/events_test.go b/mouse/events_test.go index 08cdaa36..112b328b 100644 --- a/mouse/events_test.go +++ b/mouse/events_test.go @@ -3,7 +3,7 @@ package mouse import ( "testing" - "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v4/event" ) func TestEventOn(t *testing.T) { diff --git a/mouse/mouse.go b/mouse/mouse.go index 5caa8498..a6f93cb3 100644 --- a/mouse/mouse.go +++ b/mouse/mouse.go @@ -1,7 +1,7 @@ package mouse import ( - "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v4/event" "golang.org/x/mobile/event/mouse" ) diff --git a/mouse/onCollision.go b/mouse/onCollision.go index 7c77abaf..36fbb469 100644 --- a/mouse/onCollision.go +++ b/mouse/onCollision.go @@ -3,8 +3,8 @@ package mouse import ( "errors" - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v4/collision" + "github.com/oakmound/oak/v4/event" ) // CollisionPhase is a component that can be placed into another struct to diff --git a/mouse/onCollision_test.go b/mouse/onCollision_test.go index 12fe61a5..2c4fdd89 100644 --- a/mouse/onCollision_test.go +++ b/mouse/onCollision_test.go @@ -4,9 +4,9 @@ import ( "testing" "time" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/collision" + "github.com/oakmound/oak/v4/event" ) type cphase struct { diff --git a/physics/force.go b/physics/force.go index a0b8f2f7..de316caf 100644 --- a/physics/force.go +++ b/physics/force.go @@ -1,7 +1,7 @@ package physics import ( - "github.com/oakmound/oak/v3/oakerr" + "github.com/oakmound/oak/v4/oakerr" ) const frozen = -64 diff --git a/physics/vector.go b/physics/vector.go index a19a55e7..b36a225e 100644 --- a/physics/vector.go +++ b/physics/vector.go @@ -3,7 +3,7 @@ package physics import ( "math" - "github.com/oakmound/oak/v3/alg" + "github.com/oakmound/oak/v4/alg" ) // A Vector is a two-dimensional point or vector used throughout oak diff --git a/physics/vector_test.go b/physics/vector_test.go index 2ad81e81..cb727dbb 100644 --- a/physics/vector_test.go +++ b/physics/vector_test.go @@ -3,7 +3,7 @@ package physics import ( "testing" - "github.com/oakmound/oak/v3/alg" + "github.com/oakmound/oak/v4/alg" ) func TestVectorFuncs(t *testing.T) { diff --git a/render/bachload_test.go b/render/bachload_test.go index 09e4697c..2d67bf2e 100644 --- a/render/bachload_test.go +++ b/render/bachload_test.go @@ -4,7 +4,7 @@ import ( "errors" "testing" - "github.com/oakmound/oak/v3/oakerr" + "github.com/oakmound/oak/v4/oakerr" ) func TestBlankBatchLoad_BadBaseFolder(t *testing.T) { diff --git a/render/batchload.go b/render/batchload.go index 27f8165b..8400de4c 100644 --- a/render/batchload.go +++ b/render/batchload.go @@ -8,10 +8,10 @@ import ( "strconv" "sync" - "github.com/oakmound/oak/v3/alg/intgeom" - "github.com/oakmound/oak/v3/dlog" - "github.com/oakmound/oak/v3/fileutil" - "github.com/oakmound/oak/v3/oakerr" + "github.com/oakmound/oak/v4/alg/intgeom" + "github.com/oakmound/oak/v4/dlog" + "github.com/oakmound/oak/v4/fileutil" + "github.com/oakmound/oak/v4/oakerr" ) // BatchLoad loads subdirectories from the given base folder and imports all files, diff --git a/render/bezier.go b/render/bezier.go index 1e0c3974..49ce88ec 100644 --- a/render/bezier.go +++ b/render/bezier.go @@ -4,9 +4,9 @@ import ( "image" "image/color" - "github.com/oakmound/oak/v3/alg" - "github.com/oakmound/oak/v3/alg/intgeom" - "github.com/oakmound/oak/v3/shape" + "github.com/oakmound/oak/v4/alg" + "github.com/oakmound/oak/v4/alg/intgeom" + "github.com/oakmound/oak/v4/shape" ) // BezierLine converts a bezier into a line sprite. diff --git a/render/bezier_test.go b/render/bezier_test.go index 8172c12a..4daa242b 100644 --- a/render/bezier_test.go +++ b/render/bezier_test.go @@ -4,7 +4,7 @@ import ( "image/color" "testing" - "github.com/oakmound/oak/v3/shape" + "github.com/oakmound/oak/v4/shape" ) func TestSimpleBezierLine(t *testing.T) { diff --git a/render/cache.go b/render/cache.go index d3bca480..7a1a2e32 100644 --- a/render/cache.go +++ b/render/cache.go @@ -5,7 +5,7 @@ import ( "sync" "github.com/golang/freetype/truetype" - "github.com/oakmound/oak/v3/alg/intgeom" + "github.com/oakmound/oak/v4/alg/intgeom" ) // DefaultCache is the receiver for package level sprites, sheets, and font loading operations. diff --git a/render/colorbox.go b/render/colorbox.go index 4eac32a5..b496b5b3 100644 --- a/render/colorbox.go +++ b/render/colorbox.go @@ -5,7 +5,7 @@ import ( "image/color" "image/draw" - "github.com/oakmound/oak/v3/alg/intgeom" + "github.com/oakmound/oak/v4/alg/intgeom" ) // NewColorBox returns a Sprite full of a given color with the given dimensions diff --git a/render/compositeM.go b/render/compositeM.go index 0438f006..17ec5c9d 100644 --- a/render/compositeM.go +++ b/render/compositeM.go @@ -4,8 +4,8 @@ import ( "image" "image/draw" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/render/mod" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/render/mod" ) // CompositeM Types display all of their parts at the same time, diff --git a/render/compositeM_test.go b/render/compositeM_test.go index ee8c827d..a8001dc5 100644 --- a/render/compositeM_test.go +++ b/render/compositeM_test.go @@ -6,8 +6,8 @@ import ( "reflect" "testing" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/render/mod" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/render/mod" ) func TestComposite(t *testing.T) { diff --git a/render/compositeR.go b/render/compositeR.go index 3c63cf77..ba9220c1 100644 --- a/render/compositeR.go +++ b/render/compositeR.go @@ -5,8 +5,8 @@ import ( "image/draw" "sync" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/alg/intgeom" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/alg/intgeom" ) // A CompositeR is equivalent to a CompositeM for Renderables instead of diff --git a/render/compositeR_test.go b/render/compositeR_test.go index 3beb08fd..20cdf0b0 100644 --- a/render/compositeR_test.go +++ b/render/compositeR_test.go @@ -6,8 +6,8 @@ import ( "reflect" "testing" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/alg/intgeom" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/alg/intgeom" ) func TestCompositeR(t *testing.T) { diff --git a/render/curve.go b/render/curve.go index 8406113c..8fe72c8b 100644 --- a/render/curve.go +++ b/render/curve.go @@ -5,8 +5,8 @@ import ( "image/color" "math" - "github.com/oakmound/oak/v3/alg" - "github.com/oakmound/oak/v3/alg/floatgeom" + "github.com/oakmound/oak/v4/alg" + "github.com/oakmound/oak/v4/alg/floatgeom" ) // NewCircle creates a sprite and draws a circle onto it diff --git a/render/decoder.go b/render/decoder.go index ad57b7cf..b93ce20f 100644 --- a/render/decoder.go +++ b/render/decoder.go @@ -4,7 +4,7 @@ import ( "image" "io" - "github.com/oakmound/oak/v3/oakerr" + "github.com/oakmound/oak/v4/oakerr" ) // Decoder functions convert arbitrary readers to images. diff --git a/render/drawHeap.go b/render/drawHeap.go index 23cf4ec5..da56eb61 100644 --- a/render/drawHeap.go +++ b/render/drawHeap.go @@ -4,7 +4,7 @@ import ( "image/draw" "sync" - "github.com/oakmound/oak/v3/alg/intgeom" + "github.com/oakmound/oak/v4/alg/intgeom" ) // A RenderableHeap manages a set of renderables to be drawn in explicit layered diff --git a/render/drawHeap_test.go b/render/drawHeap_test.go index 6012e5fb..dd981726 100644 --- a/render/drawHeap_test.go +++ b/render/drawHeap_test.go @@ -5,7 +5,7 @@ import ( "image/color" "testing" - "github.com/oakmound/oak/v3/alg/intgeom" + "github.com/oakmound/oak/v4/alg/intgeom" ) const heapLoops = 2000 diff --git a/render/drawStack.go b/render/drawStack.go index dd268c89..2b3188c5 100644 --- a/render/drawStack.go +++ b/render/drawStack.go @@ -3,8 +3,8 @@ package render import ( "image/draw" - "github.com/oakmound/oak/v3/alg/intgeom" - "github.com/oakmound/oak/v3/oakerr" + "github.com/oakmound/oak/v4/alg/intgeom" + "github.com/oakmound/oak/v4/oakerr" ) var ( diff --git a/render/drawStack_test.go b/render/drawStack_test.go index 0ecb6e09..9da7c7fb 100644 --- a/render/drawStack_test.go +++ b/render/drawStack_test.go @@ -6,7 +6,7 @@ import ( "reflect" "testing" - "github.com/oakmound/oak/v3/alg/intgeom" + "github.com/oakmound/oak/v4/alg/intgeom" ) func TestDrawStack(t *testing.T) { diff --git a/render/font.go b/render/font.go index cbaf84f1..a95dd7cf 100644 --- a/render/font.go +++ b/render/font.go @@ -12,9 +12,9 @@ import ( "golang.org/x/image/font" "golang.org/x/image/math/fixed" - "github.com/oakmound/oak/v3/alg/intgeom" - "github.com/oakmound/oak/v3/fileutil" - "github.com/oakmound/oak/v3/oakerr" + "github.com/oakmound/oak/v4/alg/intgeom" + "github.com/oakmound/oak/v4/fileutil" + "github.com/oakmound/oak/v4/oakerr" ) var ( diff --git a/render/font_test.go b/render/font_test.go index ae229400..12f86913 100644 --- a/render/font_test.go +++ b/render/font_test.go @@ -7,7 +7,7 @@ import ( "math/rand" "testing" - "github.com/oakmound/oak/v3/oakerr" + "github.com/oakmound/oak/v4/oakerr" "golang.org/x/image/colornames" ) diff --git a/render/fps.go b/render/fps.go index 9b10a0a4..d7992b25 100644 --- a/render/fps.go +++ b/render/fps.go @@ -4,7 +4,7 @@ import ( "image/draw" "time" - "github.com/oakmound/oak/v3/timing" + "github.com/oakmound/oak/v4/timing" ) const ( diff --git a/render/interfaceFeatures.go b/render/interfaceFeatures.go index 1b8a8dfc..803a88d4 100644 --- a/render/interfaceFeatures.go +++ b/render/interfaceFeatures.go @@ -1,6 +1,6 @@ package render -import "github.com/oakmound/oak/v3/event" +import "github.com/oakmound/oak/v4/event" // NonStatic types are not always static. If something is not NonStatic, // it is equivalent to having IsStatic always return true. diff --git a/render/layered.go b/render/layered.go index 97031f8a..2c2024db 100644 --- a/render/layered.go +++ b/render/layered.go @@ -1,7 +1,7 @@ package render import ( - "github.com/oakmound/oak/v3/physics" + "github.com/oakmound/oak/v4/physics" ) const ( diff --git a/render/line.go b/render/line.go index accb0483..f37ba9d8 100644 --- a/render/line.go +++ b/render/line.go @@ -5,7 +5,7 @@ import ( "image/color" "math" - "github.com/oakmound/oak/v3/alg/span" + "github.com/oakmound/oak/v4/alg/span" ) // Todo: diff --git a/render/loadsheet.go b/render/loadsheet.go index cd513dc4..1db88a37 100644 --- a/render/loadsheet.go +++ b/render/loadsheet.go @@ -4,8 +4,8 @@ import ( "image" "path/filepath" - "github.com/oakmound/oak/v3/alg/intgeom" - "github.com/oakmound/oak/v3/oakerr" + "github.com/oakmound/oak/v4/alg/intgeom" + "github.com/oakmound/oak/v4/oakerr" ) // LoadSheet loads a file in some directory with sheets of (w,h) sized sprites. diff --git a/render/loadsheet_test.go b/render/loadsheet_test.go index 8d9e05f2..1a079522 100644 --- a/render/loadsheet_test.go +++ b/render/loadsheet_test.go @@ -6,8 +6,8 @@ import ( "path/filepath" "testing" - "github.com/oakmound/oak/v3/alg/intgeom" - "github.com/oakmound/oak/v3/oakerr" + "github.com/oakmound/oak/v4/alg/intgeom" + "github.com/oakmound/oak/v4/oakerr" ) var ( diff --git a/render/loadsprite.go b/render/loadsprite.go index 21c38be7..34172bc8 100644 --- a/render/loadsprite.go +++ b/render/loadsprite.go @@ -8,8 +8,8 @@ import ( "path/filepath" "strings" - "github.com/oakmound/oak/v3/fileutil" - "github.com/oakmound/oak/v3/oakerr" + "github.com/oakmound/oak/v4/fileutil" + "github.com/oakmound/oak/v4/oakerr" ) func loadSpriteNoCache(file string, maxFileSize int64) (*image.RGBA, error) { diff --git a/render/logicfps.go b/render/logicfps.go index edce75c1..f6dd71ac 100644 --- a/render/logicfps.go +++ b/render/logicfps.go @@ -3,8 +3,8 @@ package render import ( "time" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/timing" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/timing" ) // LogicFPS is a Stackable that will draw the logical fps onto the screen when a part diff --git a/render/logicfps_test.go b/render/logicfps_test.go index 62e908fa..981c2c71 100644 --- a/render/logicfps_test.go +++ b/render/logicfps_test.go @@ -4,7 +4,7 @@ import ( "image" "testing" - "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v4/event" ) func TestLogicFPS(t *testing.T) { diff --git a/render/mod/cut.go b/render/mod/cut.go index 8d1f01fc..4363fc78 100644 --- a/render/mod/cut.go +++ b/render/mod/cut.go @@ -4,9 +4,9 @@ import ( "image" "image/color" - "github.com/oakmound/oak/v3/alg" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/shape" + "github.com/oakmound/oak/v4/alg" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/shape" ) // CutRound rounds the edges of the Modifiable with Bezier curves. diff --git a/render/mod/highlight.go b/render/mod/highlight.go index 15ea5f30..d02939f6 100644 --- a/render/mod/highlight.go +++ b/render/mod/highlight.go @@ -4,7 +4,7 @@ import ( "image" "image/color" - "github.com/oakmound/oak/v3/alg/intgeom" + "github.com/oakmound/oak/v4/alg/intgeom" ) func HighlightOff(c color.Color, thickness, xOff, yOff int) Mod { diff --git a/render/mod/mod_test.go b/render/mod/mod_test.go index f41848a2..ec2795df 100644 --- a/render/mod/mod_test.go +++ b/render/mod/mod_test.go @@ -7,7 +7,7 @@ import ( "testing" "github.com/disintegration/gift" - "github.com/oakmound/oak/v3/shape" + "github.com/oakmound/oak/v4/shape" ) func TestComposedModifications(t *testing.T) { diff --git a/render/modifiable.go b/render/modifiable.go index 4446fd65..46ab9684 100644 --- a/render/modifiable.go +++ b/render/modifiable.go @@ -3,7 +3,7 @@ package render import ( "image" - "github.com/oakmound/oak/v3/render/mod" + "github.com/oakmound/oak/v4/render/mod" ) // A Modifiable is a Renderable that has functions to change its diff --git a/render/noopStackable.go b/render/noopStackable.go index ad695ccb..de665c50 100644 --- a/render/noopStackable.go +++ b/render/noopStackable.go @@ -3,7 +3,7 @@ package render import ( "image/draw" - "github.com/oakmound/oak/v3/alg/intgeom" + "github.com/oakmound/oak/v4/alg/intgeom" ) // NoopStackable is a Stackable element where all methods are no-ops. diff --git a/render/noopStackable_test.go b/render/noopStackable_test.go index ceb8ebe9..d986adcb 100644 --- a/render/noopStackable_test.go +++ b/render/noopStackable_test.go @@ -3,7 +3,7 @@ package render import ( "testing" - "github.com/oakmound/oak/v3/alg/intgeom" + "github.com/oakmound/oak/v4/alg/intgeom" ) func TestNoopStackable(t *testing.T) { diff --git a/render/particle/allocator.go b/render/particle/allocator.go index 83706c5d..13a7f9aa 100644 --- a/render/particle/allocator.go +++ b/render/particle/allocator.go @@ -1,7 +1,7 @@ package particle import ( - "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v4/event" ) const ( diff --git a/render/particle/allocator_test.go b/render/particle/allocator_test.go index bbf04497..546d1567 100644 --- a/render/particle/allocator_test.go +++ b/render/particle/allocator_test.go @@ -3,7 +3,7 @@ package particle import ( "testing" - "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v4/event" ) func TestAllocate(t *testing.T) { diff --git a/render/particle/collisionParticle.go b/render/particle/collisionParticle.go index c88371ed..a8d534ba 100644 --- a/render/particle/collisionParticle.go +++ b/render/particle/collisionParticle.go @@ -3,7 +3,7 @@ package particle import ( "image/draw" - "github.com/oakmound/oak/v3/collision" + "github.com/oakmound/oak/v4/collision" ) // A CollisionParticle is a wrapper around other particles that also diff --git a/render/particle/collision_test.go b/render/particle/collision_test.go index 40d2dba9..a1b3a71a 100644 --- a/render/particle/collision_test.go +++ b/render/particle/collision_test.go @@ -4,7 +4,7 @@ import ( "image" "testing" - "github.com/oakmound/oak/v3/collision" + "github.com/oakmound/oak/v4/collision" ) func TestCollisionParticle(t *testing.T) { diff --git a/render/particle/collisonGenerator.go b/render/particle/collisonGenerator.go index f4d269f5..4e2d4460 100644 --- a/render/particle/collisonGenerator.go +++ b/render/particle/collisonGenerator.go @@ -1,8 +1,8 @@ package particle import ( - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v4/collision" + "github.com/oakmound/oak/v4/event" ) // A CollisionGenerator generates collision particles diff --git a/render/particle/colorGenerator.go b/render/particle/colorGenerator.go index cf5f9d2b..a7478ba4 100644 --- a/render/particle/colorGenerator.go +++ b/render/particle/colorGenerator.go @@ -3,10 +3,10 @@ package particle import ( "image/color" - "github.com/oakmound/oak/v3/alg" - "github.com/oakmound/oak/v3/shape" + "github.com/oakmound/oak/v4/alg" + "github.com/oakmound/oak/v4/shape" - "github.com/oakmound/oak/v3/alg/span" + "github.com/oakmound/oak/v4/alg/span" ) // A ColorGenerator generates ColorParticles diff --git a/render/particle/colorParticle.go b/render/particle/colorParticle.go index 2c6e7a68..6fcb7220 100644 --- a/render/particle/colorParticle.go +++ b/render/particle/colorParticle.go @@ -4,8 +4,8 @@ import ( "image/color" "image/draw" - "github.com/oakmound/oak/v3/physics" - "github.com/oakmound/oak/v3/render" + "github.com/oakmound/oak/v4/physics" + "github.com/oakmound/oak/v4/render" ) // A ColorParticle is a particle with a defined color and size diff --git a/render/particle/color_test.go b/render/particle/color_test.go index e4cf0101..9c3275f5 100644 --- a/render/particle/color_test.go +++ b/render/particle/color_test.go @@ -5,9 +5,9 @@ import ( "image/color" "testing" - "github.com/oakmound/oak/v3/alg/span" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/shape" + "github.com/oakmound/oak/v4/alg/span" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/shape" ) func TestColorParticle(t *testing.T) { diff --git a/render/particle/generator.go b/render/particle/generator.go index 39cc89c5..ffb84c57 100644 --- a/render/particle/generator.go +++ b/render/particle/generator.go @@ -3,8 +3,8 @@ package particle import ( "math" - "github.com/oakmound/oak/v3/alg/span" - "github.com/oakmound/oak/v3/physics" + "github.com/oakmound/oak/v4/alg/span" + "github.com/oakmound/oak/v4/physics" ) var ( diff --git a/render/particle/gradientGenerator.go b/render/particle/gradientGenerator.go index 79e09d5d..eb221518 100644 --- a/render/particle/gradientGenerator.go +++ b/render/particle/gradientGenerator.go @@ -3,8 +3,8 @@ package particle import ( "image/color" - "github.com/oakmound/oak/v3/alg" - "github.com/oakmound/oak/v3/render" + "github.com/oakmound/oak/v4/alg" + "github.com/oakmound/oak/v4/render" ) // A GradientGenerator is a ColorGenerator with a patterned gradient diff --git a/render/particle/gradientParticle.go b/render/particle/gradientParticle.go index 47b1fd5f..a1e51a25 100644 --- a/render/particle/gradientParticle.go +++ b/render/particle/gradientParticle.go @@ -4,7 +4,7 @@ import ( "image/color" "image/draw" - "github.com/oakmound/oak/v3/render" + "github.com/oakmound/oak/v4/render" ) // A GradientParticle has a gradient from one color to another diff --git a/render/particle/gradient_test.go b/render/particle/gradient_test.go index f5fb88c0..1fd70431 100644 --- a/render/particle/gradient_test.go +++ b/render/particle/gradient_test.go @@ -5,10 +5,10 @@ import ( "image/color" "testing" - "github.com/oakmound/oak/v3/alg/span" - "github.com/oakmound/oak/v3/physics" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/shape" + "github.com/oakmound/oak/v4/alg/span" + "github.com/oakmound/oak/v4/physics" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/shape" ) func TestGradientParticle(t *testing.T) { diff --git a/render/particle/math.go b/render/particle/math.go index 80fc2be6..d890368d 100644 --- a/render/particle/math.go +++ b/render/particle/math.go @@ -5,7 +5,7 @@ import ( "math" "math/rand" - "github.com/oakmound/oak/v3/alg" + "github.com/oakmound/oak/v4/alg" ) // floatFromSpread returns a random value between diff --git a/render/particle/options.go b/render/particle/options.go index a0115727..d822f134 100644 --- a/render/particle/options.go +++ b/render/particle/options.go @@ -3,9 +3,9 @@ package particle import ( "math" - "github.com/oakmound/oak/v3/alg" - "github.com/oakmound/oak/v3/alg/span" - "github.com/oakmound/oak/v3/physics" + "github.com/oakmound/oak/v4/alg" + "github.com/oakmound/oak/v4/alg/span" + "github.com/oakmound/oak/v4/physics" ) // And chains together particle options into a single option diff --git a/render/particle/particle.go b/render/particle/particle.go index 91f6c571..a089026c 100644 --- a/render/particle/particle.go +++ b/render/particle/particle.go @@ -5,8 +5,8 @@ package particle import ( "image/draw" - "github.com/oakmound/oak/v3/physics" - "github.com/oakmound/oak/v3/render" + "github.com/oakmound/oak/v4/physics" + "github.com/oakmound/oak/v4/render" ) // A Particle is a renderable that is spawned by a generator, usually very fast, diff --git a/render/particle/particle_test.go b/render/particle/particle_test.go index 748f9fbc..578b2033 100644 --- a/render/particle/particle_test.go +++ b/render/particle/particle_test.go @@ -3,7 +3,7 @@ package particle import ( "testing" - "github.com/oakmound/oak/v3/render" + "github.com/oakmound/oak/v4/render" ) func TestParticle(t *testing.T) { diff --git a/render/particle/shape.go b/render/particle/shape.go index 3121d705..e1317275 100644 --- a/render/particle/shape.go +++ b/render/particle/shape.go @@ -1,6 +1,6 @@ package particle -import "github.com/oakmound/oak/v3/shape" +import "github.com/oakmound/oak/v4/shape" // Shapeable generators can have the Shape option called on them type Shapeable interface { diff --git a/render/particle/source.go b/render/particle/source.go index 9a3c089e..601e6cd7 100644 --- a/render/particle/source.go +++ b/render/particle/source.go @@ -4,9 +4,9 @@ import ( "math" "time" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/physics" - "github.com/oakmound/oak/v3/render" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/physics" + "github.com/oakmound/oak/v4/render" ) const ( diff --git a/render/particle/source_test.go b/render/particle/source_test.go index 70dd4970..01f1fc13 100644 --- a/render/particle/source_test.go +++ b/render/particle/source_test.go @@ -4,11 +4,11 @@ import ( "image/color" "testing" - "github.com/oakmound/oak/v3/alg/span" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/physics" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/shape" + "github.com/oakmound/oak/v4/alg/span" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/physics" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/shape" ) func TestSource(t *testing.T) { diff --git a/render/particle/spriteGenerator.go b/render/particle/spriteGenerator.go index 9c5a5cd4..b91856b9 100644 --- a/render/particle/spriteGenerator.go +++ b/render/particle/spriteGenerator.go @@ -1,10 +1,10 @@ package particle import ( - "github.com/oakmound/oak/v3/alg/span" + "github.com/oakmound/oak/v4/alg/span" - "github.com/oakmound/oak/v3/alg" - "github.com/oakmound/oak/v3/render" + "github.com/oakmound/oak/v4/alg" + "github.com/oakmound/oak/v4/render" ) // A SpriteGenerator generate SpriteParticles diff --git a/render/particle/spriteParticle.go b/render/particle/spriteParticle.go index 317ba791..84682f53 100644 --- a/render/particle/spriteParticle.go +++ b/render/particle/spriteParticle.go @@ -3,8 +3,8 @@ package particle import ( "image/draw" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/render/mod" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/render/mod" ) // A SpriteParticle is a particle that has an amount of sprite rotation diff --git a/render/particle/sprite_test.go b/render/particle/sprite_test.go index ad878f9a..bf6e67ed 100644 --- a/render/particle/sprite_test.go +++ b/render/particle/sprite_test.go @@ -5,8 +5,8 @@ import ( "image/color" "testing" - "github.com/oakmound/oak/v3/alg/span" - "github.com/oakmound/oak/v3/render" + "github.com/oakmound/oak/v4/alg/span" + "github.com/oakmound/oak/v4/render" ) func TestSpriteParticle(t *testing.T) { diff --git a/render/polygon.go b/render/polygon.go index 9418c44c..e1908da4 100644 --- a/render/polygon.go +++ b/render/polygon.go @@ -5,8 +5,8 @@ import ( "image/color" "math" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/alg/span" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/alg/span" ) // A Polygon is a renderable that is represented by a set of in order points diff --git a/render/polygon_test.go b/render/polygon_test.go index 9a705abc..7ae4709f 100644 --- a/render/polygon_test.go +++ b/render/polygon_test.go @@ -4,7 +4,7 @@ import ( "image/color" "testing" - "github.com/oakmound/oak/v3/alg/floatgeom" + "github.com/oakmound/oak/v4/alg/floatgeom" ) func TestContains(t *testing.T) { diff --git a/render/renderable.go b/render/renderable.go index 5a56e19f..ce2c3fee 100644 --- a/render/renderable.go +++ b/render/renderable.go @@ -3,7 +3,7 @@ package render import ( "image/draw" - "github.com/oakmound/oak/v3/physics" + "github.com/oakmound/oak/v4/physics" ) // A Renderable is anything which can diff --git a/render/reverting.go b/render/reverting.go index bafa6d68..3b38162d 100644 --- a/render/reverting.go +++ b/render/reverting.go @@ -1,8 +1,8 @@ package render import ( - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/render/mod" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/render/mod" ) // The Reverting structure lets modifications be made to a Modifiable and then diff --git a/render/reverting_test.go b/render/reverting_test.go index 49cae688..e8a64497 100644 --- a/render/reverting_test.go +++ b/render/reverting_test.go @@ -6,7 +6,7 @@ import ( "reflect" "testing" - "github.com/oakmound/oak/v3/render/mod" + "github.com/oakmound/oak/v4/render/mod" ) var ( diff --git a/render/sequence.go b/render/sequence.go index 0ce1afad..9fd3c5c5 100644 --- a/render/sequence.go +++ b/render/sequence.go @@ -5,9 +5,9 @@ import ( "image/draw" "time" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/render/mod" - "github.com/oakmound/oak/v3/timing" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/render/mod" + "github.com/oakmound/oak/v4/timing" ) // A Sequence is a series of modifiables drawn as an animation. It is more diff --git a/render/sequence_test.go b/render/sequence_test.go index 45b56f29..5fe92ebf 100644 --- a/render/sequence_test.go +++ b/render/sequence_test.go @@ -8,8 +8,8 @@ import ( "testing" "time" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/render/mod" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/render/mod" ) type Dummy struct { diff --git a/render/sheet.go b/render/sheet.go index 7818c075..c537eaad 100644 --- a/render/sheet.go +++ b/render/sheet.go @@ -3,7 +3,7 @@ package render import ( "image" - "github.com/oakmound/oak/v3/oakerr" + "github.com/oakmound/oak/v4/oakerr" ) // Sheet is a 2D array of image rgbas diff --git a/render/sheet_test.go b/render/sheet_test.go index 5b279b21..8f9f8dcf 100644 --- a/render/sheet_test.go +++ b/render/sheet_test.go @@ -5,8 +5,8 @@ import ( "os" "testing" - "github.com/oakmound/oak/v3/alg/intgeom" - "github.com/oakmound/oak/v3/fileutil" + "github.com/oakmound/oak/v4/alg/intgeom" + "github.com/oakmound/oak/v4/fileutil" ) //go:embed testdata/assets/* diff --git a/render/sprite.go b/render/sprite.go index 91409abf..df041be7 100644 --- a/render/sprite.go +++ b/render/sprite.go @@ -5,7 +5,7 @@ import ( "image/color" "image/draw" - "github.com/oakmound/oak/v3/render/mod" + "github.com/oakmound/oak/v4/render/mod" ) // A Sprite is a basic wrapper around image data and a point. The most basic Renderable. diff --git a/render/sprite_test.go b/render/sprite_test.go index b56f9245..2bb1dbfe 100644 --- a/render/sprite_test.go +++ b/render/sprite_test.go @@ -6,8 +6,8 @@ import ( "reflect" "testing" - "github.com/oakmound/oak/v3/alg/span" - "github.com/oakmound/oak/v3/render/mod" + "github.com/oakmound/oak/v4/alg/span" + "github.com/oakmound/oak/v4/render/mod" ) var ( diff --git a/render/switch.go b/render/switch.go index e493bc8a..6a38aa53 100644 --- a/render/switch.go +++ b/render/switch.go @@ -5,10 +5,10 @@ import ( "image/draw" "sync" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/oakerr" - "github.com/oakmound/oak/v3/physics" - "github.com/oakmound/oak/v3/render/mod" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/oakerr" + "github.com/oakmound/oak/v4/physics" + "github.com/oakmound/oak/v4/render/mod" ) // The Switch type is intended for use to easily swap between multiple diff --git a/render/switch_test.go b/render/switch_test.go index e9ff6585..ca286ab8 100644 --- a/render/switch_test.go +++ b/render/switch_test.go @@ -6,8 +6,8 @@ import ( "reflect" "testing" - "github.com/oakmound/oak/v3/physics" - "github.com/oakmound/oak/v3/render/mod" + "github.com/oakmound/oak/v4/physics" + "github.com/oakmound/oak/v4/render/mod" ) func TestCompoundFuncs(t *testing.T) { diff --git a/render/text.go b/render/text.go index 9b3a00d8..88131260 100644 --- a/render/text.go +++ b/render/text.go @@ -5,7 +5,7 @@ import ( "image/draw" "strconv" - "github.com/oakmound/oak/v3/alg" + "github.com/oakmound/oak/v4/alg" "golang.org/x/image/math/fixed" ) diff --git a/scene.go b/scene.go index e11bb276..a6ce44e8 100644 --- a/scene.go +++ b/scene.go @@ -3,8 +3,8 @@ package oak import ( "time" - "github.com/oakmound/oak/v3/scene" - "github.com/oakmound/oak/v3/timing" + "github.com/oakmound/oak/v4/scene" + "github.com/oakmound/oak/v4/timing" ) // AddScene is shorthand for w.SceneMap.AddScene diff --git a/scene/context.go b/scene/context.go index 5932017e..ef337127 100644 --- a/scene/context.go +++ b/scene/context.go @@ -3,10 +3,10 @@ package scene import ( "context" - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" - "github.com/oakmound/oak/v3/render" + "github.com/oakmound/oak/v4/collision" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/key" + "github.com/oakmound/oak/v4/render" ) // A Context contains all transient engine components used in a scene, including diff --git a/scene/context_desktop.go b/scene/context_desktop.go index 6f624c35..7777bdb6 100644 --- a/scene/context_desktop.go +++ b/scene/context_desktop.go @@ -3,6 +3,6 @@ package scene -import "github.com/oakmound/oak/v3/window" +import "github.com/oakmound/oak/v4/window" type Window = window.Window diff --git a/scene/context_other.go b/scene/context_other.go index 2572c27a..153661f3 100644 --- a/scene/context_other.go +++ b/scene/context_other.go @@ -3,6 +3,6 @@ package scene -import "github.com/oakmound/oak/v3/window" +import "github.com/oakmound/oak/v4/window" type Window = window.App diff --git a/scene/delay.go b/scene/delay.go index 524418c8..fd6682ea 100644 --- a/scene/delay.go +++ b/scene/delay.go @@ -4,7 +4,7 @@ import ( "context" "time" - "github.com/oakmound/oak/v3/render" + "github.com/oakmound/oak/v4/render" ) // DoAfter will execute the given function after some duration. When the scene diff --git a/scene/delay_test.go b/scene/delay_test.go index 96b48aed..518e9326 100644 --- a/scene/delay_test.go +++ b/scene/delay_test.go @@ -6,7 +6,7 @@ import ( "testing" "time" - "github.com/oakmound/oak/v3/render" + "github.com/oakmound/oak/v4/render" ) func TestDoAfterCancels(t *testing.T) { diff --git a/scene/example_test.go b/scene/example_test.go index a75894fc..dbeeb830 100644 --- a/scene/example_test.go +++ b/scene/example_test.go @@ -3,7 +3,7 @@ package scene_test import ( "fmt" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4/scene" ) func ExampleMap_GetCurrent() { diff --git a/scene/map.go b/scene/map.go index 35dc7b88..346f6463 100644 --- a/scene/map.go +++ b/scene/map.go @@ -3,7 +3,7 @@ package scene import ( "sync" - "github.com/oakmound/oak/v3/oakerr" + "github.com/oakmound/oak/v4/oakerr" ) // A Map lets scenes be accessed via associated names. diff --git a/scene/map_test.go b/scene/map_test.go index 3678c1b0..bf029400 100644 --- a/scene/map_test.go +++ b/scene/map_test.go @@ -5,7 +5,7 @@ import ( "image" "testing" - "github.com/oakmound/oak/v3/oakerr" + "github.com/oakmound/oak/v4/oakerr" ) func TestMap(t *testing.T) { diff --git a/scene/scene.go b/scene/scene.go index d73a8693..93554e3f 100644 --- a/scene/scene.go +++ b/scene/scene.go @@ -1,8 +1,8 @@ package scene import ( - "github.com/oakmound/oak/v3/dlog" - "github.com/oakmound/oak/v3/oakerr" + "github.com/oakmound/oak/v4/dlog" + "github.com/oakmound/oak/v4/oakerr" ) // A Scene is a set of functions defining what needs to happen when a scene diff --git a/scene/transition.go b/scene/transition.go index 4e251023..03bf73a3 100644 --- a/scene/transition.go +++ b/scene/transition.go @@ -4,7 +4,7 @@ import ( "image" "image/draw" - "github.com/oakmound/oak/v3/render/mod" + "github.com/oakmound/oak/v4/render/mod" ) // Transition functions can be set to occur at the end of a scene. diff --git a/scene/transition_gift.go b/scene/transition_gift.go index e8aee858..3c58631d 100644 --- a/scene/transition_gift.go +++ b/scene/transition_gift.go @@ -6,7 +6,7 @@ package scene import ( "image" - "github.com/oakmound/oak/v3/render/mod" + "github.com/oakmound/oak/v4/render/mod" ) // Fade is a scene transition that fades to black at a given rate for diff --git a/sceneLoop.go b/sceneLoop.go index 9a41eeaa..3fc9fc74 100644 --- a/sceneLoop.go +++ b/sceneLoop.go @@ -3,12 +3,12 @@ package oak import ( "context" - "github.com/oakmound/oak/v3/alg/intgeom" - "github.com/oakmound/oak/v3/dlog" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/oakerr" - "github.com/oakmound/oak/v3/scene" - "github.com/oakmound/oak/v3/timing" + "github.com/oakmound/oak/v4/alg/intgeom" + "github.com/oakmound/oak/v4/dlog" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/oakerr" + "github.com/oakmound/oak/v4/scene" + "github.com/oakmound/oak/v4/timing" ) // the oak loading scene is a reserved scene diff --git a/sceneLoop_test.go b/sceneLoop_test.go index fb48c25b..89d6e8b0 100644 --- a/sceneLoop_test.go +++ b/sceneLoop_test.go @@ -4,7 +4,7 @@ import ( "testing" "time" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4/scene" ) func TestSceneLoopUnknownScene(t *testing.T) { diff --git a/scene_test.go b/scene_test.go index 7937ed32..5b6f205d 100644 --- a/scene_test.go +++ b/scene_test.go @@ -5,8 +5,8 @@ import ( "errors" "testing" - "github.com/oakmound/oak/v3/oakerr" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4/oakerr" + "github.com/oakmound/oak/v4/scene" ) func TestSceneTransition(t *testing.T) { diff --git a/screenFilter.go b/screenFilter.go index a86d9449..b9789432 100644 --- a/screenFilter.go +++ b/screenFilter.go @@ -4,7 +4,7 @@ import ( "image" "image/color" - "github.com/oakmound/oak/v3/render/mod" + "github.com/oakmound/oak/v4/render/mod" ) // SetPalette tells oak to conform the screen to the input color palette before drawing. diff --git a/screenshot_test.go b/screenshot_test.go index 7c38ae9d..412c6b08 100644 --- a/screenshot_test.go +++ b/screenshot_test.go @@ -7,7 +7,7 @@ import ( "testing" "time" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4/scene" ) func blankScene(t *testing.T) *Window { diff --git a/shake/shake.go b/shake/shake.go index 85461755..b03b89e0 100644 --- a/shake/shake.go +++ b/shake/shake.go @@ -6,10 +6,10 @@ import ( "math/rand" "time" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/alg/intgeom" - "github.com/oakmound/oak/v3/scene" - "github.com/oakmound/oak/v3/window" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/alg/intgeom" + "github.com/oakmound/oak/v4/scene" + "github.com/oakmound/oak/v4/window" ) // A Shaker knows how to shake something by a (or up to a) given magnitude. diff --git a/shape/bezier.go b/shape/bezier.go index b8fb18e3..30b44c8a 100644 --- a/shape/bezier.go +++ b/shape/bezier.go @@ -1,8 +1,8 @@ package shape import ( - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/oakerr" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/oakerr" ) // BezierCurve will form a Bezier on the given coordinates, expected in (x,y) diff --git a/shape/bezier_test.go b/shape/bezier_test.go index 6fb9cec3..d5b16a73 100644 --- a/shape/bezier_test.go +++ b/shape/bezier_test.go @@ -6,7 +6,7 @@ import ( "testing" "time" - "github.com/oakmound/oak/v3/oakerr" + "github.com/oakmound/oak/v4/oakerr" ) const randTestCt = 100 diff --git a/shape/condense.go b/shape/condense.go index 1d55a782..f9fd8aaf 100644 --- a/shape/condense.go +++ b/shape/condense.go @@ -1,6 +1,6 @@ package shape -import "github.com/oakmound/oak/v3/alg/intgeom" +import "github.com/oakmound/oak/v4/alg/intgeom" // Condense finds a set of rectangles that covers the shape. // Used to return a minimal set of rectangles in an appropriate time. diff --git a/shape/condense_test.go b/shape/condense_test.go index 0564b2f3..25bf2101 100644 --- a/shape/condense_test.go +++ b/shape/condense_test.go @@ -5,7 +5,7 @@ import ( "sort" "testing" - "github.com/oakmound/oak/v3/alg/intgeom" + "github.com/oakmound/oak/v4/alg/intgeom" ) func TestCondense(t *testing.T) { diff --git a/shape/holes.go b/shape/holes.go index 33629a28..805b5741 100644 --- a/shape/holes.go +++ b/shape/holes.go @@ -1,7 +1,7 @@ package shape import ( - "github.com/oakmound/oak/v3/alg/intgeom" + "github.com/oakmound/oak/v4/alg/intgeom" ) // GetHoles finds sets of points which are not In this shape that diff --git a/shape/holes_test.go b/shape/holes_test.go index 8d36c804..9c6d6cb5 100644 --- a/shape/holes_test.go +++ b/shape/holes_test.go @@ -3,7 +3,7 @@ package shape import ( "testing" - "github.com/oakmound/oak/v3/alg/intgeom" + "github.com/oakmound/oak/v4/alg/intgeom" ) func TestHoles(t *testing.T) { diff --git a/shape/in.go b/shape/in.go index caee4df8..f5658f53 100644 --- a/shape/in.go +++ b/shape/in.go @@ -3,7 +3,7 @@ package shape import ( "math" - "github.com/oakmound/oak/v3/alg/intgeom" + "github.com/oakmound/oak/v4/alg/intgeom" ) // In functions return whether the given coordinate lies diff --git a/shape/outline.go b/shape/outline.go index 4bbde964..c884b6f0 100644 --- a/shape/outline.go +++ b/shape/outline.go @@ -4,7 +4,7 @@ import ( "errors" "math" - "github.com/oakmound/oak/v3/alg/intgeom" + "github.com/oakmound/oak/v4/alg/intgeom" ) const ( diff --git a/shape/points.go b/shape/points.go index bccea8e8..1e31a377 100644 --- a/shape/points.go +++ b/shape/points.go @@ -1,7 +1,7 @@ package shape import ( - "github.com/oakmound/oak/v3/alg/intgeom" + "github.com/oakmound/oak/v4/alg/intgeom" ) // Points is a shape defined by a set of points. diff --git a/shape/points_test.go b/shape/points_test.go index c9afc875..b72e50d2 100644 --- a/shape/points_test.go +++ b/shape/points_test.go @@ -3,7 +3,7 @@ package shape import ( "testing" - "github.com/oakmound/oak/v3/alg/intgeom" + "github.com/oakmound/oak/v4/alg/intgeom" ) var ( diff --git a/shape/rect.go b/shape/rect.go index f2110fa7..17b56e40 100644 --- a/shape/rect.go +++ b/shape/rect.go @@ -1,7 +1,7 @@ package shape import ( - "github.com/oakmound/oak/v3/alg/intgeom" + "github.com/oakmound/oak/v4/alg/intgeom" ) // A Rect is a function that returns a 2d boolean array diff --git a/shape/shape.go b/shape/shape.go index 706d5403..4c9de64b 100644 --- a/shape/shape.go +++ b/shape/shape.go @@ -1,6 +1,6 @@ package shape -import "github.com/oakmound/oak/v3/alg/intgeom" +import "github.com/oakmound/oak/v4/alg/intgeom" // A Shape represents a rectangle of width/height size // where for each x,y coordinate, either that value lies diff --git a/shiny/driver/androiddriver/main.go b/shiny/driver/androiddriver/main.go index 20b9a5d9..597ffa93 100644 --- a/shiny/driver/androiddriver/main.go +++ b/shiny/driver/androiddriver/main.go @@ -6,7 +6,7 @@ package androiddriver import ( "sync" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/screen" "golang.org/x/mobile/app" "golang.org/x/mobile/event/lifecycle" diff --git a/shiny/driver/androiddriver/screen.go b/shiny/driver/androiddriver/screen.go index c14175a0..fe1bfb56 100644 --- a/shiny/driver/androiddriver/screen.go +++ b/shiny/driver/androiddriver/screen.go @@ -7,8 +7,8 @@ package androiddriver import ( "image" - "github.com/oakmound/oak/v3/shiny/driver/internal/event" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/driver/internal/event" + "github.com/oakmound/oak/v4/shiny/screen" "golang.org/x/image/draw" "golang.org/x/mobile/app" "golang.org/x/mobile/event/size" diff --git a/shiny/driver/androiddriver/texture.go b/shiny/driver/androiddriver/texture.go index 10ecc4d9..6056eae0 100644 --- a/shiny/driver/androiddriver/texture.go +++ b/shiny/driver/androiddriver/texture.go @@ -8,7 +8,7 @@ import ( "image/color" "image/draw" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/screen" ) type textureImpl struct { diff --git a/shiny/driver/driver.go b/shiny/driver/driver.go index bf00ed1b..7b74b4a7 100644 --- a/shiny/driver/driver.go +++ b/shiny/driver/driver.go @@ -11,7 +11,7 @@ package driver // or OpenGL library. import ( - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/screen" ) // Main is called by the program's main function to run the graphical diff --git a/shiny/driver/driver_android.go b/shiny/driver/driver_android.go index 87e049b0..2431fe9d 100644 --- a/shiny/driver/driver_android.go +++ b/shiny/driver/driver_android.go @@ -10,8 +10,8 @@ package driver import ( - "github.com/oakmound/oak/v3/shiny/driver/androiddriver" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/driver/androiddriver" + "github.com/oakmound/oak/v4/shiny/screen" ) func main(f func(screen.Screen)) { diff --git a/shiny/driver/driver_fallback.go b/shiny/driver/driver_fallback.go index 9150c08f..c9462f59 100644 --- a/shiny/driver/driver_fallback.go +++ b/shiny/driver/driver_fallback.go @@ -10,12 +10,12 @@ package driver import ( "errors" - "github.com/oakmound/oak/v3/shiny/driver/internal/errscreen" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/driver/internal/errscreen" + "github.com/oakmound/oak/v4/shiny/screen" ) func main(f func(screen.Screen)) { f(errscreen.Stub(errors.New("no driver for accessing a screen"))) } -type Window = struct{} \ No newline at end of file +type Window = struct{} diff --git a/shiny/driver/driver_js.go b/shiny/driver/driver_js.go index 02240422..1f4808a4 100644 --- a/shiny/driver/driver_js.go +++ b/shiny/driver/driver_js.go @@ -4,8 +4,8 @@ package driver import ( - "github.com/oakmound/oak/v3/shiny/driver/jsdriver" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/driver/jsdriver" + "github.com/oakmound/oak/v4/shiny/screen" ) func main(f func(screen.Screen)) { diff --git a/shiny/driver/driver_noop.go b/shiny/driver/driver_noop.go index db3a2a94..1a5cf8c1 100644 --- a/shiny/driver/driver_noop.go +++ b/shiny/driver/driver_noop.go @@ -4,8 +4,8 @@ package driver import ( - "github.com/oakmound/oak/v3/shiny/driver/noop" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/driver/noop" + "github.com/oakmound/oak/v4/shiny/screen" ) func main(f func(screen.Screen)) { diff --git a/shiny/driver/driver_windows.go b/shiny/driver/driver_windows.go index 128a37a5..6c855053 100644 --- a/shiny/driver/driver_windows.go +++ b/shiny/driver/driver_windows.go @@ -8,8 +8,8 @@ package driver import ( - "github.com/oakmound/oak/v3/shiny/driver/windriver" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/driver/windriver" + "github.com/oakmound/oak/v4/shiny/screen" ) func main(f func(screen.Screen)) { diff --git a/shiny/driver/driver_x11.go b/shiny/driver/driver_x11.go index 693bdaee..cfdad0b2 100644 --- a/shiny/driver/driver_x11.go +++ b/shiny/driver/driver_x11.go @@ -2,14 +2,15 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build ((linux && !android) || dragonfly || openbsd) && !nooswindow // +build linux,!android dragonfly openbsd // +build !nooswindow package driver import ( - "github.com/oakmound/oak/v3/shiny/driver/x11driver" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/driver/x11driver" + "github.com/oakmound/oak/v4/shiny/screen" ) func main(f func(screen.Screen)) { diff --git a/shiny/driver/internal/drawer/drawer.go b/shiny/driver/internal/drawer/drawer.go index c9bd4d21..75094b5d 100644 --- a/shiny/driver/internal/drawer/drawer.go +++ b/shiny/driver/internal/drawer/drawer.go @@ -9,7 +9,7 @@ import ( "image" "image/draw" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/screen" "golang.org/x/image/math/f64" ) diff --git a/shiny/driver/internal/errscreen/errscreen.go b/shiny/driver/internal/errscreen/errscreen.go index 333a4835..612de6ea 100644 --- a/shiny/driver/internal/errscreen/errscreen.go +++ b/shiny/driver/internal/errscreen/errscreen.go @@ -8,7 +8,7 @@ package errscreen import ( "image" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/screen" ) // Stub returns a Screen whose methods all return the given error. diff --git a/shiny/driver/internal/win32/win32.go b/shiny/driver/internal/win32/win32.go index 8cd3dc7a..ebf1ffb3 100644 --- a/shiny/driver/internal/win32/win32.go +++ b/shiny/driver/internal/win32/win32.go @@ -20,7 +20,7 @@ import ( "syscall" "unsafe" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/screen" "golang.org/x/mobile/event/key" "golang.org/x/mobile/event/lifecycle" "golang.org/x/mobile/event/mouse" diff --git a/shiny/driver/jsdriver/screen.go b/shiny/driver/jsdriver/screen.go index ba082f56..70472f30 100644 --- a/shiny/driver/jsdriver/screen.go +++ b/shiny/driver/jsdriver/screen.go @@ -9,7 +9,7 @@ import ( "image" "syscall/js" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/screen" "golang.org/x/mobile/event/key" "golang.org/x/mobile/event/mouse" ) diff --git a/shiny/driver/jsdriver/texture.go b/shiny/driver/jsdriver/texture.go index 2dc94061..c9e8f801 100644 --- a/shiny/driver/jsdriver/texture.go +++ b/shiny/driver/jsdriver/texture.go @@ -8,7 +8,7 @@ import ( "image/color" "image/draw" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/screen" ) type textureImpl struct { diff --git a/shiny/driver/jsdriver/window.go b/shiny/driver/jsdriver/window.go index 78389d8a..c6af3cd0 100644 --- a/shiny/driver/jsdriver/window.go +++ b/shiny/driver/jsdriver/window.go @@ -8,8 +8,8 @@ import ( "image/draw" "syscall/js" - "github.com/oakmound/oak/v3/shiny/driver/internal/event" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/driver/internal/event" + "github.com/oakmound/oak/v4/shiny/screen" "golang.org/x/mobile/event/key" "golang.org/x/mobile/event/mouse" ) diff --git a/shiny/driver/mtldriver/internal/appkit/appkit.go b/shiny/driver/mtldriver/internal/appkit/appkit.go index 4a408bab..93515791 100644 --- a/shiny/driver/mtldriver/internal/appkit/appkit.go +++ b/shiny/driver/mtldriver/internal/appkit/appkit.go @@ -18,7 +18,7 @@ package appkit import ( "unsafe" - "github.com/oakmound/oak/v3/shiny/driver/mtldriver/internal/coreanim" + "github.com/oakmound/oak/v4/shiny/driver/mtldriver/internal/coreanim" ) /* diff --git a/shiny/driver/mtldriver/mtldriver.go b/shiny/driver/mtldriver/mtldriver.go index 93cd724e..b866eb2a 100644 --- a/shiny/driver/mtldriver/mtldriver.go +++ b/shiny/driver/mtldriver/mtldriver.go @@ -21,10 +21,10 @@ import ( "dmitri.shuralyov.com/gpu/mtl" "github.com/go-gl/glfw/v3.3/glfw" - "github.com/oakmound/oak/v3/shiny/driver/internal/errscreen" - "github.com/oakmound/oak/v3/shiny/driver/mtldriver/internal/appkit" - "github.com/oakmound/oak/v3/shiny/driver/mtldriver/internal/coreanim" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/driver/internal/errscreen" + "github.com/oakmound/oak/v4/shiny/driver/mtldriver/internal/appkit" + "github.com/oakmound/oak/v4/shiny/driver/mtldriver/internal/coreanim" + "github.com/oakmound/oak/v4/shiny/screen" "golang.org/x/mobile/event/key" "golang.org/x/mobile/event/mouse" "golang.org/x/mobile/event/paint" diff --git a/shiny/driver/mtldriver/screen.go b/shiny/driver/mtldriver/screen.go index f269f3a3..86b6101b 100644 --- a/shiny/driver/mtldriver/screen.go +++ b/shiny/driver/mtldriver/screen.go @@ -11,7 +11,7 @@ import ( "image" "github.com/go-gl/glfw/v3.3/glfw" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/screen" ) // screenImpl implements screen.Screen. diff --git a/shiny/driver/mtldriver/texture.go b/shiny/driver/mtldriver/texture.go index 7f6179ce..32f94225 100644 --- a/shiny/driver/mtldriver/texture.go +++ b/shiny/driver/mtldriver/texture.go @@ -11,7 +11,7 @@ import ( "image" "image/color" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/screen" "golang.org/x/image/draw" ) diff --git a/shiny/driver/mtldriver/window.go b/shiny/driver/mtldriver/window.go index 11ecfc39..2f26dde5 100644 --- a/shiny/driver/mtldriver/window.go +++ b/shiny/driver/mtldriver/window.go @@ -13,9 +13,9 @@ import ( "dmitri.shuralyov.com/gpu/mtl" "github.com/go-gl/glfw/v3.3/glfw" - "github.com/oakmound/oak/v3/shiny/driver/internal/event" - "github.com/oakmound/oak/v3/shiny/driver/internal/lifecycler" - "github.com/oakmound/oak/v3/shiny/driver/mtldriver/internal/coreanim" + "github.com/oakmound/oak/v4/shiny/driver/internal/event" + "github.com/oakmound/oak/v4/shiny/driver/internal/lifecycler" + "github.com/oakmound/oak/v4/shiny/driver/mtldriver/internal/coreanim" "golang.org/x/mobile/event/size" ) diff --git a/shiny/driver/mtldriver/window_amd64.go b/shiny/driver/mtldriver/window_amd64.go index ba06d764..9e6e0f9d 100644 --- a/shiny/driver/mtldriver/window_amd64.go +++ b/shiny/driver/mtldriver/window_amd64.go @@ -6,8 +6,8 @@ package mtldriver import ( "image" - "github.com/oakmound/oak/v3/shiny/driver/internal/drawer" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/driver/internal/drawer" + "github.com/oakmound/oak/v4/shiny/screen" "golang.org/x/image/draw" "golang.org/x/image/math/f64" ) diff --git a/shiny/driver/mtldriver/window_arm64.go b/shiny/driver/mtldriver/window_arm64.go index cf64640f..56c242c3 100644 --- a/shiny/driver/mtldriver/window_arm64.go +++ b/shiny/driver/mtldriver/window_arm64.go @@ -6,8 +6,8 @@ package mtldriver import ( "image" - "github.com/oakmound/oak/v3/shiny/driver/internal/drawer" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/driver/internal/drawer" + "github.com/oakmound/oak/v4/shiny/screen" "golang.org/x/image/draw" "golang.org/x/image/math/f64" ) diff --git a/shiny/driver/mtldriver_darwin.go b/shiny/driver/mtldriver_darwin.go index 9d933d67..46a12f20 100644 --- a/shiny/driver/mtldriver_darwin.go +++ b/shiny/driver/mtldriver_darwin.go @@ -14,8 +14,8 @@ import ( "regexp" "strconv" - "github.com/oakmound/oak/v3/shiny/driver/mtldriver" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/driver/mtldriver" + "github.com/oakmound/oak/v4/shiny/screen" ) func main(f func(screen.Screen)) { diff --git a/shiny/driver/noop/noop.go b/shiny/driver/noop/noop.go index 9f0f127a..521de1b3 100644 --- a/shiny/driver/noop/noop.go +++ b/shiny/driver/noop/noop.go @@ -6,8 +6,8 @@ import ( "image/color" "image/draw" - "github.com/oakmound/oak/v3/shiny/driver/internal/event" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/driver/internal/event" + "github.com/oakmound/oak/v4/shiny/screen" ) func Main(f func(screen.Screen)) { diff --git a/shiny/driver/windriver/buffer.go b/shiny/driver/windriver/buffer.go index a5cea54e..4fc6aa23 100644 --- a/shiny/driver/windriver/buffer.go +++ b/shiny/driver/windriver/buffer.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build windows // +build windows package windriver @@ -12,8 +13,8 @@ import ( "sync" "syscall" - "github.com/oakmound/oak/v3/shiny/driver/internal/swizzle" - "github.com/oakmound/oak/v3/shiny/driver/internal/win32" + "github.com/oakmound/oak/v4/shiny/driver/internal/swizzle" + "github.com/oakmound/oak/v4/shiny/driver/internal/win32" ) type bufferImpl struct { diff --git a/shiny/driver/windriver/other.go b/shiny/driver/windriver/other.go index 72e8c2e2..2197033d 100644 --- a/shiny/driver/windriver/other.go +++ b/shiny/driver/windriver/other.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build !windows // +build !windows package windriver @@ -10,8 +11,8 @@ import ( "fmt" "runtime" - "github.com/oakmound/oak/v3/shiny/driver/internal/errscreen" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/driver/internal/errscreen" + "github.com/oakmound/oak/v4/shiny/screen" ) // Main is called by the program's main function to run the graphical diff --git a/shiny/driver/windriver/screen.go b/shiny/driver/windriver/screen.go index 4f9ca956..0e916055 100644 --- a/shiny/driver/windriver/screen.go +++ b/shiny/driver/windriver/screen.go @@ -12,8 +12,8 @@ import ( "image" "unsafe" - "github.com/oakmound/oak/v3/shiny/driver/internal/win32" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/driver/internal/win32" + "github.com/oakmound/oak/v4/shiny/screen" ) type screenImpl struct { diff --git a/shiny/driver/windriver/texture.go b/shiny/driver/windriver/texture.go index 727e17d4..36edce5b 100644 --- a/shiny/driver/windriver/texture.go +++ b/shiny/driver/windriver/texture.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build windows // +build windows package windriver @@ -15,8 +16,8 @@ import ( "syscall" "unsafe" - "github.com/oakmound/oak/v3/shiny/driver/internal/win32" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/driver/internal/win32" + "github.com/oakmound/oak/v4/shiny/screen" ) type textureImpl struct { diff --git a/shiny/driver/windriver/window.go b/shiny/driver/windriver/window.go index 8297d1fb..a864882f 100644 --- a/shiny/driver/windriver/window.go +++ b/shiny/driver/windriver/window.go @@ -24,10 +24,10 @@ import ( "syscall" "unsafe" - "github.com/oakmound/oak/v3/shiny/driver/internal/drawer" - "github.com/oakmound/oak/v3/shiny/driver/internal/event" - "github.com/oakmound/oak/v3/shiny/driver/internal/win32" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/driver/internal/drawer" + "github.com/oakmound/oak/v4/shiny/driver/internal/event" + "github.com/oakmound/oak/v4/shiny/driver/internal/win32" + "github.com/oakmound/oak/v4/shiny/screen" "golang.org/x/image/math/f64" "golang.org/x/mobile/event/key" "golang.org/x/mobile/event/lifecycle" diff --git a/shiny/driver/windriver/windraw.go b/shiny/driver/windriver/windraw.go index a412bf7b..8d7f1ca2 100644 --- a/shiny/driver/windriver/windraw.go +++ b/shiny/driver/windriver/windraw.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build windows // +build windows package windriver @@ -14,7 +15,7 @@ import ( "syscall" "unsafe" - "github.com/oakmound/oak/v3/shiny/driver/internal/win32" + "github.com/oakmound/oak/v4/shiny/driver/internal/win32" ) func mkbitmap(size image.Point) (syscall.Handle, *byte, error) { diff --git a/shiny/driver/windriver/windriver.go b/shiny/driver/windriver/windriver.go index 5e29e862..cf339cd9 100644 --- a/shiny/driver/windriver/windriver.go +++ b/shiny/driver/windriver/windriver.go @@ -2,14 +2,15 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build windows // +build windows package windriver import ( - "github.com/oakmound/oak/v3/shiny/driver/internal/errscreen" - "github.com/oakmound/oak/v3/shiny/driver/internal/win32" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/driver/internal/errscreen" + "github.com/oakmound/oak/v4/shiny/driver/internal/win32" + "github.com/oakmound/oak/v4/shiny/screen" ) // Main is called by the program's main function to run the graphical diff --git a/shiny/driver/x11driver/buffer.go b/shiny/driver/x11driver/buffer.go index 603d0003..4cb09e37 100644 --- a/shiny/driver/x11driver/buffer.go +++ b/shiny/driver/x11driver/buffer.go @@ -17,7 +17,7 @@ import ( "github.com/BurntSushi/xgb/shm" "github.com/BurntSushi/xgb/xproto" - "github.com/oakmound/oak/v3/shiny/driver/internal/swizzle" + "github.com/oakmound/oak/v4/shiny/driver/internal/swizzle" ) type bufferImpl struct { diff --git a/shiny/driver/x11driver/screen.go b/shiny/driver/x11driver/screen.go index ab55b5d6..56d5c448 100644 --- a/shiny/driver/x11driver/screen.go +++ b/shiny/driver/x11driver/screen.go @@ -21,8 +21,8 @@ import ( "github.com/BurntSushi/xgb/shm" "github.com/BurntSushi/xgb/xproto" - "github.com/oakmound/oak/v3/shiny/driver/internal/x11key" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/driver/internal/x11key" + "github.com/oakmound/oak/v4/shiny/screen" "golang.org/x/image/math/f64" "golang.org/x/mobile/event/key" "golang.org/x/mobile/event/mouse" diff --git a/shiny/driver/x11driver/texture.go b/shiny/driver/x11driver/texture.go index 31d52391..5c753a6f 100644 --- a/shiny/driver/x11driver/texture.go +++ b/shiny/driver/x11driver/texture.go @@ -14,7 +14,7 @@ import ( "github.com/BurntSushi/xgb/render" "github.com/BurntSushi/xgb/xproto" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/screen" "golang.org/x/image/math/f64" ) diff --git a/shiny/driver/x11driver/window.go b/shiny/driver/x11driver/window.go index cede7306..4756e917 100644 --- a/shiny/driver/x11driver/window.go +++ b/shiny/driver/x11driver/window.go @@ -16,12 +16,12 @@ import ( "github.com/BurntSushi/xgb/render" "github.com/BurntSushi/xgb/xproto" - "github.com/oakmound/oak/v3/shiny/driver/internal/drawer" - "github.com/oakmound/oak/v3/shiny/driver/internal/event" - "github.com/oakmound/oak/v3/shiny/driver/internal/lifecycler" - "github.com/oakmound/oak/v3/shiny/driver/internal/x11" - "github.com/oakmound/oak/v3/shiny/driver/internal/x11key" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/driver/internal/drawer" + "github.com/oakmound/oak/v4/shiny/driver/internal/event" + "github.com/oakmound/oak/v4/shiny/driver/internal/lifecycler" + "github.com/oakmound/oak/v4/shiny/driver/internal/x11" + "github.com/oakmound/oak/v4/shiny/driver/internal/x11key" + "github.com/oakmound/oak/v4/shiny/screen" "golang.org/x/image/math/f64" "golang.org/x/mobile/event/key" "golang.org/x/mobile/event/mouse" diff --git a/shiny/driver/x11driver/x11driver.go b/shiny/driver/x11driver/x11driver.go index fa1f63db..ac7614f9 100644 --- a/shiny/driver/x11driver/x11driver.go +++ b/shiny/driver/x11driver/x11driver.go @@ -19,8 +19,8 @@ import ( "github.com/BurntSushi/xgbutil" "github.com/BurntSushi/xgbutil/xevent" - "github.com/oakmound/oak/v3/shiny/driver/internal/errscreen" - "github.com/oakmound/oak/v3/shiny/screen" + "github.com/oakmound/oak/v4/shiny/driver/internal/errscreen" + "github.com/oakmound/oak/v4/shiny/screen" ) // Main is called by the program's main function to run the graphical diff --git a/shiny/screen/screen.go b/shiny/screen/screen.go index af1eb646..417bfe47 100644 --- a/shiny/screen/screen.go +++ b/shiny/screen/screen.go @@ -15,8 +15,8 @@ // package main // // import ( -// "github.com/oakmound/oak/v3/shiny/driver" -// "github.com/oakmound/oak/v3/shiny/screen" +// "github.com/oakmound/oak/v4/shiny/driver" +// "github.com/oakmound/oak/v4/shiny/screen" // "golang.org/x/mobile/event/lifecycle" // ) // diff --git a/viewport.go b/viewport.go index 503e4148..b405f474 100644 --- a/viewport.go +++ b/viewport.go @@ -1,8 +1,8 @@ package oak import ( - "github.com/oakmound/oak/v3/alg/intgeom" - "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v4/alg/intgeom" + "github.com/oakmound/oak/v4/event" ) type Viewport struct { diff --git a/viewport_test.go b/viewport_test.go index d46baeba..7f44f1ed 100644 --- a/viewport_test.go +++ b/viewport_test.go @@ -4,8 +4,8 @@ import ( "testing" "time" - "github.com/oakmound/oak/v3/alg/intgeom" - "github.com/oakmound/oak/v3/scene" + "github.com/oakmound/oak/v4/alg/intgeom" + "github.com/oakmound/oak/v4/scene" ) func sleep() { diff --git a/window.go b/window.go index 79901c10..57e1d4b7 100644 --- a/window.go +++ b/window.go @@ -20,17 +20,17 @@ import ( "sync/atomic" "time" - "github.com/oakmound/oak/v3/alg/intgeom" - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/debugstream" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/key" - "github.com/oakmound/oak/v3/mouse" - "github.com/oakmound/oak/v3/render" - "github.com/oakmound/oak/v3/scene" - "github.com/oakmound/oak/v3/shiny/driver" - "github.com/oakmound/oak/v3/shiny/screen" - "github.com/oakmound/oak/v3/window" + "github.com/oakmound/oak/v4/alg/intgeom" + "github.com/oakmound/oak/v4/collision" + "github.com/oakmound/oak/v4/debugstream" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/key" + "github.com/oakmound/oak/v4/mouse" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" + "github.com/oakmound/oak/v4/shiny/driver" + "github.com/oakmound/oak/v4/shiny/screen" + "github.com/oakmound/oak/v4/window" ) var _ window.App = &Window{} diff --git a/window/window.go b/window/window.go index 95a087f9..6b512db5 100644 --- a/window/window.go +++ b/window/window.go @@ -4,8 +4,8 @@ package window import ( "image" - "github.com/oakmound/oak/v3/alg/intgeom" - "github.com/oakmound/oak/v3/event" + "github.com/oakmound/oak/v4/alg/intgeom" + "github.com/oakmound/oak/v4/event" ) // Window is an interface of methods on an oak.Window available on platforms which have distinct app windows diff --git a/window_test.go b/window_test.go index b29d0cb7..cd61f47b 100644 --- a/window_test.go +++ b/window_test.go @@ -6,11 +6,11 @@ import ( "testing" "time" - "github.com/oakmound/oak/v3/alg/floatgeom" - "github.com/oakmound/oak/v3/collision" - "github.com/oakmound/oak/v3/event" - "github.com/oakmound/oak/v3/mouse" - "github.com/oakmound/oak/v3/render" + "github.com/oakmound/oak/v4/alg/floatgeom" + "github.com/oakmound/oak/v4/collision" + "github.com/oakmound/oak/v4/event" + "github.com/oakmound/oak/v4/mouse" + "github.com/oakmound/oak/v4/render" ) func TestMouseClicks(t *testing.T) { @@ -133,7 +133,7 @@ func TestPropagate_StopPropagation(t *testing.T) { ev.StopPropagation = true return 0 }).Bound - <-event.Bind(c1.eventHandler, mouse.RelativeClickOn , e2, func(_ ent, ev *mouse.Event) event.Response { + <-event.Bind(c1.eventHandler, mouse.RelativeClickOn, e2, func(_ ent, ev *mouse.Event) event.Response { failed = true return 0 }).Bound From 121dabcb155bbd8243075d8ca80b71cecc5f75f7 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 23 Apr 2022 11:27:16 -0500 Subject: [PATCH 138/146] examples: bump to oak v4 --- examples/clipboard/go.mod | 2 +- examples/fallback-font/go.mod | 2 +- examples/svg/go.mod | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/clipboard/go.mod b/examples/clipboard/go.mod index ea009487..1f6ce691 100644 --- a/examples/clipboard/go.mod +++ b/examples/clipboard/go.mod @@ -4,7 +4,7 @@ go 1.18 require ( github.com/atotto/clipboard v0.1.4 - github.com/oakmound/oak/v4 v3.0.0-alpha.1 + github.com/oakmound/oak/v4 v4.0.0-alpha.1 ) require ( diff --git a/examples/fallback-font/go.mod b/examples/fallback-font/go.mod index 3a304a64..a3506b83 100644 --- a/examples/fallback-font/go.mod +++ b/examples/fallback-font/go.mod @@ -4,7 +4,7 @@ go 1.18 require ( github.com/flopp/go-findfont v0.0.0-20201114153133-e7393a00c15b - github.com/oakmound/oak/v4 v3.0.0-alpha.1 + github.com/oakmound/oak/v4 v4.0.0-alpha.1 ) require ( diff --git a/examples/svg/go.mod b/examples/svg/go.mod index 8de5eeb6..530c3c91 100644 --- a/examples/svg/go.mod +++ b/examples/svg/go.mod @@ -3,7 +3,7 @@ module github.com/oakmound/oak/examples/svg go 1.18 require ( - github.com/oakmound/oak/v4 v3.0.0-alpha.1 + github.com/oakmound/oak/v4 v4.0.0-alpha.1 github.com/srwiley/oksvg v0.0.0-20210320200257-875f767ac39a github.com/srwiley/rasterx v0.0.0-20200120212402-85cb7272f5e9 ) From 0e8102fd4ab47fd96ced0f804e8e2afe3d862176 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sun, 1 May 2022 12:06:20 -0500 Subject: [PATCH 139/146] examples: remove, combine, and update examples in general --- examples/click-propagation/main.go | 72 +- examples/clipboard/go.mod | 29 - examples/clipboard/go.sum | 65 -- examples/clipboard/main.go | 76 -- .../{collision-demo => collision}/README.md | 0 .../{collision-demo => collision}/example.PNG | Bin .../{collision-demo => collision}/main.go | 0 examples/custom-cursor/README.md | 4 - examples/custom-cursor/example.PNG | Bin 498 -> 0 bytes examples/custom-cursor/main.go | 48 -- examples/error-scene/README.md | 4 - examples/error-scene/example.PNG | Bin 1728 -> 0 bytes examples/error-scene/main.go | 23 - examples/fallback-font/README.md | 4 - examples/fallback-font/example.PNG | Bin 29794 -> 0 bytes examples/fallback-font/main.go | 74 -- examples/radar-demo/README.md | 6 - examples/radar-demo/example.gif | Bin 1121094 -> 0 bytes examples/radar-demo/main.go | 117 --- examples/radar-demo/radar/radar.go | 81 --- examples/{titlescreen-demo => scenes}/main.go | 32 +- examples/screenopts/main.go | 34 +- examples/slide/README.md | 4 - examples/slide/assets/font/expressway rg.ttf | Bin 156244 -> 0 bytes examples/slide/assets/font/gnuolane rg.ttf | Bin 90148 -> 0 bytes examples/slide/assets/font/libel-suit-rg.ttf | Bin 149180 -> 0 bytes examples/slide/assets/images/raw/AndPt.PNG | Bin 7754 -> 0 bytes examples/slide/assets/images/raw/agent.PNG | Bin 72001 -> 0 bytes examples/slide/assets/images/raw/agentAI.PNG | Bin 27912 -> 0 bytes .../assets/images/raw/agentCharacter.PNG | Bin 9094 -> 0 bytes .../slide/assets/images/raw/agentDoodad.PNG | Bin 16390 -> 0 bytes .../slide/assets/images/raw/agentEnemy.PNG | Bin 10084 -> 0 bytes .../assets/images/raw/agentLevelGenerate.PNG | Bin 24715 -> 0 bytes .../assets/images/raw/agentLevelSelect.PNG | Bin 29003 -> 0 bytes .../slide/assets/images/raw/agentRoom.PNG | Bin 12771 -> 0 bytes .../slide/assets/images/raw/agentTutorial.png | Bin 386 -> 0 bytes .../slide/assets/images/raw/attachable.PNG | Bin 8587 -> 0 bytes examples/slide/assets/images/raw/audio.PNG | Bin 23650 -> 0 bytes examples/slide/assets/images/raw/botanist.PNG | Bin 82154 -> 0 bytes examples/slide/assets/images/raw/chooseX.PNG | Bin 15983 -> 0 bytes examples/slide/assets/images/raw/colorGen.PNG | Bin 9822 -> 0 bytes .../assets/images/raw/craftyParticle.PNG | Bin 20771 -> 0 bytes .../slide/assets/images/raw/dataFilter.PNG | Bin 14765 -> 0 bytes examples/slide/assets/images/raw/degToRad.PNG | Bin 11848 -> 0 bytes .../slide/assets/images/raw/doctorBounce.PNG | Bin 12023 -> 0 bytes .../slide/assets/images/raw/doctorEntity.PNG | Bin 30736 -> 0 bytes .../slide/assets/images/raw/doctorFile.png | Bin 3457 -> 0 bytes .../slide/assets/images/raw/doctorHasE.PNG | Bin 1773 -> 0 bytes .../slide/assets/images/raw/doctorLevel.PNG | Bin 11377 -> 0 bytes .../assets/images/raw/doctorLevelPlace.PNG | Bin 16158 -> 0 bytes .../slide/assets/images/raw/dyscrasia.PNG | Bin 113497 -> 0 bytes examples/slide/assets/images/raw/entity.PNG | Bin 25834 -> 0 bytes examples/slide/assets/images/raw/esque.PNG | Bin 515407 -> 0 bytes .../slide/assets/images/raw/fantastic.PNG | Bin 24141 -> 0 bytes examples/slide/assets/images/raw/filter.PNG | Bin 18173 -> 0 bytes examples/slide/assets/images/raw/flower.PNG | Bin 11833 -> 0 bytes examples/slide/assets/images/raw/jeremy.PNG | Bin 85251 -> 0 bytes .../slide/assets/images/raw/jeremyFile.PNG | Bin 29905 -> 0 bytes .../slide/assets/images/raw/jeremyLevel.PNG | Bin 7135 -> 0 bytes .../assets/images/raw/jeremyTilePlace.PNG | Bin 32550 -> 0 bytes .../assets/images/raw/jeremyTileTypes.PNG | Bin 25580 -> 0 bytes .../slide/assets/images/raw/oakParticle.PNG | Bin 13939 -> 0 bytes .../slide/assets/images/raw/particleOpts.PNG | Bin 35538 -> 0 bytes examples/slide/assets/images/raw/phase.PNG | Bin 23300 -> 0 bytes .../assets/images/raw/phaseCollision.PNG | Bin 29545 -> 0 bytes .../assets/images/raw/phaserParticle.PNG | Bin 18949 -> 0 bytes examples/slide/assets/images/raw/push.PNG | Bin 15227 -> 0 bytes examples/slide/assets/images/raw/slide.PNG | Bin 77185 -> 0 bytes .../slide/assets/images/raw/updateCode1.PNG | Bin 15827 -> 0 bytes .../slide/assets/images/raw/updateCode2.PNG | Bin 22192 -> 0 bytes .../slide/assets/images/raw/updateCode3.PNG | Bin 19079 -> 0 bytes examples/slide/assets/images/raw/wolf.PNG | Bin 18607 -> 0 bytes examples/slide/example.gif | Bin 285675 -> 0 bytes examples/slide/main.go | 669 ------------------ examples/slide/show/fonts.go | 60 -- examples/slide/show/helpers.go | 168 ----- examples/slide/show/slide.go | 142 ---- examples/slide/show/static/basicSlide.go | 116 --- examples/{sprite-demo => sprite}/README.md | 0 .../assets/images/raw/gopher11.png | Bin examples/{sprite-demo => sprite}/main.go | 0 examples/svg/assets/images/TestShapes.svg | 37 - examples/svg/go.mod | 32 - examples/svg/go.sum | 69 -- examples/svg/main.go | 55 -- examples/text-demos/README.md | 2 - .../color-changing-text-demo/README.md | 2 - .../color-changing-text-demo/main.go | 84 --- .../text-demos/continual-text-demo/README.md | 2 - .../text-demos/continual-text-demo/main.go | 88 --- examples/text/README.md | 3 + .../assets/font/luxisbi.ttf | Bin examples/{fallback-font => text}/go.mod | 3 +- examples/{fallback-font => text}/go.sum | 2 + examples/text/main.go | 142 ++++ examples/zooming/assets/mona-lisa.jpg | Bin 72551 -> 0 bytes examples/zooming/main.go | 85 --- window.go | 6 +- 98 files changed, 232 insertions(+), 2208 deletions(-) delete mode 100644 examples/clipboard/go.mod delete mode 100644 examples/clipboard/go.sum delete mode 100644 examples/clipboard/main.go rename examples/{collision-demo => collision}/README.md (100%) rename examples/{collision-demo => collision}/example.PNG (100%) rename examples/{collision-demo => collision}/main.go (100%) delete mode 100644 examples/custom-cursor/README.md delete mode 100644 examples/custom-cursor/example.PNG delete mode 100644 examples/custom-cursor/main.go delete mode 100644 examples/error-scene/README.md delete mode 100644 examples/error-scene/example.PNG delete mode 100644 examples/error-scene/main.go delete mode 100644 examples/fallback-font/README.md delete mode 100644 examples/fallback-font/example.PNG delete mode 100644 examples/fallback-font/main.go delete mode 100644 examples/radar-demo/README.md delete mode 100644 examples/radar-demo/example.gif delete mode 100644 examples/radar-demo/main.go delete mode 100644 examples/radar-demo/radar/radar.go rename examples/{titlescreen-demo => scenes}/main.go (80%) delete mode 100644 examples/slide/README.md delete mode 100644 examples/slide/assets/font/expressway rg.ttf delete mode 100644 examples/slide/assets/font/gnuolane rg.ttf delete mode 100644 examples/slide/assets/font/libel-suit-rg.ttf delete mode 100644 examples/slide/assets/images/raw/AndPt.PNG delete mode 100644 examples/slide/assets/images/raw/agent.PNG delete mode 100644 examples/slide/assets/images/raw/agentAI.PNG delete mode 100644 examples/slide/assets/images/raw/agentCharacter.PNG delete mode 100644 examples/slide/assets/images/raw/agentDoodad.PNG delete mode 100644 examples/slide/assets/images/raw/agentEnemy.PNG delete mode 100644 examples/slide/assets/images/raw/agentLevelGenerate.PNG delete mode 100644 examples/slide/assets/images/raw/agentLevelSelect.PNG delete mode 100644 examples/slide/assets/images/raw/agentRoom.PNG delete mode 100644 examples/slide/assets/images/raw/agentTutorial.png delete mode 100644 examples/slide/assets/images/raw/attachable.PNG delete mode 100644 examples/slide/assets/images/raw/audio.PNG delete mode 100644 examples/slide/assets/images/raw/botanist.PNG delete mode 100644 examples/slide/assets/images/raw/chooseX.PNG delete mode 100644 examples/slide/assets/images/raw/colorGen.PNG delete mode 100644 examples/slide/assets/images/raw/craftyParticle.PNG delete mode 100644 examples/slide/assets/images/raw/dataFilter.PNG delete mode 100644 examples/slide/assets/images/raw/degToRad.PNG delete mode 100644 examples/slide/assets/images/raw/doctorBounce.PNG delete mode 100644 examples/slide/assets/images/raw/doctorEntity.PNG delete mode 100644 examples/slide/assets/images/raw/doctorFile.png delete mode 100644 examples/slide/assets/images/raw/doctorHasE.PNG delete mode 100644 examples/slide/assets/images/raw/doctorLevel.PNG delete mode 100644 examples/slide/assets/images/raw/doctorLevelPlace.PNG delete mode 100644 examples/slide/assets/images/raw/dyscrasia.PNG delete mode 100644 examples/slide/assets/images/raw/entity.PNG delete mode 100644 examples/slide/assets/images/raw/esque.PNG delete mode 100644 examples/slide/assets/images/raw/fantastic.PNG delete mode 100644 examples/slide/assets/images/raw/filter.PNG delete mode 100644 examples/slide/assets/images/raw/flower.PNG delete mode 100644 examples/slide/assets/images/raw/jeremy.PNG delete mode 100644 examples/slide/assets/images/raw/jeremyFile.PNG delete mode 100644 examples/slide/assets/images/raw/jeremyLevel.PNG delete mode 100644 examples/slide/assets/images/raw/jeremyTilePlace.PNG delete mode 100644 examples/slide/assets/images/raw/jeremyTileTypes.PNG delete mode 100644 examples/slide/assets/images/raw/oakParticle.PNG delete mode 100644 examples/slide/assets/images/raw/particleOpts.PNG delete mode 100644 examples/slide/assets/images/raw/phase.PNG delete mode 100644 examples/slide/assets/images/raw/phaseCollision.PNG delete mode 100644 examples/slide/assets/images/raw/phaserParticle.PNG delete mode 100644 examples/slide/assets/images/raw/push.PNG delete mode 100644 examples/slide/assets/images/raw/slide.PNG delete mode 100644 examples/slide/assets/images/raw/updateCode1.PNG delete mode 100644 examples/slide/assets/images/raw/updateCode2.PNG delete mode 100644 examples/slide/assets/images/raw/updateCode3.PNG delete mode 100644 examples/slide/assets/images/raw/wolf.PNG delete mode 100644 examples/slide/example.gif delete mode 100644 examples/slide/main.go delete mode 100644 examples/slide/show/fonts.go delete mode 100644 examples/slide/show/helpers.go delete mode 100644 examples/slide/show/slide.go delete mode 100644 examples/slide/show/static/basicSlide.go rename examples/{sprite-demo => sprite}/README.md (100%) rename examples/{sprite-demo => sprite}/assets/images/raw/gopher11.png (100%) rename examples/{sprite-demo => sprite}/main.go (100%) delete mode 100644 examples/svg/assets/images/TestShapes.svg delete mode 100644 examples/svg/go.mod delete mode 100644 examples/svg/go.sum delete mode 100644 examples/svg/main.go delete mode 100644 examples/text-demos/README.md delete mode 100644 examples/text-demos/color-changing-text-demo/README.md delete mode 100644 examples/text-demos/color-changing-text-demo/main.go delete mode 100644 examples/text-demos/continual-text-demo/README.md delete mode 100644 examples/text-demos/continual-text-demo/main.go create mode 100644 examples/text/README.md rename examples/{text-demos/color-changing-text-demo => text}/assets/font/luxisbi.ttf (100%) rename examples/{fallback-font => text}/go.mod (91%) rename examples/{fallback-font => text}/go.sum (96%) create mode 100644 examples/text/main.go delete mode 100644 examples/zooming/assets/mona-lisa.jpg delete mode 100644 examples/zooming/main.go diff --git a/examples/click-propagation/main.go b/examples/click-propagation/main.go index 973c3095..a8533c58 100644 --- a/examples/click-propagation/main.go +++ b/examples/click-propagation/main.go @@ -1,10 +1,8 @@ package main import ( - "fmt" "image" "image/color" - "image/draw" "github.com/oakmound/oak/v4" "github.com/oakmound/oak/v4/collision" @@ -14,22 +12,30 @@ import ( "github.com/oakmound/oak/v4/scene" ) -// This example demonstrates the use of the Propagated boolean on +// This example demonstrates the use of the StopPropagation boolean on // mouse event payloads to prevent mouse interactions from falling // through to lower UI elements after interacting with a higher layer -// TODO: make the boxes here more real, more like a real UI - func main() { oak.AddScene("click-propagation", scene.Scene{ Start: func(ctx *scene.Context) { - z := 0 - y := 400.0 - for x := 20.0; x < 400; x += 20 { - z++ - y -= 20 - newHoverButton(ctx, x, y, 35, 35, color.RGBA{200, 200, 200, 200}, z) + newHoverButton(ctx, 10, 10, 620, 460, color.RGBA{255, 255, 100, 255}, 1) + + newHoverButton(ctx, 30, 30, 190, 430, color.RGBA{255, 100, 100, 255}, 2) + newHoverButton(ctx, 240, 30, 370, 430, color.RGBA{255, 100, 255, 255}, 2) + + const gridW = 10 + for x := 50; x < 210-gridW; x += (gridW * 2) { + for y := 50; y < 450-gridW; y += (gridW * 2) { + newHoverButton(ctx, float64(x), float64(y), gridW, gridW, color.RGBA{100, 255, 255, 255}, 3) + } } + + newHoverButton(ctx, 260, 50, 100, 390, color.RGBA{100, 100, 255, 255}, 3) + for y := 70; y < 440-gridW; y += (gridW * 2) { + newHoverButton(ctx, 270, float64(y), 80, gridW, color.RGBA{255, 255, 255, 255}, 4) + } + newHoverButton(ctx, 380, 50, 200, 80, color.RGBA{100, 100, 100, 255}, 3) }, }) oak.Init("click-propagation") @@ -39,7 +45,7 @@ type hoverButton struct { id event.CallerID mouse.CollisionPhase - *changingColorBox + *render.ColorBoxR } func (hb *hoverButton) CID() event.CallerID { @@ -49,7 +55,8 @@ func (hb *hoverButton) CID() event.CallerID { func newHoverButton(ctx *scene.Context, x, y, w, h float64, clr color.RGBA, layer int) { hb := &hoverButton{} hb.id = ctx.Register(hb) - hb.changingColorBox = newChangingColorBox(x, y, int(w), int(h), clr) + hb.ColorBoxR = render.NewColorBoxR(int(w), int(h), clr) + hb.ColorBoxR.SetPos(x, y) sp := collision.NewSpace(x, y, w, h, hb.id) sp.SetZLayer(float64(layer)) @@ -57,50 +64,21 @@ func newHoverButton(ctx *scene.Context, x, y, w, h float64, clr color.RGBA, laye mouse.Add(sp) mouse.PhaseCollision(sp, ctx.Handler) - render.Draw(hb.changingColorBox, 0, layer) + render.Draw(hb.ColorBoxR, layer) - event.Bind(ctx, mouse.Click, hb, func(box *hoverButton, me *mouse.Event) event.Response { - fmt.Println(box, me.Point2) - box.changingColorBox.c = color.RGBA{128, 128, 128, 128} + event.Bind(ctx, mouse.ClickOn, hb, func(box *hoverButton, me *mouse.Event) event.Response { + box.ColorBoxR.Color = image.NewUniform(color.RGBA{128, 128, 128, 128}) me.StopPropagation = true return 0 }) event.Bind(ctx, mouse.Start, hb, func(box *hoverButton, me *mouse.Event) event.Response { - fmt.Println("start") - box.changingColorBox.c = color.RGBA{50, 50, 50, 50} + box.ColorBoxR.Color = image.NewUniform(color.RGBA{50, 50, 50, 50}) me.StopPropagation = true return 0 }) event.Bind(ctx, mouse.Stop, hb, func(box *hoverButton, me *mouse.Event) event.Response { - fmt.Println("stop") - box.changingColorBox.c = clr + box.ColorBoxR.Color = image.NewUniform(clr) me.StopPropagation = true return 0 }) } - -type changingColorBox struct { - render.LayeredPoint - c color.RGBA - w, h int -} - -func newChangingColorBox(x, y float64, w, h int, c color.RGBA) *changingColorBox { - return &changingColorBox{ - LayeredPoint: render.NewLayeredPoint(x, y, 0), - c: c, - w: w, - h: h, - } -} - -func (ccb *changingColorBox) Draw(buff draw.Image, xOff, yOff float64) { - x := int(ccb.X() + xOff) - y := int(ccb.Y() + yOff) - rect := image.Rect(x, y, ccb.w+x, ccb.h+y) - draw.Draw(buff, rect, image.NewUniform(ccb.c), image.Point{int(ccb.X() + xOff), int(ccb.Y() + yOff)}, draw.Over) -} - -func (ccb *changingColorBox) GetDims() (int, int) { - return ccb.w, ccb.h -} diff --git a/examples/clipboard/go.mod b/examples/clipboard/go.mod deleted file mode 100644 index 1f6ce691..00000000 --- a/examples/clipboard/go.mod +++ /dev/null @@ -1,29 +0,0 @@ -module github.com/oakmound/oak/examples/clipboard - -go 1.18 - -require ( - github.com/atotto/clipboard v0.1.4 - github.com/oakmound/oak/v4 v4.0.0-alpha.1 -) - -require ( - dmitri.shuralyov.com/gpu/mtl v0.0.0-20201218220906-28db891af037 // indirect - github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc // indirect - github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 // indirect - github.com/disintegration/gift v1.2.1 // indirect - github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958 // indirect - github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect - github.com/jfreymuth/pulse v0.1.0 // indirect - github.com/oakmound/alsa v0.0.2 // indirect - github.com/oakmound/libudev v0.2.1 // indirect - github.com/oakmound/w32 v2.1.0+incompatible // indirect - github.com/oov/directsound-go v0.0.0-20141101201356-e53e59c700bf // indirect - golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd // indirect - golang.org/x/image v0.0.0-20220321031419-a8550c1d254a // indirect - golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 // indirect - golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect - golang.org/x/sys v0.0.0-20220403205710-6acee93ad0eb // indirect -) - -replace github.com/oakmound/oak/v4 => ../.. diff --git a/examples/clipboard/go.sum b/examples/clipboard/go.sum deleted file mode 100644 index 31afb773..00000000 --- a/examples/clipboard/go.sum +++ /dev/null @@ -1,65 +0,0 @@ -dmitri.shuralyov.com/gpu/mtl v0.0.0-20201218220906-28db891af037 h1:+PdD6GLKejR9DizMAKT5DpSAkKswvZrurk1/eEt9+pw= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20201218220906-28db891af037/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc h1:7D+Bh06CRPCJO3gr2F7h1sriovOZ8BMhca2Rg85c2nk= -github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 h1:O/r2Sj+8QcMF7V5IcmiE2sMFV2q3J47BEirxbXJAdzA= -github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046/go.mod h1:uw9h2sd4WWHOPdJ13MQpwK5qYWKYDumDqxWWIknEQ+k= -github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= -github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= -github.com/disintegration/gift v1.2.1 h1:Y005a1X4Z7Uc+0gLpSAsKhWi4qLtsdEcMIbbdvdZ6pc= -github.com/disintegration/gift v1.2.1/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958 h1:TL70PMkdPCt9cRhKTqsm+giRpgrd0IGEj763nNr2VFY= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= -github.com/jfreymuth/pulse v0.1.0 h1:KN38/9hoF9PJvP5DpEVhMRKNuwnJUonc8c9ARorRXUA= -github.com/jfreymuth/pulse v0.1.0/go.mod h1:cpYspI6YljhkUf1WLXLLDmeaaPFc3CnGLjDZf9dZ4no= -github.com/oakmound/alsa v0.0.2 h1:JbOUckkJqVvhABth7qy2JgAjqsWuBPggyoYOk1L6eK0= -github.com/oakmound/alsa v0.0.2/go.mod h1:wx+ehwqFnNL7foTwxxu2bKQlaUmD2oXd4ka1UBSgWAo= -github.com/oakmound/libudev v0.2.1 h1:gaXuw7Pbt3RSRxbUakAjl0dSW6Wo3TZWpwS5aMq8+EA= -github.com/oakmound/libudev v0.2.1/go.mod h1:zYF5CkHY+UP6lzWbPR+XoVAscl/s+OncWA//qWjMLUs= -github.com/oakmound/w32 v2.1.0+incompatible h1:vIkC6eJVOaAnwTTOyiVCGh24GoryPRmcvWq3cekkG2U= -github.com/oakmound/w32 v2.1.0+incompatible/go.mod h1:lzloWlclSXIU4cDr67WF8qjFFDO8gHHBIk4Qqe90enQ= -github.com/oov/directsound-go v0.0.0-20141101201356-e53e59c700bf h1:od9gEl9UQ/QNHlgYlgsSaC5SZ+CGbvO2/PCIgserJc0= -github.com/oov/directsound-go v0.0.0-20141101201356-e53e59c700bf/go.mod h1:RBXkZ8n2vvtdJP6PO+TbU/N/DVuCDwUN53CU+C1pJOs= -github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= -golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd h1:zVFyTKZN/Q7mNRWSs1GOYnHM9NiFSJ54YVRsD0rNWT4= -golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20220321031419-a8550c1d254a h1:LnH9RNcpPv5Kzi15lXg42lYMPUf0x8CuPv1YnvBWZAg= -golang.org/x/image v0.0.0-20220321031419-a8550c1d254a/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 h1:ZDL7hDvJEQEcHVkoZawKmRUgbqn1pOIzb8EinBh5csU= -golang.org/x/mobile v0.0.0-20220325161704-447654d348e3/go.mod h1:pe2sM7Uk+2Su1y7u/6Z8KJ24D7lepUjFZbhFOrmDfuQ= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220403205710-6acee93ad0eb h1:PVGECzEo9Y3uOidtkHGdd347NjLtITfJFO9BxFpmRoo= -golang.org/x/sys v0.0.0-20220403205710-6acee93ad0eb/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.1.8-0.20211022200916-316ba0b74098/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/examples/clipboard/main.go b/examples/clipboard/main.go deleted file mode 100644 index 07751f20..00000000 --- a/examples/clipboard/main.go +++ /dev/null @@ -1,76 +0,0 @@ -package main - -import ( - "fmt" - - "github.com/atotto/clipboard" - "github.com/oakmound/oak/v4" - "github.com/oakmound/oak/v4/entities" - "github.com/oakmound/oak/v4/entities/x/btn" - "github.com/oakmound/oak/v4/event" - "github.com/oakmound/oak/v4/key" - "github.com/oakmound/oak/v4/mouse" - "github.com/oakmound/oak/v4/render" - "github.com/oakmound/oak/v4/scene" -) - -func main() { - oak.AddScene("clipboard-test", scene.Scene{ - Start: func(ctx *scene.Context) { - newClipboardCopyText(ctx, "click-me-to-copy", 20, 20) - newClipboardCopyText(ctx, "click-to-copy-me-too", 20, 50) - newClipboardPaster(ctx, "click-or-ctrl+v-to-paste-here", 20, 200) - }, - }) - oak.Init("clipboard-test") -} - -func newClipboardCopyText(ctx *scene.Context, text string, x, y float64) { - btn.New(ctx, - btn.Font(render.DefaultFont()), - btn.Text(text), - btn.Pos(x, y), - btn.Height(20), - btn.FitText(20), - btn.Click(func(b *entities.Entity, me *mouse.Event) event.Response { - err := clipboard.WriteAll(text) - if err != nil { - fmt.Println(err) - } - return 0 - }), - ) -} - -func newClipboardPaster(ctx *scene.Context, placeholder string, x, y float64) { - textPtr := new(string) - *textPtr = placeholder - - btn.New(ctx, - btn.Font(render.DefaultFont()), - btn.TextPtr(textPtr), - btn.Pos(x, y), - btn.Height(20), - btn.FitText(20), - btn.Binding(key.Down(key.V), func(b *entities.Entity, kv key.Event) event.Response { - if kv.Modifiers&key.ModControl == key.ModControl { - got, err := clipboard.ReadAll() - if err != nil { - fmt.Println(err) - return 0 - } - *textPtr = got - } - return 0 - }), - btn.Click(func(b *entities.Entity, me *mouse.Event) event.Response { - got, err := clipboard.ReadAll() - if err != nil { - fmt.Println(err) - return 0 - } - *textPtr = got - return 0 - }), - ) -} diff --git a/examples/collision-demo/README.md b/examples/collision/README.md similarity index 100% rename from examples/collision-demo/README.md rename to examples/collision/README.md diff --git a/examples/collision-demo/example.PNG b/examples/collision/example.PNG similarity index 100% rename from examples/collision-demo/example.PNG rename to examples/collision/example.PNG diff --git a/examples/collision-demo/main.go b/examples/collision/main.go similarity index 100% rename from examples/collision-demo/main.go rename to examples/collision/main.go diff --git a/examples/custom-cursor/README.md b/examples/custom-cursor/README.md deleted file mode 100644 index d1cdb8df..00000000 --- a/examples/custom-cursor/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# Custom Cursor -An example of replacing default cursor. - -![text](./example.PNG) \ No newline at end of file diff --git a/examples/custom-cursor/example.PNG b/examples/custom-cursor/example.PNG deleted file mode 100644 index 6d18db5d316a53c97f0fa325c1f576ef0c3eae65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 498 zcmeAS@N?(olHy`uVBq!ia0vp^e}K4%gAGWQ3+_1&q!^2X+?^QKos)S9a~60+7BevL9R^{>XBg#!Sn157P4C_h&ZN3Qz8ZZK~alY8bA$D$TgO z8kd7p9YFZ!-FgtWtD&y3bKOhCK+u*&Ue!qvA&8EEg5|K^E?z+EsbfZ$MkV4`t4msW zN)2<5Q?D;``byL?veLZ5V>PojT&sEoPxOXvg{}nY~5%R$ZU|aW7fBEs}+|&A!{8#zJS_IjjJ^pMlhlKBOhoCds zQ(8uK>(8xDUK8VTkPQ8;LRb@pxQ@=y%===+zcARCKKs1K0OVg#j)lVUo3TEU}7 zkkq$jy#BnQ3mbE_VArGwUQyV3Lp{=>I40ucig!sMz|AK@5D+ej&j3zX)o7!b-pe^8 z%?Pdjo^9#|QT6Z?abmE6Q)-+d+D+3xB3_t-qKj|7y8Clmb94y@y0}fKsSiT-^2?pQ znb}HSuK0XAMgLmRysfMk-CM-${I>6o--YKLdk9q%R)a>Y5>|^ZZNXoX9QK*8AvGf{ z_z}H=$L5z9+LM~U?vCI=&BU2Ek2nP{t`n!EOyZk?(lrzYt87sqg`?)INlUa*cvtT;DiSqBKwv=_+G}w zlF(Ew>9UvSs+I|?{BzjK4Z+bY`V}$-%yJEfD>rLIb^bE%>rT6wClRo9^JziItk?Zz z*(1#n&-k(#^*$Q&te1!ies%t|#YN=1Skbfh1`qxPKoQN!FynInwdurmb8`ajSpLJP%l5 z&{?UB%(FPG26b#=;ICv^M(Cq#JTz_vI!mT!`l7M~#<@K{1Eqcykcv1|v(D5rI^`S$ zHx|X>uAY-tW`xF6*r$0gSYYHVeO~wIP2Bbp%bz&I-f`Vn-|$l9XiWHGEpkvqgNM@< z6y2+@MD>AqT@*-Ko7Q6tO1bhz&|bx@C1rd9&FL|0u2&&5ia)A_ v8Ju(JRo;HjybTo^^8**^Kd}9B`VlVRDED9uX}9mkUkFItkrK~}`|kK(w{{tN diff --git a/examples/error-scene/main.go b/examples/error-scene/main.go deleted file mode 100644 index a188ec48..00000000 --- a/examples/error-scene/main.go +++ /dev/null @@ -1,23 +0,0 @@ -package main - -import ( - "github.com/oakmound/oak/v4" - "github.com/oakmound/oak/v4/render" - "github.com/oakmound/oak/v4/scene" -) - -func main() { - controller := oak.NewWindow() - // If ErrorScene is set, the scene handler will - // fall back to this error scene if it is told to - // go to an unknown scene - controller.ErrorScene = "error" - controller.AddScene("typo", scene.Scene{Start: func(ctx *scene.Context) { - ctx.DrawStack.Draw(render.NewText("Real scene", 100, 100)) - }}) - controller.AddScene("error", scene.Scene{Start: func(ctx *scene.Context) { - ctx.DrawStack.Draw(render.NewText("Error scene", 100, 100)) - }}) - - controller.Init("typpo") -} diff --git a/examples/fallback-font/README.md b/examples/fallback-font/README.md deleted file mode 100644 index 3524c96d..00000000 --- a/examples/fallback-font/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# Fallback Fonts -For when a user might not have a font installed. - -![text](./example.PNG) \ No newline at end of file diff --git a/examples/fallback-font/example.PNG b/examples/fallback-font/example.PNG deleted file mode 100644 index 3a475a17f04547a086de23426dfa2809f516c5e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29794 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 IvX&wLA98>+U;qFB diff --git a/examples/fallback-font/main.go b/examples/fallback-font/main.go deleted file mode 100644 index cc8e5e1d..00000000 --- a/examples/fallback-font/main.go +++ /dev/null @@ -1,74 +0,0 @@ -package main - -import ( - "fmt" - "image/color" - - "image" - - findfont "github.com/flopp/go-findfont" - oak "github.com/oakmound/oak/v4" - "github.com/oakmound/oak/v4/render" - "github.com/oakmound/oak/v4/scene" -) - -func main() { - oak.AddScene("demo", - scene.Scene{Start: func(*scene.Context) { - - const fontHeight = 16 - - fg := render.DefFontGenerator - fg.Color = image.NewUniform(color.RGBA{255, 0, 0, 255}) - fg.FontOptions.Size = fontHeight - font, _ := fg.Generate() - - fallbackFonts := []string{ - "Arial.ttf", - "Yumin.ttf", - // TODO: support multi-color glyphs - "Seguiemj.ttf", - } - - for _, fontname := range fallbackFonts { - fontPath, err := findfont.Find(fontname) - if err != nil { - fmt.Println("Do you have ", fontname, "installed?") - continue - } - fg := render.FontGenerator{ - File: fontPath, - Color: image.NewUniform(color.RGBA{255, 0, 0, 255}), - FontOptions: render.FontOptions{ - Size: fontHeight, - }, - } - fallbackFont, err := fg.Generate() - if err != nil { - panic(err) - } - font.Fallbacks = append(font.Fallbacks, fallbackFont) - } - - strs := []string{ - "Latin-lower: abcdefghijklmnopqrstuvwxyz", - "Latin-upper: ABCDEFGHIJKLMNOPQRSTUVWXYZ", - "Greek-lower: αβγδεζηθικλμνχοπρσςτυφψω", - "Greek-upper: ΑΒΓΔΕΖΗΘΙΚΛΜΝΧΟΠΡΣΤΥΦΨΩ", - "Japanese-kana: あいえおうかきけこくはひへほふさしせそすまみめもむ", - "Kanji: 茂僕私華花日本英雄の時", - "Emoji: 😀😃😄😁😆😅😂🤣🐶🐱🐭🐹🐰🦊🐻🐼", - } - - y := 0.0 - for _, str := range strs { - render.Draw(font.NewText(str, 10, y), 0) - y += fontHeight - } - }, - }) - render.SetDrawStack( - render.NewCompositeR(), - ) - oak.Init("demo") -} diff --git a/examples/radar-demo/README.md b/examples/radar-demo/README.md deleted file mode 100644 index f8fba78b..00000000 --- a/examples/radar-demo/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# Radar Demo -Keep track of entities evern when they are off screen with a basic radar. - -Create a movable character, a randomly moving entities and draw them on the radar in the top right portion of the screen. - -![radar](./example.gif) \ No newline at end of file diff --git a/examples/radar-demo/example.gif b/examples/radar-demo/example.gif deleted file mode 100644 index 161b09502676cc6d1978088f8edeee140460148f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1121094 zcmeF&1RziV zm@@+Sp8{UK0nnKM%cpKwJhuB?9oY0yq-^v?KslS^&il z0A^JH-Y0;*6F@@`VEYchZU^9`0z44}NWTL};scDG0gjXa=_de3GJp{YfSw4TOb$>J z17N=Z$k70(gaEJf0n{o0B3XbN4Zy|}p!*2m4Fd3S171@AY(4?h!~s?O09!kN2Qxs; z2w+VF&>#k=Py%8#0qhn494!Db5I`*rcq9%W5C*uh0<50^9Lxa98~}L_fKy-~fD*t; z0uXQpXuJay2m^9#0m@zg5Xqo`#UReNZ-E1)O?tSzdU(8hyYO#v=C({9JOw|GRJHBQ zt;T3M4wf}(J>s~(zaOe-F(i65Uf;DkJnh1x)Rs~D2NW2s>4@Ceg)FZB^@yyE&+hzN zVe(WcP}0zq57=MaZ~#S~pbvf;c{HaKI&mtLh9*ImHdaSwei*ptct=-7r_Xf`cVw6A z;_w7Z8@utVL}@sfQ@mU1pEyG9gXksAp1<9gn4fO#|MJPS;dgGj!#8_Y8TVIe@U?CD z>h@pv@6KF`Gwp*Gl<%gR`*!D7EvVifA@&Ri_;s+kFOE+elkx%oTmQcuczI8#DyyaW zN&2&_Apff;j~*7kyu!l5eVBRwXXF1|6966t@D-0Q@K7>4; zlddhC%2D{mZ9MFOh%5Mnis1anA0ZpeaFftN zP4=gdB<1E>#I(0&iRxHG9cuoo5gx9#j5Y^r1S8P$TI2Pg1A64MDu#L>lJ5qDNcUDMsv)CtPQ zur2ru4FD~yeOU{$G4p}2>6!Qu?wNDKvA5X zU%$pU*+9bF5iH?iAjQ;pBf;mp$Yg@*e=wx)4yQ8mP^9|v{o@WK2@_d7-L+6;>flosYnPWOGV(0e>c z8KC7>mb?_ywD)gK^x83ZOG9)&4`S!H?}iAkcPb=QKbB{Yabf<i z=#Xpv>fA6vLusCI7S>}ddOtjwLFy>D(bEZu8*$c2d4e+5DHU2`wrNf7JDM5W_Zim4 zdI4KFPo2$}ah`_wFn`C)W4RLNE|`V{{##T`7|UH!`^T5Jd{*U{wBpR6)z4@JB=4_H zPCp8x@qFIxy%7|G_b&1qsj5#@c*FO1F;NqPjXH5sBu#OIu2W&`*wW-fwOORko8dXn z^qM0Jax(owN;(#sV=9!%{Pk;Q*8L+oaH(4ld+799zYVZt-G+>)E#98c$W?5e&gu$m zo~eG`!rUAVFa=Yb&SXhMtq3f(g>1-EONLdjZ0L=8OP-#|2clXsZz&r)ua^#j!iTaj z=iZr^tApSJnk+!i$Id(I!!LNPBsa?go#f3EU$wuOVX?hqB=|S*4c+x3;7wx}i5om* z7XL5alFi3w|2~IdBFwj(jP#_bN#w(6h&FNDt$N^_uOdXBlacxlb}~J7ef5!^natR# zm-^*TIi*tbXMaz65i;sg1i2PZ7<^=TK|kLbVyRL^p2+Tos(-O$wWN{qkZX_m9BW@{ zN~eD;_pbl7pnEBhVQ;XJ4LV4mGst3hKA0+bZXNX{G>Zb)H~*s`^v8Fg)o;qC6tRQ@ z+#kPplQ?~;luZOF-}{oQ1(E-bCCjr`P-N4TR7=b^x8^ZUNtWu@NOH){^Kpoz zHWF1#PS~;*plgybQ`Ptr!JID};|t^-)ktAA2MJ|xJ-3z9Ox64QlCg}7$^oO0MzIBb z-GM)D967_ji{UMJpYm}jj^f>u3JRW_rbwlMQm@#|Qp=Sg@JxgV(rG*Z5w{$-VoQshul zd0kw~$J>{z%)~qq$L^6YEIgqipQ@R$f13N;dPQxGd^U+Bv5O3xDQ z&6RnV!gY%4wfUcVDC_^B)y@~HvjK%D8*iH|lqLZ4KDdsoLC+7H9Ao%>BkYZL@|6>j zu_KSqM>a6m7aahS$}hOQo21m2op`F1->616al{(CxW8A1asamo3@^K>$6tj@cW#mR zU-rBpsroJt+$Jm7?B!Igiqak3rfj+FX;HF5+)tGZoWjYLKBWiy+?lbP5sXPjkyjhxfMN*rMD*VG|x8D3K;&xaIEyPnOTuPN3oLrS$=&y};+mfG;4 zWLB={>%D5ry~|LFH`fd8?X{IPtq2P$y4gWhkwV2WH0TNS++^JOH+_{oJ45RE#c{9i z;ITcY8tR2jl8abhm3=otnnk#(_pgXCCvLi%we<5^ir*>+!eTe;<4N`Hd5(KQhK4JE zh582EeMeV1qgAMCW7FK2i)Ta2+F_heGD_trYUgGqO9ELv1+O*F@F z{8XVMU{NsHXRH7NPB(1p6q^tY2^>Eo#=S!^vo|kV2Ao#!=pk&S+-4T`cMAx`kYokT zt8)Qo%{RIzA2pYS3sv*Vo4X!M($=Uk)l1rfyTcElmhEKpxpEJ~x_f+U%AV>K_U_#= z(`E})`|x5s6SaaO|%Q(tt}q;}C(aMAT~(Jyo{ zTy!zM40}cuZi}OsArfw-7k=v%exDTnxFH;SAsp`_oRBI4L*gCkF=*}O6LA7^_FHra zSd0i#aQs63{o9~psNVN*1*h+SzQ1n#ZaDw_IaOrByU0nM$T_dbrKHHU`pB*MNXU64 zLL}nfJNH}#=lns3!aq^PgLb9g9m@+NE5F-U!y{|)9O^lvnhK*^{_z)hriV?55ehIxd6Xvpc>ud8KoFIm8DFL>XYO<9^Bz(FGlTC?`kNmBOFjJ2F zrJ`t|hM%ZjWT}b&TN~e6K=HS}qPJnBr*V^~DZ-OC%i7n=rpODtWD~k zzH)HoN_O{k^aLk+Upe{~CHwn21tOB^6yv}8fO5JfFg0l?)f<-ThntqpmBuKS z#sf-gh)k2pPXpE`=^@granifE(sAX|`@re+nDF$vqI9AD^hj8`5>Cb!t_&-=j63TL zyzq=?`56O48Jy6JH#nJNT$ze;nQh=q%ka$Gyv&86OfqOD15VZvSC*h$mLw?aVknKF zFzaS0D+!jBf}5Srk)0)<{m&*lFCx3JAiHEB8yB8kjr*5e^e@2fFO^a@ZS!9|4Q*&R~1+<=8go z*dcQq3<8{%b6x!Y*%bc+FaNVA$Z_Dx!T1$ts&N+tDHVLNEBHp65vr7LFkJARAj_n= z@LWI7Q8XW}pPzutR4*<(#m|p5$c%3;`Z=6wlv;TFJ}<^Em0rJicBrUux#0J8!C%_K za;22(tNd`=F-vS((&ukvEh<=-@=aK;`O289)r^5 zYpluTvi0k-b?&lm#j@qAqAt6l?WVF7f^zh7`6hRHxng-gxO{=T6j5B>hb+Htt{5Sx zNa3oeR;(C~EW3!RFdnSHYpK8(`~j?_Jho56LZ#yb$V%a1}$|)D|IF}btb6C7Gm{Q zhV>x-dfT*myR>@x$$F=odKbC|H?al}!v>F)M?Pr{ek~0FD-A(64PR~=1YR|U8a9Ue zH-1lRjB06&;sM0nH2$D#N)T)MZP=7#*hKcDDYd03eWfY$rYW1QIa>^nYuKFc-&~m1 zT-?%J+R}`7*j!21QZ3d}YuHln-%@Y*q`9S~b)}{KrlpgvwVSZj%&@iJzjdIcez>J| zbfnemrgf68ZHlgO*060JW8W5&*0$Wzw&LHke$%!|*#1wfeb=xZveFDsYe$x}H?Fkr z-?SfywH}LgoQib}`gdIVcZ{`k+_rQ~-*fG9vj)^Z3h3tKZNP5r=3Q;TzwLe%(?~4d z^G3XhETHEdx{0E-M?Afm=CI?J-*Ik-qJdHtMwi_9__lU$*qxj&`WF_5*qb;4QV=rHg zZlWLei;vU)7=^Ar8ciP;I2=Xu0;X@r$v%%Aivt#oCh#i9F41G1^y59i@&17Eq0;fu z)$s|UiD~hPIfseGn2D9riH^~UZuCSS(c~cSOm#7q~LPM3{NSE8qDh-T_}XPSUB ztqwDxF*6aRGf|^6vFMo}M64c9?gInfEN6_Zgk{N6!ZlEqvu&um&#JIxN`7EI5@e zxQ;G(pclM}7X5e^1A&WQ92ON~7L`jERYw=q(TiF{OS-&E2EZj_hb6O^CCkz!`OzgM z^pXnE@@L*>FBZrdRdWZg_UkOsqS0n3td+Uxw8!o&X?!XN%hYjDDjeydP;L#0w^ahG}bBt&6iR$Kp z{U&bQ=2poj;rK(~vPnv^#mKugsJw---<*}g zI8;Chs%0D{f<}oFp(T0IAA#t02ee@{dZ-*dFp3`AM@JCuP4Vx|0QU;*_ZH&z+Di6T z#`k*BdmAMCemwg-s{4};`>?qE{F42ek$pMzzCPi>5&wac^1-mfL0I&`Rrx{c$iY1N zpo;KtkN;3l`OwP#&^h|>to$%^6<4+ZxPkUQIlTfO-p z?yf5a*E)1Zj3nLRXMZ&Z)EI7p(5rXOxB?#z2U&iIpOVPLOJFaBR7hV!LtNh6u#59a z5$f&;^ekX@K8rk(YAyRf=KZO%cY{*K^&PIRIR8hgoqw<7TKIEa1&E!oNnyl7BIWCFrs^KKBUN?5U`rT?}fetJo;Ol|szW_oL zGD0fC3syBMZ&zwxsJ@5gVro>y4tj;u#Pv68)THjQ-h7tEW%HPPOd|V6U6#taR$ZRS zbM}cMM_#RlvOwP(O%YnFzclyc$oJXy7U;jU@OumO*$I%sdA|`P&rUP?MNQ6k?3*rVX*|?4{QYFOO@7MM zcjx}A=_qfg{%lMz2B�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

PBiRG7xRq=_pmWh|SV{4BvEkcrA?t245 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

!$^Zw6|1=+l({7>`#f)UxgtC}Il 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 z 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

H> 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

>4;-m;ui9Ck-wcGn{}Ez;uaUiCQV*) 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 z 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 z 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

$}6!qj3XmW}Ma*9TBiY9W3W^#&_ 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 kqS*9=WbMjvtWUF_&vz{5Cdeb0D>Ln{p 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 z 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 G+ xLimit-eor.W() { - eor.Delta = floatgeom.Point2{-1 * math.Abs(eor.Speed.X()), (eor.Speed.Y())} - } - if eor.Y() < 0 { - eor.Delta = floatgeom.Point2{eor.Speed.X(), math.Abs(eor.Speed.Y())} - } - if eor.Y() > yLimit-eor.H() { - eor.Delta = floatgeom.Point2{eor.Speed.X(), -1 * math.Abs(eor.Speed.Y())} - } - eor.ShiftDelta() - return 0 -} diff --git a/examples/radar-demo/radar/radar.go b/examples/radar-demo/radar/radar.go deleted file mode 100644 index 58ce0b44..00000000 --- a/examples/radar-demo/radar/radar.go +++ /dev/null @@ -1,81 +0,0 @@ -package radar - -import ( - "image" - "image/color" - "image/draw" - - "github.com/oakmound/oak/v4/render" -) - -// Point is a utility function for location -type Point struct { - X, Y *float64 -} - -// Radar helps store and present information around interesting entities on a radar map -type Radar struct { - render.LayeredPoint - points map[Point]color.Color - center Point - width, height int - r *image.RGBA - outline *render.Sprite - ratio float64 -} - -var ( - centerColor = color.RGBA{255, 255, 0, 255} -) - -// NewRadar creates a radar that will display at 0,0 with the given dimensions. -// The points given will be displayed on the radar relative to the center point, -// With the absolute distance reduced by the given ratio -func NewRadar(w, h int, points map[Point]color.Color, center Point, ratio float64) *Radar { - r := new(Radar) - r.LayeredPoint = render.NewLayeredPoint(0, 0, 0) - r.points = points - r.width = w - r.height = h - r.center = center - r.r = image.NewRGBA(image.Rect(0, 0, w, h)) - r.outline = render.NewColorBox(w, h, color.RGBA{0, 0, 125, 125}) - r.ratio = ratio - return r -} - -// SetPos sets the position of the radar on the screen -func (r *Radar) SetPos(x, y float64) { - r.LayeredPoint.SetPos(x, y) - r.outline.SetPos(x, y) -} - -// GetRGBA returns this radar's image -func (r *Radar) GetRGBA() *image.RGBA { - return r.r -} - -// Draw draws the radar at a given offset -func (r *Radar) Draw(buff draw.Image, xOff, yOff float64) { - // Draw each point p in r.points - // at r.X() + center.X() - p.X(), r.Y() + center.Y() - p.Y() - // IF that value is < r.width/2, > -r.width/2, < r.height/2, > -r.height/2 - for p, c := range r.points { - x := int((*p.X-*r.center.X)/r.ratio) + r.width/2 - y := int((*p.Y-*r.center.Y)/r.ratio) + r.height/2 - for x2 := x - 1; x2 < x+1; x2++ { - for y2 := y - 1; y2 < y+1; y2++ { - r.r.Set(x2, y2, c) - } - } - } - r.r.Set(r.width/2, r.height/2, centerColor) - render.DrawImage(buff, r.r, int(xOff+r.X()), int(yOff+r.Y())) - r.outline.Draw(buff, xOff, yOff) - r.r = image.NewRGBA(image.Rect(0, 0, r.width, r.height)) -} - -// AddPoint adds an additional point to the radar to be tracked -func (r *Radar) AddPoint(loc Point, c color.Color) { - r.points[loc] = c -} diff --git a/examples/titlescreen-demo/main.go b/examples/scenes/main.go similarity index 80% rename from examples/titlescreen-demo/main.go rename to examples/scenes/main.go index f3d45228..2cbca333 100644 --- a/examples/titlescreen-demo/main.go +++ b/examples/scenes/main.go @@ -37,8 +37,19 @@ func center(ctx *scene.Context, obj render.Renderable, ax Axes) { } func main() { + win := oak.NewWindow() + win.ErrorScene = "error" + win.AddScene("error", scene.Scene{Start: func(ctx *scene.Context) { + ctx.DrawStack.Draw(render.NewText("Bad input! Any key to return to title", 100, 100)) + event.GlobalBind(ctx, key.AnyDown, func(key.Event) event.Response { + ctx.Window.GoToScene("titlescreen") + return 0 + }) + }}) + //make the scene for the titlescreen - oak.AddScene("titlescreen", scene.Scene{Start: func(ctx *scene.Context) { + win.AddScene("titlescreen", scene.Scene{Start: func(ctx *scene.Context) { + ctx.Window.(*oak.Window).ErrorScene = "error" //create text saying titlescreen in placeholder position titleText := render.NewText("titlescreen", 0, 0) @@ -66,13 +77,20 @@ func main() { ctx.Window.Quit() return 0 }) + event.GlobalBind(ctx, key.AnyDown, func(k key.Event) event.Response { + if k.Code == key.Q || k.Code == key.ReturnEnter { + return 0 + } + ctx.Window.GoToScene("whatthe!") + return 0 + }) }, End: func() (string, *scene.Result) { return "game", nil //set the next scene to "game" }}) //define the "game" (it's just a square that can be moved with WASD) - oak.AddScene("game", scene.Scene{Start: func(ctx *scene.Context) { + win.AddScene("game", scene.Scene{Start: func(ctx *scene.Context) { //create the player, a blue 32x32 square at 100,100 player := entities.New(ctx, entities.WithRect(floatgeom.NewRect2WH(100, 100, 32, 32)), @@ -89,10 +107,10 @@ func main() { return 0 }) event.Bind(ctx, event.Enter, player, func(player *entities.Entity, _ event.EnterPayload) event.Response { - if oak.IsDown(key.S) { + if ctx.IsDown(key.S) { //if S is pressed, set the player's vertical speed to 2 (positive == down) player.Delta[1] = 2 - } else if oak.IsDown(key.W) { + } else if ctx.IsDown(key.W) { player.Delta[1] = -2 } else { //if the now buttons are pressed for vertical movement, don't move vertically @@ -100,9 +118,9 @@ func main() { } //do the same thing as before, but horizontally - if oak.IsDown(key.D) { + if ctx.IsDown(key.D) { player.Delta[0] = 2 - } else if oak.IsDown(key.A) { + } else if ctx.IsDown(key.A) { player.Delta[0] = -2 } else { player.Delta[0] = 0 @@ -115,5 +133,5 @@ func main() { return "titlescreen", nil //set the next scene to be titlescreen }}) //start the game on the titlescreen - oak.Init("titlescreen") + win.Init("titlescreen") } diff --git a/examples/screenopts/main.go b/examples/screenopts/main.go index 5418277a..f2a7850f 100644 --- a/examples/screenopts/main.go +++ b/examples/screenopts/main.go @@ -10,6 +10,7 @@ import ( oak "github.com/oakmound/oak/v4" "github.com/oakmound/oak/v4/event" "github.com/oakmound/oak/v4/key" + "github.com/oakmound/oak/v4/mouse" "github.com/oakmound/oak/v4/render" "github.com/oakmound/oak/v4/scene" ) @@ -22,9 +23,9 @@ func main() { ) oak.AddScene("demo", scene.Scene{Start: func(ctx *scene.Context) { - txt := render.NewText("Press F to toggle fullscreen. Press B to toggle borderless. Press T to toggle topmost", 50, 50) + txt := render.NewText("Press F to toggle fullscreen. Press B to toggle borderless. Press T to toggle topmost / floating.", 50, 50) render.Draw(txt) - line2 := render.NewText("Press Q to change window title. Press C to change the window icon", 50, 70) + line2 := render.NewText("Press Q to change window title. Press C to change the window icon. Press H to replace the cursor.", 50, 70) render.Draw(line2) borderless := borderlessAtStart @@ -48,8 +49,7 @@ func main() { } } - // TODO: this is silly - err := ctx.Window.(*oak.Window).Window.SetIcon(rgba) + err := ctx.Window.SetIcon(rgba) if err != nil { fmt.Println(err) } @@ -92,7 +92,33 @@ func main() { oak.SetTitle("window title " + strconv.Itoa(titleCt)) return 0 }) + event.GlobalBind(ctx, key.Down(key.H), func(k key.Event) event.Response { + oak.HideCursor() + box := render.NewSequence(15, + render.NewColorBox(2, 2, color.RGBA{255, 255, 0, 255}), + render.NewColorBox(3, 3, color.RGBA{255, 235, 0, 255}), + render.NewColorBox(4, 4, color.RGBA{255, 215, 0, 255}), + render.NewColorBox(5, 5, color.RGBA{255, 195, 0, 255}), + render.NewColorBox(6, 6, color.RGBA{255, 175, 0, 255}), + render.NewColorBox(5, 5, color.RGBA{255, 155, 0, 255}), + render.NewColorBox(4, 4, color.RGBA{255, 135, 0, 255}), + render.NewColorBox(3, 3, color.RGBA{255, 115, 0, 255}), + render.NewColorBox(2, 2, color.RGBA{255, 95, 0, 255}), + render.NewColorBox(1, 1, color.RGBA{255, 75, 0, 255}), + render.EmptyRenderable(), + render.EmptyRenderable(), + render.EmptyRenderable(), + render.EmptyRenderable(), + ) + ctx.DrawStack.Draw(box) + event.GlobalBind(ctx, + mouse.Drag, func(mouseEvent *mouse.Event) event.Response { + box.SetPos(mouseEvent.X(), mouseEvent.Y()) + return 0 + }) + return event.ResponseUnbindThisBinding + }) }}) oak.Init("demo", func(c oak.Config) (oak.Config, error) { diff --git a/examples/slide/README.md b/examples/slide/README.md deleted file mode 100644 index a939adde..00000000 --- a/examples/slide/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# Example SlideShow -See how to make a slideshow using Oak! - -![example slideshow](./example.gif) \ No newline at end of file diff --git a/examples/slide/assets/font/expressway rg.ttf b/examples/slide/assets/font/expressway rg.ttf deleted file mode 100644 index 39e15794777c78b361c5a9454634e7cab4ed7d60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 156244 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

LSR}o^^!nCGZm^oms9ts~p59dIv~?;< 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 diff --git a/examples/slide/assets/images/raw/agentAI.PNG b/examples/slide/assets/images/raw/agentAI.PNG deleted file mode 100644 index e49d434e7a62352547b1101651b041c7ee9088b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27912 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 diff --git a/examples/slide/assets/images/raw/agentLevelGenerate.PNG b/examples/slide/assets/images/raw/agentLevelGenerate.PNG deleted file mode 100644 index a71e8a339935a50d78148e97ad6244a3c28269d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24715 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 Amn7!EL4R6HM-9;f^7CW43Mv%{uVvTdD2M)UH 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

    iorb>c&wMSCgddH=>s88(ST{llfv^+Z)w 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 diff --git a/examples/slide/assets/images/raw/agentTutorial.png b/examples/slide/assets/images/raw/agentTutorial.png deleted file mode 100644 index b2db2165d9e377ebe3d78cb928d238483f616584..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 386 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 diff --git a/examples/slide/assets/images/raw/chooseX.PNG b/examples/slide/assets/images/raw/chooseX.PNG deleted file mode 100644 index 35f99815aa0ead3f0740584d0a2dc4351778928e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15983 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 NPaf;2R;gIM{4eu99UA}u diff --git a/examples/slide/assets/images/raw/craftyParticle.PNG b/examples/slide/assets/images/raw/craftyParticle.PNG deleted file mode 100644 index aa8ecbe19196627107eb20bdd1ec29b8c97e9e4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20771 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 ARR910 diff --git a/examples/slide/assets/images/raw/degToRad.PNG b/examples/slide/assets/images/raw/degToRad.PNG deleted file mode 100644 index 022bf355998d46da9d9eddf033a0a14c2787d173..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11848 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 UklEh?KGKDkaw@XL&))_958k&X3IG5A diff --git a/examples/slide/assets/images/raw/doctorFile.png b/examples/slide/assets/images/raw/doctorFile.png deleted file mode 100644 index 054785b0125cd91589b882aa5a2d03ca40dce2c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3457 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 E3$>_5A^-pY diff --git a/examples/slide/assets/images/raw/doctorLevel.PNG b/examples/slide/assets/images/raw/doctorLevel.PNG deleted file mode 100644 index fc92a2dd305d2b3c61fe3699c2a195ad78753756..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11377 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 diff --git a/examples/slide/assets/images/raw/doctorLevelPlace.PNG b/examples/slide/assets/images/raw/doctorLevelPlace.PNG deleted file mode 100644 index dfc2f242849f1290271d5e7b6bf91b5d3cf2c4fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16158 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 diff --git a/examples/slide/assets/images/raw/dyscrasia.PNG b/examples/slide/assets/images/raw/dyscrasia.PNG deleted file mode 100644 index 1eda335bd172718d3471c74bf7832fcd5b073294..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 113497 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%0AHW{UXuw%Q$bZO%$ZzCAME*S&Qu(EgQ~iPX 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 diff --git a/examples/slide/assets/images/raw/esque.PNG b/examples/slide/assets/images/raw/esque.PNG deleted file mode 100644 index 0b243bd788f32d0b331c436f8f0b790abc6e4da1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 515407 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¥J_aSKuC42h~*4-xCN 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

      9b&v~JG;F(rHb$q4=LNY)66x63(~qGJ$#65j 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

      }ZPm1EjO^ z&0#&p%~p)@&CVVWUx@)ejj^r%Qtn|j*WQG2za52z%)Ojh7)86<~abj&G#dIxx`a2)mutz{u~yC@Nt% z)rc$Wp=>|->JJ0sb#-&Yy?}ldUH@?|lJ4*yU7+0jvZO_0Ov4Ph@EYo>=aML8Uej3w zujh5sQYOoFnvcHs)F98_ zv=`%j9!AG)B2!@SNLuT$Md$)leZ+>1k zFo3G`&vp7_|Lk$8s(%Wl<*bfNjyFZeCB_KTj!TYDj#G|T1&lZ2ZH%3cpN@qE4NJ#F zj6j!FyM#KfW?(FLr9)bk;Gcw@7?(wi#tKGg4MVjX1GNtlG0=_C?J>6Q#n9Nr$o0^d zDmuO7_v(uQSp`EkmFq#TUxQr3oV59t?ZuE6bq#!A{t!m^I0pLU2t;1vUNV6ZZ(c7L z#6TZKrp^+`#j+_#{xoBSzA#34cMy$X>KMTIH(UZa7?YHcw)_D1F+?3Bb$Cw`-0#vc#@k8mX$kGrqine! zuV?+%ImCU8I_pBZ4uPohd>ho$L!L7AthWkj5bAXMJe?KdeUu4(e)0G9WxvyBQ>RP` zlHofp6V@o_^~@XK`aaiTuG`0b`(8X1v`Zqxd-fiD&!*dH8={kX%xo;%c%>=;5%AG+ITbHOe^0`D>h9F-&3>1LXr{lAu^<}|cMu|SywVbmfxVD`Z5Y>EbL@g-?1y-W-RSQmy#s8c?oH%x;Ki;78;Eb>#crqk zc8H7db;!gTUiMn!G=L41-H6VHd02;Ry&+gbhqRiqYw4giFt{1cQf``SETJJSA)Fz- z9KB`eO;hg@8s8N1aq>rLfWtJrVH)i)@lhJ!IC-Pw4UrxoPxM0u`VGM#I%2^59Q`@^ zKrcGN^Z=c#vTho94Kg6=ph11TG+x7Q8gQLPs=S8LU%mCFPyvQjI)3Fn=yd1#HDnoX z3U$H;vR=xIz8w96GJ`a7F+h5VaFjt|0waEuk7R%kVSw_3V3_;~KAI^$h)Kc;bSDKL z!Z>C4hE}Tkb+%&OuLBh zg8&?Z2%G@>k?*9=os`{0*@NhuLVnu(_U3RLVsZi;NAECo9Yp6aI70js^;|;ljzViV zkM0?C&Y^pj@I1JP>@JAHeHh>Og9kC99tIDA$1wVzz(9Wtqg*_TLI19va(D#-@EBy^ zzOI&VU!f)3Px+@Y@L$5ve+jbiEb(UqWuKtjBao8^(0LF%O#Er;eHoJQ0;J?A;*WVP z>U#u&U|iYr60gQ1&m38N5%$*8*^OrSeXy<jPQ43aKD@U$7m;~Bn%h{s|q)VaR`QcF^-I9$J?F)CniXb zWy__^)3?TPjE@&O3*kLn=R?JM_;8MolnDbi1Z z$H{vH;_w*H$Mkd5{Ve&2_I4)y=NgA&+$ASB7O;iagJww2HZ~k zE_CkUnO%W6m_7?m@g5E@V2r$NQP=~45c_y{M<{cgceR)Ix*eI=3O3)mAZ(!>_I&Muuua-_{T?P_8>fBWLfekGC5+II zkK48(7emAca`ZC}^nrfjgY@G=z%U|?Az3)+*g@EDobhC&86xdC$5_^2%n^=P{fuuz z$Ol0hALoyeJ?Qs1RxLjc59(%VSyh7|0FeC!%%4x1no8z?U}bB&!4gFO&~U6$eA zwsG%Uty>-LWj(*qa1-~q4f$^B+e*2O+{Z?KuX!7|Z{u6I&+Qoe+aX`u(KT)v<2$UI zP@Py0*W1Ijw@}wwjQceZht*&m^=(m)vK#%Kq{V7w}xvk zhg2+uAS^{bO};R`4EZeYZP`4`Ae%7+)5NE!XWBfjGedpj)T2!{q`d`3sB0X(G4zIs z4{3who@_tZRt;?`LELuLN50U$sv{H0{;JV7>y+!Jeb(opM!T*Vf-3P!p03k=Ymki+ z<+`wc5=ylHvVZDg1NrBw=;9j@1@b%jjyeq)>y*V)-LQ?Ez4uSu2=d~xM྆)3{ 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%0A$!9LBL*z47XUtScP2D`35r zh=?H=<{_;AarDsU*Y$wL-0#X!cIB*Mx!^+oZ54@)^iDm6LXlxo@NSZ=SB#bvQ4j(wWnuW8eA43)$r5_1) zZpRK)bF=9Xo8wsjIx5CF+TY_NzU4DHXLVo3vv$7@WXhM#&?9#tN5o8CzBQ46)xJqk z>43#vR%=JC`-{8Demqzm_^TwR-l1`xXsGh>56ys6u!>7U5q0}l!JZc4ONS~)&2-SR zE%3qCEZ8aP2T214zWqZ=$5dYArk@9E1Y?(HwOQsRozSnSLk0gk-^KBOS&ehZ0v_|j zVc?0}D@LVc(GjONPq^hP=FQ$r2VtT)6pizS6drM~W&*6*Vizd!U54wDf8`4eHm>4dEAMsJ&?1-y7} z+F+;KZ;oTD9ks&z!O8`2-Tj{MzTkU(r#x_>-&tRB5@Vi`-4HzL0qd{dlXt+=&xq`P zO{J|-;(qq89hKgnJ;Zo)T_p|VO36`TbZg#7Px9rE;%HRR6FC@=el!W$aR)@4tjFQ# z4Okb4ahhUTY4Ta*$oLoao_AdqV59XcSsM=%lk|T<-VQvGm96b7Qkz!HsztiMvWDMi zyu_tH=wu-kah^)&a4^qq!}43krn8aZA(iwu>F@Axa4!r#@>2U>!2Pqt-U;G(Pp zo(;e9(D|q~*9QYGNR_#+-S8(+@I?|0QsM_^&q{{rqldEj5^I9V@Xor#QmX`GNRo@r z968y1X|w%}iEKr&`B)D+Uyi+37zku`6Q4tS&6QLNn?HX666hrw%7K9Nu6UYxM%;VB zWE9P#hjUQI%+dUp_uxWWK-?1<)NWB_qF!xu*ILp8oXe2u%cj0UUJ$CIt$!Bs?~+s4 zATtV4=9giTNk%dqOU{Y-(8VDTOFDN9bYd$Z-ha|NI-=SM&l~s!V#dS>l52qQK{h<$o;Q=OLc;ENSd++75 z$Wfzx@72)Nl$2{8`L|?uZd2otU3ZaPfUz97*JS@peQ2NKwcTsQsoyAJ`98@D^V$NS zPlB8`Uu@zKgw``t4Vofu=O4w!MYgPqG8H_6kbfT&$wNX0(l(Iq%mhHMn$myu@UA;R zJmpn!x{GItk@Zm()A+-=tsbm{vISJ!?>V{do`CY=S>0sdOnAVvN$2wZlu6>9t)Es* z8F~h?@<>~|LanvtxnWDX{1C`z$>w2-J%OK9E`?eRsk-Pau2P1Lih z_bS0KA^xq2mN%`MM}b0DcaHOd7!$(ee;dj(SUL#SyR4a(G5zN#*A?>jAp9E>2hk)C z@8X_V&lqmGXWXM+x4>*;z^03+MR_S6HIuTMOp-J%#REU-|V32?jh^Vx40zZo-} zSF-pnPpdH5suEaKh7#KBLl)`4aH&dPU=~|7oEi6_8A$nwqX2wPBHC-9S~=(s<>v5_ z_e5pC=-%hl)f2vG0{lg}t`iA^z93XWj@A`0iNMX#V)K8ULzMO@M^>d5&tWfve{dx8 ze&=1xb|FwUAT)Tpl}9!)^f?&5u1|khB{TlB`_bq)X&?dTk$mZoZXZu%y`l*CPFeS0 z16Kn~kv-ClDYw5b%)S3EibV-;c{h0p;KXvD#dZ|P!iYv!q5UT7wceMP4S#m@$wdd? zlic43jhaAKgBPLCN}MBy)Fv4K0oEHiJb?<}oI=#uW4+#b{*(Xd#o^v9W>Vrv9@&xudQ zJE-CD`UVQo8vO58ZvkruY#{O^JZ7Oy<@3!?LVcEl4M>$>Q8ET)yZ`G=Eo6}po_5cc z>h%-w$MVDEdpcT^BCxUY~Ndmsd{w-mx_e#`Kpr=TSN?L zbo~AH`~R&F6VXV7P9FIGkQs7+hKL#?se>Pn_5$_b41 zbbB2L{dRq`DmvwvE~MJ_yD+%&0)$WU>=K$dzqM z@z7UnyOeH*AKhs{Wk5!g9RDZn-vn~#T>k^I&wfT@O*=B#k|+ck<#_Nc8IKLrU@|S5 zV=X~PT26v~z9Jptn80&SIA5Uj8oW(#@-ttCVrQs(xZumeG@GeF+50eVKYLn77`OLq zI)hDf8s>z+b=OI-*1ZJU3A* z9L566rM>Ln*J{;XCza}O1kvflIyT}6Lk#^vs}B@kwtmMM@Xl?}%j&o(%AX5Ulf5?D z?`-x2^L=aYKM%dH2Vnv*`O%@OTy3`C28kXEctB6IVcrizRM*o_QsvS!t`GJN&{-|7 zZwAcQz!BZyg+JwnX+H?hxSC%46v)teEz<nc;rN>9z zJQ2aYIh^x>jd&V`B1Fk9&%!el02NS+U#?ZJ1iY!-DeaSdzu@d+S8X3gH|t zM;1gonECkr#1*Q;el7?8O zwsL$kU!L6p_8|N6$o4V@ow4b!qEVc?{XffW@b4m3{{B?U`MzqYC5z(#jIFy>@<8&@ z12zo%KRF>~<4H>F@+xm{&>61sG(iW*Fd`d~MLHihIh*UQD|qrMf`cVr|Civ-C5<|` zENhjIx)mZ{(Xc7?M|lJv&j3T!f_gondL}fz+a~fPKR1UG>6zt|e!c4wb4>pc?pgnhARU`*&sIC^jc3vi=X8~(ta@-Gf_ zj8Eny5A&)M5_DoopJNTv=B61I1{4VyZ9=ZXyd^oml=WBm$vt`+a{9kG4uwR*A*xu$ zKGi}JUW}2NnXXtO99De*NxACvA_4{_MjPQa+Lw2|_GO{Mfpgww~W1B9t6~HkA}B^Q zPKSfHd!EQ-|1zBkA0_wWDj~$tLpZ~L1dGp?r|b8S;z#CYmK zr)rMpp25Mn48^&Fuv=j-`qCLj?-(+m#>)A>7UmYUEdM4e?}mdcwTEv8p4^t5Bgq|{ zcCpW^lbdqh;CaZ!@7IZmz9q1Ja|E6e28F%?bS>UH-Oz>c^$Nq1uP-9vq&XPYO_fy5 z*6M89uw;o?OHUbyLl)`oVHIQRGujDt9_cU+Ogw7I_3V~xt&6kF(Szz$)!S2j>5s{M zQXvj-Ch>_vL&>V=%U~EJpprXWw2fd`IGKP;Bs*ZSK9}o^ulRG(){x{mSO?H6HeWsCaHWn?A zz|k>k!uYk@ung!^$-KK^awA6QkR-7;#%DKy1_ojBBN9o5#bj`e15!^Sl5ZBFf)9)4+TjWgFoC^Nd32_sH^%05qB8$D*Y4SEJni@it zS!y6|(fz${t=92zEH2$JWWy0IG4NbEn!v47o7EsJ>hrs=PLYH zLm`>spY)2So_ue2Fw%T@u(Sz?r)hV7nnRXq2!0bnUTLhq+HqQdtX%&;G?_a{>*L3S zE7*Yffy3;(V|XJ&Hn3(h)xvQCS$$CN&f&+zSL;U7Bj-6}E0 z9y*2ul$MYT2cv=hq#SNL=g;Hix)kflEGVN{daCmGNtL-T{b|M%{+?uao=6p3r6cM;U~ug})xvh~NkSjc6ku&Ma|SsRlb-osVp+aR z!`(*6AI97!I7SqoAH$U*GLnQX0#mbma@QPQyrv>+%Po__))jW5VnTN!pypPioJnvv-j+LXt@^z8+TOm7r*C-=_*;CvXoj`^+rp z@=Vy?d9zAC@$=9!nnvef#|9s#-h)01RI@e86Cd!bRU1%Tz~AmcSDN8F5z?|1J@v0K z6d5M9M!k#oKViQvHP*ZIM(s=`d;|NF%x@T=yN*OKz8C*xZ^v^T9H0u>nM?|SkQF=& z*&Qu53EKM6)tNi(>t-KCP?QF3tqCOZvGiEFYt~ax8tZ{%*HDvkW3s{Y99w2yC`Rw{V+iLiWK&1 zw1TMT(Y{>^3;-1!rD)6KWGMI#{U5%7L>wh)J#Pd6NK3l8&MU zZq+TTS*{IxEA6e)OPml6ATuL$5?-`uA^GX8hBL_sp{Ko<$J>$rojMl+nPIo;u^s09slU2dQN}hvwC5cufufHO7VZa-< zkQWDQAN3${tfbF|j|IW=SWILf-7q-8K_W)_ho)q@<=?iyTdCigVsJl4!4I{K(vfN> zvk5BzI_a(Mq?F(Qo9v~ppyp&>vq&{lv)&SyczZ`OeAWMHV zDrSuIeBN6Anp3)g>%Zeak3JpU0VFTn{FHAGmA8#{4~&uBy>WPR9nl;enG~#X$hOa_ z-$FrNFRT1S%}n&uOmD~+6`h5Yf=Vu@^4R0%x}_1JG{0ZSEJ3wr%mdaY)xe>25+fos1 zpobl9;>}b*a+*;;HgO7@mV;*>d78Wxqz@SGQ8m6}r3bFA*W;LK{LltS(AmCQ<#(?Ys9ksb9?w{1HP_i=o&iT<@{c=eq#nKB= z-uWl@of8I%8Cu_KagFHt^yo6Z)|HykBv*#U#f@Mf7UpWGG{yB1Vt{8cEwl&_H&q&n z=6@$-MECt_wjPCy`=|*vnH+v+UPAc`t@Y~#$IqC2mpY2`<=_4D;!+TsSXLE0^NYsv!rW&IDnmu>9g=)1DpI+Dd`(o3H59LI=Y6X~9XqfM3XP6kfe8IXZ$dOaE z${OLsB|YE~fE~WK0w3RUVial;wb|Te=7vJXN8WGw0^%YP;Dw*KQaLpeHk=AMwpwPR z0^P;b?x+B#)fFN90{pC&VgK4_i7n#9b{R~>{IQPqfa8k5tz9oI8o(enihuk8L%UTH zMTO3QXEf(4)s&5BIMqmb^3!e6Ncy^C)3F?zW8R`gE){*TnrrxPECr+sKC}yO@wp$e zQ+LaL>Qf^yM^70sEg7g-*nHjGG5Fnm)+`3gy&vh?tm)sY&=1N&wM#YTYCpeH7R-AU z9xWU$X9%{r@csv7b7Gg3=?k#$l(TPDwbJI3%!g=|Que%;`*xhaoX<4yTr4jZDH$&| zU}~(rVwAY8u`e>9tdmK3U^}pK%+*ZYgai6HX5AQ8eEog@PNMOI!ltaM1N7`VYIAZM z%Hh}z%rO1#up>X^Z-FsvyIFOI5xr1wH!Sc7=1o(|XL+Ldv3I!@j9KBKMoP?WFdV9e zN!f_}>QrVwmXqzOgXQ1zk0~E3Xibn=R>wf*YqA>qFf#!THhDU5FgUxFJhzr8OVoYd z##K~8VenD&-x_ER^yvYM6~Nl8``u>OqpeP?!b~vVd^H`US79K=V{r=fO9wQ~30k%Q zEjsHo>_ainiCWEcRcJEwQquw?>H};n23_1FPvv|ZANUp;;`RpTsY%zBZTn7A=ANw+ z7nO7(hq?nFu^VZkO;@5vB%6{CrLVtK0{BV${Inwb%nABmRR1zCgEE@7!Qw6je_m$#-3VLvxdCaW`(FR@4pK9 zs{RQw_`OZ83^$Wvr=+6WL*4NX;cgW*!G2imwkUUaCs3QAPLQWuEwnenl6r;BUrIY- z#@4`}^25qI%Oe8<$nboKJZ7rZ+w2zq1(7Wb?OH(RZmVzB;=Moe%hjw_}rdgt=91>fajVN=OWM zz4ynyi+e9Z0uz$n=U@|&)D3HDf6`TuUJ?)5_FfstxVw9=vm(5(D+{Zze@{^kUA<>p zy?d*Af2w-7zZ$86RgzhfEJ;gL!PM-#-a8QQKTx=Zr{A+a*{Tfh6}f$3Cg=DHH>O?p zvgxCyz!IpGOTkpB1Vuvx{WD_-E#Hloi84yv4-o)ajUO&WSFMUf-b)u!akU*dKw>>BtE0lUT z%J^BZG5enzlwowmNQ+`u;b{}wh@V1e5KWiNT7TBURLV;YoHM3@ zBQU`uuV~%?}f*@@Eu+HW|S}R!s8p@^v2$pH0U$!x;ryZ$o4v;k_^(b>`(G^LuST5-(!j7}?Q|#p^?geSOMqPTGp2p3Z*pcOyJ{cWL}34j1&L z@|I1KY1O+rEFbZ`3k-Nq3b02Bh z)*doF+W38EPE)9Xv%pV)j&u##;)>C34-=$J(}HwRW9df6T5LgK8AG=daKUfcPPmj) zI6^4LAMAbA6dcgJo+_joGhl{ncU0dK(i|5*NbM#EnYKdLl(na|+9Fmqy?mJIkpjBM z(sioRzQ0HPK6jje>*HG~@noeg^HpB~oC}YsLfnA%dlSNY=bxsO`g>FOOoj)nbkBlY zPQV=?NWKM6mjk3%h8#SV79MSSz_DGtzagq_w0zr0|Brry9^V51JckOht)(9#wbGRc zeCA*W&Kc=f>TmU*S~(u^7#otgc=+h|`p40X_On%`A|U~)I4ZJZR>5HT4vWFtcL4&3 z(mbE9d3!nwH?yEV=;~$^;f>-#jnPh4_Yl~U&1hfk;m8Lc&!?=P7~ED{GU8qbuJo-A zS;mmrYI5$L^L$?PO`q;GG*7X!&CF{NyS4tdP|m8VGxs!5Q-yLAIM)Bs@0Mb96wHf9 z*a&Y+CU&|09WHjlDH{KIu%If2ve>K=0Bnt-mXR~G!@-{)G9PE$B(Y-7Zq9lq#_X!f zoP2dG(m+hV1f8U5apekz*U>TLQTZf9H}LK40CwFN?YoFkl~K|S<4WwgZ97rXbz3)I zIh`PCuiM2cH&Erq$*bu`%o!}O;iHts>Z$hxw`h)q? zgzhh7aM6O~7wDH*)!|0eYtGtd9K^Zc#~m!kED!+32O!0q}C9 z-441gAt%)>A9rc)piC<=EN7#a^@jFk6}Y)n{cot$3i-`GhUlute%UlVh{-*7JyT4@YgzU zTo@=I3>38va!~+O-_WzsHIK=+q(K*;hp*>QI&%~5uW7&`w^fD@XPn9XAW2k5VTxZv zDXNt<6V&Z)JJP6Zv6G>V_>Fm;>2ZO$`4Sokg($S&@ zQo3%!aEIG^-*!C$-2lURlzoX`1$|f+gdF+Mb&r@89Zq~&-Y7NZ`ZBvXh%PvbqFnA& zJecghOKiWp6~s3t6UBofV;vph7UK^;c7M;%5q#)tTaI4$E--eyWZJXTdiUcoEBKKC z;ce)c#kLCO_|!Bi(&oi%+;;gvZ^k#I+R(J8LsmTs>ARj!!qthTOlneq zV>8SJj&~lkYbe(I)9r3JjlUqehX(}!#5j&PH*m|SunDd4#6s8j5Izj!kHVF(8gqB5 zK6n!~`2uysLO;|9gb38JB>|C1da^q*zv>CRyDSR;nfa=?Y2XoL~BbK0JNfZXv+ z$M$TP`3yGlqv3mf_d1O6_hR8T0)ccB^lDC3`lu;3=J*aMbS6pbq%06%-{Nqt7DDD} z1k6@~a`J?>_h&0-M?qP6Gy>d#6aoo0;auU^ldM@5N~;j+@vy{ZZT(%?Gc^ zSdF-~c<79jwu;Y*iUp~4GmdmKujQFn^401!7lR-i(H z6bTtt_od)1qT~gx@V39v$epKA7RTm6)e?pUw9cRVQrd__&=ZW#U%WG$in+Ay*w&3~ z7QCb&g9i{z!Ef}A#DcR=EM~1B3(Vi9xm#6}G}1P7cO>VwDZiQxo;h|2v@-kyorvw4 zM4QA6;x9%1w$(6@Kln@8xZWU{H{k+ZS3yEo{0lR2=V3Bck=UJXK?aSfY2HXkPM+Se zTZ<)ah`r9TTk9a_l`i0`z1F4b<}H$j4pk)2g}wgK1Tix0B#Q2e)_JWNcjZP#1#z>Z zn_Eto)7#(uhMAqg_3Fh&9(jr# zQ`da!d3U?p3Mp)%%S#ySWo>+^yU#rK@oD z)Ybzoy@8VyB{V-0UCD`OApMA!yC#_+n>&I}CC`AAHW0+KRTQTJEtIJ}YW;6+La6-W z2R390IRxdjb6&j>GFYSqJW`5Geu*X;v-20q-Fcz)4Bl-v((NCDPikk!oGMeLjyMX4 zZo}(D8PcGtti~`6T4NzqYRMfITbc}-XZAgQ+PbawPUPQHkp6PTSa_aCt9RNQD~Qy0s7iosS_Y2fsv>!=yN`i3 zWaPivl$OPr-_j|68~@9Dh`4u;=f$b)v-E7{jglI~2F-T<+4Mafj0wEq){t|S zGRwa_Cpi7dRqnJoI?DYfDr#3r=!}fF82$~u1e}YX$Sa276YrgCJBz$Ck)mm<2x_6?8#Q;dOlAfZ)?x?7Q;WR>2lMmS@x~Q z*hfD$JK1f=%wU6!AUtCdx}$(*)t9dQH4`WHHFdEr$w>4$rQUW3L#HlaHW^gRox;43 z!MKfx401Iih$NEd3B%b)jkmX`kK^cZ8khm+@0}!Zz=o*I7Xi^*xgF6_5VbhRD~Y|J zBl-A@&@4*mZbm>u{ny(KibFuVII)Jimrsjkn5Q*GrW2Zi%Z9n8C+=m-`V^c|?oA^u z=~l@^lbnWQe*unP65#^DacBPo4>a_@lE{FqQ1iBc2F&*QF4O zZ8`YWF_d30l1=YoYSx-L!jtOXm{=G$fivf35gB=gCQ8Okgw&9^FU$j=f}j^W%7{5J z#N4-|Y{AIHe{8@lp+@?Rl9bJ=vSAUgjK{6%Gz*W1#t{Tor}FFO-_m_q9;JAR{>Ik4 zeO}LW@!Em*kt8t*1gVqj<2Iir1i>Rk?qI-2|9^IYS7KIJ*##ImQRq~Xbp3Y2;^D=gcLIv{B65;3*C2g2`+_^>k(hg%=n&25l(fqv~x?q8v z_OqU_%H*_!RMJ$DJ?cJEcA9e9_zoF=VXVI=hNPLN^cBE5OzJQDX{a23-{0kIrjj8< z??&YtASK*AiBhovMJ7TT38@Gj8&ME5>;oAkF45sPBHE*BJZ&~ImZXP9NXnXPCGfPb z(>QA=C&om9?iip~8|9gx!^+5i(x>`8s&~)XE1Xey%qVfdVK%vvDic1hhIO|=QP?c< zO$rM#SPs{|IKPpy?%fvF(%A8JSZtf}IEFqNG0(9B3Vtg)XmLqPm$;nRYzt1=y$vBH z;{j_CIYH+l!BVSAU^VsFEm3#wyb{~+>*2XaJ0UtQ_72!n5oAkE%r+W%u9+`P38>gv#wIpP1fiSB;2nn6JS~yS*oJ2K zWe|IsX?G&Um33#L;6)Je3X;<-d~V-4u%kpi3pd=8u?^=63oz1l&zW12F3WteHQ=Zf;H&_YD~j3gBHV8@*0 z@aeU{sMM1*XNgNey+t+$=k2gBp{q7ZnY34&m*nr1Xqz*RPt5A*FDg zKOu5ndB!`uIXPH)-gZG1fHAuUBOooNa8_D5F|v))_YJEBFWg6CwGm_-=3jIo2`D=K zbBFDWSo1|EoSI%D&XaASdxwJWl%pxld4Z2!A1R=-%(W|Lv#&mbqlm)<1vPscu_on3*8mZOT?DBs+WydIGfe#pGy7!~5ot{Zc z&Y0+5%DCitc$AoUGv;{}TorR(T_<)1ReeWqlOiHCwl@=6(uN*Jp?36f7c|?)rAb%3 z+vj5*a?Q}Xy0)*wijmjGzg7pKXJT#6z1=KNYyoRC`4@>-0(&#`QHdLAt$7ZpD_2YL zbLZOL@2evH0v#Y zjc#5}6J)*0nK=+;Pu9pk7l_kp zCyvA}HejR%$x@JehLzm44d)2w4;MNKq@tOx1T+bVo(sa~zCVVtVdE?rX8O+}*tU-! z>;QM&aE2neLYKT1HF0jBojmx3*d__O$N%nPk{&iJyshq=(x8g8FN(-p&QdWE^T<#( z6iKB@sz#l?+vG!voU^iyY_Um4ZWQ-#H=LGyOYw0c=V*_pf(FT~!`DY;l(L#U8|ypr zy}yTaW^O_Dhxmro=#?VFY__bs#_wTDdBBG8e&sR2ZF&Hua(?Qs^cUJUi|8iu?NCFB zBacnJQ|+2;pTknFJ;cHIP~=KtR5a(@~;~lg`7$fY++hseZ zs^P`?o!is*{<$tlncFo`7=;OZ#a_X7m)~z&t&zi+^XN=sx}l)7CDdGg_2c%q+x*dR zqy+zht=dNAob6=XxiLe_wdph0HdR3;OJNWnmO0Qz|2fCF@Ej16JR1wA&W?A_7TM;4 z&!MDKZFu#s7(9A9FFXHuIY?n$Hi{ZuY34;3y2zGwPr58X0KObN#nK@R{^V0D^SN%Z zy$n;VW_rUuO&LXKIx_W0e#87s^C^yi%VP+-zU+H~jO^i{){v z-rOf*KF{`3qy`+k9bl zwP>{R&(mqhT9KhV-WcMz+^>X&v3${vTQ7kg?(y=V%+SWK%#06oC~V#?%1X3Hx=0QJ z3)Pkl7&6~PudozO=obc#|6)Jw?GmJyY+Td*P5-YasONQGnFukU=NC=0Gsr4V?{WQV z*U+pG_?=^Y!+&U%Cr}Q_T8Oq{r$YMvfTiGL7Duj|dj~g=^VTElEl>XbnEo$J*>s)Z zj3MZib$e*y3e%Tbx+%WS>TmUvdJ`V3H*4w3-^M(-6~Z$-p%*q0H;@bSqR#pCDyvtc zdXYUZWo2{gKbC}>e2!5cSe`UUdwM@*3LDmVu>n$^n!1+C&VQpOL1;16H~Zv+wWt_M z^{kf^lW*Pe{qjF$%WbBFxb;A9MJ&&)fpTrJd@T_IuT9Hhs552L#JqLU(xA;Y@zOo+pQZmw=Lh49h+c#`3XRi|iGrdqwNnR&S2)%AzW6#A=UTi3Cwt-U)FjsC3^rEug#o1!qa$2vUgv?cPBt zB>E*)(5n2AY$N{(p}MB|JBHHrPv$Z=&hot>mqCyNg4}=+A`dBc)#Q^!&l`sihdt6t zou+sX*NF(W&CzdNHBbJOVZu1tvCDqMBO0$~fDyHph<{mit%AFLiF;xy5i2*gi#;`( zpJCl(s3`Lae#omB3a&UObI04|YE8Ly36iGY2v@bfuIf|(1xXG}r;I}r!h+q|N(CF2Ju=+f6T00ssuRi@_NQ`kNHi|T@(U;Ia2I+nXL_1ICAf=# z*Q#{IOVtIwpN&&n&R8~{Ht9Zu>TT^zxkl4H8hA& zGtIzueAIc8^DC6V^yODwdjvVl zFtpyL&F64?e-&Pi@q5&>MjfQ-Z~U^RzF5d}X}a1kEeuL0N@(6+v5ltSTbQoV;sP{w zbI!^iX79YWBaW#roW<;3%(5dc0nMj2o!dDx#-YqE;R-X^Gh?j8KdiaGRGKt0WNu5B zMxCc?(PR`ZN7pl*_{=iE^C?MRhSkFasU@#v&)P~t2mc2aLFvA*n|Iy^(HQ2P`;JG! zIC-{#0d)I;;UI0t_A^3T8OJaX!?qj01KPL#Y3j70UcV{7i~L)O-wP-*CMc`$joHR+ z`{uRsEi~~>_-(ZDjdY?{q<^k6KDbF-zZi*R%qJQVoe+(As6#T`lhMH#Q)i4VGoBV0 zFFP0?J2BqePgw?CjNKiiMW;(qkhv+mi}6Qt(OrVL2<(Wr!c(Q(hv71*F2-|FVC*kr z>4Y51`+Vo^kUg8a(@|`aE;W z3|07E$s6nDo2AS&Wv9>^uP+LN*57$+7%1EpM$nt0?6LvuoT26zA4RsLXK|PvYz`}s ztr}?wE5UNoQ3h5H(^inJ9cv9+rrX1|Wqj95JHq;jwy=`?rIzQK=0_Rz#3f$b&osZs z_$>Fcg6pn!c@r=_$+cZhG}wM?80A^G3~U*4>s;PX--OI1V>6UrPW{5XW&B3#6y`1C z`pQ<3w+<4t7OdhL=8y4gN2q6#x@V}{rD-EPlYtJNNyPQ#X`?*nF|KERKlfDgz29~t zZSf}B+RdRC;xUNc5cv&=Nk!X_u%Gf`0CHm3L)iu}?15PHaE)Ghzx zY`?c;h;90oY(H;~xW6~%(dKEhBDytTJZZ%~bT3qPuupc_PdtbLS%PT~`0;4zHpUMf zB`foAhwM0O?vroY<&157_w9VI9?qbwl|G<7$`6ASc6axET=#Kzcd1jS++CrBDvF|@a0>)N zf+fKvK#&9r1VTa_k|x%%zUfZu&Aqw(_I#gb%r*DfRhKLZwG>Qt)P{Abc3w1^ww)j?M%!z`0+p7ZvIK@(wp#wsH7g3k{r8!x>bzjFI(}#uWFh^U}H8f9XIcnDAEP}r< zu63yn?rrw$Jum!Obn#rY(B(bWyl@-O$me659-fWXzQTeR?TVRNpQCNVi5__lTeu2dX>pSJI@{B-lyGyePWN`S=gqy@v0C0lD)d0CoqjD(SzoJCS`eCIq8n;;sQAjz zl&Kb|Oly5ei&SeUw@hg5D!hI}o)lu*AsT8Xipg3v6Yk3>do$)Pi+Uy0W>{|#M5UD% zUs#pmWu?_6t>U;*I~?$lE*7PPo2qpnR=jU(T`KAj4{J^kPdBSNZrsSKrJS$?1qleN zQH(2J%I4>Fs?0Y+U$$D#nTH^CEkcwq9@eNFhqMz~;W58h*wG4)Yhg9_X}X=`bU_$| z$kh9^@U1#xq~bG4T0fw%iv(TX<#7T0`3|fN)L^V zrboud(mj-&gW3NBl()=-OagcqE}~n`U%ki;Q{LICG?v0h`t@{^ zrzzkqlyBso=>$=$Q<|{VYTGn(G}3&0d*}1Mg z$C$qcf+390M`-c8p}^D17M;u7-14h@i%|zm{)WE8mHKQ-cv&4EiT*Z+3I5n_{nvJsDd6X@gv74mCVm zBk(sPWE$7Hk)~TU>ndJpaVebdAsB1jNJ~aqWzq^$@n?~(OChJw#xhOPYKcjUQ^hoE z91Gz%Ou$laXlPNiAK(~TO!Bz)RjfOiuLY@z@!GHmr3dh7LcM^SUbd_uty;_391^nBeA?TW&|*}aH$*^lwVt=v(*yx(LfH3Scpd%y3)3*?ra9bfIf^kx zXnyvkk?)n)>ot^qZBxwZYB{U;?eIFhMy*NNrqms%^6lSaYmq8U1#_SDuc0NVFhL8+ z&F7^*ot6pX9!D?XdU>}``w&{C3X52T z_OX!uwKApUssM7QJ~lLqd+oJXrmL@hRk{k2aSgK6tchF3??UQn#`YRyz`6O^s#G>} ztCcCOPl<)1O6wiG7MV{hV*F}ZN-I-ZsanLG2`7EzztVq3F=uO@^{-~0UJc1GyoR}L z{(RjLP&a?~r1Js+4J6DqEpi^fG9cww~`veSP-!UCaASYg5)QzA);6aZTE4 zZ7MtLE50*ovY!mi*DCN8=+{8OP%q%c+^GVo!so2%T7^1}!Z+=_5nu zeL}Of5)Vz?ns2!zLIN_RSzBHZV^v%tpcim`Y6t~rmx#n!MiP~HzOw00u z)a0$0B^|WW>Qq6H5b9~-R(5*XY%SNr;41fC@=?sv>eE7Vw3hYpOngRR{+7PAY-N3k zLos11*(i{NNF+odEw&547PJfB7d(F-{ZiB9>7CvORe4*4Vy=IK`>$O&ovW$2V| zhW>?QV>x|I&~A+WrZ@+k@Xe5~|BLMqivz=*Y1cq|q%~!`sk55hGQ$4>xv*Rln+lJ5d$z81qAmo&wB~9xsX4)mKv1q_;pAec&UY_VuT+}a)zl`Ai*eT zQJ`1&se~b|;1nMfB79Hqg0!Cb5(fn(^9mu5Xh;f*b1}(?Ws;8Y1wej*LYIGrvcQ!| zNU39H>Y#2%;JRjpj^$3xK5|A;4vDyU)e#|TK zMiAWkc+tDbR%ort{650LTIL7kdIXnfC{!v)>Puq^VxdDvNye&{4C714SIE_CyAJ%; zGFE-|j>o;-*<1W}#++ltu^_S7&-mI4;XTpUolf`nhOd=vjHd&gS|x*&AgFIZ2-m#p zZiH{4?~Fr`kYin4=_rtF=s#lz1fzHgmlRwNvADjkH(day$vcdouCI$d^m(!i;tg5Q zVwGlS?;ROVw+#-39}RtE9PjK-_YIGv^SyoP#{PjID3=Iz1SkPHM>{=#YqoYvQ%jHy z`_)f|$B>NZk=%U!UaW>BX_{7o;Wc>;!t0StNHkV3f3yU(oKW(ivqGUs-yPK32+7cT zmnLl`8K#%jHw4LWu4x8ZVxbehVkWv*LLi|a6vcdPn7RcL4Ch8M^XzjjBtuv(L3h4{ zB{dK}WvE*qna~V$A?%KA$6%Q+g}6J;Epz@9-!6`M$G&r>K&w!aZ|6r7V>L(yB)3nZ zTM>$aZpL*x^QgvkCdm?MOei@E5eTr;(jla?m#QL`k2`-l*!Nm`+>TD(OoXe+=f_(}%4faD|m zL@1O)8Z6VqY%x)*(5;_|0fcx3afN8}Y@;Bq;4I);xS*KhMB62rs9Jue7{zB?od-pfKh?8|<=9_yRuz0;ew z_bxo2SER-BQt%gH5}5le8C1xZZ1`Nlt9bQ%vWZ*17nB!I-kPwLRM;+)37#i)ifP+L z5Qv(ZOh(L;Soq8{$%1^><-QE#*wo2BH}ZKbpuHw;i)V0&heSg&w&5286yF+|Ok}?r zB0B_>tneM7te_B%>--@NGWn1QPzEyTkN^}v8TLUQvR8zZNjM7Gn9qC+Cw+uLG=O2o zWwW*-o4PIe=FOw+e2#e;m(AGDEnmR#0W!cV9r6iH*JfOHzGr!H)>lv26_b($9iTxd zBo_Xy_AhcF8HPb9s?fjKk_`W3hlT?pp{ZE^s!x(9Bo>l{;+#(s5lSu#IHGve0BydEpxa z5+Gsmxn~D^)T5n!>a0;smCs+oP>!ST4C_h+B&cdURzNBw7OT25EDygL)G6M+4Httv z-ZIoutdz7^2GLjssaRni(A)Pqh{YL2zieE8^iB1H!Ng5}_ZAJzy8u*^9sd;ZU<-xDNuN_ChU& zzA^UnBB+tpA>V;M`UDb-6NB9m_ph;@yY+>k7DLU1Uc18&2BaZK2ZEkjj9m~2$%KEH zPXhlYpMYQ-?(GU62jLuzI@aAwz0hco*6X+aE))j+E4__Sk|FspEb$;ZK`?T@1VRF$ z(>4jkI`Y+Y7}smG_W5ZCJ1Nra@qB~gYhnUa7MNH8Q85{wd;a7Z%R zdC5sK=0ah}uxK(AhQdrOLXSdxaduY-MfnR`EN#pROT-oC1H62N#6wasOBR4(wBto? zxdbH2czKunl9ot_Oe!+L5SH6c=pRN+TgM{iZX7eWx1Iz-0Z+msxfnnIQ&T6|(5Fim zZM?Q_!Xd~*!QdR29!Gdndm+h?Y#3L|rUqk46LUvW0g+h4I9A)HMniuZYBhB5s5WCG zp-vyCAd`A`mvA^192aV?_As^%K{O;AM;LcUtFfmxV^@1yIt&3h0?|0!#aIVwH-rS^ zR1f17NHX*kegYDqPYrRdw-<8I8`_MU2KpmB3^7m>VW=kKR&YTxvZN&f`m#_%AtV@j z55IX}Fti;3>R*J6NGkS$6Vy2iAvsNb>mKRs3WB3&az?1kX&S+7&+c6p#b{DP_t3uk_$Bz=Bd?^gg8f>H^qsg#G}laq6xH) zb4F6`I4opCnD5+h?l>>X+>lH-u47q-W88USIpbM#wVJM#WEAwwL3`~&zGr?z{h?SB zaPxO7`H~EO;^|XLEruElLrsY4h))mSO`xTL^W*!ickk?c5BUK3Lp1XpsplIg(I~{@ zWkdsLPPC(SL6C`71V{zq@aKTQo1MM!Za_d)a8u#1)eL zL$8pWg>J450o!_^QLwCng82Y~v@ovVEo>Va4chv5Ujm?3K=NQHSuk!L+ge{zAtokr zerOlyb5@%`9s6FqgzqXuBOnQ(FNOXP{5f8b7>`4nLIldS*q3>pt0?&%r_>YH)ART& znc}+R9H=8f(O-u5&N4|#A!%LISBoLZD#x&ocm^Px4pP^9UHT}R2;=r)+UHeBM}WA` z)jUI=v&2N-8O2dw^urjCWCZyDI`Wf9SjRl$5|#qnStfB%i;;b8NH(fI)NU|#g>myT ziO7WG|A1p0IdKtVU-BWj5R#72YD9h}6`~LiiH4A1=m}g%Gz^1;@J)+y=9^?AOxeBy zYAUj};^pa#%j6g{8f$M-dw=h_N zLaW*feN#vh^!RPL%cv&X8Qi3G#-}Dh%|sy+qr5D1@FyXWY?v<@8KBSJARw@C;x4n2 zyy$Gtc9M(YSv-S5P1?FH)v}#^Ni>8cK!PBFF!VgS5#U9b&ZCa`Y9dMIIKw4PVML(s!el{c_YB?kv5`&^8vc7`8%iHoY zw@hRt06I{V6zG-RHbR0Rf$-SF_UmMBa zMtXC9YdGmE*g@X$2?Us_-gI^v!37vUHHmOBf$%cc70abIbaUR2i~P?ll|$&>49*8`rIRBF zK%>3sPx5kdxBJKf*`Di07xLzRJg3=%plhe4j}l2mIKnEfM~cK zflz@_NJPrgDPh_^?ZYrUi%U+xX8L!Dlme&%l0uOJkwTIV`9>6c{KE>-Xn`=e&!Rw+ zwGs}=L?IdlrenDjXh)!lzwo@AdU&a2XLQUHUV5UNJpbkw^a6!*^J94w_5JIrKqNs> zKvGZ=S+J)c1bdfENir0c{4*;Qm?RtKySzzKpd(82B?qOAc{-0&8z_M=&vKz-Nyoez zxLF`Xi2?F^5w1MG@LcqvQ3N=bN4ZRDya@rJk#`eqBpJmYN8At6laL0z&%3-&2a;+t zmbNfQS{l+~$`&(L*RiR z#&HOcq~{cbhj%UXzXm?(|f?O0r(ZX1*p^pxTvCE_iIzbcPvlhOG5)GFmtHsdofJ>$%8;!LH zg%E^xzV~V|+W2mC@{K73Lr5?R$xw6gN~p;Qi&C9=xl{ac2kk&X)}>8)yVkLs%cACD z03kSpW5|VdJF4~ystUyl+6wCm>S{9-_$3(%#zjk@z`b~J7W8$9r$DWCVzJKmCU~FH zzAS-~2$)x(hGNZX#@1TCb?f-vg0;lgu4#^CQY%(8(xz_q9P}t28V>|~34j_5>#fw! z1$~)kndcSchx)d+&Z<>SaUK#EH6TS3;`!;sFPsH(PLc=-h=j;I`wpz+-LstIENcv6 zQ|fyUB_A$Hle9?$S|D!TzaTpj8bZ&-`&Kj-k_79i{TbojdaorX<{8?jj`-SX6XcHm z=Moa1llea10`EybuzPHJ`qigM8mIxyX4Eh@!EmVU8A3k@IrAuC9i2QX?TG442`Osanc2 z!N>%nIO(&!S_>WV1$gh(^NuPSk1N(AjQMw16oN6?S{F-Tj4yo!!BE)TGSC`A;F=!l zBOETKPVC135(oEcNHP?j%Q7knhlIjqQZAp8Kv+i&ha{ws3!xUnx)KdZh9sdNG$aW3 zk_F>s??xdQ5)ri{5)7ATmHif>#Sp%{c&HKqH42i0de~+V1M)4GV5o(W97rG}7IR@c zH5}HF5U4Q;Eks2q)Jhn>l3*B@bSdCx4G`CY@NXXyk^;3ALc*Yi!ev;J6SWVvFH4zX z$rSn46LA~{poBsKke9S&5+T{}x!6|CMNVhZQ3!_Rt97ghNsu^7D1uerfJWApzF>(B;p|D=`PaCm}dX687hD5^pn@DfwxDt~UYAZ-@f?!BG z!V|c}gZMEB#`(p4K`bN`yN3{x2iwz*fwo!b4P26;7DGWzZ{9AQa@mwir6d?9$9jTH zZ0|vcqTWmg{ddu>vpKXGCr5kIg^9j&e!MRoAMS=!bf;4giz5&WwHGHK7ZMCfN05yE zu5^sDTOkzpEKM1}<~bxoV&hURk8OWyINXn+ z7GsS zMc`4und{j*2nK?Yp~PY!_9iel6llm(I8tB_kKYL7vwvI>oXTE|tZ`rtSYLq%WFnG< zClP;U34@GC1ni&rqA=xhz(Oe0U>FxJF*Hw@?o$&1v5-*o@G_6R7!}lJ2#+5`hjUR2 zBW;lH0~cANw-5p zZUwhcUq}pGGUf6oJ%=BJWJn+`(N;(-oCB#QdVkkYH?W$)roidTKf(8RN_mH5Y3j z9`4DIWT-vV!}qj%Huxy3xiFMyNG6u^AznovhR(Ao$%BLek|D8>U`QU^qftnP`zgSlOYsv6-t9-sKtOl zD8vedb+s7^$O`WY`3lNv3KZf+EE^)Nc0qw%B2k3zDbkXPSQ15Bh5hiZO@1L6rq@6y z*3YyAu~3+otVjTgMkB}yrZRb8`~`uyT(4+5 z3c)ClOjuWBS;1^rg6zdW25^*AQwSI)J|9@qj(2*`PBT1XcUr> zmrPwI8nIN0Z&fB3nPdp_B^Hv2aN0KqS#x3gxkMvF0wI|QVnHbBaEVlHE%Oc-*7DA& z;hj|WU*!E6l8n5Rs(AgDXt<0@@^Qr$gs}}03%Gw*@OZtlYf$lZhC2j#R&R({no3u@oCeN3@`<87^iH~kn|8_A-rBg z0{W>x$V+CJmxYLZ9})}+1?BEJ&uW;$5Ov5C?qv`z zNh-_G1|bW!YnLF3o9pEAan3{N1zfmPY3o21_T%~T%!`L`L!a*o#>7gsT)^^Sge}L& zI_m2o+$BuL^%6bJf=9-62euqo1uI?TU`g9PUV$mh`6^AQ`8|yVE`hiur5W8yLe)X>Wg9+7ID401gdxM0$ODW7^Z# znvRWh<~+#8u^|MKfsS-^uoLo-J%;NYd@BTFCq!d^Pg^<)0XaI*na)Wzz^NgG5j}mo z{0SI$1NTXY#c@c+(Z0@failjrxO5~v2+6o(auBl6i_oS(&p9F7pMhYULx3wd)$db z@em5hQ%Ky5(4*Ewaw2(g$(8wQAr*QRR?sxAr|2~m6hJ3=dFXw31#!uTf{`x zLX4ikB@$Yfl57;qQffC0=MoK;byfOkd5PzIn~FeZ;NUiLFyb~B#DA;#Sa1n|?n z5dOa2bUQ@jCP>Fw(hB-6KRVh85kX+TBmq$~poRdvdTKm9yJRY~7!Qt(q?;%^rZFYP;hMbdFXZgEa~%* z2noxr)YSv|$*!)nAHuS|38LQ87E7~^K{5;vKqU5a-ZyX#x6!8_%};Sodmt8@nwV4W z#b9o^XJbdJ`#4(DHs;tmh{95cgmITNs?BgCy>oCC^Qw4WpXOs5-t&Rs6lB6YjWRg* z^y=-L(yMppJibx$nG1ZxB@%}H2mum}N#>vP&^ag(iRDug2uOu<%6%Ie1JDD#bE}Pc z;NA^A&j+EmE_u$mqCtx}#(0l8Lfx2C2rV&3fCM~92jkQI7#)nkx#Xg&LObMGOE!A- zmT(kEINBJ~k_><5`D4!|%qMZLsBIgdIev?JC}TqGl4L#*YM?#f#nbnv6Q|?ArAI$+hx>W zOnm(ZXOW82jt~Ye=m32Ih{Rq9H>pk86EVHh0J$HK_gn98CAOr0!`I&VQ*QhORFra(#D(J zpApC5JEHc3_Iml&Ac4>`xWrhG-;LA}#;vo^{TPht@bpcc@Bm&B4ZVarKAQ^BkYq?I zB-_Z2nqjU%&I}+My2L8He^Zvz8a9Az5C)i+HO#ApgbSD(?$3z58pO>D@88VZ?CBel zL3#o2iuqsx?}A0-)kro7h2Fgz`OY*|L_;s(HRS2p+r1f*jCu(LsOMc|+%|grZs46H z%r|T_&3o;NTifc>&ENup-6=kvr-oAJx`q*AR}iH5Kkf~o&d+d zA?h6f2N7hCBTSw|_&g2{An5OaIPBqNu%Gxo(-4L275111@z_bb^$7jzcyY||a@jze zO}tFj6V5;&Hc(frrH-D$SAdn&6U&G%fj~@i^G&a#o*u)O6BoWt z6ibOu(oS#U)>%qjMSPrcVVy}}IL^b? z>-IDQLQ}9SAP&oDBQyuRlmW7Yw#x`tajbRR?+sl4I_fSbe+Bv8n+@cLDOd=Cp1C(r zzJvR|jb}7NdKLYz0W7n2LU27K;5cPRDLcoQxQTqn#%adHS?XPcFx(AU zxvRG&UC-D#j*xW%oTZ-|NsAl6%^dTdp5}BrW9tUmU7-C%`=h;eu5YPJ=NfC$1%$Cz z4|b%-2insEJuT@z$g$zQgm*zO?(S+z4|1%hhC9>i#=6tfgbz`E7bN3RNW{|+i^m`x zwt29pH9Z26cpmcb0(doq;;#0lbO!?2eI3o|G0L8RL_E^n7T&&}g-ATr-x=xqJ6qEO z2x<>g=ONPfk-n?FCEbn?{~Sc&g^@n$cBfY(q&?Z!l^%y=JdBX`5Q5vI8)E2-Nwgxk(GQscneM5>Y=-rm*)Ti%#cDm(EO{WZ@UqS`iS@QQthT* z7imNDtgE?L^V+YyI&}c!_SMb26ur#R0os~pnb2Fm>G0Z5x|4Q&q$imtnvx!-&k-<6 z|07_C_QT9SO-e77cr(_QN+Kv5r`}T9ts-wRBw{gjmJqI>d?Vyx1H^g-LfB$n@_GZ; zGx$0Lvvmk+WZX&Z<|SPrffqU?@(U;n|R@$W^5jBZ%&6=eU6Rk zSS!yN7(YyS3W9uNZ%4WvQgL%n2XnS19p`!90O8QI@{N#;>pK{05ZRjq>V*Chj480y6PPZ%?|1{5v~3qWpgH??9bxuJxPJ>If;~H;*m^jz=*3_jV4UMz&Z7*}J z;0T1{1o;Ok-^7P_W&z(e=8o~LHMMCyq1fa+pLnm6=x;M}H zx14#R$9S zS52piDFo9=VBByq0<&gaHUFyFSG{;ILEzPF>l*V2S0MDR1gk0Egs{GGtS+rZSk}Y$ zO0b%;^^h4cgJ8b_fqN_UHbXi#ke;FLdW3zweCyd;Z{B+7*1PsT1b(p#0lX_woI82=*U@zrcJYSBpmE-N? z*tT*k+mpa-obm8c9WEe3F?k99`qtUO5F+jXyw@hJ%|s|ZU~Z~ z2k}wU#0M%2K_Et&c*hg=Koq(l5t`aHu6u)SLgD!B1;vYaJJ95=Uco*23IvWv;s-Ao6%8M1G`g3#sDUY+6T~9W@K-*X6&=w+Qw0o#P#RZ@Q2R zdXNbWJ9&q7kl)2StOsJzP1wbI%J7PRif`DflDs2jIuxcfb!3fWJ@pTf7v$3%*JE>wIW`otMFv!LJejJmF`-r@^O4e}X!{ zOk8i`zliYrAq3xF03QJF2k!;%0q+Ly1aGI#TX^xj1m1`s{RZ#?58?U1y!1NK;#u%o z@}8;iRD~z!;5Fb09@OJJuqSwc5icOm(7aOTF&^aO;0f?*(ytN3p9D`64-kI_ycRqw zc)-sEu1T*ae3862ftSErz+1uFc);%f?*{J$?_;q1Joq5^1@IyAJ`6ra{8zxQf=@C~ zJ_EkUfcg^nGV!la=c|O@0N*0-JK%fZw;51B;=}M`@CV?JNdF1=3HWpHGw_#ug#HHn zBOj#y#E0NNgZ~EpC-@fz*}wAP`2T?<5N;A03Z2V_!u8 z`tqXM^o4~r>9gQd;8zzeN*@OwS+Iz)%ZFF3L`5JZ87`Olw}?i8WJJe)o36Sl-GSiq z*tOTCN5R9yAFS{I&~x#9;NA*%i)*e)cL{`_0zDhwQ6YOdz6|Ty=5FfUQ^oH=fVvml zNBn;90C*5QOr1x-qu_Dy1b7X259cq@1Zco%pNct0=d z4}xC=9|j)<9|xZRpW)^GIq*gB74S9Y-EV^LfbW9ufggh3Ly-JKUgm!a{)`v<&v<$N z4fs1=dIJw9djAI6biP+P*DEN__}VIz^laWM>I)t76(@Zq zT|9w@*Y66Zi-&KaC-5fDzfo{4qJitI=b8&<)7%qLC%9*#wt)K>;J(&?McnII@V;7D zoBluWui#(6e`o&uXXed6&R>-NZa&Ww{3ZBv@DuRI%%?v9zdLV1`T_W@dGph^ubZEK z1AO&5-t*VaOJ4w=1D_@RDex=IosWSJgI@$61n&nw2i^_d3Esw7ee*TfrZ<8&fEU2) z7|YLsr@>RevHk?%W8e|y$3x&j;2gP+(0Ow^bx!e}k<9e+F7E=JuYmh87BL4jSL>b( z$%V_LL^t1~wLqt|7p}WHU5~((aZS2FSa6hY^HLDY4v{71!o3*&>2>qBOQ`}7jDl`3 zh46L?qH#wZ?+gUQdkF6ZI)A$#JP5IQ7(wz;1j)yM-l$)L0Qn?%3c*v))z2cF>a6Ys z@CJnA7r`5ezeMto~%zOlV6#R0} zqVy}hi_#~+C&8yGdm3Wz*T7fF|8>$|0bd4RqWssu7X|4rfX@^E4EOJo%^9C)nV)`@ z@Rz~Ix!)fR%ugQyzsU3WAkXIm2=qTs_WARGgN8^I-T zJvh%eJqykV$ipdclK63O3>+nWgzykJ$XMSG_JO^S_uW9pmb*xconQyp4z_`r)B#nrhSgnrhO!8*6xQi_%MwiZ>$o zztIpf@OE|E^uLVyNe-gZg3IA$A-V@+q;tx^xUdX`RycG1>eII!b zG%idJ@KU&k@D9>;RrYg zQ8*-sAEsO!Bz_=pZH1h-pL+Yi9tO)!7~^iRhZom=%Q;``SuXaHFZNeBP#r@YAbk)V zf`}Xz#?6B~6i?uXz+uu3v_s$s>EonNQtzZ8I1SE#bKn9bB48Y1a+U#go&j_N?QS9e zE?&IiPDs^Vys+;!B>#Tm4}gbBKTi2mJeMbUW={}*5XACMOa-$eOassA=U7;gvf0Pmvhd&qk~W8#DK{eJR(9{e0_-%Fbh(B{LCjZZR` zKHE~4KHXfKKFN6c4CCrkkk8LRV82LO{5oadY->or*;XI%ubZaLH(LSWZ#37XuT$@< zjK!}(N`3>9@tcs2FVp|m_;7uT_-|3?`z;8@kPY#D(m#NJ{0@1)-`1FZ7sBy7q<Nf{^?U#N>A%7{3b{`CfBV`fgJb=hd8kNcwjmB|m_O zd>?#o4t^Wb@qO?u$jLV$CSRt_m%y(#H>Yoq{#Iv4`X=}~B;?Bwk1tdAvj}>h2cP3u zp8=nx-sdU*1mVXK1V1Xs|0VkP1@Jxu#&1V;yq@N`J)sTwE!DHaj+S>HMqMCFcFNiyNVcg0KV7BuT+)=^!7Vh+gcsUa<*hoFwZDvl{_jby6GRL+N7dyZ%@(Om64o}Bm zH`q&h524<}^@x0s^kM4hHT)>yF`$?5Q}n54@C(eRbEKWe=cs!g+(7yk^6z54+zY9{ z*ASxrAam({!iT_P<(a&b_`AW| zc`olE{qwao=|hn757*bFkMg`fPWY?fQw{a$bBzt@%Z%4A68;*bLr>wKWej|Y@HZeJ z-)C(8UPoK{J;vUT7-K&s{5{6vj~Ro1O86(_{drq^`s>cl^tWAI5&sMDA38eI-;?)u z<`e%LNXK77K>i9M@;4BVzi;bIf6>g`0{?;he`wd!eOLNN@@LWBnf?jV5{}T8->Cb{sLn=Ngm^+_j zZhe&d_Dhfoy?DPHvhW_l_dzH=z`W9n{(C5Y2XpCd%$YYapI)T=jfAgfF1?=c4V1l( z@JZ&_tHEoSXODwNh(E{&{vJN|cS06!2e*M+z(vOXMaaTM=7+c*q2L_h8E_itQU9bN z2osEp+CA{ln+0`6k z5oDr56JuJEA=z;0R6(2I{q4S^3BDOC_`a>?d#HEhHDDESJtHsXyV%b+td;LgE8iLY zW4J`BpoZ^kE#KZ|)`FirVL=V}{@u`A4aHg0j;Pj`Ll}DZLBR#h!)f`tAkk2ErQ< z&M%RFGjVZS-@c&CMd>d3xQn`X)Ak<1`>aDB;y%hA zpw7e8eTeWO$_yU{kATPN_c6*IA^#EULV6yg-6Qn#1jl`9v^G6CQkz~qR1<0OC`953 z+CD)W!zbzE8R|VjKaZOSUTxptQTlucqVWJ^;(o6Aeh7n}%mh&QBKP`&aoXvD z{Q_lYNCzl8O?Z;$cZ@!d@O%$K91Z}({a`o3{+v|yZ`}ax2AQKn%+F!wrWgW)q(f85 z95yT%;+v$_($G}`Vu){1pycr$QM+kaFaTV6kR5-{4`-lrp|j92-d8#cH5}u;HD(^~ zu5rRi-g8%MM#x)>AgD*@Rf37Vrg2eP$D}pxlA%>h-t{fDX%m9rMqqqRb4^-F{_+Y- znE2z60K-WL!5DGVQ?y^k3t?qTOzR9imq$Nsg>gN0i(dN!gVY&@jEq>H&~!ibEHCJUSad=Zx_MElvJ&R?knX21 z(LuVILD9@WQ@zziee*rm0I=^q$Ve}33VL|?*^eH<3%Yn=>Ji+~bT^?M#Pv2l#7lIL zcz6P*PA_GBgn9zkBeQ+dD9R=mw&j-W0}vM_A{-uX@+OK8j`Sryk)c(#wV$} zn0Cg;InPP@b1BF=>TYeXPun{i(h~X{;k<;)$!6$tZ&zd5-`$k<_cW!W{Vi!1^>$Ey zX9utySWh48AQ-~hMN?TouLVOG4XAk7#L{DovJJ6mEbv38;RFyI=aLgc#+pvFkbq!eIse>cF?|y zv9AZ@PWqYc7jyux!SnPFuAY+Py10&R+6^*aMi_g&v~BUaIBz|a>q&e9a=nc4I?cFT z3F%%+T<_u2yrY+pC-fRV2I&yv2yauQmy*8>GCc|TSPD5`3;EvM%5#QTi;XRfX{M)aaQ!>d&`y|?>eUc&q;b8Z#)d^MPY80xKi zLR53Ej}Lnj&X>Ddoo@I$poSMF={wwBP6+*dP3q6fOs_V zjcH=chs8v`tpNQ%0>1%-uo}K)Ve*~tVFPs<`M$goYB3h_O_XG`@a>sPJ~H80n3|9m z>iN!hKr-49K-&>yTk4p52(_)C4Pn&$P6SlT+8g;kH*;SRbO#X5MSlnP5rMZC;kmbM zUX=9^?`~nEjTS2c#n|3jB{T`zj`sZ zzcH>gKwK~9dO#oLUg`PV^b(G{lr~E^hbfM0|D{|Ec%QlN#(TK;Jvvs`6@y>tjvJYq~Db*pC)Pb&_1Lka;5XTcbal z@M*(b4L>%_(>mtqLgG5l6bqR5i%6Sa&$p$H`PslcHmqeXUk3A*_l7?R7V(}iF3c}w zhV=^<(B8dO3nMgL&wFYvYI#SM{5sxs;)*^d@CcJuM`qIqbz(6><`T$+ScZ`2hTe4u ziEij!3s#YK6YwlSl%yx5kJ0w9%PA#-?ou-?!wL~Ri6L-|*Weh2CW4LBr!yIfg1C~7N*iKL7<$*Ut zaNNK>yNTOl@Z!?)lc5iKArE~%1IYnk{bKb=Pu#7(rhJ~jJT8DD8 zw;RN@zT{?Z{Y$vv+jBK;Uf%qjU%Z+M)CIk9H=#BYcG@0vaqO~DypH27xLQxFd=O~k zhVr=A5DhnoyAj;FZU%2xkgED~Bl!ULt85r|!@ky@-2CmcbmR9LpK(uPSPom&m7lYI zQ--PUhVc&0)lKJaY;_~~2>G$epFWnf<+>iDiR-9i0=Q<-P2=l(o6>p+hT~@i#9}FR z9cPoYbNoeL2vW--8;&o>+*-!mdPv0v$b_4~cMrCuL!%w(=r}?QI6T&w_Gw+Jzcp>@ z)?96USl(HJaAtf(OMO}i>DWx!)}EH6k%L`*ZD}JUL$kKS2xtR*0GH5aPd`Lpggzk` znyb|p#*XgRw5_WpZ9+(!K@eNhj6epl*hASqh{t|#$c?s;iX*@c;O9pWmd5(hrSbj< zO`jUFklRhywt|cqaA^dA_4sHh4%Ft?rNjIQsic=59*;{cA zhY@;=>(ot?nm1e?gL6v@QO#Z5a9Km9UH_U9jAJ`W0Sb% zZFR&K7MuqA)7>LO>He{i^uYK?x)0nvsx_#A*nF*pr~_@;S)ZH84?zsHG<6J;U?1VU z5AvYT4L5DiKr&X<)JLd=DL0$z_|I~k1Re|vQp_9At%*4ZiP+fKlyv?zAv@&D zzBIHpb(Cw<%G43&orV_N_`Ve~??!M<*lJm764J1kc{4#==!L)dpwXzp1oNhsk8R7f zj0J@LPCmruEtOnA?wnUc%&7rB&b^R@F6KZRAA9Rtw}-sT;Ja4AP2O$_A7V}l4Fc%6 z(T(430&jMXN+2W`gvHX7@w|4M^DzWElq{aUoh#0%81u}@JpTPgaSa@^jpNKkD^Pn; zM?FzbyBgYwSwY6W82kFl(CMvK8Z`;88QTSXXASH5w$(C6ToM%gnk?Rc8ZfL+w@0=Ug(8)FTNKok0a}WO+z>V<2 zr;cdKacl-PWrCny$~D1DYwo-=DXIYvNJv{RW0Pa7IB@$3%JhqYRRjK4dIKB6N;Y= z{b>|jp%-NxooQB7$7bV@4LvUFO?eGM-dcn_p%-UO-0C|+r)ioi)wHdC6(k6nR4t}Z zL*OTrFoa3iiX14=>-^3ajHY2V6)Pbqj`~DjQx3zNZM4gEgchajPxG;wuPr_%G>@Cf zMJ5>bXWcMGYkdUnFj>p-TLs51m}{C=Xz9Y2p3pZ&F-I%enRTRx@GhayZ$*@o)@*Ds zKO1C&usF=q>}>IaVO(gwHV75%Y^y`PV(M0MVn32FLml>oaK!P9FJgcd7Hgh;cpQm^ zed(oJ;-L_vQ$7VDEn4X)PcyX=9P1lj4v`R=tJTkmSS7&#DX(>9q8XmzNyP9SenzG#l!C2nb5GFxaw{vYk z;Y`oTVj05OmY&wM7jm%^flRZul97F;5ze-EBRD}U_V;(B)1%pJ?E&I?{?;L%{xdFs z>&N@j4UmhA;QF!t$kT6zCTulbdmQYCOzeUr?Cxp{(xG1qLwyuT1~h-ExlrR0hGhsc zI{cC#=+DCX5(J?MS`iM@f!6@1c^UW&+qihf__0(w8Uj>op z1*er8Nkt(SK`@AGvpj?E7x6=ZzGAap zTo?C|<0|ACnx`KQtx*-neUk6XgoC&m4aThF*s-exstLxk=9)Kmw*vD)F1vcG;14<`ViJl-!nd(?im|S_fL!lBpCMs^X`Or+@@Ju$wq&F__WZH zm6o1_-oqsh`nJ%Ew+{9s5PJEZsfTPsG9)40!w2XmF{_ve5X+_WU+y%7=$?~xw!bz-R_KCMYPe{{6h z0byvlmNCKH>17USuC@@2S+YQVEk+d*VV+i`G;6Ep?+(a{CTlfsYnj%@hQJ_k{bclm zLPWJDC1DT0GR(08&DO>ol7KK*B-dJ0(_co+l`F4|(0s?fb0f^#f|x6y&i2k3;th;p zzlHvw^DnL6(D-KgjRbz{h2)|jTb9ZQ&)*7k0ggjjXu(H8O@s&MO7PRuaux=ezseK{ ziDBW#uz~L+!ffObH&oy(j`+eKgF+~wLaSy}Gg08%EGnX5m<9I?eK2$)XzT4-Qee9H z#?Y*)f^gI!43n%1w+Qp*X*M>ScjZ}CaXoTt>Q;eWv$&eD)r4#@J8K>DG!?sIc|-W6 z(6`0Pl_LA8SWdn^Dwb$|7UAA@_A9b44?^-hrY2;I2XD_w!lb~jhwlN1fc`P8t7q?Q zW)=cLXnos->08c6v$pnY8$Ed2MiaQxkQC3~_*~Pxo=3UPe(HBh6eJbEFyh=(9qQ=_ zuQ=Q*rehZ@xGL#fub8$i=4!LaTJAH?Q37dO^TNLg&)R%Fd^eJxkCVwoHcjj^%g?Qh zi8wBGHErv$MUaXL#b<^jK^VUl;&3%2;~EHuX&wF5Kr%F0s}sKLA0v~A+|IQ9XF_3} zARUAf3K0YYvRu+Ng85R++ZM-t^T1rEeZ`b*@tYxLi3Yd^d9j$c&8BZNietXH>A9wD zB@Lp6_lhQLHEXM>+F6nTOp9#pR>D#IX=G=9S15$7fn=0McJA+hie zw*uiZ|3CxDg+4Qacp#iAFowSj|9XS5)|wEY704Cji;!NRnOF&cL_tDes1_q569#=~ zjM9(DJ~ya`aIEISHWG`unv3X1!5wlTBq@f4d=%ngdwo;r+d@*|ORCeJC3f+ZJ1gSs(_nyp!^%eN_S)oVmLe>fiu-q59 zq(ar1abNtZ&eWhtW;~D5pKS&Z^26C)6EB#S+ISvIB?^^*FDVFr6&%xNCXra_GX#YQ zWbgv3p7pvu1dss)Qcc?u*IAy=-L{(K4N}ENMy-tmDFiEoDFrVzEFL%dqhCFN+t#t8 z&lP=P>>TE!KMF?p&_gQ1gl?3zqKoT-S zeINl@)7cb)nSz-92P7E&1)kD8D8xgL;NeH3zdcBXoW9 z8}CgghdBoM2L}*bh@Y=W#s%t}8|_VJhBbK$s_@uASD3riZ^lK*$7o;p&p0)h$%kIR z^<|;JqClsUG~=rg=(NW#fsi0bGK7RdBC%6}2V|ns5xzHcvZo&n$%an&BpO?ZZ6h%|vGO9u{O1`k3<+jnsMguRv7KEN47ZozOKrrWpC%I4%SA*bRSB3RrNhADN zkY6+tk_1UbQ5Op}8S}2bGDx|kBZ!5965(7;MU(whz=n_gYE)$I$4<8vN zt)`E5g=~v#dOAamhv!`gk>{+irv}4N^So*|^q(;VvCy=wPW#kqsNI-i>@IE1pnW0AG$RLD3FoqBHGuHbUKVT2U z*)gG?6rIUACL|Us8tTKWv6?UmvA$Lc(a<}+K3h&hCe9D^1-ZC=Y$)A14q+G_OgE9% zkH$I5b>Me5WI{+b?iw8m6S%hx4@P)9;f(|R=?>x#O^&7e$1@4J3-V#vEkgsL36UhI zk=WkMyl81ln;V-0+ellMNd?3Qf*|xjo(T(N1@fVjJ^Q)9Ii0RNl}kYMiDA67)x)_O z3>^+yCc)5O#wO;K@qLsz2lXFP{9}ZpJ&1;6yk|b|W(fmf=XD55%$;tCf}}(9w37GG z4)S4^Oc)CDi^ultn2+(qM_U3S`LOL=f}sx$^NY_6%|mOhwm7xa(PKEYG~YQznSN%< zJdt3`&KKZ(@mmvPwfgo1;c)JNm^;;vFMqTdnwDI+)Wanog=7S=Ak=hiAr_*(LQ6gK z43eOa3{BWJAy_pch&3p%A%yt{c>X-jQ6Z18#3dg7#a1wsP!xg@T8k#Gv6*??%DfB` zz&$~*^lx@J*;5-qy0@GARuK(h{N-uB<7x#)F8hK|2oJ#-!CPTFd^h-qo<4OJ=U;Q< z=1WLyKU4|twpTD0`j}7{S2)*S#d5V1OOc}#)GHxf5)njWMTT|sabdjz1$^u1W1~3Q zGi|*kOZ3xG8)PU8^qC-qMuzi~XnB5~o97e+CC)8tU-ZdQ&T;PX)XtRqQG9e{f|1K| zU%5Z~_C9$%Q7-wQToO~rhv!l}bsGw`6E!u+I`zCOC2i&Ya_)w){b;D+kWd7e zzq9dcGWn2b%;!5($i@P`N1@%|y%5@p8hu_!C;;z`Fkf2{4hcgh8JAIr#oV;SBRl4+ zPYvLT8AyhtLQTd}|0qKy)NJUSPja!6P_iNEa4C&{m=!+5JGjEBnho;&J3ZOPOA#n6 zmnB9L3WaWoM*Pj-hGde#07o!ZP*(^qUaVh6BuIw-I9w!GAxT_RJ2hOp^)RtJiq|Te~>cikZ35}$C9i{$Wfq?JlI!|n<^bdLxPBq z?{hLwCw+R_E(9cN7aG&LUW9*%L?17z?uO84Z0K*U&=Q2B5DY_?Xt@ML&*Q@L@SMuI zITpq}o=fo{ERt58{Yg|DOO7#}@$Jw9I3zEGj~w_TuOS0sv&<$V6Av zSF0hpI024NX0PA-hY<`QBm0Ls(n^T4e|{CvgmDRmJ_>YnrZYa5P${6P#n>--810U5 zcP|2bAA-klS2{C>5CxGCI_8sP97RymDW7R^0#YIAP@^G?pBU;6jmAad*F!MQgENo} zH5=&)TT#})%t|LB$Acdp3 z2*C-G;h)(eIK>)QLWL*Eg(!1N!XdGUc_nFJJO|MLI=VE!!1C~E!#oqtb2W#~yI2-k z5sgAH3?(8#YB=Ar9L4j`&IPk3L!wcf_o>B@Tug#di17%-!?apCiN*}?Zb`CaSqFV< zARvzC^_@ItAi>bNq{O*s=G4kLb`L|MB^rl_OE7jrF!T(r_9B)~F$Q$fDD+b8SaeC9 z^Mj1(f$SyRrA6lkdecoK1K}C`F385+5DFdm>9|j)eLC?Il8!qe z8V^j2Kq^Ml1K@VjcYyoJGe4G6K}sYd5)hsD9qsIjrB1tB8S6lzp$20EL__R_Xk<^` z?Xi67xXY{hm~)Va?0kKrlWG4Pj6Z$vXw14g;8{G(*vFt`cv*eMM3>1_<{tCbf$7%s|GFOCZ zq2N4QM%w-}aj29wdS!lE*7_>FCZ6O|W>y2mr$v_C>o9+9i$~1#XES`d}Kl*xd=r1GO4hhgko-9jo@2U zh(>q!`12GqUy~!}vn-)J}v`zCa-uYBcInJ+gvf zNlP#!8dppq{JF2fP{OgXhnKV-mLU}`J26xkbh(V03bh$!*_48-0<2~JA$RGNp-ZLm z2bYJ+O^{S5I2WykLVgjz)m|uMk3&xM@*Vp!APDZMD4GfDt9dXi8V=hOQejv~gv7-* zp~0y7GS4Mg3jebtgY%F;#GjXnY)F7&Qw}dkUz7^UAuLljlZJ)SS6Rkne$iaG55xY< z57NXv2(3f~&nMc`Pa#&BT<}5gIw`YWXh4Vy|Bx!+xKzqLAO0y)xKXR2P$UV7B~sK= zsPW$Wj3yA~^|CEt@jQxGZ`0PdOwGkw1bLyCZ(%%paIcm$K{AT>@6dGc%=PGP*(x<4 zz-J!&K&t2MQY}eLIk%CfnymSfV9;?QZBt*g?(Ks;(v4C8t**MVKS&4xkiFg6Yq)}6L3r_|k5!FaC!}FVCjt@J4qPTBx!B|~80#QRuB-$~$;N8JWwcwu z%Rw!MfdEA;e>UdHsY@e zlA(9+_|saEidZJ4CLu@!9~DscL(KI;te`Hr2(19{&#Oy7Vs8b<%^Tx*u~tG;`8zAD zU$k!VCzf>iL+hL~9eb{*Yq{e)mPR>;D^hK|Xz+X&m=0p$T(=zbRpdekezAXz_^ft@ zV@NE_^PJ4$|HqtjhR@6#JB-C8E465CrL2@nKHhJ@oZ=k2mDiG^Oy4|MTfVg40T?>$hH;hw759|XWT z>pfcO(!*Nj%|hP25Qbjnjmx2oyJV_sKJRVf=IIgKrBiBvuSg6TxZWR(Qw22=f^Gb4C$cA&qIU>23OU#2%RCA_~ zZs&<4Bed+yliAIx{-{Inl4ST}(bWqMESZvkDA=m8C`+aC{)!w| z@D@Qb5Wcgpo&U-!j0**1NrHK5J<2kmj*cw2E9m+sT_PhHagTz6wIoA9U2oq0-B&P= z{Tm4BBL4JqJddGJUkJo12?V4<5}{_pG6i`x7A~Q(PUP#14>DrD#9$f6kuXSbyhe#e zcQ@}O&zp36b-rGwdop651w^1|O$ynteIXXs_1<`mk_xph!gI^}W!&>j5F`f@mTQ7I z*nc4(E}4>Gm>vTx01CP}rQJOaZfy3<-r$*bl;h0IElCh3k^e zc}!IDa=n}Gn5QlMcFXeS@@wLpghGuP1D}cYim;;qqlO}T6wk+Y`IKb}JGt+L5DJ9YftIu$ z^01~N8IltTPub7mxlcnjRt33eh-YfwKI5ew2&MF)2CKA_5P7Z>j0@|yj7snBk_Gox zNE{@iOTi|HhR2q4NHWx*1c|k8pmyURq~Y`ug!1X0&{#+?TuLP|as0V_&w7#;_iXHe zc({isHikq^H$uxzdc^jxy~4F*BQzJZDeJ~vFK+1H{`mV3 z3Q_QnswBg_AO*w~h!l?0V3Z|NMQ|#b!SWZ@K7y<;FH4yS;i;LhGauh;a)ijMuGb@ z)NJIXfHk4P*gepm_JXqXZwq5x?Z)CJ+JoiI^=VyuQ)o2yFs3)OBN%Ieim@Te(y6^Y z2=0v4wQ95&D{8*V7~Reok{BO{OlYV;58>hrgyP~ze-I4eJ`FV+ZVEqwfPNG~{g%;z z^w^T|^aOZ#dMq>-YAr6%*8Lp9>T>j*SZeji;^U~#15)CyR5{ypfO;fe^LP#bg8xjxqG`SxmoNfWN8KUfS zlANo>kZd^DoOjL}$Eai5`A`tV-g!t_%oR`r7DDLNvdh!r@+w*n^=~ zqFOajgMe1Zh5Il}8;T$t2z3$-Nk`t3ku?~SiqK+!*xaokXkCQC;-b);;rmc6 zhnk*NSXc1R$2TsyPz$1fFA)gRGM=>|5)S+FSOamMj0*&Ak2zGGzl2FrQkH{xo@zBb z#~?nGTV~zRia<<+=b%PKf+Hyj4F&|mJ|r*RKjAUsIP~d#QG=k+FT6)SgHqpTRhCYv zaVexhBH{Bf-O^GK1M}#kkOT7yIdMD))A7t8lrF83pm==yki3-r7amV?VIQHraEv+D z99!=7A+OYzNJuh-donUdRqtOkdWQfaeaFLQgHyG zY!^bC!kVF*ztuuW927`gE~N&-zoC+d0|<1I55tHnLXg@D$%KSM0Z8Gez-1f~i(UjBQLNj{wP@2H z;Kj|$$iK8L724Ez@L~#+v6T7uR3S(x?1=K0RiQ}hH~v+XRA>dqzpOzd41vOrP!Mvn z^eou`{)LrX#2;BT8NjyApQ4#4WFngc%*3OtGZ)q=<)QWP*c?wnAz84@HbRS3TCpnq zI*)}!qtuoBs3~#Nw;D(53N;o5k`901IL>|NI@ZUS50Z>7h*vilhDa2PQxXoX0ZK3i zYZpSCB^k9bem6lX)XojpAs|>*&%B~ca^e1sHEqltAko;$I9;h_sg{Pc5wfu<#%^0I zm(%*xx>n|wfRs9Bk2BWYV|2W~E1etaO{WKYf@C-j-IH(-65-yAqrF{Wc}lo+N{dW} z5{{ck210XjmNGY6?`&-)WIiFpyD>W~Q6bn%4kQp45%eV;l7y28`{Eo#!wuhV)Rs(0 zF0>4#cEb9XAP8zaE^1*4m@kpAzIBh#pX5RdR4}o<}c@M?}^F*Q{+yw4ibG|sABpI>%iTG0H*)oWm^G+;*;G6H9 zl86|VB~yibsKszTN!BG9rYHEoOY~cqLoruC%qw7CfpbjDZSH9bD{PcI*GwCaWl`j3 z4PYMIYS@C%+pZd~&LzvryeZ^jF40&}nb|D+2>t&0opl-VeDdc3jjBj4BpMP5H+u)M zK;Ux2xBD(66J_(aFwbRDMVnz*h(!S5Z`M)}`DOW3Arr!KiN@^yjUXO;8xc5X|DZ!a zg!N1pf>8uy1z82vl5acH0|>}vnUwX)CUFI7H&q9TfCMPytFiE}y&I?1DkyNrMs3O^ zAqw-hQ}ZEtuw3FGv9O;)S|kdRkZ3<9a$D<2GVDXxZ)iy%8({^jmv?p5hv#nlX-I?w zMS`J*#q*S4sO7MZ8VC2K6fK8DBghu_!2XPTT*-{b^xhPLW}UcqkcR;GtdI)JB?W4f z%F;D85t0K*fg88gL|8}i;rYZfsQR(4<)yw_h!#kL^-Gx+p(F*?DP%+f5lgY$_W^=j zi27VtWKwaNOxRDZm&rrfhcRDBe5n&{8H2Vh7N;Z>xenhY!mLQYrK1@t(N6gent@ zurO5-4azStxfk`N(DP+Q@$DErNQWr4qt3N;GG?O%eCwF?Z$ zC}W~gZavA9f`14hKr&FY9eMfHHPJSfR#0EkV88YeWQx#y1rY@wg_0mNguax8q@-vl zgv%`y{JsBWgLn`OgcgN;@3YI+rg=_k5xn0X$Nv2=NF*}J;94Y798c0g^+?6(TAfzLtX&Th!Ca!7MJm_W!$tKENZX($@0%CnTq{PkQ?$tOx*d3Y-iHPQ6 z)h4LTkQ}(qeN8icwzohy+(+St?zXfK@^P3p?$t2vA7q6*iG<6ZBqv&_DjEv46%rMN zAqj+nk9`}uhTgogu{+k+$KPq{5U#HFUnunW_f%^*{z-NHx57~`0*?g4{TL&>P=Z+S z;uy3Z>9SO#ShnfnC8K2<*MOUzyXjQ2(SRT%ktjk=7Ic`Kh{u2zCh3okYE zTs9@4P{2_jQm~N-#5(e7IaH7i@(cMW1i-nV(C-{ALQ$E!j^~)e)HBbeR%$^MmaON` zf;g6f6RbGU%ZQnyYX8s zhVN%J7|SHdzMF}g9)LjPa|UKMM|Yw1)*LiG$jS3&8kENQ`?h*48ur zYk5aCLNqvEu^!^E5~8q9ZAEKK5Du40WfRb?vzxtLI<=BI5(-I%^KDu!#6n1e{xO(0 zrX>@ahgM6d*3kKAI0aFd=6*{uV#yTqNy0w`oR2P>l4M9Q>aWQpqG&YQm@9=;m{&G@ zOXfw)JMtVSYB549$h?tQ2nol$s}Pi`d6SJ0Fm8c!t&m{Hu38Jnvs#Qop36@#=Zrtq zoG;fgZ{}UY++m(bEF>FYt&uX9QN_|^gs4I&LW2PeB@?mVVh+hLT{eE3Cvi}tQExj0 zI7vin6W`B@Ot_q-kPnwesmXBJl%cRZghikL8d?ru+ak;=AQwSc;aI^omQtzZATEIj zl7Ud%gMe*)_g)lXS>b=6(u^pmEBF@;LLnRq;tKcXt0i#RR9X5YDUiI_uVkPQ3Byc0 z@+Rt1-#rhKgk{T_&r5SZbBW3*1jLQ!ajpvc^c{r8^MQPfK_1*cp$5XXp40T=y3kq( zk5!g-mE(=j-fQ*Vc`qaY-kYL@@V>>lOGrSR3y3`^TuTrbh>80_>_c*#<>*euBKU=kxX$BKBQytRN|n3hP+jL!ah{HiF5KG^o{(U`QAwn-a~U z`HV(Dv0utJeif9OzNJV?gNyo--L0oH85(!P> zYNg6PO$!Nyy<}PEhWR^93ZY4+f9@!ge|Q|#->h$ z8%V{00R(->#Id2SbY`?Sog2&0#OXvH3U)gY;$p*gOWv&QUt@`gq(ff@k`)Pt=58euVVfV}MNNi(poPcL zJgMys*8~4nD@>}T7+u6OcG-qP5HAG<9f^hlk_5xQs{S<<3O!|cMuB7^gqceCQP44+ zg&asNFChP<7Q6km2urhnT@_|3#O7~ac41ixxYS6&MPjd~du+=j7moFq+l0PLO*>}&(c^p8P2X<*b_tbQVl~XukZAYKP53^5Nc2<3 z{VOgnbN_}UV;SVSm}yp{5oT;96<{kQ+I>lr4YffeBp8lsmr6-6W(b$+JA-m9P)U|u z`sbb^iE`{Of?Q}7&A8e*$KNh+7&3fvpeM8&q2YjZ9A*sfWt?j2bps?r0bSCecH;ts z;{0H5x^;9Q-8G)AOx-&%9M-5TQ^T;cwJky|Je^d#5t@zeAO&09e?h3mqHG?Qkc0*U za&hBeCK-~L&~nh1`z|!GYhP+e?AN^)+awf_1WiS+tZxW%p&47XFK+DicrKp`)4ZJj zKFE^$q9hjM`VOhB%bE*`19Q;OdE~Mu=g%_IE;)0)$Nr~^T$nH1&@GARrEWiS#<}LQ zL^X)cLCYlW5(){r^Tv7PJkuYB^GmIUb5N~fA^Xm~%f!NVjCIMw9AaPQj#@zX2xWr{ z%the56tQfP@$XzKbH}k<=1$Sr$GlNffuMA45Df${@?1g{hE+gp{Pz3m_u8L-5(@<; z|IpHQu69F$QAkGF;2op_;cYIO5Y}2G7{Db`@i!X8@)!ih@R5MP7+MU81VW{L7!(Q> z4ue=oMi62ZWL-j|W~2DcP*7GFR)|#?mPizBMF_Q(P@PG}bx}Y2yQl-jwFym4*T#L1dqtl?E=WthBIFrKBCH?F-v~=z zv5}j2Xfo79)F@^@U`jJbTdwn#q#@SYN2Muw8+h(DR1xD|3I2Js`Odp*3M# zicB!FwnEsK#KL^7OPMy`{@l+Y(I~`1lee}Nv00osBVvCBuv`L>wH5Xu0m#}7!@S{J zGGreTlFNjmpb!l$PR(uxCtk|R(y2@)uB(Vf_NyVeP|IN*5!R=8Z{_7v88yfUSEzQE zWC;KK`r!*_ZNNXw#TlF`{UHQq|D5+A#AXL^^FxqSI1Dnu2UFoX|8>s@!MGB%{bL_% z{zVsHrGRl}s0M5p5_F5)Ip$UkHSdkc5ROZfth8SLO3U%ib0)jKcT*~B>@T|zO3V= z4GIw`8lqUnuZX=8t&Q1T95^CEVUEv>j=wZ zT!+_a+;)-}H7SxF_h+b0v0t6`ZGn^s4GlNzMnj_E64oBl#l)?qZJh(|-*A71W4`RwP>bRCUDweV z=50;8Cu12zS<}rv$1$}Xjm#a0#u~`8nmU)xx!K?SMp{if$hedoyM$^lYBOAF75gpvd!xT%NlKEj8IrS0l0!cpLoLci z^4#RT8Is{rD${CQBp4;_=53u|T3<+(B=atXa!-bu3msL8yi_XBt5N390CP%6D*OrH zTvU_cUMK5F@P!5y)EG+UCFyDj)fT!B!?a5eU2+&cFHAFUg2>NFi_jpNhcMvWa*hc} zhK?Q=Fn63sk`xJsOAR9*NHQF6Wgk>5O(gU?Q07z_--XbZ`B3IgnLnYqkT4L25f$nf zk2Hdl-)dnz@5!Jpn1_IMoquu()nrIC!ciab`D#K4gJdAM8P45{;SwoHMp-H~tEoWP zQ*%*>MIj%NhhQocG!;fgkO;z9wxh60ST+#5%%-JJ@uwX@+j7y1AYYa~ zxg<&fIRyR?_A}vdpMpYjY`mu2Kl_#s4k}FZEw0)q+`Gra`h~b;Q@D9=$Mh8A4WZv- zS;sbm)K}OKza5;L#~&HVWuBXP3h5FHH5bv|efL@TT)d}cX_fhE9EA7Z<9Q6@;SAAdQ;|Cf zq4(V9sIadCM4y$K2=gS75|+?jNH$1I0Lrtk^Z3#Uhj> z!zD+O4C~s~KHA7H1flGKP$>79wzGZ^70b!sk`&Y4W3@&K?m}&Z_q05_0D_5i zEm!zg<6*l(hCH8GU(WS-eIENV$?%-G|McVY4b!y{3YSVLC|T|@CrLtpa+hpLPW1fk z=5O;PCWV}+0dc96?Iam$I~+q27W)Xz2=&yCNKh;vMyT=}W`#2DRUsK}01q$p99Pop zzKne%?LjbBLq1kOpv`kLxK8_oOQ>AKZkbC-wm?GEWE>vpie*#!$=IhhLv05HBhbM$ zv?F*xI@~lHo5BfqK|IuOxM#yP?h0!P_p6AzBxzksV~`I?h6F*YJ!%)U;^R^(1v&E+ z*j!E}(NI`(nTmp3w(yfJMVXe22(3?PElM-Ak_i8#D$Im)Fvx@gj%1@a*>ml;e_7RB zNG$pnKtL;k;h$HXf@Pci%uUk%iB;%vUBB9k*nsNZ48lS-+>bHW>Ww6$XfynqYAE68 zpxi&Dg=ECCj1YL3L%hHWxe#-S#k?!8402(-K*2_mVOWTULQo+X)-m5PZGJ%}8T3J! zZLJ&c15oC)D8iHTwS=}00?xZ3&sjbmRk_EX>x;v4vk&V9(V(tB5sa6)tcF8}m4?nE z-@UOP4yeh{J9sB$dcs%3p@z(8mxKBf(v6A>Qh=)r74>GoQLpJmVE=hKukyTvB zH}_~<8174F2-Rqu8SG6*As<>{3dfU%9qnPM$)!=6ye(eC_mHpuiH#5omo2#*N`YUC zPcDl((8Niso&M)Ux5J7(eP$ryjY6o353!$*wFDqWFXCzgBn@gaBovt#aE=_q{)B|cOx#!QzxOjpon(%*^}Kh5WR!bv9n&61 zNGhxwnkmAfZ4%Z1KS9906>2Orfh!p)%bSb`$?*AB#M3hOX{h;-T&P_rBtw{Qd8rf2 z_#h1)-@Xa~F)Ux_ zjEth$D4Gr-(I^|j!&^A>xsZ*5xkSUTET38gVl#LJ^XHNdQAkF?EXi=~x_`g)_U(sD zGNFK}@Tq{RVClzCAyAdRA4G*c>&0Jbpk_lM*1ztCenb^?g(N`%-o7j|&vscWfpDUr zi+~-Zf;z^9>>(&T~)@QLr)e1#DaIZ_!977%7ZMP)c5|!*w8J zNDw3g-ed2(^%YKvmZPlS&K7HYcHE!p`1Ysvp^!f7DAf2IBs2>6!ee{xqC6{~lfr%8 z-;tlWq)-inB*H#?juIC8Hh;R^JsP}xAdp_8`D!WLXznI%_xGql2~ts!9s818C^)%9 zO2S}T;^bZnwHvn8T&~CS8WhBAYhP+P+^gY6a4l15L29jeec4KymeVxNTzm>_qOUEK zZSJ8@gt4X6cgd6*3`vC>zFlVGauYQfGZG7+V>81Ylu0gJ4&@S)jgkk-^r);EQ1@s^ zG?q8j2gz{btV^bLcKbKDJ#A6T0aKYGi24O7gsDvL;v>8QE zQjiaVfj|`XLg>jP!~9rEMSX=Ig`h$JgmDRnp<0ajypSVrj*w*AXd`S_l^YN3CUc{Z z59`_{NCfl6{1B?>JC|ooM)~;=-tVas^E~E0?+jk({!DOw`xn{y?AUgRRF7?FA0$I< z1#?w$;im5(6y&MR5PAXEm&OormrF@9#vvPS{MHwYo50=hEwn=AMsdrmqjsY#0o=q` zcLTWNRw5x59DkUX4A3j#tO!PR6l>Rs#!BA@vP9Y^0l^+Q;8v4{w zi{Vl!mo7;-gu?!D1b;V!tKo* zBsPB|>=s`d3eBeH5|TnP6z+Rnic}E|iG_l(0=Dh^)31>2pM3>yH5NjFU%}h93iw5U zcVo3gMM7bH>q%0CeMTL%3YJqQc~Ki7IWa6`qwK%%T&yE0krbGgG?Zh;QYzY*mT(9O ziTR#~b-gaNEV&Keh>_ZtX)W?HrA$V=U(rA37j3zRabF-J9>?RG_8HXryeg96{q=r& zzlw&!=TJz6_q^1L=TkicVcca=5{L5a%95$rr^B&=Tu3q`7sMqxmI?EM7+B7jiSYpz zkSEC~L}PwMGD=^Pg|eJ4G$25dVZQy9Fo=n1#(dd(QHX|1p|mPBtI1&e&)w)PBp+pS zcPY!8zBA#FSV%Okrf=htioA3xTb?RJ<8q$Mo=oR*!=mBH%c8Qm+nk??Mvx2Qp~>L= zQSdU7!TZXvq$L_xXn9BIq|Buzez-Iz>Bmmt)eoFd&F{x8%q;Q|jK6OcsVGo5RS;DG zRER8p%Ox72ksz+X>Ywr1zw^X}+6?y>lzj~LrNAvYa6gAaule>PX;6SybKxG2APRF} znJ+a-fy<{91ajRRDoiU_7fpqv#5~It@P&B_>xFQYwDse9xIf+p1qX!?iH6r!HcET` z=J^sXLP}f@D8xxY#22?^5{j~f%3~I*G~Q!15NZr04W2`g2SU%mdngHvr4|*u?+Wq? z@WSU2*Fk@lxe+@YC|3J!3ia;S#bbD_yvp|(O(x^4pBOem4?udU=n=YKng+X7oCv)z>BgZ>O9BcZ{d zACJAFBadH~{JC^WqOp?D{Y7Dpnei>T*fZ3g_6;MH479~QBrQ?t^IP?(P@u zv6kJm8jgd*ong{eUm0%xUZ*uF2*nZdjtzH*XK?pu_!n3qO>&`mP_-9Z5aQhUZ78Ae z&!*Z5E&6QMglG^E2o0h6**aA_1SBs>kua=>V7Tle_E!)uh|`(hRSmxv3ONc$2s&jAxEO*^gm5FNfM_W6h#p=Vl8jFB{d*c#rKsyBZ%Kv1 zPx+e~7NrUnkVjblmbxsXtp9cyRk0`~u_&8O{rj)LqmUDSVR>;Dp(nt+QP2r3LS@h2 zw1i%ivJixP7uX-jb#i+{iG(EKa-Ay9oOJo5?~a(ql}36xircpQxXj4mifMqo!@Gk9pmoN7;|Y9VKLUBbwJLzqLS;;YMVMMvQMr^g4|lR9ZTr zd0Y2sxG%$HeU49;^{I7}ROkWxSYP%6F6mH{aU7f->W$6e`q7YNWX(luIszfNb!;%* zIy#tc9PSSdhvdQKNs@x>1g|qMrHU|XG9(TX3$+kxH6$LExy&j|*+M=fC1rEB8WE3a zx#U8vhwW^yCvW>I9=x@fwGToh*;x+3SW;UT9=>(Fr&h*%$%lp()M~g?s_chSlOZG- z5_p#!x*Wm=_X<5q9a_5@!FoSO&`GwrOL@_jp#I-op;Jyps zybQ;CwN@QV~SmI;2CpVOW&~>1T`z$8gbf6i7nKJTi12 zM(o9KE;05qXvZ9oJOiCyeNDCA~-4L!28-K@LlOKP!GwF~R6oMdmC?v$c?L}iCTrMP`FwZjc z6uvVu>9E|s6!go|DT#z-3hxpIh5Fb_K^-*;){zKUKQ?&B-if@N$z@NTmu0cH0$Apr z2?;bU{lP~zZud#<6ifxwuK zJleUeDzqG2hv(;g^qzPeuibplFNhoWvS^09cM^&cN)#04)eu;2y3{o^-+J~VfiZ5L z&n^H-h<0-jelHvYJa_BobJJ98HI5iFYC^KM3%O7tB$<#n00~3ZJX{V#>mfO=%0-DA zN*=5$c`17|3K5BAQ9zQBmqTSp9t_>=U0}K_kCIqi&X)*OWy~+jizcHWlZH%2N||{@ zV{u(YDCRDqDq4*kW-UiqLY1`{8O4&+++|WhJa{h!$xyZK5);?>N+N<>)aMUc{+K~L z5SoR5*y3Xtf@l_|6?pv^N+A6EtU$RGfp3zJpTe<1Zx927-1u8ZT)|ZVRspmK!~XGh zv#@OxW@Bkoe9ZHbDFt|iU;$O>hFBBefettOzaj@L;RH&f;_`6AY{+pS} zOd&WSfRNT)u=i8X+}>O7rJL|AvyS(({MGj!#@+}7?y>=U9ie%adtUxEm1JnOsrWhZ z8G3A=U(r~pA+RjSqwP430+9PL@?ML}q|fKK6_T)Pln*(CU_Hmxai9A#JeJSerBxCL zmrF?~cIu^j5@BSzJDphElMYRGMIY|xaNMZLSOZzns#MluWIrCBo98aMn4#`wj-_@a z_G{2iZCnrs%Ji9`RWyl)LYM?YkKkt(_om|$-D&>_g3JIyyc=REUxSdQK<4tO1DduS z?FtK1=cf^j7Wb!1O9s-JiQaT@h<3egS&IQNDUQwDtD#9yiN{(5GYQ02gflf2dQz5f zNB|0vaF2%N)-z9{u@(~G`giwe96^Y4UxrJmw#2fO=J-RZ=Avxm_Rq3T)3&?33PI1~ z>;l$z)45BwBpLoi)&GU$#-&^eHfk*j!H7-Yq5c*^Ph1 zg_e$DX%uCl(YTH=A4G$3%nM1+-C?VL5g*a7 z-}4Ux`*a=`f>GvsnWL7)^-xxpN0qVyiH38_cVONtRU7lI?9a%{rVviZ)4Z+PIf=AO z0QGC631|Hrt?6tE>r)a9txT!e(7M!G2*&biZ-#p^rknD{Z_U_Bm?ax4T9_;3x%pdy zv6->0cEhopNpoWm<@2Mx>4u5^bYZM7e7`tWHBjJqmT@}QAt2zX%*x`!f+n)A>lAjLLq5T zgCPMiUy>jxG2b?~3=f2bs!K!tVG_42i&AT$wn7pk(U7=!O!tdOaNKw<^zk7nammz* z`i3wKtp>y6grhyunt>i?9;v}_KZbcOsnXN8nhp1AIF}?Lk`4)cn5AVdNf?}W&PlDi zN&M9!s@dqHPTO^SGx$hL>?Ij$6E(7+;RW|cNlf&UVV;D-d8a1Bxfjb7X(!n?T}X!H zLhXgb-X)5KcsR#IAs^1AFl7szM~><6vd=h_Bs>1g94c1WoO>~k7~|!KU6_yOyBv;h zNe7wm&n$hay)dn%DK#4AOFps|gSm_VHfz#WflXn|KgNWyDZC;VbKyqtuqf5awId+L zX7Jg48eAWtf4N%`HbX-Jq0nS%Uk~3hgl9K;OA7p(p8tSnA=Wy={6Zo^i$Oey1A=sJ zN1xWAjf6x2Ulal&*--Fzsgp~UiY2G4O+coQ7%0FKhE*qoe3vsx9^Blme+>O(=y1tl{R`Bx1H9gY~yv6rAuDF=i~kM9+@X$kU+#UAgvatI+Gfp!B*u0gKa&xCY80Ot z!nCBq z7xT;hi)=-za?aO~eP&2H3fZ_~6C`6LAEjwNVpCuVAGT$rS3@w?@sV0dxRj6EH2Gq2 zgb1SupF^C?5Ff!|FoiI=oDbki1jK2C%L&qB)EnU=-OopL01Wft9z&=fr%X&K@FF-a z@dHaZ!Er`uGfbO71!yor{YmPLswJS0E^cTi=;o!>OL~w#hdc&#dq|rvdaAI47hWqj zTD0*%Y-4@T%l>j3`{l(!op#_cdi}7|r|^8dmN@S@=jU}Cx(*_fWT=en;qQ zlJi-@{aFGTT!nx#1F6`E5WXI)CcQ$TgtB;koc}rmnXQn3b(Br{eCT5o_)M45&kTb3 z2HWx+m(k9=<($V#p3w@Q5$9o>G4A^W&tyHv+XZ>p-QP^S0fDAIt)&l->$y30)<7~g zcGjn@5(fytKFGt7k+yUkVsZq+v2Ot40h#c;HgW7t5R!vKt?A^L%a>Z>7^~=S4Mbui z$FSZ3`ZzR%aLuu|LMXO?Z3taEfZ;lXt<{na+N|e%4seW9qX;Zu9|GAPup0qwdsh>} zKP05R5kb8<9U%WOr{&@urg ziHqznBmaRN?4jHb$CZG2P6RQUvnu` zJ$*D1wouRg6lHm%1i^IKV<9@|)8$a21;moZAP_ZajQJK0_`ne8^*EIK9vWdjXn zLM{t*ztIfiem!G&9pqZF>>i_Klr4i$ENAR*cZ@@x*D=1AH1Tc@pBc^zgl5Rc9<5I? zjwKapF0?eY1#FdMFqSl4Al5=a%s)2Zc<)KaCBcl*ec(V3qyS>Ot<7=G_$BW|e^)xC zH7dx)O%RRS#u56#&7=M4`k~%*cAzJnaw9kb{^`E1boclmq+lSOgK!*_e5jd#6dZ>H zoTc8akcNwpfYa1J28j@s9Va{l8QAXr371y^P1at3Slm3+m(D;?^uZw^Iat-(+{AkV zqOljEVO{e*)=AH$7s5e!1ft_P>}-WRQP<^Gn;{o2!7_g%WPcf?U>X9k43e=@Z6Wi` zjpFMFSCC#T!4L5Mb&~`vFoNJxTpB}<~=9Y6%SU$!_ zeLVJTsEI^Sa(+@rFZ>;}amkh1$Uf$pbFfkJz#M8KbRUOH8l9_#rY#RR2MOyW7|x#x z^~@E=slINUm(INm>PZ-!M+i1CkC+3(dEyVhmI{(|mn3JB&wK@HH{vHCf>WJDLxKTn z5V%Y?AaFG!a5W-~h1uI69<(D~ub`*ErvL|PDQiUVYej(TaA_1_vwy%VG$7=OW(3bx zgvoXU$PNV2P6W?h1lvBzhQcTDZpcTM1Omac6ZDWbf-pLWfZT(S+9|<6*zKl{^#{lw z@h?6?>i`04Km8b5U-UyTdLSUS?W6uM!tm4>-(~k-sMSDlA5&PT59<$sQR++#^UbE- z;;QaSh{b9I{?!Wq)Aea7gu=2Z`j~{2EQP$RL%?52*%av!&Sw}RFiyXd9AgPYz;=d{ zE}!C<6TmXV5d`l6&UJuu93-3|e>ulp1sR%_q>#3+QTpxYS_Z%{*Ezr%WYOpArQFBb5=5TUa+|@IET2 z=lx?|E$^l)?%~68bN!-p34(DE_HqN^Es%^m_)y&rZX$jI0_yePJoQc^=$=5(JqC_c zILZg`Bp<{xd?=4meu(sbKG6Fq+ZULZLH;3x)Pvvv_4ZZRL;gNK%KORR2X>Pddx`Jo z!+H?xBE6N5^JYHQo48?y+vsx_?Zpn_+xQr74Or*8w1Jzto|js|M%rzm-A>MFE8#}U zH;})H(D){9_-4{usJD}Tc2(HP4c`TJ(q<27uS@JDz7HHE?sa<)4x3N=-SoGc7xF&B z!_+xR`Dx0%cgIPe-~pZ>Jj!_dz;dSAO#E~UUGM5`P49t3yp!j}Z1OB;y%`{MQmb57Bsu{Fiz=(hFT}-1nCBEJD~bkcZbm4jzRFJcO|FU{gbS z06a+gQSzUp&Lf2PQg$Z-%Uy(b5Z(@MgEZV~UQ1KpcG}!R`OUPyM83F@_zmC!b|Ym}YF7H(6nd^dy)dKF-T+!ZdSXiWk^8 z@nM9WAux!bGlU>B%u8^LIVwh}KSElVU+N81h&I6T3ENoDKFlK&qZP)$6#XrxUcnMU z-crI9%;%MYa}%qH&+v}f$UA2}^KdnF0@PnaxPkJmldw{w}$UDm1JQnW?-m%0lGM{c{KKfo3w^q0v+{d`TUohtH zhe$lk{CZ7iQ+l?mIX%tTeu%t>c;7z=(Rie(EsbiK>%jBG-@v$j8)Nu`jOU+YJincB{AR}KI|<*}-kRP8$q?@*{!0*#k3k+j ziqQVyp3d|!@R9D0z^5P*;#VpAWd!<9LL$B}*q6RC+@HPxk@yG#|1To=e*j_r7r;jm z>_5}rlRih;ryvad+C-ruLZPc5AIIOwmnzV{JB36^0q23Jj)-umlk`^n#GRmi~zB)}YPbR@cg(>o# z4~xNs^M*Xtx<9uJo5QIhr0@XOe(j>ys1cK8rg4hs( z)?kHU%E!o`K(HD|C>uriGA)c-K8zqIMo61yy=erwDKLQ`IEKJyI9Xu|Od~KZZMZfq zM|dn)IR|SHIM*VC28hof_-;gq-O{r#Z9xE@A%BMabqL3X8!6w0fV&gHcn5;|cIt>7 zhP2y;5WAH+!uWQC+uhVZh`=uP65mC=z0}`Fd>`R{Z~%gE1VQ`+gyFb=7@QE~9S3Jd zYtvbT_0tIQr^r8pfPVqO{t`suB0~O2`aaG%9i>lk65;+FZ7x#h0`1P&hoIi6K4dq} z;Rxq;gmVlKKTf-|)Dg!yr$byrDLYJfn6#nwPC>*@a=hc*CvlAWM-bvqa8FKD`A0a0 z=W>E`IXzgzIW0>2A!~aO@ON?VcQ!Jfi65ZeVd@_w+`~N+{GmrW}7kQn0?>Y*YdtH2I{CV9? z*vULB=wPn4Gw<7|*Tx)=kaRow{^aQ79nrz}*}OKw_E*3k8u}zeG7bp_*cpMGWcTc!t{CYX+DCVtXYsg0e%I1oV565$jQgR zFOv5GK8Qch2l4&jecv_Sx0A8f*jo?k-CGb|t-$A{1 zz|`JB{9WMP;Jx7e6oBp399FlzOwM z@~wx^0_~?AVX1F^>BoG89w>iG2=dVXmji)6buteZUQ%g zOW-0T<9b72c%B#1S@O<+(*@+60w;KZ9WOu_GCT&3^3oGW1cHyD>0`VIOWCmkgq(uo z-~>1cPEmH2`ezLhg3gk64qPC85!?VSfm=A&{&-(2ZBCjedd7=%pwgZmY@(NhiMw#&@&NIMymUts* zCf!mY^0-FPz;#1L0;cP^H?Kq;_pr7;{cBBK`oAF(|6@^Y`tQX58)W033IB0XP5L|V z*9&XXUo2ddezJgP$GrN(`3uvJ!H<|*KLkG@@3+Bsh<}~A_0{X_ux34ETp^%+6@ z)6BO|5`LUH_Yv}b34HL{>(U2Fe*pX(>35NS2Y4%Z3wSeg??vX?>%nu(t!Kbf6<$N$ ztHEQ$9{~@72f)3|wY$Mx;0|y*xJ@umZl(NY=L~b`25=EvPx=CL>wJJX^X9yB4x9m} z3lMe+PF6Tk;s{13DjWyL$U82~L%=$TP-R$fa!z;>f$mg=(+F>85%kX2Tnh+|gA2qj z3WUiU5DafbD7>ZNx^yeJ4crdy0Cyr(-i<(cFT(2m0s->@@DTBb5p*AGo1Y#Rt@G0p zgs&#=HN>Ar*nVxtg7i9s>emrI4_*)6P~k=JCh!vFZvk&Zcz#Fs!t|crMd>{V)9)t! zZt~ts_&)G{@B#8ah=BfKNWe!1YSKp#$Uh1`20jic_!aU#0lE03ApS}6KSkY76aOrE zpC$YZd7l;>=hO7}S=xP`I$xmd^Ta<#exPSj`Ygx%OqW=YKEpYR&l3L}`Cp{Y=WS2k zr`juUJth80;I3G#g zCwT^+MYtDV;CX(5@bf&I&+$Az4}MLM{uYAz_YmBFtF1nL8v^hR>V2KEuYqq;{!P-q zLHw&6|7+kI9Pc;4Z-Q@foNs|2Q0Mns>(ZZeG^9Ty{6Qlm)w-PDcc}LR&gBp2`==b| zr_}io^?w)qgk%2u&c^gtT}>I?P3f<}&matcPQ5>){=bJ{{5kl$-j?)FgKgZgZ_^6UF!WNd0&BWdnRg6V4W{U=IUw$7_ml}M(|mQkRw*j!RiWY5qj2BZzJtD5YCWZ zd)1X`&6QWCnX9hiysk=H$lpf!c3;?}x6=1c(tAknWnS(F2f!h4(2#s_l=v}lhWE<( zntAC0?}+o@9P{-Y`RBn!;+HDiz;#>#H<9nVM%>PPzq5MB_?~hXFENMSP`fa_z+8JfbM-xt{P*+z{vc!eL*T=V`41ER5_unnaD0q0 z{>!94%RKlhV_JNL@&08<^%r>ee*yCG6~_D5AsXKRUt;Y1I`|s--=O?AARgZW-vQre zJpUL{{nOr#^pl?U^aqgV-(k#tm$CK(Nb&DOIDXREmj1G*BmGTpCv& z`tKnY{{h1BcMz1nr>^P0fK>c@h`~?6pS9-jC*V&j{H(n_{VjF>n!111#vFz$d>>-) z-MWVK+YpE!HMelSt?3Ua`%z0v`Ud&mZEQ+EB>qG4e*nHmKfeXOP2I24{wocQ>C51Y z;0xgE)cq<1>`P5e>C>ctnfdigkc|(4Uxdtm2(s~B$i+J#5O0M*yoGu765$)ci{SOl zqZcWAi8=QYq+f#n6eQwN$iaimrH2R~VZJ>^y~k<$2=nc3^6qAS-An#`{qyj ze98U|K!Se(Tw;!1qU?IY^UTLn%teX(QRd}Q!Xw}y@qNsvJ!~X)l79pFm%xqSW^gOzcS0cUMc}`0a8bIO_?`4~8};v?{@ujy zC+}g(AA>L$-cOrHAO=qi)}+@A*QBRLYSYtVG>1=7?@8)CMfua{|IF4G46}$ zr|HA8r>Se61nepLvh6eGS9pr_tLgJ`$j0Mb=VRbe@Fe+9aZax$e3W(%(*8b;|1q zBfc4;u&KgEumP+u;Cvj98#(@Z#{62w_bN!n@~f{*%dfc-L7s1#d5r5-%$4QLk)@WC zx17A?=7D7umH@Ty)6|kKl6hR`S7H(^L~!(XcR0K@Ntvpgt~Ukc%2!bY0{v zrEEC@=oIY+C?Dg4YijfF z-vfNyN9b#kKE|m#M4l?69$?r9+_zv|>)Fn*pM2FvEj&zNyqEJGLO`(2D0Mo?>-IWm zKMGkG1947VzvUy;9ko933EGHd-Ve@mO$+zTbEUp@yk^5CUMqDbJ%92BIHvb$7$IVm z<4n-k654n#S5R-7dP9_V^73xyCEm*b7@@AuU^Vw-EytRmU+XL;Zw>cx9mieI@i(>A zMclmAU@i4GwA6swv;!giaGz_dThbxIU7ZbShQ5|@?A0853nX9eE(Wy))z; zr;pw4<=~n(g3TOj8|Aw=x4j(aI0WS+MCBNv=R3ogUd}jQ!Sh&8d>16;a9;~`+NsmV zdDEWxZ~#Jbob++X$*G|Z$~&m%ehJr{x27Y6$NJjRQE+~ka~$spT<`u2$jDwu$PR?I zJqUD1Nt?G10dETe-DcOfgRKZ|+gh8_cI!bd_Crqg0n;;(f#tO|X$bS6R9CwB~`af7s-em2fG=gyB zJ`DF}Ox4#gt{27nZ`Y0Y^5V#t&zy1-s`HPz40=hs2E3UUP9p+J)796c7G6wkyo^+{ zc0zz#iPuxsOuq2~_g%z(3|@3)KSqhW?%Q(rF+@GacsLM4XmJmPYr)+g;o5KaVk~s? zDTp=XRUPwVZ8*sFu1fQnN7ugURp~ll+JLyp!W;@;MZ`O} z<|eMOo^x)cZVzqUkKw+xC9So2{~38>yeF12rnQ;-pH zroStl?e9((27A-J6GQ32so`}0?41D1LGY*ei>K``QFytoc2@q2*l+;M_XD6A+U~nI`*}CdX&lU*PCWwXgJk}wwhxi7{os(ss#tdoqXDlT?!UuPV`7%T}3`Ut> zW6ZfJ>Mo&t33Jc9Za&g2%$Ej8a0~Ow^Z@OgpTeaJt>*I~H(!+f8a>R@F6Lt_a{%4U z!7kvu9cI3c)GUm7+wHuhp9TaA_i4CqBRl?Mu98>FJQ8)zHPQ{tCFiB{wai)P;`}R} zOaCrH=U*M;)%oTeaSxSq%z5V=bAH7>4aU7;J$V6yrUrqq)r5f7R?EDv%V@2kE_v?H z5XM^(?A)i(fIwFZ$q=rScMW{wBCZFauN6VCt%3VQnAg(tPMF8JP}g>@Ly9^=rkowR6yL^RNUJ)|PwxqwFMHB;8YSZxLkq-!|81y}K1y7J$} zT&jhPI5!;g?n!db(?aCcvX{yE;+`d4IhfXxTS26w+&w9LcWUP`#^*6dt_|yNiewe z73&uZOx7FbTnx1W<%Uhm47G?P+`MU8i%wdA(OO1W#2_r@W8LIwzt+`4hL$q4qG3Ac z&yRE0;*=JoJof>w-|OHWC}4O`wAiG-2dzSRzq~IBL*9#GHA(ZV-U9^?%Pq4HVcboi zwsB)>nCA55&H0qNw%5$1=jC~7t;X~4K52bP3slA8lvci0D0m>)FRP&SDXlVXA8Je6 z5x&voAb9m|YnfPq9BBj||`_ST*Y45xD$W60a&nf2^4*0qe zZu*+Ss+8BOr7ErG6wlzR2$xajF*Xe%kdL&bom!|O+{W>DX@LroacW6VI=!?v9jPo( zc}>%h94%RCo$4?oWcL`t41E?exm&yj>Kbn7Z4O@=n)-D7hCs*tnTBAjf^g|iWA`w^ z3im?GRBo!(r-s&gG;=Gq^y*gwVJ0k3b%w*fgCm{UX&*3s3W9NFvNu94Q0cHwZ_0*8 zAs$C`@&{2-nA3WXWp1+7BGqOHiT*Xr*T;q%u(doBmTM4NmLkAuUNp>zBJdfvTnjVd zkAt)@t`}#arJz-i4#Va2snsAoK5JEI6(nONFt1pYa`Wgo{Y}w!yrDL%Miq-vLUXm6 z#&n%!n5*Sw;-*neXV&r3sfS=>JN)F?FZa*{m6=4ryRdDM7#`c|;E ztb+5>Io`UE;}B}mCam4?a&z2k2`)C1l5e_LlrkP>G<``D*Yb^iF|OqWel_IcY6PNd znO9+1igGui3hQ1&nSIzkHiG*SCJd`NguX|@lr=AHL!l{KEz}K!S?6q#&3e`sn%^F3 zX53NUL%s5j@|_db+dz2_I+wi%&i6u+3Q=+1JLjC^z9WQYZM8O~#kF|vFm{C&)$|Rs zp(jH#%^MlNI~c!?+ry)bMaJz`@+2Z!o!UbDDEV4dvuulG0}>*%rdFIz?(Auc@v7A+ z9rsN_N;Mkb=J3soVST|IALcXcG7k+Bts{b8>qhxg0Y>v zP1MmB%{s`!HqstPPv*vT(6^B+AdbMR9|)~Bg*jTnfiVA?El}xGBAn%c5rlJ{+7;(`*3(Lpun+5MeM;*| z&COgNLbR5v!q>zgf;A*#jDEDBWF4(p+1BGm{~X)2R-UG(vo)&4U|MH;ReI&h#;{Da zW_43qwiJ1fHhpm&3$hg{%9kwVyFQt%L3xdyr+wPL7O2eE^sSb)bfBm8CM`EK9 z=G3f7+{^W>lYMO17juF#L(Sl3kKoK(=Fwc!wu|`Q)Yf?<$!2Zs`~P&(cP;OXYj`hQ%{$;4-b1Fd>Dz2^N@(uZ{NgL)iq(8X^a?vv z&qs`K9Rk*JNXLry4284smjSeFq8|d|+HRL%bOZn13IFQ(*G?f<6rs78gY|=|K&;Se zsQJ_at+Du_71lE^*JU#CVbvU}`F@DCTA?XdNk^EMCA4laDXU3X1zSzFnpRLKAN_)C zubz)Jb%jEWFH-9&ESslw7)gcw*>^cV&%w6#uYlk+hxu3U4Bvs?BpUWx%nJ8c@H{-e zCUYei!t>C~tpb+$w%6OYJ}@*Is}<%c04dqz8=KYev*`gS)YMS`J;Td#XL?KEk-Tn!CmVm-pwmj2eX z&HF$-$GWCLHGQkOTfKwt9YU~zd~Bzl>D|U59|~lW4u!Ve1MO)q(2s^DZ;y?3M_Tir z`XA8W#-U+|5TWElXMbC}AsUbc35bsT^g|Fr8$!QCVHSp~i)5eQ8$CX{R}hin+vlXsY@Mfi|lj3G4YA=*%)p}?YmBFX5Z zP6#x-L?jamI)(+NB^E+6nGy^wLxt%~(vl1bg`sJMmqIucU=*x_d@v95PYdeDSZ5BC zR)~=VD9A_v6lTJNERYx!l3{sC`$It#Cw%^aDJD0qV_nko%_Eo>dB2F=h9p=@M{<+ffezCjEa z(}wzl*#)uC8@^hP{ft{R9ggeOt;|!#qTcU?W|;K{Bf&T{&>7Iz%Lc}*zFV|Fr3U0A z1mo;*woD~X4Rxn8Lp|Y3;}E3dNM-s~i&Xm4kVr@}^rNB4Tg~0--0ybsHG`|)jhi7T z7l!)6`JZ0JB^jssdqVJ+NN8nE)3X~O3*ktwIg;xAj%~VAbi*Gk(W3aikPF!t!zq~K7r*imz~Fi zmW6p+=9MOx}RltekCJ1~(Nme~zYlc># zSW?mf6qt*UE*UUh1b78%^TS~s{bauymto&wUKW8mgnR{S+C>?mY5UV0uE<1$<5ckx z$`!_qTdv@~c$#nXipI1O7?(ImGOV*=IdY(c1fn4+u^-DanW1k@(Q>VEZJO$>Lhp$L zL&7ouA(A|JZxq6txt9`(C?ns#yng%bBQ!3N^4>;0`WN}S^LcB^H%!`Aq{aIsA+f!l z#;q^e@LBq7JTHA;NEjpznxCz$z5M*cUrP1t4J}jfUo=ZHm@^zJ#s&mK1d*9DPOKOC zjntzLiA`JE{M;YMkPy^TPm<9<9rNds4M|8oFNi=zGP1+J%i(2{wjvXW@bC@!$Rs1@ zhe=!JO+l_(h)0#jcV(7v@U1FDBb%`GeCBcekOV@@Oc#fJ5{!ks6AXi7@D6yn+1qO& z@R$8(2ua3u)HMu}vADS|X;dhUID` zBoI2?GcJM9!Jk@-l@Nuc#PxaNpVuHAJBHfQ9_mOoOnYqGZiJ+$#n}q6 zkX&r#SewYx-++EM)M{*lP)ICEPkc=?DVva>V zFHr>);u3-K7gb?Kr+UJCg?>qZf=v;2qCPL!$WzT6pe^Yv2nmiuXu6bzDw=loS0KqL ze`f7}K4io?#c`)UEXsLEI(%Q1cZ!;hqGc`G4oOF7L8$AG71L42cLpB-oqak-%iMRa z7J}iNFQmgcJH?z1a={#yXb69F_zv!;KYs>EICM-Y(U5fb{`TGO7?vonXYA@DW_urV z3F5H>;!(77dmt8)kWF39K`;(WlKUmeE#Y6Ic)FKd=!o)Qg?*&;4fXl49+k=EiG7dvHc2lNvKM9DA{3IEA5x7SdL$w*%>o=s9&^c+IKLLzO9-OP;7vmbntJ*~fL?IZ3^h+wN<2=>gCxST`cq1jH!{dFKragr~| zkZ{cPi6P-on^9Y7EP{9-un9><3xZrB6%q~oV>DGnq3jKst|QO?(6dd|YQW!{@0V#K{CrL3I4_n@^c z3-W43^iHm`KhNEJ+9KH_v=5Kt^#u7Nw6Ah}@3H3~p^*&uENtU*vyaO}foI6`73K@; zJ1*uD2ggJ%%XNb|FoqT`R2#;aWDJ(Njw{EUdDb!C{*0@s$fSjF=-8{shD0MY6cQ2Y zn6|E@VLmX-1VUueVB9>(g$M_JQKytkHZq~e8j7qLDH;zkpSfvSZf_e2gakoCA_0M1 z@Xb=2A>mkr92!J}d2Lu6^cAup)NY8m1Ve-)zS(?8hEAJYDy36Cg(cVZN;Zo3SU*-S zqZ%VF(eNYXGAjT2s+yNr_%ZZDXL?qk<|F8b(7)_{6wR}4{B;k(m`PEU3x#B1+>dF| z94K%rc!x004RGm_q{0ucA7K0TgDjcw&!NJ8)aOQ(53>E)j~{>gHLnQlvHXel!aTJG zB`oLbxySi~a{h6x+z+)F5|?i3tJP8E98Sh~7#`nx-Wvsi5cKI&f*~=nzD~A0w!;1r z?x~^2k!X336e7Hr-dEdOXE87yK#=!u<{AX$b-+LIE)NnqvfGT%tj0p^MJ(4+IPqE0 zHUtum<)2nH32HaCBbe)bTVY>fA!+gc=?u@b^>!e5??9-REV$%J&)zO^a+#G&p;jZ% zs|hi^d617dg8aq-gbC_zAx}qq`ymN?$2!uUF+TW&N2a=C`O_iFc8;{AHS{CFu&t!W z^Otz6f-p!htb25-D+tB`h=wFWEypU(XDipS2{NHJ<0$=F&$tc>y*9NV`$scL*~PUS z97lK=Lx37VxEbPn$TK`Rif}YZ`|+-Hm~wGstSg`5ml5R^s{#0J|#VAHAJ)*h}G z0W3&FJLITGlEJkhut_#tE~N)?NyMtw>uL1ND(f9iu?*{Dx43_Z_{cp6kH?~ z3NM9RNIDesizcCHF@(a5e@!h{@DU3CWm%PN%(I^4z_#Wo_*iZ|opst*>02V9mcr#x z{@e%+1o3X>wZx&Tp6e%V-MQYuGx^A*Lk)(Sz*u$&Boy&ug=6{NkWff4oR^dS3}7x5 zt*vbw^Um9%opg+gC6fC}bKyH-EpuOuTv;Ne7Eeu`<5)iU+&F?i;Q@$L+S46;c(oi13$^g0hd%k zE{^tcK9C5PN^OT2NIGsA8wlSUF0)drafCYh>5wQ$G!8;AY;$o~zZ}`Qo|=%&)Hz9? zrtNPRc@h-sN=gb5kz5!*+RJ&6Z(TJXYAj3(wJP=}iI7mNXlO{wAPsu{)*+uHVyy(G zl{s5!GFCxMbjsHYq38$JaUSX*a~b{Ulus>3(OxWWsEZ!~&Ql48@wxNXIz7xi%ltv0 zMzY@@0u=_WOWyyVuJ;VryrfHe@5lEOJw(fGR1w-Oq1cwCKukLQ# zCmEJFYfX@xyAfUp0uXg75?;Q{OZ;Ou?`giAo0A9# zMTBYV*YW(VZAf!-JV$|sm?kw3+#t^~MYx28g?QP_PvWn*Sik<+HoTtv`?57cF=Y7( z1d3%9CdE2qeXmuaTFRwMj%6SeRHH|UFLQ-rYtIJizBQFeyaoNnkB+sUTduwY0gv|P9`l%#Y6 zFQ)ja+tCoj*{@}i=pr&C;eJtf_hm_P{!*Vwx@6g}ZSGbp+=u@Jsr(2n3UI>xuxWH@n z<(;S4(D4Z4TDeyt8i2n~A)z4A%A$D48*=Fox+>0J>RZqIr`YlOBw&{D+WkEt3LppG zmr=-tb-l-uh)M3H_h*6ozMlJE#E5C$yDii^0FgL6%*zm>Z0Pa6L0*<%H_!^9^}>2y zN4am3p0Hv-<|W?Q0szT})I0sj|HA1}?%M5c---{XCrRG*o0#uz2n&VNmG%s|<9Bn2 ziz5*C{p4$bu#Ql0SntMled*@)kb?~nfOY-p%G$p0ySM<(&g5xO+YlwTrR8LVb?SIJA_ULR{QP`&T)iHrRmbH+ewF7}`v$RFpNk_QXPC?m?$k^VM zr%27yf3_0e2Pr!d#4Y<|9EOmUx$asW6b;6=ATkd56_~PRI@JPg>>@P2-RV@64eJO{ zWJvrJ7)3~!Zrh5S9hO0igy;bCEJgzPI;`z&;sag z`C9)J81_4TpzNPo1r_@C%MAzwpLKns93K=N#ka`k_85K9&}TEogeu%SfWT#((dWpG z`*axBg6#(-ts3rhe`S(q8v%V* zbf=pp`qQP+-gFwFaTS4a`xJc!0dWbzp}@EZE`j@JhSQ7Ijir}>mx33q9gE$-ADS5n zC^l|FJSa3y_h*u?)nRvg-cj65{uCJxP9aJrhC*bV>FbIz`cY`9P!I@3#yym|V{9;8 z9O#Kn0~Hv?Paz;IdzRz#I+FL~W5tEm4C9u&I@lXL)j zBkwZ=!Zc#RP4@J&P&l|te@wUH+7%o6X}IBKwoV}K*C6JJD?Hql-)U8b`byb9wLt2> zQG|tYKN7eDc=$;z>BD7eq%dwdMad8t1b#HIe-=xl77Q0lC?Z2^h93^P?f3L+j};bq z!#xO(ar&87Nc*hsXP;pOwSCQJ+7AY0N@4C(9McyR7zJ*=*9P(FsLyBzZTeu4CW_cl zXylE@AYx0b8(KBo)U3UUdZ4ut0_PWLh*v;q~Esn+fbOyMOg`dzE&*~UaS5kw&Tv@iWslM zsZv?&)JHq|TX;?7*!$$~R%jRx0mSc|ucmLUQ`pQh*73XjjT6-MzA6U7ioyR>tWK@| zU)*c|1FbQ(rxhr&YpLQ!0d0r~9p?IkG8B}EO{OOw!K0qNJxDMKDYt5p>UFc0OyMY%=MGbY` z5xk{kC4x!Pp2bFeJ#B}8$l}7|EGW!>77B^R2Ck*i`WX!z*Vl_8Hnd1oRt!Z3eOliP ztsL2+LEH3eQOo;z4e#VBuAm4;1Ej% zhSr9)ym*~1Hj6kI=h`h3*FYU%8Ld2v*GhX%2l4#*cRQV-E`*8qNh^?bEGx0{x)m8( zLc9+OkxjhNMHXOLj43Ge;ZUULU*L5qE(#PUlH+3|kb1;H5h~%NZ3w*Q5)uW8(2C*x zk;LTbL`~r+ElD{r3=!#O@Swh;L}B5SD5qRWY%G6hG?R1vB@PllFv1I+P(iU^TL=LK zhEte|z!3UX+`M5R-8Mg%E+HtiKv+g+@7=?#X%Enfp(D8Ew*#kFO&~C|kSIQM^45xR zajpkJ(jDi~ilW71V{aqkq$T`5tgrP#$MLI(m`ex}eLJ*jC^C*9HWVjXG2*w3b%wwy zBIE32ce-u;V7eV#p6N}e6d@H^^FAF?)B*i9ghE4+zK;J%!ghENqBGE*PVm2I@o*lz z)2I{ziVDTZmdfJcvFUy}c1o2~t1PQ!L=;h>6+gYjii{#IBprq^uNxwwz))=Hn-zXpq={n5 zP+%;zWE3lgY4$y#s4z{^62t_eQV`QG0$F4%ccmJRB`-p8Q7jT=9{AEJ8iuA7vf~t` zECeJz)FocpGA$FL9~Bv$2!J9moW^7uT1?%gSj4oas@<5D39Re+W7<hWCN611K`IX!xPXacPpV%4vaGZO zwP>6lrGHEhqDojeBBL+eJlUU44R)pT!|s&NvBIMg8AWJ3e{LkbY{PhZ zF#_Z6sljw@v@cy5=}nh`BIK&!Q1;z8hoCs6fas*}K-6!loWr$XC?4*g917nIg@eRj z5pl4K{#jWbjuBo)AlyDWknTcgXw`6<)g^ZvM_6c$(4Rw#h0w1$QR*rlv|f}C1;(c+ujONc^3lKPv-V$oH=+*%r%!2l z6bcOmhJI6u5BsiG4EwQtJf>68H$!MZL`r`YrY(KvDlm!_&%SA&R9r-#0!u}P#~l!# zPN3M(su8Q?NT@0lM{tEko+@=ihzzY83XE_7hpZ_wgd)SV;_xlejA>G&IYp`ilGoM2 zSOpXv1quyChr&WKo4=ZqSBVTQ6Ioy|E+RH0vrdOn92CS9DdSbTbrdd=cfaCGt|i)j zsTY!B$#%3wc?rJ6T@oz$m%uAFB;Lj)-bGZHZ)lo$R%B#>ux%^v&279l5f#=CaRVl) zV?B?(7Rk8+!fW$7izUJ`o?G#tRYT$6lrFEWkLz`6Rk>E{d(IFE)F}c%C}b?-xuOk@ zi^vcPkcD~PV?Z%uIn!;w_;xr=%X^x|8@#C2Ch7ijBDMgz-OBZ5N9~wovf@6BeN%x;VGLCHv1HW_UgHN&`}mJ7v3Gf-@3-3Xxp!h&IcKwu~;^6|4! zOf)qqda|&{7L1&?x|E}@DKZMQVmQUhxFSOfMy(UBlx4H9P)ryu zg+fDIw-HgX0b;b-FR+AuLEVgi&>3(Vayt$&7E=;kgvTs|UGn1BT305S;aCAO0ND@< z5?@>j60IcWjX|RQTIN(N=LXL~j>mc74)S8{<%a~(uFAQL;~04!_mSrkj~<(z{XKG7 ztt=j!Zv8w}iGdXK5Z3}zrh3J7P;M~FIhZmy0qfX~aMht)epOg@%9OEL?t{O<_FRV2 zwmrXX3N1c{{gN&6XCMR9Kw)A%S23C(-!F!?>u(%#ij>#q{o>pcr0INbS?5PD#CaLi zsNahkw4C)M1^UZ)|GX~6ozBQXVj&ljh0TzN8K+lpel1N-i`WLq5IcLDAs7 z?yYu|A!F_JNhBel;4VoP`n&RNH~@1R5hi_ zx|@3%5D1Ecu1HhVn16)&mOqDhIH*wJ9NTGcdw)~f%XtqWV7$H~T<68xc~nL|(0jYvp(k zd4BnIx{2u$H|Mw?Av^#vle9_XBx+8nQV`hhwh`{+cqbx%M`ue+NpT8_W$d5&VThPw zMOm#MiVVes7Ljlur@U4S+g#tmU|)%f2{41mn61Qyajg|GwSob_cor7)4+e%3iechD ze_AgjD21q$X;YmLk{^(enIuv^ddIa&{h!{kq^SE5hREHT}jY?oR z6|zj9vW_23OfS=>V!9O259t`su|h);?9?eg6!?+Cj}ANgTB`oebBH*0tk{a!&_Uei z*ymf}tY8j{8qe%;p4AHz^izbd&+#6f+uc0lhj@-pkalW_XMdw4vB=xoAa(RtiPNIQ>!q;;K`M41G4nNK;G{=kUDR6#bMs zPK{Dz_`yKy#Vl>Rz=Ku{Egj*HL4Q6j)(T396Mx5B<% z`e|AD%(zy2`>6d|!67VHSM@DnKeI1ot08?+&|kGKb~Z2$R6;}RhK}Gmfjc!Srcgno zgjNkh#fMgn7RZ(YqlvJQbmPqsJEu^!IV}pJr{HJ^kwM=kPrr>;h@e;$7!W=!9hMh5 z7fVvRDionH1i2g^<(*my4Mjz^Sa2T+2RPO$AVwguu@Vy`wj07KL6^{L^)P=NVjdO| z(x(*-#D{~xW@2sqandHJBP8H!!89VmdV>;uU_I*x6fY2Yr%r8JXi7V_^BzKIY({9T zb;T$Myi=pBKSO!jv)y%ba503z1lMGn>nIz-M)5)&^JZvUtS8;Hm|~>>@EZI*v^nW- zLsymh7&43yD23%f| z4TUn#b{!%@%SWRkgJY*i=@7osKIVIjd{IMxv0e@NjSW86tHPqupwK|XTXq%wPAD>B zIu-9K^9*$k*FU3%cXBQ7IYY&TVS%DU%f@Qn=}w!9sZ+#Ft6}UAb?^pJ3ols1@hZlj z>kc3o#6fTb(sBl(a~u-07c#OHlCcFsyp3=dM0poPcpJobJMrBRVzGte1j}O79h`d)qG2~=-+M4iyPGKMej~fQF6wOL zcr);R9pRoHf-vqNzJYVDYu`fNPV#ngU$%3u zEu?LvjU$}@3NQcD5ZmJriQ|ZqV~~bJ-0S^Z*FnM)5RFR^jGGZ7H$p7VLM-;u&T-0J zgos>)R2-wOu zA|k@_HzHu}nCPN@8-%4Lo#3~h;=Jd`KM&4Q-n1k9{tJ+?2WI;?r%P;hrYi`Ds}Q#f z+(Y-xIKw?V@AX6KZky;%w}LC&ujAd^8}8Xf$l6ti+bRB=;}A1(0$hZ&U53D&hKTJ) z4D3cI>;c9PBPa~_wl}5yolWTog2Ce*^vNyF^$;7E*A)49f&RGxQn9g-|JrF(JYVjC zv57q4-Wcl|cu|10h=>h5)9!m9Jf2`67_V6k(UHvXlBi?Q=J_u0Sb;K1IoH|mX0UMG z{T|3iAA^UXYw)|~elO3yVY_4lLbJFR29U%wOGqFluF2m;S@(f(|A(^fezRo7GN6fg z-bX@f2xNk|>-0;6Vvh+1L(8~VMni?XZ-s(JA_Pf6kO=EoHulOO-MD*Lw9t;nuH|p} zMh5KI10%}jH1qucB3wDIlYzJk7`nfO*JivAfiSFaKnM&W6nZR6o*z)g5E;Xy^+Koy zDCb9x3CgXbpZGCim@<8o?<0SRd_Oi!f>FlCNyNsww%ULn1ja}k=R8v`!a#p=e+>7{ zu>1t$!#?`>0iMfU^u-;F2fOI!JHa-dXFoLTAbybN`jq{8yeq=}JgeL3_eU8Q&hea| z;`ub~up*l0{5;R<9Wx4u-gI(+XO`!CAMb}Fz4jOPj)Ax%p3f3q8|^_9^rSPSA4en~ zC;c?>3kZ>Oh>g>Iq$4~IA)@b{7)TG#xD0K7x(xwx#|Zrw+~{gk2#0HgcZ~I=ho^?p zOJ+yX^CySWEkm@8aJY@|euTz72#-sB^i9Oa)xNHDJ0jzesp0ehLgOl8;5Y)}D5U=+ zqTnLp;W7f_B*NirS9`kBi;$ttDW^ms5)L2)4j~ebQRfKZevWtP++AOv&LB9h(VpRP zg-Ba2vrk8H%Irp@Sl{!Uq3z?exf?Ozo*df|BKs+~7eTQ=UtK^jh%E??1Bw#rdOW$B z=VujyAF(itcvy?bFl`DE;rhDgf+SBudfhK#j=T-Dvkqdt7PxQ3 zX3EYJuBF`>+L$9;XS)z{L+i{?cLVW#2#uYHf~~Z@1%V(oB0#J!HX&GcK=Ai$falF4 zlp*-@oJVY%u1mY9yP5I}w6&4;#V*S4UEi3t)8;zv#Vo&nj_X~|wQQo?JlC_{-$Z;X zbvF{O^`3BlW-Lp5Ex*w^(+IN(Ncs$UI}s&YC%8U;r@x!Ft!JHS?%%AxiM-8R_ZEKx zM1KllFo6h|qrDB@56Vs;9wtc_Yy07g)LGldf53k^$bTz_`9H@w?-*&r{J*2bEk8zE zgFFL$JR^M&|9<~-%Jx&I*XM?3sE221g6kdc>G^;4Pk$9e;NCX$FcVeeJt-cgV;bsG}FiYxE5AL-hWQ%HPo8lLLY49-P6o_$TUC5 zHS+#yh7&h|{Bgi3kMw`Ud!Eh{;!K*Q76lFM($u9M3>FzCifd3ZLWn(}bUdgnS%)6numW_z)NH zG>yNXf$2S*>;oKs5VHJ!!uM5pZ-sY*rzq#n*6*S2`zZHb+VS`ukdb#%-+arxi_qhD z0OO^N_n6KPdnZ5iU4-uj@1xB72;Up=73qVN`5IDupXUaBk@z#<%it^EtKg?O?|2*kXyUbpVQ8tbNoLE|FXhgbNtuT z`5W5!2VNuzBANKF{x>fcByYqM1TsR1V*oOmAgT$0lOUKmzoc_)nsEUUjdGCN1lf&a z%M0U{w=L@kh;8Zs)@7AW;dDWVwHX?EgFAzxTAJeA(gCqDx|1wPJy{t^1>)AZT*@t?n+ z`1>2{(^DM31H7%SHa$uBX7C2`U&k}|T0#6V@G9^qMCK7l%!_!2UI<>mbM+w4)cxQd zp3S?#J;d(oL1jm;M&x3PScov*SV4MOc!3l5-@^Ta$x#5O%2x4-W z@F?krNjp@f9U^`(aD6(!vGDj1#6>Jkk2W}tdd4dpBkee4j}sn4T!`b~1UOCF89}+T zgcm4xkwN$p@yp-}xDi|fH-VeMEtI{T@IFY>eGIzyQRe~hFazofNqZ4^g!oGc-O>Ls z2H(fQ>lkYu=lBWmX5w$FS()BWx?|b9z4%{cc_#<@>`kCFc|#->k!PZR$VBIGNi ze}(XC;Aa}vq;G(4f}gKnlYWWtSHQ1=?|@$i-zEJw!5`A!{uulbeeJ)2Kc|2G75(yW zz~9nm|Bk$WvA-e`63=FY_H#sTgr*6e(+rR82lOojLc~og=(c~5XDE8Ba;E(_x&Z_{ zLBtb8KJ|9e7rV$KL;yqx@eeFb>+eo!peKhOci0YLkL5rYhudMSEX-)pCkTrtJb8S zL3DhbUJChh}w+Bd*$;8sKO zZvpn5=tK0A8^KlL_AmR{MQ{O}2j>tNXX%$`2`|vM&OwUK(jU)&v&JDnXCO;wh@U1r z3wb&Ri8>EKGCad^q!T{}0Taf{@dZfOB?z3j2r+Y4=L>|Fz!lQ2F2PL@zFQ!7Hxr6m ziHqC7?ck0IcY^y{SEdIbj}Jgl9|X@Q{sP3u3oASVUIGDqdH3q{O2mjeTf5`+D?3)D zR}(%?+UvmMooC-b&uv2;ar=yCKW(CVUTgKjiy^5bUQ3 zKS27^;6vcUg8UEB_J^qVVd{U9_C7san?5yAlRicMrwKnp+GnZ%8RN9^IgY{|_(hICM;l+D{4>PAOxZ6I{~~RRXNZ4|HorPl8}ZL~txlig_kNz=_C?P5rQS8^ z3xuW{K4U$u$9&6uroyMWPoLu6eG(z~@un5&C)(j#l>Z6t(Gg!KBD02_T_fqC=+Pj1Jtvs7I3-WHE+%>|h9AD;HzGR39xJ>#*!m~Wv zr+M~Ifs@2fQsxBVac~qIN_f5*&Y!8>ZO!IQS&TKS8-q zbF)4RJ_o+Q@t43?xp7~o{huWMb<)31*{@Oer>Xa|9RC7&zXEal7Wg*zYXv{E+bXxp#laef)j$|A1qK#((D?|0(HzCOG~x(*K-#{{#Fb@xLYQuc-gm z;O{y9CyxJ>vj0ZCe+T~?B-#w{zby)jlEyU!jGL|qD8j*b5eP+iG%XPslJJsmc?Cv$ zh5tWsvDg-E7`B0S(xQA-uVV>{P$x3M1&1P`#1$4H7zjgT5LZ-~XL^W=Qm=w( zMO+Bt{~P=hWbB{$o&QAIKXUvJ5VHS8{BOWtfxiU*6Z{3~;!hxHe+2#j!uCT5-4FR) zKctP{ChfP${{f`!dkBl);P^Yle}!`YMUer%fsptHb-qE`&w`&sRD89$K7E<+83hLM z&nhtJryoO5e3*W!z<57+FL-BdO?n&u_mhNg1#bp#;P?rI#B0H0JR7e9uL!J3FGW;5 z!gKTj@F0W0{op>H=KyITE{H2GZUZ;-JS#A6BvfEr1`3Qz9EZ5zxj$2(2#n*96a|Lj zLMSf8K}gAg>nj+qu%F{aKtK$i&GYzqY2Wk2b0dBbC@zjLkRCAvM~N#oj*?dd#z{p6 zd5Vj3Kyq`QV@XdD7?Pn78KmC?iom!-Q2uU??416&wiS5Eng=@-9Nf#nRC95Fk~45grPTMS)=+P+$nf zhC)MhiYhHc$P$z^1&3mygL0ykbBi|Hux=$Vir|QldLbk%Pq`>>ebYH!DlE+V5rI*O zi24$8PY?sCmivQPDEN1d|CRKA2LA~DzQW&vzd$(rIrt;Q!tbwKoqivY@cXNYllJ?F zjo&8x0r)=nF8CJtzXE;oczbYt4SA+5?5qALZ5q>KK6XV0BH}C|4=0~ z?gRINyGXx-J|T+GxRvxW(C zC^SgBT@b$u5_*>*xQFH@J8^azSZe1kn%SvGB|z`C^X(l+Pe`1;wj3!8@vyKui*Fq zc$)YJDDwfze}M8I1VwCo5HkKD$oof#e~h$`Q|{vkfsYga1o#yA3GivsKTA8G_L#Dt zqTa{3&QB@`x)BJ92ZV`&0Palnapddh%aO+GEszwV=!^$$L3?8OMtP10nFR zApQ`~+WiHquTS@prm(o1{JX#%q>0;!-$uFu<0i^p16O!nFY%mTGUU0vOx`8RTp&CT ziii$z0gAW~MO+-BFNlMriTyx#1LkqQgM|A$AJ?>#^X#PUUDV&p@qW+A@lI~$Uh)oej-!-6M*XAU5MtsG z<-}3So+RzC<$&=6)Z5RWafmifQ1%knaLs#2c#JZ~IL`^fGt|9G+HK_B4(@;uJjhG_ zE(rLoT=VVR&$~#w8{A3!W`56&T>DkdaU-~y`0docg=@RYwcJeF-H?q3AQjJtR6ImG z_tWk@q}@Zg`)T80@*ZlWZR$KsyZ2gu_40HFzwv(JFNJ)(79#yP#N4v?aG&q3hk!Pa z2f2S7V*f_+o&Zk{w5GR#$2uFR(@0uldVNn*;8h*<>7@vW7q`@=7q-+;w>G^3Veksl zA8uNcUPRi>TXWAL(*>Ie%^wxx|6i~Nqc@@YkB}db2E8Y$-4rsl7A~A<_-kMorsXz5G;51 zw4~dJU!~j?%OW_gfQvjIXXtw;=!eG|YSR%!<5B+Oqr?vr-%J17hp0F}{2=KEN#9R= z4}E$k>Dv((0m=!#ENnuUZbVG1MLeu!5LoA+fM8wV`I-lFl$m6(n5Zztvpd6c?UcZ2 z!fC=8p1pC>$ChA}=X?l}F+gAF2Yn1u0R}jayAc4QhqPYO`sg=?J)oPkE(S!=4NU8# ztmr1*j=&Hdpo_F#2FHHJ2*Zx+pG&z6>-Ld0NZW(ti_ukFmvPdEz%cOJ5Tnjz=joLO8_nD0vfqwiS{#pkA1?p|9 zVT_|s?WIp`UE`M^#;?_kUzFWj$5=x83Hrz}`sq3P&3SOFadkS$@!95@be_I*fqr#{ zGAAi}lKy>?_RbK$NT0n-nbRDf=lCk|Tj_^)BGB&wchU!Mryt)2?j-#_(w@&VdneD~ zeLlDJ?^|f&4#tmrDf2>}#m5HdCxad7<-M)xL7v5jDE9)M*O&1;KQYjro*e2-Zz2Ef z!(HivlYQx}gPrM3{q5k%Q3BT`o|T4 z(ftO}-iAndYM>J$)s^1W-g`OAw>PJkw=|~5 zTAR`v+FK*-0|Pzjz5U(kHEk{F6{Nosyt=hHy%~}6&K}wZZ$qp+O}VFfyVC0sCvO06 zMBs=g5InDFX-+S0Vk~HENDnvEN9gej2=79;-&K^CGA=b{|kNW48q_%0^%yiw^Qdo{#4CGS`u$M;iyH|=gmWNbwUh;78T(^oel0_MR+(zbBC6&P+Je*RkN|C%IimbA6>>uJJa(h5fC7ZdcaDc*Nt63p;Enjjn{ zU5wE;M!^Vuz&_SbKkBz{8rt9JE5>_ncy5FPmV+=2L8J@^KtE~y5HjO~khB5N3rREH zPg>9N=cZosIUa_rjX?~@Ac{l8`yqM*U~monx$cHE(ZIDrEGNMXBy<)SpMu;@BN|GY z$CHixCdv!z%#c6VLRr#hnz$##H?*%v3!RLaU>+giaioDwq-}+uN1VJZkn9cAnQvX5 zHj}oEyuE{K(!SxEw7Y+G+G2UItqV@nyDA+RT9Xcs)TATe=vZw!JzXF1L&Iy*5$YTr ztx3ng5snX1e?R1YUk~-Ddk`UVgtiZGypQ${l6H*a6VyKmP7F~WfpWxh;3)M^kZ=4T z*LmE!T+3cW(f*DV=`h!Nit9N$&iFH08)f#9Zl2|iQ~xw=p5?kMcX0xqNIBC_fRmg{ zczlSu`w=jE5oLS8KF)D~`(wC+d%cT$Z~P$FeTefOK$z^K{BFwb;y>8MJ={aS*jj%> z+DY1W>MZadZ>)hl^FQw(ZJ*Z&wh^C4SkBinE|a&J|8Ki((dG`?*v0kl<~&sd$LIi95%+81+(jycjMdEO>hJugj>HcPv6h>}?_Z64((c<#o*1o@NH8KwNl z%IBpq@&W)&bk7wEE+h@9;@`H$uVbaBr?f7gXocl>%ieCCm zH+`jxKGjM6430_bAl^p5Yp0KOa@@(gsS6l(&_CNL*9HvRJqE4x*S0Ebrfv&kK`Y}$ zJMS|6F!j-LI&=$ZF;x<{!sOxtG30l`F}i@hUDwS(Ooky0&dqdA<`_g|J!Ew&FPDvo zi%k%sdBRx;>NKQv3QR(XCm^Up5E3yA86E+nq>b?c90x-jn{HeO@>$xP;bk@jbR-{v z%vxpu^4kaDbuMQQ7uV0R@lIaE9-D8u5!xQ8T^aK}o$J}aO>?fdWjx0OZH{qWlbmaq zwoAMHz_6P(<0cVy^K!SI>4Q;Dhd9fwWT0}Djx}k<-^;byuD{FQIpBSwPM2+QlLtw2 zK6)qZI$zx~)}N$~zt{Hs1M2ys8i3a@MZ251w;OoLZz9y$-uq*nNk~H6TYit{^4j9Q zR=>~tH|PE1*lS!*8{2sK@8;#d2g2(d>@ARp1<1lWNJHFjh>GnvcY7V=#rr-AW*{sZ zAs|~I^UmYmM7@!QRXiX%{oTO5MukF3jzG?j4z;DjgeP657J;x0a=xX@Wm+4e{)U)i zUX#{QegmX`V^@9J+C#ethOLy{M7iyd`a_6-lP)1U(V0$zqX>Zmr0wa~k=!MG8`FHJ zYya1#-Ic?)?Jbbz@qwY1bY!$GotWrITPZ)?R+C1WxaZA~=kEG+n7m6f-RTreRlA>+!md^LtP0>j92)-8z!%{Jood zV7YDF?|JVbqC=;89rhREo;LEbXbvY?9cg#)-?&_;bMAfiT|mJ-3fys7xSxh$Y>Y-5 zE~?;j;erfv2n?SY9l58Y4+-v3q}TFX_#fxR7~CjO#G(z9GcWeTpik?_ts|%opT_gb zQ9jEni1S?Y>)HU>leiIHZ;RH_ESgw|1okCqvEjHQ%I(z30znphX=(E2B zI*dN+G`cK>)2RI!=zOh%cit1jB{QFwRzi3Tb{>oY8^xietD=->ynk$IE3kgTL3(#<8nTxq@5S+|rfY^4=P&7dPV*I)A$a zuB-8x?`l*oE$z~_I)umSQ}kmOHQ0$bcHbNKi*fmC_s^N9uewr|t5LaHl@8&qLKXXM z02hC7w|k#im%Y_d+*R)KlG=IU2^T%MG|>~dFy51Hoa&F|nOzmlo$ikY^zCR%W!YPo za(2Zu(_P-yjr$HEHgpWvA^fKCzI5y40O(Iw#(LAaA^I?a;}`_Aw=BZ zZzu8H9WAkshULx{a)@j@L0K&i( zr@SW9bOLuNT6gqrKoE#lM1YRm=FK(Ge<|ml8P>DDj^FMK-n)ut5P{J`|7@drdpDFvf{dNU? z>jwJRGT^ed=7--D&%aLJWy4yX!wX{32K#gLu_gVCJ|N0*J$+8+?`BApXaWt8vRGjX zlBP4bPT#8`V1_z@uYrh(ItX1OWX)Bl%0_)U(XLv-cmZlw^Lrq29f$~>y*h-NtT zLQ+MWA>^_JBB~R3i_4#KY#E(=EpJ%r_CZbuA?7+K3muSkBsRSllH3EjAmW|W8R*Mt z9``_Otv5WlI*lR{!r7U6orsUN7ValPqz{2$`kX5@P1Z)J!?sS=W7H`ah13tywiq7J zF*&z6L0vJzb&XMG3Zb%=HrCJ82iDE%&|RAywrvMtG0gRQjYEXi=_f9Rxz>phxCv!v zCTion-JLu`O^l0;kX5eNx@&bP2eXrKj~SkCu64v~BF{F4yf^&zF78J!!lIXWpG)WR zTZhQ^T&DMP|3;~2ea|VpzCr3+riXiI8*ThQEeMSs>a_d65pU&x>#o}GqpWSWQm$?d z&mYgh8qgedR#fL?Or}g9p})g++9_|_w$+Gm$T7L>e$9KVhWC|ut0}jN{=1Ss zxq|+_n)h-X`~GD-@OTXzwuZi5!~1^~{eL-m%NPrmGmfleOfkJ4o>0elQ)dXSbA5cB zF&%gutRx_A&g4>@Whq%VlT3#0d1=xY3*(d4v>iAa2W`%*-?DUeu~Tz~k$=I<8^Pdk~Ri`!3oDDDhK z1}Jsim*?lN6ST05N81^`kNKTtA%%H})@q5Uake>JTz%4B=M{BWQz~5dLDe8&`YDI1nZpX;FCuu1G(6LdV&0gJu;W}iqq|4 zm~*>r%$r>fuT=L3_RyhnkI~V!3(0Sz$7Oc_lsVlYDAk{c1W^X1=kWARBH0~TH}r`#F?CRT+=%r@Un5&I_)t5USy($nAX?ba24 z+#M|sx*i`Fi4pJJx*1LS&y9R(HUIM4h+E6{Z<@NPthaV+GgD9PRA;Bc+j5xXPh`LZ zA$ETnlVP%-(&rDY74zZu52+8=JAV+bG|6tPJb$RPW={*8qGtv8pu*;Mk->SUOV3>_ z6<*JXrG`qiQ`L1RQflZ>Uad0)>i)c1z293}*{9;~cD`Ull$e=L9Dm=K$DGH6s@q&v z8Pe&R+^MN~3+DrepnHk&*7?~T8QopJHcrKjo$FIY8?T`zAMC&k8PBLt%q)LS=GLJ% z*YwbIdNyB14~q_YCXPqdJ&na>uPF8Uv2KDxW>(JdB-=W*Xkt^Q`$Oohoq99brJyV! zyuai;v_f<%%y;qZBYmM&2;i%`Xtmnj>`@?BU7xG1c!19{4!qH7@_9qrJHL;>tmApG z-8gY#0+-&PUNQWmm90|GJcKt;PLJ#`(XjGixy1{0jv4^5c(o((u z<1!_C4IPBw+?(B$s_5X+ug0x@kL8{Ik;iWX*DxE~C$x({r`SI&?C!X?p7$Vn^*!F#(4gRt$iaJIET-qW(K5RWXVx7?SS&t+;$S}_oP8Ab?9pqlp zH4)GI#KBA8Q76>D*pD7__q8t{Djc*=9un|_3fIBiBQ-T@&M+eA=vRkTkvXcMI z-Q%;&hVS4^j^mTi@llfv?q3AF?Hi`0r=Lt!fmqde$77y*mKBf|r%LT?-VUl7%yn!t zERjE`tyWw?e7m%FOWiNji|W3Qq|C@q+bz4M&EpE}ek|ZSDMTFs+ zPi;CZCj{9NNB+W|h*$+)t`-y@)NL;h-6H_g`pl&Pb{B&e(617Di}~4dYu9m9@zvp? zEg9*0{TnGa8D{#pqXgFLVagV;Kj&TE@t>dj zdU2y@vfRf0*OY*hYn~BpoGn#PjFnFbf;))v=*K=G_%JM|zQtq2On!M9c811H)+nYO}%UjF%Aa1l3>8GwgVA_Zgf9dmgO8L&t(Qm5fCsXZuov`WW{2eaGtG{!x5w@NGC~?Qk`tS={JT0lAd;3)u}=_TfyG-w({+>D`Lh z3A#c(<-QP;zz+M7F^|PQ8d~2sm3D7@`;>9nL}%ineBfE18L)}YX&qUz*Src0`x(>l zOshs((=qresVyjU;a;zb^iXVMn1XFiM^nxID*2qsb>KLOI#z^ubBA?Dl}$V#-2QK? z(B{T%6PMR52)%kTJv)t)_q(M(tL}ik;ncgd+ccl_nr{BJp`=MAA$1~9ZhJkrr=XIC z84Sj{#|-lvvmhWTAVWxOzRq^K><^Mef_OAprL94_#Yd-RKSmnnK&7rjDPsKdQHg z+2w`@t++6^vn%|=$)4jk-!B<5%k5aO`w11C4^T%Z|a^93{gw+mi0 z3JVSi#)sKov{A?U9Deex;DEJyXf4oh^=GsF6m zVupH^Kl`k{U*K<;pbj4Kw3t{9Kr5jb-aGP-0W}BV*fCfVCy{GLjw?+O37Jl8&u$S? zL?(HDS$cMqCwKI0J|1N5^wmrYLFbz1arqw3nshGO5}iM&d3x@PzW1lb%c{hG6v|pF z4lXQSEFY~~KMwn??Tg5!Z_)?!W7iBj1GCB87gVRU^uM=NZzS6RNzVh8g2cf>nBI0t z{hVCSkv)+&{QT47AKG|5;T^$Wtf}HP1Uh0VsWhK=blk0blh)F=7Ow8b>co}=WtWpj zy!7~JJ@Gi93sLG?mDRH~cIL#&v1t+ZsIPJgNm0^ejRSEER7WhM6%H2IhEe8_Tt~}4 z?;LHuEw^OrW`>GWb%akK#2cMhpPcw%<6gOlKN`?3e!uILK8ABHLiVaS+NFfu!&CC@ zhP_1PxTU!JKzX`aE~X7cA|Et4V5mkxr`_EiCIQ>;w}ZADW~2C}cjCy#a`DLU_&+Ih zA$<)a9@?K=pCyBs`Rq3*Lj8Pa*HzhfssnssyA;chh$kcTmEj&YQPy*eJGD0k<|k2` zb(`J6O3390m{`5<3-Uj54C%(MKv43H{Dx9W$rvu+U8UGVl<2m)-S)0GEk&uO3j?0O z?Cb57bhHde;!~NsMM6ub@aoU;pb|9zfWDslLw2ki>S|*jzzpa+YhZ>!5X8eS85eOf z;Xm2oI^Q^xrKv^m-q!H+gpRXISNnT?o(53q6I>8#Pp$TM)IwXj9Zqy>=YiBkntdpi z!R&xL9Sx1OgFA^PeTi^#N6;TQkO=K{_j1*KHne_mH}nZYT0RHfYj7U1E&&z%v%1k) zV$F}Tmb{4(0F#Vs(r}Ueofjji9)Iqi`&jdBZv7D}{tZ`TPTgE|FJ>Q4s~)G10|j59&L)>NFu$> z5C$Mk4ql9dQdr-mJ{hEqDajP+{NCKw8TNfqri#{Omtko^8$8T#xF~dO?&9aw&n+{= zsqd+13q=teNhrA{3P%y0?OF;5ogR#>Ibf6!^=lQ5KOQIJ@e>at!c z7y_h``xRuAJX<4y(HTfhOoU4Uk)C^(roJu9C+}n6iMaC6$Cdt?_ZMpX*p@MHS2ox0 zzyXNdwk?G1Iw*N|pM`?RVt)TaDH3V66inBd|A6$evvq*QYC=He^?&xll08fy4eAiR z4)+)xD~t`nq%ZE(blz<+uKxV^A08Ca>D&6RY^7hl-kM)|T9?;LB1Qut2qapyg&H)A zd}qoK>yLHQ1CuVVIXo+Yy9d;kNjOM^Km;$Rkt>*!o^uzjdL>a#yH|a>G31GD5hf+V z%($m=GAVF_ZH5W-~_m?BU{ z{&HHU+xf3a!>Wvv5J-M7$CoD~7Y#xsj(YP2qXzUB-oO5%qZw(NEQRqtimz-*OY#`j zvi-prprAM~%t9H(99Z``Ep+!pj;D-LEv`MF=M3EQiSvIWV3u;XkSB&04%>@rkHg zY1eLi1^0Cad@EmFDOJK=*NmNU>ab+2<*9%op3e!)6?W4?P?sI9m`m|PBYpqmIcltS zgw)zX3q^i-re_#VMeBL^Alb3`Ohgg_HFO5^ibI&3_^v+2^jrmqz{l%{VsWYcs@fc? z66HLtUS$uxiSZpApGWIQKdmRLYP}h2PIcePn^t)8JJ#)d4tSG#c~o5J)g-R}o4*il zEI#5#z-}U3db<)W$!=w1=xd%T_O?4UP;?q2LyzBZ2rd_=g7~9X%*~? zQVr9lOi!=XJvkxe0z-=m(~sI(c{gREpXb(yGULcT`P+Z`;S7zc-}wH`cx&=?yo##Y zpeIlyX|p3pC|=(Ut(TRdkLH~w$ZMa}iF;k?=_!q`q>%fhJJrUI`HU(}X=+1KWX=l= zvG4pPSjn7($)E={N`=>12A)o2C3FN2AE~v5GmJ~hwf@jwaUrD!V*z^y)2;$o;+9ZNtXaxwjT=H?{aBsU*q4z@hD_gMU!=y+j z)UA_hwgAKYYGTRy5vLah?Up=^&$ppL*C`vP(&l~;ihQdp?lj_f} zmfRb*b0TPJ9p`$7DDI1A-&*b`@orklTWf=zY@4g8TyDa-IY<^g`0XHGg%35P-jM^! z6|xu6eQj+CLX|mAiC;n}y2ZS+L&L)aXi5uExikh!xdl>On`?fX&Li&e)JEA)Gg2n>Y9 z=X4PYVG8S&sTSD!YfS+4#Q6AC_hGX+HL-hgXPxJw2udjXrO~5-%2Q8u{}#On@^+Vz zN(;<_n*e4HGZ%=e{Scb8{NeeHgsRpDB)YeaW_y?r3PL$wWI5xP&QR8;w%0Cr{f2T( z`mpD2@i$2!M_ec4{2BB2@wHAaT1b#p0yJYJcIfJm{Xll7) zd8J9GHv7(O*ntoR`EUJ?bu|fgWc-KkSJ^|D+Vjf%)Azg!O#TT;8iSkW6rT;jOkt>x z$l$>IeHUmN=c>fVzty>pPZB{iTQ~c(olA7~wmc)mvX11f1IC&DAXkRJl~IMYG8J;R za1dUsl~TP38aTe++`>J{Z&Orl%?RNfXkU< z1M!cv#Oy}j2UVN9^&|L4lG1i-c%uvIwCP9imvvK8Re8_Hf9KRcuHyie z8}bi-0m%L9DukW7aKM;`?mot>uF<9C#a}1B!i=$HWKqGP7-8S1Y79pp6F5DoVq;M7 z-wca!Am%9IJ$hnx==s#M&JO0O|M+UDaKI<$(`c||vUlr$UL-X8w{HhA+D-uMfI^B9 zuOx)$Hdyc{7<9*8`N{m;IrmLf4YK8mC`B`!UP0xyE?Fv41G8iKjlPm3sgL7jG}Ou5 z0Ybo|>8;OZ&7wh=w%1clYg;4JS+l$aiy^qhRlofwLMh6Y)>whq#mybksz}2P$+eFk z4zDPeAB`ctu&AE9duLI08wU`dRW9va(U@>-jsii%_a#f_B`i{oeXXOT6RyQRR9H9) zl1@C_z2kY$%s-AV2U&U~SM>9p+t`c-n7v#=u~4EY=oj0Ed%$I0MSdt00_BBo)5b!9 zQZ~W}TpFOX^9B>kByG&bKh`2B`zXz@7U3x?vq)@=re196>w>|io+dR&F)dcRhR2~? zFRAe^tMFaOjYscpmv%}57-6CXq_SC%rcNPyDyN$rkDFiL)C< zPrlNXg@ZUx>bVT%jE>_3mW7Q&TTrJ4UGv?$8lH2Br(@D zx8pmq0L&n9$F~Z!!%)}HXH@K>%v-lKR_ffL^jxWZD3Dv^Zo%Uw`gD8<3XhjTZE5Zb z>!<+m(M!f|p5w;PHwH~=n9s}+l8tDDr2hLlW`=%jHrDOYU%{WjBt=O*V^NPB-`D@7E_Kvg zB*{&7MqFYqStE&1OBrSJ!PAh?LH9jrIvA?{6p@H;gcFznZ-sCJUxGl~x6s-q z&U3PXH+_AlE2`Zp6q51VD(ZgXjoUBR^uGx#G6{6Pd&+4^sgt77 znFdQ0P|3hgq)ZYTb#)>Nig@$V=iEp;Ia%vec%jJ*9O`Yz!*I+Q(;0{@KH2kDX?e*W z=a~vZN7(}aOA}*t*kuyY3>g73V6i87{qln+P+}=oyJ0Q!R=rJP>xArb2l*XdXY zNtx~+ws3A@n zcPq=G=|mMWhWFEdTaK@d{eRtW_LhH$yP`g*NJC`P9J(rITGAzOdzCY8J^`;HTy0hB z*Ep`yJ2Z2b>86$6<9wWX5ZU)C8M3*e$d`ELcJfA_0Lju>J<7!oFYe&_$zkop_tUtD zf6INZ0XP^}xm`%xe-kCJJ$Y9f{jiK09dyCg!_L58T3|LHZST5@+__t>Bc~x0+AP#9 zgzT--ZLZbqJ<`8??}v3qnww|S;jamiN>ANA%Qwv4SWVMDxoO28Iychgdr!JfLh~=q zw#0wG00>Jhd|Eyl>$2GK=ChUZSEe5ot zWMvwT&m9{@68)o|pP||}`Ad=NB{E3f(lO)bo~vVULVxSS5njPYx7;XsQ8vSR7rQq@ zzhBc+Y5kdBdMYe3@HqO^dd9j~R(5}pf(k`YKC(pih7RgF>>Yjh10C-5Qd+Oq@AV1& zzzZvgDj!3nECGSF&P2{e?eYLTv2Is6~kd)(L;@PuY2FFe2-;${rN z;{{L%N&X_ju-pwrQ5HQ(S)kC(s1U{mI{u-IWl`~Kc(+-JlRO=d#8{V7ko6bect$|D z4~HviG~@7ZQ}JW|Rp7NqW*3$K*tob$k1^#gL}W6t$+dl&K|{w{Ojbzn;HWBOE6mDd zAc72ks+#ux0vl;<#R7{W_`u6yZMDfxg^;l)R$Fa<(qGaZgj~JkPJgq-=#>OmM zMdR`#$YX(#Q%=r(zsl2C2R&0|jaGv2Hox}_c-yA|7OFV!T-`KPSoGPmmNKp3z<~}? zPUbzYsqoH9ym#55l!k|gHY1Z2jovl<9h}_(7xdq?`6?_d#!T^3rRh=lma$I0zMGpk zMw1({|NkquYHj!NHyBM63Jd`-fqRy1(upaHR0IzB-A0$Gu|Sh|5n(ibI&v`Cp8ar2 z%AL1&CqWOTX6%ZmQDrQ!wy5sZEbq4x7a1WJ62YJ+kI0E?_AWIrp>Nfi);hkpXBamv zJ?ssggGWjkoHRy%TkD~kCQe+nw}6RogeXVMb%f|pX5~94^Z%1`io%NyAsobax?EO0 z#%>7AzlWvPf^81{I=RWHlD&pXgJEG|2;}nS&(V~ypoi^&i?XX6Z^9^@57o>7DajYf-%lvP&MKAnh2Rj8_31xl zd@lh6Z}ur}CtKU9YQB#%rJAb)^cS1#Ee#IclN{u7idIZ!(f*@i=SX;r5O3yd2)16l z&L5_T*;>Xs;vBO>-qPQ;->DY)cM6?tDSfS<6$r$Yja>Dewl(kjk{_qj+Jj#oIxfA4lWvU@>@b(nd z-zWr#3Devl`>^oi-(aub7;ET=YeY=_7Xy=`SW~b^LZl`B8XH5XO`Mf6TAKQe8o3oZ zlHBkYNAeZ+SZoY(OY>1&jus$gT^yGIc=$4?Kgay07L_)r7?_wsgtlq*V@lPJ;LMFq zo&l1hXFU=GU~;tJ4&Um~FSBVG^H9v8>|Y#1tpHl80L~N>^Eh#7jD<|lvZSkJF|_(G zkZ9f?Vy`U6DT1f~jLdkrHd4jVG(PgIlCNue$HaK1{a5r?C*fPvecLG3JvIw-g!uLh z5=?3o){JFlID~N7SZ_>PunfkrU5|Kh%qJc7AgLifVG_e~`{_heRY&mP4}35m-mJ3m z0hs`_0Vv7=|o85KqTngB>4RgS3Xc_U;2h{r)^R)mvomDKaHI{zZy?@*qGA1yS=Ar*F<*-%Q1;cnVMGHi&1t6W(F#)BJRAwYs)FO$ds|c3003P3%ix6 z3UaqdT~_f@6|N{80G_7pY||}MoA(|lMW3pnnAz$C%U9u+3%qr`Pi$`;!@LP-#ubxj zJXLRtWn%7ii7L#0P3KuZ>SxqUOfXvU^dv%l=ATW8<{d!GJ<|GED!aGD|f^ z!>;oN%{$}Z(~w1DxF`gskQxx9oKV#_-C7|c8{F4C51Yx7Bovi7Qj~zkgq^}Plgu)G z!#xumF+I*(*=t=7mKqWL*gnUGM{HsYFU^{~RAPF)EHa)R2E!zN*K2lt{o0iU`-`J^ zR@tLR`hDDg>=VsD8V&X@u;$NEh{%A5MC}8(kNctJDE0)E-UZfGTyc}k|G|5 z8YZ-^o}DWg#fzTZ_}$;0SY=>SgDt80F{4W^?KbwEfGwr+xB7)c(^Qu}S5HW|`(n(^ zEM~n((B35_uXWFdn01=jj>*QGXYUye!K}@dB{cWwmi{7r_acPEkA53llkvJT5RCyS zM?b-Kj_)XA#WwVq6vW>!!J{U_YbMt$aPd7>D*r=h020 zB`_=2F28d^H3uZgbPjw=8p7v$ybwExE1?6U%J(u7i_vg^ml-46RB1un=pK?IZ?ur3 z0j-yCX?Fv+9;xX81kPib1iHu84<~&*7*Y`FWtUnUSTeGXddbYN#WJju7qfaKqKREq z{`0hbfOp3TOdp`H@H6MR3`PCu`I4Un1}YN2{)G~;s1zyLm;_10QGS(HXLy~Q-}t^V zi$y_$W549sg|<{fN{agLSI5eamFoOpl{6!&{zncg&8t?vG@DN^c{JnF(jJvuLXHas z1p+dj>pZ%kl&DJc-;UGxibC)!O5H9X9M*Q<{=a=}zZPIVG^8{$TEL z#BqXra>42vTW0Yd^9E zhJ9{)4Z+Z;0f~0X^T6I*ri#=7n^vHpj`Y|#@}m8YJ(-i7dV1E)ed5We zy;xN?!@Pzoo|2?Z)q1p9fiPPXM?CI&!Lle)v$`MOJ>>HC`G%jK6^L~m%!x~U51=PA z!4~D!7EFe?Z$~|BkWgumEaFDzU^Vq~^3~?}B<(0q)EsRUF`p5`a}F9Bb9cv!4H+hK z*cgpk-~Oj&)%tv6Ovo-8Z`N|jX8ZFMn2p}~ySxEgPPc`B%fWxEcn8vNFDn85=0@4_ zy^%K+2K|uRPDMzkJIG!E?rkU1L*M#Ly9YLmLD zfB%}iinOgn@$bq%&~q%Y)DIf^=Q`!{qsDPLMG$LjKTj{T62dIAGNbku>imO)k2M~7WZvP<&z>yA6fOo91e`Fpo&gqp&ZRoi97?-GV3p2Y{9Rg;p zP?vWd8U>KLHWk#x|4Q(GP#3>LlU=48FEGyJl+d(drBgR-4tJj0yq7(txMVJrDloPd z2aDeD0sB)4{uH6?@iNrB(P#C{sr7HhKa(3tllW$H5_yUz1Sjz^iz=1C*oI2`4!xuR z6s4y`G*k;HlyG@>#_5y5=;GUc&0^q}4tJbteSP{X3SeUC zD<7#_Om9$aSexOd7Yh~4PM6nfc=7oKh(T?FuUlvZt@D`wGCS*r5Ig3DO&Z4mkY7{1 zMZgAk>xWck%ix^JkFc6v>AkuXmcg)yzfo zYZP0K8rgs9+X-MDl^B<{-zVu>Tng?kwpzyDB@Lgy?eA&X{AkdrH3JKT?XHNZPMbO4 ziGSNHJ1s>X`Fi;I*#hKuUtq?<$=S($XvYGrW#y>KDa;*7yoR|*Jb#FgUALYyuTV(J zhhb~Q+Cd8sepa-IUF2FHYguQ#00x^8c@K6sx@(3r2lC@D)Y&E zN*VdtXJmL!u@K0l`Evlu63c;LseVY_vBL-?M$A_)G3RmKIyEyVoi&I%eDu{QK4vtl z6T*h0-~C`#17XCWYFTmA=V@@1=SOKr+8pLi_z-pc;CsK~7jIhcHtf56-1{gz`j%EO zb6IqSjsG`exl!7JO_rG*1ag&F?kIxoE47w}Fn{|gPNoSH8xaX{eSP&M@QORw=bw8@ z)m%(5(Uu7=tBA1^BtjCX&&YH=Ob%k$Z+thinGVWk*q*V1c#QFKNc>CQ$O=PfnPB}1 z$L-CzJKYLjY4<65Jg&2%Kg1_(FQ;o_*Mp|25PJEPWvBKS_ZU_F^e4~gB9$O)XJH8b z2l`fa*ZMn3;s5S|Zcm?Bi{xDdwsHlke?pBUt+uZ0S|T6ei9@aRNXnyzrPSXx@}yevC1uFs|dbW+1=ILfQdtHt!syaxX8I8I!_d3 zFivbc4C91qa{BBb;W8x{LJw=j4W2%K8g#n^HFy3a!WX)>8F(z)ON zUNRTgT`UKbVICF@f@kKXokr}11-1Wj-HBsKm$5ZMmTZR`9w6aN z`=D&(^?2|@2X|nD)`oOBTB^|rLRMcLf`2_zf5Q_CNBU?1=o5GXCS6lh#=y!$r&OQL zfVCkgZAUA4oRE20UOm9%`3)06dy)tZBZXROBnRuh@9k+M!!2+L|UY zVLIAdH>0l|z)o&}F0~RGXTFR0(#F)znjD3Wpv4QOS3~}CxO&-vNN@AG%XMfg{eC^= z!CF%Es}p{NIzkx4e{V(pxeR9%d%0`DELmPe*?ka}&-9S;%9g7Gn(-Z-rdj?loDrgP z>CwCzd8iDe0YBX5)Ub8n!;dDosPF$Wzm1J8MMgXSG@K+S6COaXqm@Oie$Y|$65=;a zaPC9avVByPykw&kAq-x_vLYnv%U8n;!)P^j2l2Q+M5Slcvi0xVMiVouK^y>@NeFAK z`}ZGEr}ABml=rOaC3}Xnw6Ot5F-}}Ok7L+dYe~C@x{h=Na=Wb|uQ_DUCF`AcEsWiy z*$r}AYTZ}SKsa8$Pm_0?7R(kapHu#*aK}tTUH`D8gXA8s$g~eT`cKHLl(cp4I$A%W zRHc?bBTP)NsPa@5A*!4$e}7Hv)tBb=GFOZBrlc2@ho8B&k5U2qy$bX{6;ju;_IwgR z)58zPrG#m*Gd0&g8v5h7XbMOg(t^$zNn!L0JoN#b>9SJ*ycVnP3bxYUSWO<+s{z-tztrG8ujOyw-MNbxqK#Der&#sk^bzI-C9;Qjm;3%8?`Q0!h#{Q2Kzy~4j;rGW z_seRQm@Sj&s3Y+65OkcE@*{pXu3)RTq_2tM-e{rpF@!o?6rxQw^Dmit(fUAZ!B{g*&Unz*e&~<;kY! zm>}g74azrf_KMin8cFZd*XMoI8|EHdvYaRx`^t~#27vVh_~{utMrje(+41mE~{+`sUerk=lxz$Dnk zf3zl)+o{ba8d?N07=&&4%t4+-Sf0w zJl-oH$kDAf`Xa;y!!B#;yF!4j`q+a!vdv~e{j4^TY2)-^(eK*VHKVVm8Bsq?TV{*N z!_Ae}X%LLtP?#OWW>tAUVWSaixNKM(2&|~q7gBtb$EEY(8-0Z>O})X%%V`$oq!Ign z3`JgIT!Wrl^2;O6wLI-f5}0-EPrdoPM?d`)v#QPJr8SjqJsO)~;rRPI#I5vg!N-4@&8{84gDh>5^kxN>X?Xn2C&9%Sa;@`7qhs1`rq+4mD^oI&T=}t=tsK$z*NwUo&$`zaz`DDuu@S^2@>30`9zU>- zCgMz`G9*DRJ6|=lz{+3R2*HU8Dz>^l%=Gp99~@^Bd0xbH)&HA*`CRX`NnU4KV9(G4 zs7Lkt{(``vVP2qaI)0kEQttjQfibjZPpSGR7f%E&D^165n+|K4MhE%hp=A&afElZA zC-PfJv2AV7Y)S4sWO0%8Qqb;wHbZ6V_iPs(6LZU6+~*dELx6hB?0d0V^*YWeorvUYOzRd(a<*=@r~B37 z(laOft9vz0 z5x^x`*E}EdvH;$y)DV*HiHrY(qe9*GyO78yGyb!_STY{!a#XnQ{Vjh9iD&N@ z-O}`g)Rc@ui6)#qy$$%i^~mhPcBr?F8`+GKgivJ8dADj`+#k2v(5Y1;UhY~j4WxP3 zXAL3p5}t(poNc3)_cK!mn}rDn{$>f?I-7DZfwN`9);HOL*KjL2^B5>2?iO_gOq9+X zmqTCtrz=sIxz3_z!oZ@WZ^npUQ9F z9Y2OdED{;h=?*HLyzabPbN?s!8W3|BPo??7kSJA16J1J$;>_O$RQhjWQ>lBFBx6wc z08RwMA4{`Z*+0BdAPM9m!`5acxPwz|EB<#exG^##NJO&WX}NrWdo>jm(wzuGD>X*6 zgf01c*#A(NWzstVM#=!cO!n{*UjDnk^iR0fZ-BGRL?qp;4AX;3j5Vtn5S9W@-`05W z-O>GRgPK?J!Lx}Uyakr-XRsb5{;jpK{@@X!sGIJLnrm@gztm|ic+~mLHIw)a4+2@= zMUqchy>K3m!y#7rQMfn5x?QmjizKVY@2Fdz|5MlFH>+r;1owK#^Ov|vaZ2* z;5UI3z3>~^@E^DB6g7t)BWFR5jdteiNn{}K&&Rw7&RNa!L5|#<2^($#o$#-+!KzrlqDz%TNQRW+F=xa^Jp7X|c zJ=4cpOO9RBBCHw@6dTbkLKSe0#bh`uY*9QFGoMYchkY>~qcxRi&_ zObxVc>Gw^D$}z}cO&a?n;+zIE8<6f~!9VDpRlZ`9r*WuV?luhp|7>8>yZmirX28s| z%9Fp*z4YhbV8V7`znEN*aeJR0P`heYozE*>pOdyyqBy0LT6e2mwA;Bp;Bw1&&V0y8Cy#FrNhjo4Tg$)d}?nO>fsZ2)ypR@FZ?b< z$N^R9=(yZ5^7dZ;%oM>+4k!VltX?WE7^oO?b~ioNxopx!2$GG4kVxsq$B4TH&E}%4 zhXzT{M$oFD^gdU=RKzRnfE(8hBX9}KI1}{b*UO$BAqyNsf86gTA#$ZgvqJ!euh7E6 zHCr+^+WRX55e|uyWxw8hSbM6|K27^0L6fKFt-2!`F0Fr3$h8~X)6kW$tFheCITUx3 zIC$f{z>;o|26gzm+R)=aWXs&~Rdf&h> z$u<=<-og$wyQ#66y_)1QTU?^Kt8O?1UfBzAD;Y<}Wvhy}m2 z?C=YWF6QEw7(bEe$^@ex5nYdo>1&CgNK-~XgXMLbCaru<>0O}l$prIf2bwo}iUr0{i1 zP2ZDhEDnzi?+AWtV}0+<`tD)TDaSuCG#YaA?{L&5WBZK5vv^ThUj3Br^Uq^HOe(y> z>=y=I+Q*7}w#;)wxo|hOV&6ZW${xk`Osor5sMq43)vT~-c_MDstjok(R}F1#eC^Tj zwD&4Cs8ko?Z#2fV0C>}h1d?VtULNQJ9DNwnG*?Uc+FBA5?&sD?i$y*%x=P-jE2Pr; za#Em44thb5H*0=w(I!U4v}3z=YnJIIH7sbQo{4V4XXX@Tthdd|&m!`KXANz6)BvA1 zOb^t}EQMPZz|0QB6>|7FPJG%Z`6}Gg9{jxz2mnxQWeDOw)H&+j?e#92dTLz5$W)yB zwy(s!@&|2V+m`Xnb^F_Z;}f!V<{GNNub`gC~V zUOFtPp+~Q=IX?58iNG6w2{O;=C%};=#K^mPF%d`#D-m2j+YG%LWND4ztpN9 zQMW->b^)a*(@pGVV~y`(V5KRlclMDFgFZR|s7c+yV$4z4N6Vvs9ORn@=$Qmwqa*mU zfbd#QDT#cRHi@T&u}v=9f!s1A^-4pz{h+fHGr7L$qKeal9bs9tSg<~qy0wmm>_n_m zgr5G9_ShM3dNxKcG??yQQi;6zU-6Aen8FEdr`~8v^FGhDFXxswVx}>q|5OYv2RbTp zDa%{@70u)yiU432!1$N%?RkNXcD@ytKNjY`UG6srKbOYgjw9&;0l1L(L@`c3)K^iu zyRo6;NW!zEa4@9+ZQ+Z?@+M6a(lJ?f)A2oMZK?S3ct-)B&0aWA__&-36%97CY+(e7 zR$3@vbtl##(vvDFcX!GsE0G%hsmV&^y3$q0&TrDAsDeAJBt5ev>$1oqTq)fJuPBFt zN`zFS_1?2jdG5`iGkwXi@3%vzBfcS(L8%fcWqJ&_E<{+rH~urIKgOg&9eOVbM%(AZ zf1q~*+Xt_>r&$m^Dcu+H*-|o>$B<|uPD`;BTTTgoFDeQhrP+$1>^g!=&Ry?q1VNW< zu4r#skSeJ7r5f$~Pz5=6hjn~?B{Z-zHd7MFvUr~5X{kD=u`rn$9*d~&`bG^aG9OK| zy!5y}jeMxNsXRH(KSw8kdY9U{Y`zOLxq1F!v?N17ULe~X9 zP10N_gKpunm;3CqbjJf8v~f7AFKRi-*Xr`n7j_mt_{cKekazg&XZdmqvNvF`u#en+ z^V;GvYABxd$8e7>a&P{^Ns%0e|jHF|Y=YrZf|hX^I|ogQ zL0i}Ay8LxBW8B(gbIjf#WGldIILiJQW|}Q;XuuTW|Gi109fA%Q()Xkm?;dWYV4r(J z7sDH&3a4){FVFHadqnvr&0iu(=KnwBNx`m~rrwdC6FN_JdzKg%=Q6TqFUU!jQ_GD+ z)`kxzS6!n^OHZ{m7pu=69kGEfS<2X~d|PU2E$REQk{vfGna#-~ ztOFsGR&I^RulWK==sWQeJIU&vMU=gpqOrVMuyn(?bhm7Y|HLx1CItu>DSPS(R!R!f zUjdzteY`cXhV2RU`)CdR)rWbZ%|6F~gYB7sA)UG^o+$3LMG$M$yfz3Ub6w|ilhX|X z`9$Sxer{CA$UXlhiSK1tk<^d7i-8$WYZ;l2W-G6IQl+_V-H|eQb*HOk)!@Sj2x0fq ztm_|FGuQfRzQ9lSp^TZb&wH&Zanm{SIWDnx>u2s#C9W(gqPcW!EAD@7Qq}3A{c^&Y z@$7_8sy6MPdO!3SO0BnBI71HUGc^TW;1e#wklobT-vu5w{yX^B7t|B%WS{zzKJ~0t8$bn83-pbh{=>4GKfU6t@Rr&9X$kF(w;>Sd@%s$xv>Va0mqQYD}CT? zO7ENuQqQCbx$z`S>3&C#dZ5IYZ{gl08qqzd0N#KvU_;JCoPvH#&087087@{l(wS^?7o=nq7Eq%*UwuPj>Ik`u~X`orx;>OA!@0TUke=2b2@}_@y!8bn83_ zatIADR1Z?jhr0(+OWeP3ZkYk5=E4PAZUe=zIn0bX4fCH9r>{_yLi;a|yfS1RIxG{N z0r~-;>AwpHiZ{=X$DnWRb{7h#1uB8`Tz%K$lf}?dG23fX<@^$#cyC65#pD?h#{Syw z^WyVfxY6EE+0(mJ$6z_OxnSmY`j4k8DB=x__+Dt;8D)6*=>u807KKq3bgX2S)2jfk zPe2&axBdrTL7=`A82V|%bSgxImJ59^#1W@RAqX~+KHra!Aly6F8tGagjw41+xH=W> zI9*C{u@RABdBX+HX`5O<4ph^z6dzuT;$$3AF$@`V!#{Ue(?VOt<^eqmO0IL*p?9R4tVRpwqu_QIMWAw+N(S9oacP+%x3LVQS0 z5fWvGc121oJ4||+0#yWr&wQRMonQX0s-{&UghVMrS_lm48h0v`{lW5CY)}{Y6|#to zG7X|wGyFQ4L4DGKOfdLJC<@UKdFl~u2;%02ctBKK|D3#2ciCL8AWxUdVG$Y%h9UsW zGhGYBkF*aYFQ%I>p()drib#m5Q^2VkS}(lbA~u9+=4+vdX&%7y22tX?%dUS;{H{_~ z*uL#$D@Z<1hzzF`Dlqt;S{bxmkxD0Vg@ym0|D%FKM{q3^iVW*0GD65h*2O|hn_|2m zuGkl&JfCHiDf^#O_d?Jj6nxeuc!mcRDverTAS9J|aU)BiuauSxt&@s{wLHiAYbY?> zOT$h4O!xWKn(5|!iU~!AQ>k1scPnCh7w1%TXwA^lA#MatpE5i}9jzYw7*AY6TPJZX zAZJFq(&dTXba^sQk7cRq63@7cTWoZCDPy318-{y(wCd7MPixv)35`>Oo$03W zzI1W8C++EKNn5p65S|*~T19_XOrP4<-4=NZjJd8t<-QrmdJ!Y!DMDO*>Qo=Ut+ykb z!q+jLyVr&yLaT%VL%)pOPKzSc!ZF2rKudw-UefN4-C7W|GH68@T*H`$Fo@0dDAx!1 z?*&>ev|#A$-9w!$BG$xoCgV9z9*wRd5#&14#kG!isOU*G5QDn zMFH;E5Ys9v6icCfCZyWu&Rlv$Rv)etD5sL%%^P>Bs4zl+Fl z>Xb{@HbCM$)}m3Y8VU~uMNEf+2x_^|4?_oVu{eDSC@|tHHRN^C861KuDR;V!U*3)D zW1%x}d=YQFVNs+=sx#SkdQ`R+gfM_WOPUo7exdgZzv9GviN9a{6$yq~2NVhl3B`(2 zpcD@h{aC$;uuOweoWvJBK#c^`4BZ@8D6g>-l|f zdM||M_54nSDoYbf{DZ*rKT6gW1X`fV?`h;%q2VbvQkD7Ikq1{g)$C?!gS5Pp2I=XX&w?EiImrFzSru# zh-;?ZcGCQfT5a^b@T-o{kz4;1g_jnRG0465M}gwkA1y=KA4BKF=0)p=BFXCt%MHkN zR>nEQQo@T?ONIBM*D{<#ONUd+B!GS)Y6NWz*zVNr9DM7z+qat>Dkc;f3kZuH2nctO zmXJ=8r^Q0S;c}F&fxpSGog9b5Fl1*vL|7jI9l`b2(1&B8TgPSyFlC(^?woPS@F*lk zQsY!9rwHY*`&uL@0|{4X=ukb-x;phDG7Lu{KW?Pw-WIW16QV@Rfns74B>%v;PTPox zk=8Va@X(oi=ZMp)T4D)W#l-H>>`$Q}SdUO~`qMtd!imaH!@623tgDz<;9OcQ6c?^i zrDa5cVY{*ShN1yzQE`ft$KxIJg*IO5g!*zQfV8q~Lrm$9p@^6xP0>-NP?hOZhUQBU z{Zd?(_zkNN_t>x13JLF{g6>%h2YnFoSpmq%RP|@MDqNT!e`dBC;qF<8kb7NYuPQ(3hALXQ*X$8ms(=tm9NFEsr{fYw^&sp%v0)Y;_bj%_&&1 z(PXSj#h5^!J>--?@)agpKNJ~?5Jkm>2?PVAOGpK$7@D;T=3(9wa;Z~}Mg)b8$hsmQ#z2_j-n=fFc1?uewW?D>#ldd4ahI`wT37< zoEjy_UA~NQLTd)ZOp)OV zQ%ZhjE`AncHO#EH9TOYXHENbJLs0U?*TD+0>Yt}@-ocH`VYkzrZecA8ZX z<5omhfu)Xr% zSXWWtf8+mK{=Xt3z1Ffine|+qDg*|Q^xIxoGeTS_NC2TC!1A77p_#288A~k|%Xo&} z`(hc-^KzbLg+}(PuuUxySwO`y%p7|z^R;l87ZwXaT7bCXB#RgBMI|&sWQ4VYYtv#8 z0wxQK5^AN;iXklHaX5oV8S6M@>Uu;*7957z55sG;?J{*Liw%W_Q>Q{?%z|mibF450 z$(6iIs3pEZoIy;9;#hGZB*T8akEK^3zLIQxHe$eIfR*%1?ERV_OKC!qJ$B%7s#KZU zB(W}{Los2#=}xT@#uY3fLWnDDB;{UTSXMY^ZX=&pUkZu2d0wyOV{l~9^mrP9pjE-& zE6GY>7hIz@v z?@%ytto6e(8+rM~edZiqgO1|6ctJWpc^5BLEgy;xuhZ!Z3u7Ie7xo|`Wz zb)_Pw+lURkteu8aR+dsgZ0>I6g7F%r`stNL7*Wnevv;uQSFEgPEO{%Cfv^=d>0_w5_tuNgkRC1Plgr*iM$)@Eg(2_ z$~H}bpn#C{YlYBy;k2kdhy+)hn(e7WOf;t*iV*U&c9`$9Cxyml1cUXQGPRSmounx+ zw3aApye`E@b|CKzaigDxLPOD^1w&EdH3xbd!~etUU&pmhNZ1fn#ljKR4h02}=y@E= zheFmeVWb~vEka-{T{Xy10iu;cf#LF{LctMVybU>4TnL56Qj3OSq=)}ITP%195*ja1 zWMmP-z{migfG}Q;i>Qz!C?bp(@gbQ|M1;dO`FR=yWvgTJmkJCCd!8~yI-zsAB^|~k z83pBwr}-foD5C|Uh!Dw#p?NWts^ptim064{G(2B*PSb3!94js)JDKF~ z73M1h{9SQ=@)R5j1EJN&DN$Lh6yc#L;a&m#GPFkM=&ciYw8wz$G$>)ZVxzhL|;9~<`VLvWby%2RtO zv%imi%{X`*fpIeYG8i{1>#zdkAY#JRrxY5-H@DO8!M;jpxO}ZUgF6O?wWC9;gey!T zh7cKhsuiac8S4=l3Jon9PL+yjQ{?Fsu2n+Ih8yp>Cx+qP_SV=ZLo0)OTsT!~ssBWA z@^;#kJA5k+^xw$V3P@QcGR#w)3{g%Ch$~20Hbe&Ly$FjUNCv5|WkiwEMm@!aPTrjy zi@YM$%JA1vTqr^mDI$M3MA%Z^yc$GFv0x}HLTK|tyq9gJcGh!KA;>F@vM7sTN>9i^PvjU@zc-f#&=mhRcQ;Llc9}uvx zVgSX3B18WS1%={6a;OzU3r60AkL!S}MO>i)QB)`x`bAqfp>SO7)H zqT?{cSch@zNldkPNW8@eSoAr7(3WXN5?tZec}e}!=|6^&X-T+Njv(k22{*2wh^a|h zJ4jO;*oJVLRaghe*Du6tu$>|vte1(sLIfTGp;s&@5VS}Hw1ALr9rGpqy@(x;L#)td z?32N@_*-K7Sar?*9y+C*-r}wYWz{v`u}VLB)booU%1WQ9!>S zE!yK+j4M7A4Xz%gn6O;&ztC!7d<}7hj%gm39l~Qu6o@@FfK#YKY%H;4c$~}SGArqm ziU<8Kv}ov;5g@)eJ&Hb`MM$<{h$1w?8JsahtHyN-3kTgfNUqk5fYYWRvrg~vtGdS$ zV=Wtgp^+Sij{#|ZrFZ&~X%cpYf&xP;fka=TEjjngz5+t>y;Oi$UXpIO=%Z1QZV9^^ z1%c-!%uUXx#-@)EtI z)3$=cYjzNJ`jqv{bg>fmnzWjD&wQb6?P%tu*A(aQcMNkL%XlsY$PCx#a*GNHSD>=a z_O6z+hnL_!UV=M_J5|l=_WW8cwvo2o-D@f9f1;zk;>%@Ahd77J2)kimY{Ul9)Y{>4 zrut|oHneK!7_6VhTw4yufV+gB;6;9Nv@0Ap-3(6WOjkBifVh;Z8}aQxV7NTxA+&3m6UD_IM317z>(FOJ(W4NFy)uA8L+i>qplFI|Cy+IN zmqNqoQ?c}})*PS^3+Hd(mt&{3m_7-4RBSkPN)qX6Qck53l1D{{aRrE>s}LzZoZ{30 znRO}RV)0OLxT#{9Hl_7Kk)Z`cONH@R5eh+3tP@3G6me0eItYCbtW!49iZ7HvLZO(* z#383eor*X}s>8v$f@zWu$wry(B)KT!LxNvKL=hPtXYoK!L>~;T9mg0aoL1#DDEG|}S~y&F>dv)8 z>CU;KaQIeiXk~RJJN-0FyE5LJ&W-k@Q|=Aa-=3#QAv9cx>ev8%8tg$_xFoJqrxtie zIb~{ZH~rp^G2I9SgvNg2j3 z%h?K@!ktFt?%oHx5H1K1trrsYZ3vIDqLfbDiVRnTa;lX1V~7z&iBqB!1*U18P)HQt z3`NI)?;V8$d48l*q^xhKPxG!cMW_X&w-Of$4#h+`c9W*i2&=~uES*NB<-`sC^xsfO z6o+udhv!n1=$GO2C-aMyBP<{GSNgjvP8E@%Gq`0G8^w~L$Z$Mx?8zTF=nM4!GEO)K zC^|fjF@wI5`(8#f{l(>LT~I-5p2u|%A4P`NLZ?hMLwsVDDf<>AsaEpjms$u`SS?5k zzYGYO&`%?Xoq3hWC}9>E{7wj7XB*t2gZrwOfb=OgVqU!@Q4%UCti*=XrpnYQcd}L( zl+~nSWg-Z$BEvdC#v#uoPckiGk1zBPUPXsr_ARHiBBo9OMTq504^kgxvbZSIkYYtC z9j&!mAOFHH0<=i7@guo+whLPN!0+SjXp4ap3f+m_kKe1xc}3 zWU-LNh{D9{SnYF+z%e~U17$2LY^y*4;xe`|t*V)K7-6wo+pKLnt6D z@3kmu^4=UZLAVt+lJ4v$k?VU6iVF$7B!7VyibP!Ez8)fPx)vGFtuXO?n#oNM;X=B? zLMS%e4Rwr{hoZ~le9a0Q>T*2HZ}Obc9)qX?#Oqhk?Bs>Do0pu^p};<*%BP6sGUHEQv2Ia{qC=6Rp| zzZ55~EEN_FM23#QT9{mt*l7j|i&)weNJ@A0wZ?k(m!^8t3D>b7>`1%&+tPMk-{LO0z((UU9(;XXz(pAXDG023Qd&P7Oh>oP%4fx!7Sf}qz zkQqt1#9My_ts3t1tq{>7Q2a5pROo-P3xclz*hpOApufdBgoq;G%7(slZJ|G%bNO0V zf12t@`w#}3hb+sv5gB_B9tS7d(-Fi)EN6=-xiSyQq27%P1L?y0-pJFMVR?myp*|Vb z(?MJdiB=3P80ITDoSGH;Y;dgT(2AjOGSs@UpiqLmDJ~Qr`f`}Q6Ok4BcObNMjE^Z+ z5V_*m>$EA!W)T%aLMfRn&;p_uaUQ?oLW@P&sonpx2n@xC;=pN8Wr|dY64LaqP-K*; zRB;Rx7)4x27!)10k6)9)g^6 z9!bCAKq9ZeDAtQ228^3m@(oM=QUPM9pa{{xd5g#hYXyVjkBf{VM!Y^ngTJ$jd*n1H zL(^=>a;3cY!DXQRU7jbme|^;kV+i+43q^7KE=zTq7aQ@Br^t{%DKHFm0{4GaI2dZN zm_SIn@{~eDi-=-Fk)eN2c_!>%u3qNGdxyt5vyT+y-$e#2qxDRotALRBmuXb`PWfCa zHWVH1o1veDVXRJ7SvC|CPJ_~75t~u+3~%PyHq=b@z zpgpEe>7%i)uPwxd`)9bjx0Z}O2#h@l3g1yX8UM6Y9AymMgSc>!45v&fJ{)In9qUhb zObn)L2#s@toU@k(l$1cR|yS;gn~jV#&`|yFUncISRKmh zQ`S+qxC&L?q>u4}`n?DXoxT+gmJbUEVnw0hIiFq8im?QkuEjz@;q)j4gy&H3nC5Yr z5>*6-mV5J@G8NVe^7L6Oev5u|bF6SISUS}>-iv? zEA$cjMpz1Y=H2nz{-IdcilJk;&fpD@qgIHHA|p2FQ)FnVAS^3PxjA2~KqW~7MQ}7i z*7VPC%9P?F{4;=JBX;@L?*b?!mRc;F!~d+02IL>|7<(!7W&sf^NsVYV;JpmVH9agA zl$B^ooc+QsdCr8B-{;qP!bMUIL5^um9BWYsNAXI)NT3xLWq%2wRlrr8+?6{E1w`l) zQ4nPy`U(O4JIX#AS}5H0d(-Bo*pzR}R=5UjC@8dkWWfXnBCZ%H4(1_(5E8}WAjwy} zSgu$iyymc8RKG{DQyjIOmefssuOY4(C>YB1S~f^J_srk#HE5|R78$SGdaiyYtm`@a zoz@fHuQA)={N8s(kAlIePUb6s%Dr{B?wB6O|El#NL?q{SdX$z5g-KXK$X5jU|2aj> zxWYjZq4h)G4xgbSM9Y8fZ!Y3wXo$WIygr47mW?7F6c=8bLc{YFXL6@SDHgQ0XyquD z4%3|mm3=WNLmSy*!TXT3B2XG#+(1907X3tQJFhMk77v6-OrfG3r&VPKa>@XgyKQb( zNO6yVVnYFXu;qjVBq!@JLAZi{7OC1c5TYay=dB&?8PSJ~L8 z&;W)W&yhc^l|X9<3`z%D>=XUQ8@FhHbxA>0EDE*@LPJnM`=&UJnhL*xm++;mCs zwIIZRrWto-nxMSr8>9Xp4x*0?}6&MWEUR(Sw9k;m;6U416Jja;lBCcPG*DAagf1CHnWfA8I{k{GM zLrv;ETCg}MDzWo>Yn>M)^d+E`=8{+xt}ug-0v~1 zBekm#LJS0yajL+6UZPGR*v3nB-eqrTBfjp16-vto{}IAu1dKvZ*S6NB{k*(g)x}j@ z^x=rrrhseNPe5d6S|G@f-EESF{yfz|YsN`Pjn17qhPu*>(V)k8pASi zcCI^?wN->TZA$14=om2K@=t~iL2E^ zA+Z5bR*DEse zYCk+PkVB!EkZ^`Iqx!<_6f3P3Wm-+yYr*MKrYk%Y777fZNYH|z7;)*EW{l%`%Fja<8#;I^EbMQJ4h4o&oWl197`lA2eie!ZMTFD#rV$yXzKb-t#O+}n zxDmoyE^NqKZZ^r2% z#-D0e@WbE;aAQ6{xH#?=_`&StKv%jvoR_q9CvZ3H)576~eCrr*b?$ad-qDVL>*V)W z(4wIw<0Mdc>_tqtRIMBIDJtfHdt{t+7jW`)jK~#EBraI}oE$Md^ zsV%M~1?e|UF(4EeV{WX6;E>eoLy_NezB97VhT_D09l!&K46W;0Gjs+omI;MRnMUO` z2nB{>#!dV>Y18(dR^_?OQ_Lth!ZLw?P)ummP-s{te`MpiXY z8fDQ5KU&1NVhHT}Ki&t!0tyu5_9MlGeZzhdei?`fg@!QR1{o4sG!z$3nOeG(ty861 zAz94|3J8?brrZTwaUrx~=yy>dQFMboEf|W8yi{$5#8Cn%$tyxbA{m?W0ST*LxSir7 zxeaRtWU`Q1g@oi%Qm$1&g029ObcfS7aY?#DLdR$wy)9G7zB^_M>#RqdtXrF>MNLoE#in^quTnI{?%<>^ zxZ5_u!0BGL*QhAL0zxObM$+^DQ|t#W_29rew)_nv?l*I{!82S zdWN++c|PK%#d5_JIuH()ujiSl=h-k+j9At>ef+2Gm6gh8!LqTC0Ogtx37*e<1*+|O zJ}q9oUHo^557XlLQsD4>>I3Al`JP{^nu54Y|I;d07AX+c$%_|cnD6vJ`+bAdtpBDlaHd7knY1q18_+PF&k zHLmqW!Yia3-pX~{!(jgazx57(7uR`-b}!JL;Wg^r#czDTGTeu|7=Z7h-ra=aRtD*t zEl2sAz|G)Rj_;xU7g7Gj+>`r=-$lE3(boN3*S%cNea69qQcq3xrDa6P7yW7%J9nI<0{130-{y$o`I=zhh^ccr) zX=_aH;idXM@OI*FrOuO8_lwbPVGZZ0qur+TG{WRbUc!$fLS6&jh(LKg z0^|vZ>k}Nmf%rQR9`8qxyqA~#yL*}g@9k|)@91ty?Y zLGm-WCy?~FkpJGv&h%zP!DA5rmm>sT1^E}RsE%Jw_-aJJ8xavtAP8QIFnA0R@*2Wd z4mYP)fY*$*rB@>`UP0Q+IQOIEzlyZiPIRQl5g?CH|9;xK2Z3=X=f9it-$%O-bKVzl z4G#`Br@IjscY!;&*4xOx5dwD^0(SvnaUMc=7Mv%3k@Rc)_Dcwi(+G%T2#Vtn%46UN z@xu_xLy*fugvTJ9N5LV)#{rJ_gT3VKhP)c?0lOO4r0oa_v4ixTrhzSx+YNN;b#(4I zUhuPEj`%uA?s{N2!|^ofQ(%&gKgNJC!oV;D5f}sm3>0FJv=Q=#K|ja6ko6u=!fuFy z=mNdwgGjH?1v<_DvE!1~V|mWkP1p|kZxaZGR^YMa%oCm?>Q(3zqs)gn{>)^5`r_0;`p9T^dXll{&5S*-M`*kOybZDO^l(@D z*l2J1=tvLa4s9YXp6csJ??hm{iShEa?OYFI;Hw$iUd1?Q{0YX-r+O)iPx2YE*w09z3c3pd=5HXt(AU4K2{4QV53TPY_t^1j=^u~-l0 z5E#>xn?zhpfbj~G)Ssqruj74fI7WXP0b}${VSLmygogcXias;}#_31n2#;~%V}zq% z0zxCk!I&Y0XcB@m4e^-)9uGsPh9OHshz;Xo5T;28))Yj^a2z5wfykI3ZaBvAC`2v* zK@{Ts3z@(tZuaoq_bcrM0p?i2O#SQA^H0t)?$B!y%7A}w6lwPy9I=L zFLe&m)-mdw0EdY0C+z@bjUVKk2aO8|`$@{2Mi`tTJjppu1=ge!oc9dr=OFRtAn#{L zKSP=G<2;wsj57#=D-idSw0WGij&km!T*FD?=O}j>(l5@_)>+yLK;%zyEyuVohq)(* zA(VoZR829W1;c0%Oc_$$0wtIpy zp8o=EpC`2K{rq2h`QLW)|LxK&)v5!yMxdBlE%!CuPlfYfi}dDzNxv8BQ` zo`v1y9pD;w(Z&|aY$Sa%q1ebXwUOs3(hvgM5e{1|2g%>ec{g+Zjiigsw6lr4jik?W zJWt*x(zbB^EnLTX(q?FD3ZXF>pg+<6TH0C%=E$GoSWJQmp7&9n|6xSK(DLW;9?ux! zcm$y`&NDwsnL*0*lip9i5`BW>KFalxH%MO^y`=RT=lwOn z`%ColUhAU&c7hK2yy)b;*-d&6?@e*t*CEMYWnla=1LKz==U-w_{37@Yq+2`#zQFMp zAl;v@@C@Zl`yAx?v*6PVRG(%b`wTGc3kU{k?TTNc{&z|L9)t65 zkp5lpeej#$cS-+!@Y}`(<$sp}`wze$bNr{|{ZD?=UohzZ1;>9$_}8n%s`S^C{af&N z;O|$iO8*4@mGs1U5-*DgJtjXw>i!6LnWXxtX2ePKC(&`Bed6UHqcWy~XvxJZbFe+;>U)4)`{N?!O=)ejeiX4e&GIKSKJx4!#DyY6v;} z65(eM5T9tSNgqc16F1 zUm_G&z)f81ZTz-7D%{2KJ>XvOAjc2$+h4@}d4%xA+?$tzM~T0hwAXU~UQ74{cs+O{ z>2D@{JLykxkKfO|{s4HI_=gEU20j5k1wI2l559=#_zM5k*ZI$WhX3y85&pke&sawM z7x_QGg;4np|MU02Z-O6y-)pK#e}d@$^R~M5KM4PV=j5+>p8kgLA4vQ64*F`R{gMzN zl6dAKZkm0ti;!nE!cNnxxP8@r7k!m@uOKc;UtUbF^6c*e?HT>VOL^0y-xHSjP$zw@ zD~E#}RhuAHK{}!#4U#tij3XXW4{deRW*6wO3}ySs?NV+KSJ$L}BK*5mYtmn?s$GvLdleGzX6%e!t^mfnWIcRQdR2m=tZYv9L^uR$np0yiTlxyoj`ybgoJ-h4{X-L##|MgUmh(UP;vDbn9d`KJeY zk3j4{K>7EQ{{hlJNc_X(eVFhg;A8!3(q|ywpG6pa2C?&L%74Z*%6yLSOQb(DQk%X+ z-WNTt@C@aCl6qeue1@`L2G4W@uKmlL>uVf;oxHD8_G_enjdMrXwK{#3`|xG%!B@Bk zU*W!puY#|U_S2O6Y0CYiWw>w8fUj^*&Hqa4$|{X9lJoo&Wxr0@ui6&*U#8qM{0Cp7 zuIKtHWu77Ji7)Fo9|j*H z?`i(?_wy{g7rY08{%-J;;P~C-znAh)5kASY^Jbo-Hye`wCc-y>Ck$!hO|02j>p8&^+9|K2?Q|1@~ z;t1hk`rILKfPNuttK-^RP~x?h7J z|2ky%*AW@N0Svzbeyzf{A>QAn%(o!n1;0w#cfhX!6;h!<6 zDhU1xCKqmi)0R@4fAYH3;pUtHw{s2B+WVR`eaxalP=(w88_g=K(Zq?MPX0;AOz zrfr)?nGh@-w~^jXeg`l#t(~+^UaUglAru~qFdZz44bmhT0bcHsjvyoCi9&2bSeV9n zBK`jd3XnyCK{&v%qN0cp{27GBPaz_H5_}bW z8GH$R9()?H@o@;{M-dYr0UrV%0PiL3Dez8+=#${hkkL0lMxOw$g{VFTUQPU!gpWdA zU$SOpdIXaDFnEX#{s6ci+ym~S)87GZV*t1X+zhTUC|qSwxB@PNOW-0n56(dp&Oinv z?wVw>e$PXM;)TRt%x`=dzxCzdRp2r3IQQfU@CM>< zCVZ0n^mgzR_wN1N$EU%E!AHTz!6(6|!56sa&w#IjuYsQeKLdUaaq$b_zwqCDi~s05 z;QRb%Kdf7wexLvJzk>e<{4xLSe*=F`{IB@W{}=!NKO->yjpri?;t?V)5@I9qT%|Vp zt->N;U#+0XC_*DdKF_m)A^NDt1y#Czw&eeaxFG$@){ps)zxup})| ziHL$CGD195@OVH0Vm|2QSb@>~V^Cala^4UT6^h6Rp4hiJEe<%EB zM92R^So{^D;xE9T@oxO@9RCUUBLu`Bg5M$i2jI8J`#$(CP?UTd{4)4O@J$58&w~F1 zz7D4xXeBy#>4pyb-(} zJVBW!=u?k_*ML`%_6qPQeeh+3FBSAV@e&BmiwGYEFAy9*OrLw0J|`Zk@E~{qB6Poi zINcAy5f4C!9)LvMU*WzA_g3Nk5VHGz4EICU9w>m=JqR9>+(8Im2>B~`fydxQ;Kdxj z6w>%;GvpAG`U;5aD~P|6_^TnTuZ7q?4rzTI#P;>z4G`-$f;WLTgSUbwA;oV8?}D7a z8{+&P@Lupfi1Pat2ax5b2|rBQM+E5~<@n>^li*XN{RH?7_$>H5;^B*ZYtok?`CkHnGhZwSi&Ea~4Q`~}i~iL_rHs0n-veA|%pZ<8;66?_N$ zI%(fW%!uz%=KCCfuXj!QE^U2}>--+!_l0qO<9C7K_YEQZ-v@@j34V*TA0R@0NO{BG zGM{_*UGAy)9{2J$IX2z$;=3*8uT0+~{rl~d2j2tVt?(P9e}{U%Mwwr&@NGlVe~tWa z6aF&!zr_Fb3kZd8HZmrIZxa6o_!<7+|5&#?{WQa=deuY@@1(Tc)n@UyuNkywTqbJc(Qg)8Ykatu+Ahx$ltXG zg1r-Ry#;b@S<4KqTA4->I8)S_t*ec=*Ve^3;=0TAa{a<<_8ePjV;h*Ouc3_)63H>}ktOBJS;IN&7mQxu4GSZAcsZ52zz{ zwl}AXyl5}#9L|gONRMl|H>UNJndP2sY^hIfD&?B*lbmA|;xYnB8H1#VaWDZ{nP^xO z{u-{va(bvU9q4UM3y_nM`cdNB`-bv-ZhbaxUpJ6$THBv4%=E-cQ_ca8&B7q??uvb2v_0a* zf!d{LUA0NLgSWmI`da9Bp$z;LX=9x=ske1i8YP_TYe-v%o74V@_HhW#@k|5sx8#pPUwCbE^X^MgpT1ll?8pSUlRzh06JRFeSN2NG$$2@5UkOF-v zmSWK%ld{DJBUXmuxptY^Jf}LBb)L0x{USR&VLA4&pj>l&nU~(7Qc>I9g4v)JE7+LRaTH% z>YEXc>_Fd(L5RQi+?~4@eJ$uemhrypz-nkcm*Q;XgsNAXPvmGw=I*_;Ql;$9d!fgkH)oT1z<1dW^S=_Kw_wE9U*)z$GnsE<{l^oP&~ zL;nXIxs4aN`jmbX`eayNp9}pkR`XtTUkg`)YUWt~4Sg$wz8Y&tj}7=%>8C+D(5FM# zhJF_2TekRUn5GY*yNUPHj>kHG>#L#fg}xZgls9x0D)-39F#e;^QQXBP+|W}W4aX4s zntjo|a7ur*AKFJ;fvxO!WB)X*^p$4%ilP0X_-7avv_cF!AdBq{{2qv36T~c5o~nE_ z%Dx%SUw4(MHLEM9*@7Cz1mN6vSC!H?!@2V=OX|u)#TnP-PIc6EKE6H~WfdvQ=)9}{ zg?ugK&x_J^U|-3w;svEeQXDamM%2?EKtYmDNu{{|3w1u09-{UHnJ1 zp;K}3%?L+p%IF}i^S4gk9$P+^Zsl5aM7BN8;hq@6dipTvOW`%R+xP6Ws86l{rQgPc zJ|e^Vc<_#*u4UKG!V4D~)53gX_;ctJqW^`vo9nZnPlRO$Iqq)vKI)56A^a_juSh*y zpFSK@`dI+u`Xn^g>EI9VtL2_@?R{M1DEC1h3*!y^7u_8z(h&D{%ySL#?j0^zlZLs5 z0q$R~znSv=2(3Z>kGV<4GT^z!sn^dv?9z9F|GSIx_VR!BAPigiFPr?IIgi)UXuN{y z?fn0}T>lWiub1m+@d7}xKpfoHsC1@GSF&rPdW(60gv$#l;u3%t7sQNqyJJZ{VMvX9D%s$jV{Dc`z-3|mv!{fTKc15 zhQ3gY8=#4IS7YspNULEixXw+1bez_?TW8{R&Drr;XXi2ZaDcp;mr%C?No)V9+IiSJ@iHeJVT&+T0(F8|n?jt_Ju*O}ke1+j0fOFcXUEj&bR zppS=Qx}`R4>1vFnZ4VFSC2jk7U|d?&Ju+N1W=Efn-JJo~&EEvU(AiUg5ldM@F3h_) z)0=KxKalR2A51r`8;pH3b_{Y}h>K3$$0qqrh>#0&y&)o8##Uh=k$34@ow@f-@Un*N zpPcRvk+6$29kPeod2zP$|90|!AWSw7LJmSqbfhDQ5m%X-B7I{xfwxB9E@0kn#DyzS zZ5-k}2#nZUgFN@oP*f;pT;|s0ac$3~ZC&+hmg`n*>_+75rJT;e%aU%{qrGG87wKk%wp?Pp5E~FLgfzg+_=6@^l6+8@UO^ zhJ;s=8g&pFrb%+k>Mh0<9)%G5a$oAqT~>y&e5{H@xKv=cp`9?UbEoM#W=rZ74-)#= zc#n7y6d^7^S#H))@^4;7ZX>RRK`6JCmyBH$4wWddob`*Skg%9v+6z%bnQ-_fO;Pf^ z5E%a#q~sUQ&5(#4Z#9Jba4;8Z|3R9t<$}$dJQ$zgwW8z+d9H~ zJ%r#Jq3`*>=)_utMeL!$f8hV-f2)JPj^F-wrnNAb*D=@&m+SPuF8itItZk^%Yah>t z&y8vB#o~%(E{`n1&pXp+QJ{EG6evDifl85ak$!n@syB`m1BwaD+HWt+^rdstJ!#)a z-ap241w>w~f&Mkx9=m{Fr2c6Hgq!l|EbfX`qX>*igtnq&Cuv6%8Jy46>)bWmJ#=>V zx29tV2%W)?Ge+Dv)1S^y^rVAB?XjqYdu;dt!=-F>2)~G^xNCMOJ%9aZdU)Mvx_fpw zogd};`rBejTldhoI^Lh|m>x>k2;E0xQzya-!Qq(aj^8edaiqT^9KO$iqkSE*$cBq* zC@y;Zzg(%0aotV&%yZ8SG0yvDlret;?*;eBP;7|9-HeT`O|ki&i-agLbOO)L;G7p> zaTtMdst3{3)fvY+aJzz(Lco=xcC@yp?X7uJKi`RxdPRl8pe#wNuvm*2arf^L1WGUY zE<*qXLHfSC^11XUP>YyoS;ljs$e@lZOz8x^is!%K21F|2L5FWeNH~UbZkMZ#)uTY( zPs4Y!;JGH>^SaTWV#90F;agFmL%6Ff_EN^x65Tr^R+S>puqijLqca^0gGQvSzLJl$38GE)Y7YnIZAQZ=LS0wy(2wOAG%4C`-fYDDFy4u`&~cTqkQqO<94; zbCjiS%f@+zii`>J6+@oG)vPvcp-rUQY0y)6i_p&ct?&1V4kL$`)uDGW2cUcCvfpX0a+&lV(PTuA(LuB}Fyxw=J z0$)KwztZ`;o<0?u`OzPB=+@agJAadpz^J27t|qO()u$q#cU&!b4ZP!;c%O+zct~#*XE>SxHX>~c;*szXcm$P+`4EJVmNmk1Um%5ecN^s{HnEl%060yoYO5E#~R zc~zHDHO*yb%LaaaA+o&3E@|sP=2scN&^VwukU9uj$GtaPrq(5KUFE|3vY&;^!kQPG z@i8E}?5xYi#wJRT`?ZAbnc?PpvlXe|-VUkkY)xAr@H2>nycyB5XlEOF+d5q3sX0WF z?Rt%#XDu%h+fgLs-^u{v0Lu0Fg*OI#uGv98FT?99Px;=s%&mj6_tpDnx_fE3Os(g2 z`Q80Ju8snE2kw`#ySpux#5Mi&5HIV|zH}L!8tCF0o8!Ogh4Ad34<=Ed8Vw$qNw*t%E72qMIlhFW+qB%m%g7|Y#~x4DNGH!pjksOaY*apj`2 zDWALd?j>)78}(7vm1QnLOs>xMM|cK;auV`!3UYBFM8;scYhgIuzF{z3nuTm2Lgpba z3kZdaYx~l*4Fl=M4gKi~a22S{hytw-hbIsVli8A>2+(>khXBz!p}-jK;04^pph22~ zVfQ#M_34hZf3iJo;dm7Bu^yqJg<>zFLhFViLeZhH@K_OXYOW_8t(L*n3L>;%oFeZu zdB>-_VwqdT!gM$P8*Lus+73|8YqL!)99lKpOT%Sv^Bx+A9LSy)jlmY4^F~MnFG4q2 z(^{cLL+gZ=5J{l|qrZuPwvPS-F_nNS7%Wr7g(TFpY}t^Q(spIJ5XMatl3U5Fg25f( zi^#}JwDPj$I97G3Uh+j)n5K0@;w>o;A}-Gk#?yTWjZ2JmE>pYE(U8tF=G{FrobCa4 z&kUuDf8|hxW6;RhH0+6H_=Gn;Xm!;zZ_9uFb>CF8H}s@8Fvpe=DM`4 zYpm15+5#Oui#d5i%S+B@jiVXW?5gGO+^R!&J47DOd;jJaF zy?#Y%C2T=(H$!?16&hWLjP7Ro6rolPEg6zPSC#5)@#}R)d$V8784Dm_uGrI#sBi@$ zcmI~?N#tC0sz!mK6+=N1gtM{^R75sNBBanIPs=i?3JVEvhzrUoE+qI`0>(!3lC6?& ziL;_W;ywfMEvr14E z0pa0q@%)Mkuh*q!b6xUiUqPct^7oHH^1Ws)K8lmr9FKdh)yRA9y_Rfy|N8j7BcnXq zT&HC%qm{k6eTK`Z}c#dQL3`GV4 zy8&@g$MbL8y);}|%Dpxe7tgg{5-KuQ(C^H56TVu?yN||l`=lQT>3i<2VV-dBjIx|< z9sRJrer3RT*|5)e1AM0uz9X)4op7PpDDW$}gN=JfC_M6h6g-R!$dYXZh>$c(!X0oV z`F@pGptzrdMBDrk>bj?do9Fpu$hIu2Xo&T=A>n1e3eCn6dxeR@LP8%Tox#ijO)+7b z`(N0Oq~8}o?8#wBx&xzMTRg`o`EHz~)xsBpmI}W@`J&JQVtcl=lb6CeUNpion<(RN zbx_qZV|l+^c|Y>r9)8u~kN0<1gR|%I-poHBu}E`msZ8bu71Q0 z0^=wI!JWNbs?sl?PKj`8lok!YcuG_xAx@__0U^1F(71iW5X7ZF_QcSVu>lf(l=zM7 z`a?*ZgUnxE*GJeJ)0GqzhamAMAoxXi%pxW>3^arQ**M7kg3LRONh^icj(wC5!r#YW z3^ojKEgU-~O5qTDX;4nVvDXlI9^0FztW&Kl?~=BPio*yE_u$Zy5u5xWil%$&;`;WE zxhF?H_wG^m*?=G*K%C;Gz|ex>QnpSX8Eoa5Xp@BHsU#z<+<)TZ5JIgR5<}CpY=i(o zXh7V(hFXK^7(mMj;GMtn(R zu#i-T^@5jw5O_#Khz8;rSrkaXwH#Qc5PnHREEijqDQyVT3?=%O7rA^@hq56+xEAY~ zXPcHQLZ%3W5Fylwb5g&Y%eECJ3W{Xa4s@pT2#v#x zp)L_V$C$U!){r)9g(vjGlOLSi`Fmd%;{{M)I2QXs%yC@n#SX?|MTXO*c5tldFx&~s z{uo-?wM=Z%s?pq(wj(4CbhM{qh>SgLZLzVQOV(;taQ};)tu3*ig@R*y3*$^e*;)^+#W zXj*o|qE$o7y?M4-M22}~AB~>s-Kte1Hq$kqxZ{P(+A1>KAEQ_>6dBKsAsLPz@qr^g zF62HQn`;95q~lT%8A9RhltV2SLNTuBs8y6hhFs28i-uyusZ)xKHbjS0rL<^h&FF0A z_clS?5E7jT4Mm5`g2pr{$X*-5L$RS%!?YqQ0_6L}*{{%wiB8CzU#S%w<`qjuhzy9R zB10$^7QeUy^CYSY55K%S9jXWrN$(WoxO`2QR4N?&`Yu@(?v0_PLE_v$0QpupkS;m4 zElIvmhy*yN=ZSMb^c4<Epabi8ihGpsz4T=r--f)NS<;xWg^vwd^ z>9Je5qCA9z0>Vx75F`ixUi}-M#jBMG+BILT*?b|6* z5LbzPHs9tA=!&>-dX5BJVlByc0Cpa$#J+6Mrxihxt(n=~z-J)Cij88$P^?JYCF8bX zx&u}ZZF;WQ6N7Zyi#9nnUs4~!gX36#e2K7_Ks;DSD~f`}HNLfu6f1|J1Ep>F#YRyw z!;3)S;a41gljd;0WNG@IZ;|vjhuHAk=KI3&YnDR8-&U^C^N(}>NifYz#`+3`@*6GV zHE7MS{f!70+js7-JI!ic(W;|R@%oHwT0aFNCWeZFXb%)?ND&#< ziEFeBVbt@hOVw7XSAI*mwtSvkw}=OScNSY&SS$*jxX$OsJ@P(!|Fi&FR$-#(P_%V( ze-(9kIutKa1cXzn6bsp^QJ4CNd+!w%MZg<|9}fSc`HL1TkS!rRCyG>#Bai1o{|xul zu>UD6+{n*qQNn3b6FgVLh+8da3Jfh9*%yj24l&`TnC{45tQ(31{i2MYpY92N4L8!% zlA&e8DNXDPFy5RWXIudKfH^&CPhV>~hVXE@l)~b~|4Y|@M(J{#hq);J z90}L}cHXlm&wLZU$$4ha&N=6tBX&mE$N&KnASps5MN?vyL?wz8l_*k7VoqWXA|;BV zfs+sMeCj^WTU~=8ukVj{Rd;oDb$_9&-lyMC{fvEphF090 zfMHz5wsuzq&+!<}2fE_wYO8y$Zd1BU2@tE851eCM>q3xlVZC)ggz**D2^4~b){Qm5 zhv#f+Zcf9?_)h>1!@z}*VSCrn=%G&K-?GG4C^_DOv4HwcprQ@9C;+0xq)xq%q4lDG zh8Fj{`Zv$Pf&~E)0*a8~F@ZucX2Uw?Q|qG<278h401Tf1Z8K1&l_dVF}kkQCguJ z3HxE?K)Dh$gbd+A$Y?>?(ru~(py&WJbUD$gp%o+CrKlGs3RtvM3ZCvQW&MM^_5;tm zilp^|ht>_1(5?&@mMXAemEf3Gg`!x7a;!3p;_UHo??J(}PK$t0;I^P3K&b4ixLXPW zzNL3TK9y+|?76r0oNHZnby7*r;<CLfLjgIhPXQ!I?vFW_bL=<3h;voy?JKM+ z+@HUhzrXbXJ{%Jg6n|&$!Q<8o3tB8(+|T>6jTVXk5&u72H=qHq(B)~N?o|Ln?iUc| ze4)dYzwIaAORg^q`?>g@buPZw%(k%Mwh&@pS~K#(d>JAZ^PFh8a3yfzA_K;hP_nag}iU6JAQ7 zogiSHqEatNScVywW5s$g4J^dMc^tP+#oj*GG0+PIvkdwkvv1$P^aB<4Q5GTco@~FK zwl1iog+mL5=X>n}HUfmMRbFpnYqoL-3&KjVP&hdi5Ye^DiAsxzZ^^7LeS6++CbV6M zmI~Wxwb;t}N9(na13gTTOoYWEr2CofX~K!{Gfw>$CP`NdKiOYn!sR^V2qJvwDy4gy ztKjYcKz4RBL3@0lGaUdrbg9yMv6G2gH>(2xgp;@{ejgg_48Q5al>4aHr9sHht>N@o zcZe|;S~L{hGJFGi1<5WLouRZC@N6*Y9uy1}kq9)UZvSXUIyc>uE&&$jXL{0EL@S01 z-Knsv)Z69&prM?c?v6$BbY0rVzKXrp30LtxJlPrBLWJ=a##89-q&t&V2;HKzW*nK~ z^Hgnx5}`u)&|0A!oal%;p+h$-EgXWxMoIxgx2z4^m+=?^j#i9q-0xPzW5#7fpf_-# ztU{Svhtj8I!~H3gKVd@`Diu9lq;!?a77d;Q#JAHC;EkwEs#F^I?Y@D&#%UDSsKIy> zp6gUlRbF+m5hRMJ6#EvixZWtfNw=-aa0UtnAH+9`MR685!gVT+Gq5mtIQi%Hc|X@N zxK#>5sZ-fkf&a;X?<_B$<1y<3GAdvw(4zGrEER0)S~Yi_N^C2bc&>eT4aIv?=J#*u zXAu(0`F_SwVEl~Lc6?s8jk$;b`3g1^>x2lc6$K{Z?JDO88GhH+wO8l)J!{?2&CsB3 z0b!&iyG*%J&p;0E<7+czzfPn{H;mYs64#c`H|Lc1AFZ2HsG6avXLZIBc+WtOI9=OoWN#M}s(fEuK z+hIQfMp#2=b7`tKo_SrPv|zfz|BY3B=^}Lk$q7Khc2{V3X_B^#9YTe18d@-1knh@5 zU%CKvcSjFY zV(jb87K{QH2WpIqHO7o~U7ecK7UqPl$RX;qTI}y=k2>cJU6OQt5+;nxm@>YC`Ny~n zEg0L7Er^hzj4kKC5-@>M2VCenWjPIS2pz^}2qMKgVShr4u2Keh8<*j6Eg!;M1D6%SbC5XC6{1zc0C3AD zp0NTNF4pH_pv9WuGpOZNt7?ovmWZxY27fz_#R7fvq-_PyT?5Z7q9r5Tqfne8;2T9r zz_1iDbeR$|I-8LIj4Z;1Zd2K!!M&oW<;C0hT)sI*a-2q18uiET1}5ef_rYcZl&1 z0WjQ?Zc_$`>s}QuUx?NL6?7$_ihC9g>_4v0^=uxNwDs5c|Qedz@>$BU{!sKe?OP4W^@_*HO zVyuObQC9yJG`u(4<`uuSBIw@4+=>VfS~XndTg!&fG2fj^&~X3d6~c2{R|Hqw7BY$@ z!?J;AFYmuB#Z^iRhOSe>#$8z%ZAm*3OIJ*FmDJ4)&>I=3Rd7{!Rj5_=wMYmL4oD6# z?h6&R^G&?&JnmbsMMSqK6@AaKR4G@nR&3`Re*s1X+_(E$2LuKc_OLKe7SJeS%!O~2 zc6Q{ISrxZ;AWj4xQ_1&Q_T~B6{L2r$hyjNC5+t-@ls=5t5C(Lu@;-foBbYc*)PbqZ zZ7u0A6VI{UT3koy@Lu+Hq0BM?2_W8=+Xq}7mdQ$sg&?79;(n|@&m?zwh{?~_hV9t&9r1PV_>F_`;?PUT#HPRi~Ud}PG9~(kB0WO3N zfnVV{3=glk2iPj@(&0lpbC)lpb0$m~O5f2*t#=qWXnv-B3Bvox@eJH>0S# z%J)?R!q*L?2Pn_a^oB(vvN)ma*k*UQAvFhB+*m)59@;pVF0HNyKxnNHFfOd_4M5Np z%J_=&>|1}tIsik+P;7H)EfA!v%i_N0pPfb7S=EzH%%E`4w^^yQV0dlgFN^~*;M-D5 ziE$Wtwea?Eof1NHl`^}OprMg-z%XEQF0!D2aKW|GaOl zE6A{%?BqGBL`73YR6qZcaZ1?Gx4*{2oFRh2hzZ$=x+v25?K+boO0I1JNND54UaS+b z4M^lS_B^kgqXMnsUECMUtn_2bI(-|kU6lHOimJ5UlDB#kf8*Wcs~6!qOi17ioW-0o#$KU^{p!)q1dk6n@WxQwdIUYz(jo|la%gG z{|nI#O6!H+QTe_-Kl| z3c&DXaYsbP?SL45i1B%WPY}jryyOzXOa#J%UDiI@8ykF824PQ@xB0fJT7~ zvq~NBsiiCZjNJo35^|O8%YA&dI^TP5cRJnE6|oq`Wter!Rlo&|0s|`Zg20BRrnIN6 zE$wRuURs%Z*w=C)Kp0OU97Mo3fFNLK`Pk7)pN%Uye`!F1f#IuGt_%Mbl&(|tE`F;X zlx9j{qs6!4oq#|ON+rr)v0M!F@jcgRN4=H_AtL}m1$P()ca*UnW!WrFMcfZ?p!99O zimX7Q7_6)tQ3!ph?3(q-Rk{tR4lqDrR+09NdjSpiRle7*X-pe7GzAa{0|sylC+-Uy zx-m`CM*#+1nN-4y*uUp**$g~yW!yn5w`^u^+|(Sg7#lX`{*Cd_!l9dy?oxhk?_0}+ zu^6+fR^}k_b?Ai^xCj?2`Vm7ROmP4G+@o$+8#nUI($@Qk&ozvWwmR<%B=+h3>N+L> z`MHG(#qY^u-q-qd=&kGXb^Si_3g`K=dJo2)2nK$CD)}n*#VX;w*{|QZ-?P^>kY5N8 zG_)oN2Q7$DFgTbkJi?5?p=*_G1(ja@6GDQ(P@pF)Ct9~?Q-H(sGB62U8KAVN^!dNy znDH3KYX}hDXA}QZ??b?dfNvzmt}L+$>H_ zJO{;!(V~T~k@G6pa9df)^Oa%aWoZN^nwuAMPLU<-BTe>+@QkkHxxH(5H_CYxET>{? zoPcTnv|^OF3l&_g2L&(;mNv#hC0lDin3t=!?JC5&QANNvAfm$Vwr@b}L-!wp#tnWh zE=ZmuOz3WBhSLbP5mhh6T-ofux_-cQ`P=4U_+}!0SrZuxVnz-8@UWzoMT_h z$g$~c#Slsi{?_6lNNfONbeqb7=1b>dHiVC2ArUf+#n4iro0Qq5gbl@QVPYe&v<=YM zGS`ktoqE&RhGnCDc|e3NE?PL;FMy$oRQTO`dC&0hGEB76Mn&B1ay$b_v3MBVJqcuJp%`yvk_SwL3V#PhYn1!C z!HokV!orqbCU9Uw(9j)9z}V28!Nc^mn>j9cYy?KMVw4yRAww5N0ppyCJ*5_eBP0B; zD@(>Pp1Whz3H@3)jE_(vaJzF^JgWx*1lwH$7;et?M=5k1;<*i%D%uMv;r7V?`owrG zJ-B)xJ-uNhJ+W>$U8nsypyC>1z%9lGtsEyuy8{b7dL8m= z0OR?!qv?s+;jm)lAn+UrE@Ye>(h}Pd)(kBetAXzQ^|o-Gx-i_6?o1A*r>BS0<5NQc z87F`YgS|I14jP}~OBvm#v}#-%21+J})1C3b^Z=l7l)BS>UFkwUV*_KcbHVZ6THXgT zv}Wv^4;kIHbYqb33AqknTmmjmbu*@P@qO1iBj8)B#xCGtEr6lBl-3O6F^qXI=EC@l zwT+EHLrdD<&i9IJZf5>j!CVVK=rUEnK}9Hq6Fj#wj5~Yesh~eN>wa=1LI5u8M;X+rd91lvFq<;ycH}^ z-nvlUtn2M&AJEXEA$0U>sh|wNm|o3x0oo zLywYcEQG<~MOij|Y$(4f_OzdSqtAY^ItT(P+FBB{T&Q5L;@lEM?!J&=or?E-&`{wQ zEVggs|F#AF3gv%2%DW1@$BJm35NzVDKlk9h>nfzHm-itEtl=64hzl-$hH#PMbNQw} z;vXu7U(1O1_VRrL(|pEab@9IZjNZHL+%G}oMZBKpZbUW!8Uo5p70Y6KEhCEeEMVjS ze*QZs?<-d1n28K-*)k#sdY-?J04W&QMsd5jg?W}z5E$XU!g@qoKbwGPy?qH8D*i%7 z1aNcRfQ$+>1QEYKuj%;#o17<*2p7g;D7GuEQpSL2!7!tgu@w=+!T(p#s0kW~prOS= zi-&+AY-Fni&xOwj&qS-w0ia>&{z~AYfJH-P!H9jHuVT5FFHI&|04|gkfJ3+tKD1^O zi^g5P;W1;Bu@?p&8&qs&4fl1E3Xo{zVPIRACf%Qe1r=ZcL}+kZIMLn8_6AFZ{@S~AWfdzeIp46{+q8q5f6Y~(l9l3{@3o}RXJo{9MO#6WszYB1fL zWWpcq30H(u!(C}Bkh#B)zS%wxWN5|ET}lx$bZK~Q!&r!Lq4HpsDc^`HDk%nm8}zB$ zgll4`;21P2VC+YMxjNeiU~s=Pz3BnAZ>N45K&= zWq8=mwpNT1XJHJ8!RE8QE5mZ3n^e9xzURt{v96E*52Dq=%u`d{{8v%hjK$D(%D4=z z7(&Kol(Z77p$HX2Z9F5D3zb$4tr!6q6=Z0=n5pr6Q3@CJCI)35SSQ!8Tp(SRmEx+k z!Z(2#GVYzL6FwpNJS zeue@!e(rF~png7N=q4pt^f&TdGxiA*`TT64gn3`6o*w)K4Q0M;#NSM9Nau&!CM9k>6+4V5yEE)X&0E~_7 z3l#=w3mFG^1_c5w53Ylu=pH2~WEUx(b)HdQ1lY#3%Vv(!@?k%gR{@0w;)OwH1aVs$ zf3X+fFk_W*8pc@|2(Hz_mk-abA5D+19Zt6al!t&1Aw~E(3-kyejvJS`N3%*PLdKJ8 zhSTdePo>vyno7^C8A+Fc5L4J5AFhQQ^Zb#nbe3_+aY`%f1>_K*VO-gnp|13(P%&Ch z*T?z-G@fApB4gd@fv&I!JN6lqCS>emjMO#C>`}h#d5E$2@$sSb$QZD}{w2oei^v}4 z7U!5_J+*YE&bZRu8S_nn4EG-%9!w7n4Wui5^>lza!B~uS%_w1r)(c}WHo8ygwgBN8 z8pcm((GV(hld@jW(4t|mxQhQQkT5DBpzI3@!odKLATUe=6B`=&uQW4eajvkTHN$fR zjELu;6dvX*ClzE^3KyPZDO~6_Wrixj!PpG91)*5C1MwxH$FyJw8qS}J^}>ZO4}FPf z42Gbgo0Rbv#%M(BMFkoyJe!>+NdYthHh6A2;yL13<=N4Ns#rA2i;(%C;rM0hX2r43 zOjD+^6(ounpAmvmWIToNs2IwMs4|A2;yGs@!BL_?ZJv}pK-T1DJr!hs@4Xa!L5_PB4+OIlc= zqr9~@Fx+ijkW_wElm!%(>;3`GMM)1~-^@wAiC4)Eg}btB%+6-85K=r}&K zsMK!(E_Uo_4NHdScn`&zFf@|gmVDDM02Oy9xBX1syP%^81eRJA>_^B5utK5M-AXVD z;q&|5cwCU$;C&^3FTc-^ol*bhp-)`}dk&i~i#%I(SD&@5tpJ^@I8ivH=d zWQ+2<@wz_=8s4MV^?WTSk-co5g{8!Fn9;1nWfct?2~7Vech&P(+EHa zCBnrr%CKAr;)o#9+QR(+-)%?>&x+O!C0wTfeXST;Gky{@tZ!}cJk$R!39!&@%Giu0 zmE5(X2Bo6py4HkBzJQ>@Z=KeRbyc~Vy5Z${?TI*sf-F?Hh>xY`Pa$SY5*l)FH9um& z1!T*4t~KG>77n07#A>Y*&vaI!Db6}BWZR{1uk%QsKl!#HhqtI~?0`<1}p^>wql&7^h{xjxdLE)4XB#iPV_ ztfkFCphaKdqsXcL?sS4u_bPu2gA^|U6sMR3wPfhZCT#3y!ZbzW4FJOIQ@RFdCDKj6 z^)U7^!794IZR6Pa5tI=v6+p$>4xq4=?;mk{FLg(mxKA*l9|0~740Hr=Jh^rxy<)?7 zdIrdN5{2UGGzvQkfNxcI_AwcccBN}58<$Zgt{}Qn7&NM@#ZDBPtF!g6S_m1thnS>+ zic^za>DX9jy1J%6UE$c#i5f~wTf}B)$v6Z+92OQTrT#cTa$&YNotow|0tyCVudV{J z%NiJ3Hgu^HFpRy>iXmWJL$0jri+v$vvsROV<_P-MP3kb`9iX%i&-MDVy$t~$LWTj~ z#%Tx^F50(|ZOdKMYq5y93qZpFa7)+9&_yaz)YecSQS{~(OA8SHLm)#45j=DkFwLzKZe)`}nKfWo=|NOrbuDnBwr!1lCu}F_coP7nTa{MR2k%-#2a9w-1kJ z$)8bph>TFCHx)Dh4qcxDvV<2(p~8A$!M0i`4DfcbL(@W!0Te=obpl?bt3`$Yj8!Pb zx=&eWYG^GPW(yl_VO-<)c0CN;tkwb(>vfarXb9J-P^|cE{rz>F3a}7DCn)gMr^WftiT?;65U5Yl<-dxk5Vu!}T$= zWC$5AAwRQeGCjX;EZv;yOUHH9jOA|UiuxvauJ(wPy8A^93%_5~0!&J6Utr|`b z0T-tS8Bh8Mqrea+9-7Wyok{KNjXga+ayQ?c#1)GP+Qr!bPgGTnH9IhoI5Z!FY*M zmQ&eg*f9H4Svy1bDFecd$#9W3<1&oV2>*GMK9$UX4V1?K4ax!=<0y`ThN)_GmC}+C znV9HDWm9EVWxa@sv!#l&{Rjl*&Am#r*^yMRRmN4KRjLC31PowfU@*H)#rhVMp5xp5 zaE+q9$HHyL`$PE^Omv@`LXj^P1C{DEYxo}n8QTSo?L5z$ngd8YUsoQLd-sI^)7)k& zM}`WOZ9l{M_4!ziwct8h6xjAU8|lxsVUgi}jKK((FBJO`+S-T8ws7HkB7SZa^Aa>2 z?pD72=YG5=fk113*AY%O0UBOI%ZAsrZxwp`@c#XresA7e$?T;CNmz*Qj{7$zBZ9s8 z9Rxnz;{*ZkS>P}MfWN)>Q=?sp?+^g|eg^~$O5138h#+kKj~>@55$yp1A;UI;On?UB z=kc0e->g%S@r?g&fNf>f2#bYa!MQFj>HpFCl7Y&&4eN@9qm%!+*{UKoBLE}ck85be zIvRk-3ZOzat0tbEvSx-EsFWomrG;9MTcA>EDMz#VJt5Nc&7(_g_1;uw0;ws>-7_O`aPPQ>H z??i#$)WqON+YtsHWt>526-s;QW6EvXZxJ-8n~1iq(9J^?$Cu324FDf?2EcU;kb4-& zH);t10+fv?_13Qz7?$&=r>{-)x!3rK4ki)GE#3=*>{{Av2Ph7y{8P7v^F7x-cDFRA zGfWi6m_W8M2v0M(PBOU8P;Q{zZYF~*OdcC(y9p>bK)=dXw%2jozWn~YwkwOTqn-CM zK_6?l?v;9XI?H5rh)HTM;Bg3`Il}e6UNVhMD+)jQ#B>!$8k* zfaD4gahW>X?eAKI&bGUGaB2&g6QAN%atrak#rRodzUs zjxfnn9%O%a%?vCp01NlS#C@QrCG9rr6iU&?))h?Hwe-ZyKzd-bJDq1+xiW&nKT=Dl zU6~hU;KWczx{Olt=YrRc zlpa|#fRfUUvf_&2d^XCXBW>wC?N0$BhuJ;`bX)*1E+R)!?)L)%`;Y^!kpWN~FqqrS zQiIKDOJ8H!0SH_HO3v#V1t=WioTFp9Y%$@}eh=sF8sd7KcMQNdO}jJ55g`Kr+0@H_ zpW_F-7T4cwP&)l?0&L8-BM|K$0ip(5(;A>+x|7KPh_GA(V7NN6YXi6jK`fY7?T<&? zg~7cq%Mh^9&%{}8T$H+bFo(5d7zj)`$fP=eSo+pm<+KY0Rx5_vDy@pgx~VsyvR$Q@ zZTE93TLz6vLLr{3_YES043m7${*r^hV^#2~PPeKOzo9R6Nkdt-^}$|jRwtEs#J0Yb zEGcj;%eHM}tqsmo`A~URga^}Ix`ME6OK_-lA#uHYZ()HzX({a$w{_Df8EzCmLyG`G z>F2O6J`ejZzhTYwx`F7@Q3oPwzFkH6QFQHazY}TayYkIzFKvc_kg;Yad94-=C}7lg z({>o>a6wDUJ^-&D83H)Qfrs@xPXYBUE80MJ!{<{E%gHzBvD0n-WKWD1EDvUvvg_VGN|`Oo&ZrGv;m6#ZT7??mQDDNl)4;()tNPMYYj{SrU{ZI0e)iMv z5n$vZ{av2`ZiEt^>j!{`M_2Wy8^(iBXZtgh=K+!nx=Idr##nI#=-J10uaEVl*RCB) zk5Bif+Y|M4dz^7>vM)VId2O@@i0Dd}7;7Hl*sEqo(red@MR{kUFP&lhIuBIb8ShK4 zm>NpAeR@sNPQ*yy- zG^L{)Ki9>5bun(W=ecDSivL!W`~$#*vL3Kl12C)=09G`lJpjg`wl?OR7Um!RPr$(- zGJ?!-?waK&YJk8fbJ`U9>o|X!a){%7Ktey|Ky{A$Jq!5{Gk>-L3D&Kl{W#|jEoN+C zf0%wO>%c-6ZM&IoeIYkSpA*cfW6Xj5?6=>4U+SPA7qA^W=MN+7}oESpfM+8ek>l&5ar*skO}6t{Mi zuMVUK!07K>lIra!jwoTSz^u5+a}DLph&nf@eGRZtkw#E#1*P-JB)HXg~DsSrK?+y z(RLg~cbfeTDDmrO`CoCaZSB)?jCL~|pQfL26?_!&S(NRyD(zLB*Bl=~;YO*R;JE#c zXcZAYP^>quX3i5LQ1V?hdzNdg*7`v?MIZL*J*@+Dwr*%jJ5=nsAFn%t!fd&oV;cdS zDX+mjPa;#u2I{wMpuI5{0s`0TN68=J+T*~&42t#`-_a2BE$6U_u#Q%exDjjdi9|TlAw~POttABS_|2_Ykt{&drd|#|oZr`?bWpIx*0S*3V;~f5{ zv4XgufwUs_AyDfo*aB3Tl`XH&v>;p!W7T|~BV7))1PbI@0bTsEtg;`LL&1Vlz>kG8 zom+V(+tFiM&|#W@4_66qLM-q40?P2`k$2Fbr-;QM>_|1AUVzge<0{R4yJzd`;z+y9aC{}b{b z+5XS;^IzHizn3phi9tJrbN(mC{^#PQDJ@-=5(9MdxZ6c&lNwfLVUUkH&dK6&&&hp- zxLw*te?K9mUFm0KV@gd;FP~${B$FDcvs}r(!sG-JC$Kh`&CR(j6H{X1iF#lt+9_@` z!GX{Td}frj^dAL{={e@ps5k^j#2e?$HY@*imTPsqRJoPSFn z|AhPl^?y&@U-vYoA0mGNO#B7=-=n{80SRA6zKVRslDaR^=CfTZ)5lQyJ`7-d5XJ8U z3j4o{g7{k~hwlL@euMHisDC#K;ky8bwPULawua1%SASVts+hTRD%MVgD49_zC0~ za@>--Bb0}j)b}$u>_hgV2<){)8Q8=2E@bDta>u<3(l(Uwtw<@iEVw6a4!JvRy65iL z-b%Y%cTd_xy`}An*meuDjqUC95yJL1&fkvgV0+g**^TT$_96%9`yg`2lKn%-VdMyM zoPJJHe~R)na+d82C^;9o_e*SFMy|4b4Y`5bLT)1uQvWdW1PatMz{}H=&+;8S&-RNb zMXyC(hrEQm9(fZm@|LBG(mR$dPVWLN-UVR%B6aUZS$Yrq?_a(+{T9c5o9*92KEVD* zRxC-MT*=sqe7a$2`ZS>OIphn}e+5YS4$$%^$oGJgKSTZ!fcX(H@*{xd@7VsAl>a-h z@sEJWKOz4f`48;>XX^he+o{I?9f(OCj1`L8UDS2+EOaSuBR-FPJUc#nmc2YPJwD^q zTQ^YE$8%^q1b~U>GoI^mypjQ)$9T3WV;cbsqOJ9F$K9^>9Vhze$1%gY;T}rb0}QFp zHl9l#fIE@W@o@1Wlp{3)c;=W_3 zV{7bFw(`9ciSZV3{4QfPN_qkSLgvPA${5cPx97(CQcoY&FL!=%esHc}dj;*>wvPGY ze^UNG)v^C;Sws47%s>BO(USCUk$*(~jk0)I`d5^HkNhojivt-7w=z~K6~H&>C^Y#pFVZp!t{CCeTw>zvi*nD{~^aehwYk&@B|5nW#dt9lupG2MpIFx7DF7hn$LTzz+Q9&70Ud#5+pdh}~ z&Dd{={4DY&6xg3f02x8%z9IgF{$=SGD1V;)H=_{0mGT|zzYB%;9rdN@ohY~OqWop# zR|lD6hL~fJU!%>h(Dv7m-=NKV*?<4Qvh-V=_kOo2KY$|r0nYh7uJL=+{XTVnfP7G4 z|AX}TLC*gm_x2I?KZUaY3HtaWwm;!M=Y5*}5ciSKaPAiYsV|SLK+qZK|8u=d)8|ou zzsT_~v;Sqz`x13ur0*|MewpihoqPVq;PUjfQee`(Nc8>%YW)Y4=6S&!aeh9;N!Tz~HC&JwAzY{G}Q?C~ZH-G3!6Waoc^C_MfKw zBz2##J^P>K8lU4{KgBs8r`?D7tv^CPA7%UF9REX<@(;5A`#|akkPmX+hp7Jp`uSbz z-^+jGH~GK32l-8|{a)Inj+_j-=K#Q*mtOXO#0|7!lTFVN;yobv+z+ZXBc1>`x7Jx%?S^zkI+ zQ?!4Aws-jNKY~0|$-~q=%rkJC(&yy?AmNGvY+PagGIEh;>3k93;T(0R**;mx3FJ7> z-%;cU&+nmy%*i~bhtMmIpm!YPIX%GkeueG3zK3G|Js?5((@Opf`E$VH`)&&XDF5F> z;r~L^5d0+aXI*qR%8$ zxE(@0gK9pPZI25NF|b!K5CcDAeH^O*p|mUTP>uyiI2l-9$y|SxlsfyFI|rE$BuW60 z6An^6OW^Yzq_xK0;{MLMeDSsd~JX{QwW@6rrMQw^QF{dygY= z%zgT?6gWDO8ubE+rP76TD_kR>gEIC#M*E`d^sp~@sLad>`zkJ$0T)%-N817#gC6%- zCDsL0R02Fid*Ncf2pS5Y@MBWyL-=eVP3eDf?EeEa{8s?tzaamv){y=Y`G>BC^uHtj zn!109{2fs7*X;k0V?RK?*SR8n8>sju@>M|MOUM_H&mo@zEB81F>hj{E{(@g`v6jmR62mjH;LL0%0|yZ}f%kGulK_8EZU zDdb7yF&^qW$iqC$w-G1b>&VrR`xr#-OP7&L>|bC&IES1?PBW38VqiFl9A^?gR>@K1 zFmecG{a_^rD%p?hL#bEkSM~r5MRo%T^JUNfLiSd&57|FY4k&kLIfNW$|0r^tYn(t% zBBziu$XVr{d(wHzi^wJ93UUp(0WjR4yoEf7Ji`8?$YX*8@)Yt6@(Sd6vbswYrB=R|c z<4b_Z*MN<00vX>yzK8q(sQ4lB*KGfY@?RkT8p!ykl}poq05bkF@?Y5gZ-B=CXj+#3 z9{?j20VsZ47!L%D`O?Pt(2f+?D8QlA6#nx*lRl60#b;CzI0O%$)A=w_o>$>OiEWR$ zjY405V(z(SJD{Qx_X93|LduJZ^3tMiT_wH$E1@sTZrUncoZHD5P*d3MvfkrJ7gDoL zRd#T^h+|^Bd~u&+LPh`uG6xq5-^Y&u#ylwy@nb@r;1I&^QKW)~ADbhbpNh=QIn*yv zs(mHqu_DY{G2fMWZAto{?EjDZ7pMP|^1mbh2lAho=l(tO-9IA#8ff^J$loFV9QiBc z`@qJZBHu;6jeHaNI`U=YOF+cukvr&cO$=qypw0?Z5)3aU!~QwYDy_bLC3I^|Ek5hh_KK>B-5cMCTuRoytedKqkdq3BBA5idK{*&)PeuM2_rTk@-{$Jw%`iuNu z-^Knrk+-w`R^%1)OYRXqrzC^n>HY|_*7isfa%9ptA&mu2z{I%4*n)6-+AYNR!Fuj_A@^x `Jba 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 diff --git a/examples/slide/assets/images/raw/filter.PNG b/examples/slide/assets/images/raw/filter.PNG deleted file mode 100644 index fdf11efe87b7cb72bf106e9715f27d0bd3684850..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18173 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 E1Mc=6y#N3J diff --git a/examples/slide/assets/images/raw/jeremy.PNG b/examples/slide/assets/images/raw/jeremy.PNG deleted file mode 100644 index 85385440b76de93e07e8c98259440be8dbdc6ad4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 85251 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 IWc0`X16q>V=l}o! diff --git a/examples/slide/assets/images/raw/jeremyFile.PNG b/examples/slide/assets/images/raw/jeremyFile.PNG deleted file mode 100644 index 9c601b3f72630e25fc79121bed00e054d40721f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29905 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 diff --git a/examples/slide/assets/images/raw/jeremyTilePlace.PNG b/examples/slide/assets/images/raw/jeremyTilePlace.PNG deleted file mode 100644 index 20dbacb0992540e14b8477c7a6f774f240c9ba66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32550 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 diff --git a/examples/slide/assets/images/raw/jeremyTileTypes.PNG b/examples/slide/assets/images/raw/jeremyTileTypes.PNG deleted file mode 100644 index e5c6ccf1de0288f5e766ee05e40458409e8fced6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25580 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 diff --git a/examples/slide/assets/images/raw/oakParticle.PNG b/examples/slide/assets/images/raw/oakParticle.PNG deleted file mode 100644 index 66431aaadb2a8f7d962376f2af7ab7d39210e0a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13939 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 diff --git a/examples/slide/assets/images/raw/phase.PNG b/examples/slide/assets/images/raw/phase.PNG deleted file mode 100644 index f50dd89b38b15fe8e02265dfe5b6139621a6c98f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23300 zcmcG#cTiK^+ct_1Dhdh~5Rt0b00HSCR6#(g(xs~i0VxTA&><>KrFVgZDjk9ldR34b z2^|ap0@4!*HMCH^@Vvj7@0>Gp&b;r;`Tj`utn6g(y;kmW-Pe7s&o6W}E;HU@q@$y| z{QTKd13J2YKy-9xoGzTFeUk81WS4e0<8Gj#LWja~Ez<^PK~Hp^(9xAgGabG@M;l*+ zJTr5rqhoG6eVyq97rdpTGf#Q`^ofzT_3C74O`0bA`SnBgt}cH5*jU;d?Y-Qp_#gcb z1T2m`5X|dp9`HWC6#qM(zSDQD=r)2^*cmY~C6TYYURQ zDp8)Z#<#A@B;>Pjj&qAPaL%kqAq1G6H&321co6F2;YpQIc=H9OU^MR;VI}pkDrz|} zSz+VxdOUvDuVrKA#G-NGcxiijW+fd+ji(+YYB#}U;k$LB>BXD9xy~n^upVxsXHKDL zm9?GQh^ExEHk<&o>vR2`govVEM|{e}c&?3=xw=>gFBfCkGf>e+!js22TQ$PCH4)5L ze}LaJcm;hucrpy4-e)sjpU!>(^chsy&OTbV@;U6o2bL34N-8yHC@2i=M_kb(lT5|u zkLS1T)RGnrJO%??Qv1mnd-VZcdVnBPcUyo~7rZ5JDgPL)8(Fk}SmN}J6>b^Rcjk~) z*zco_A*GjJw~`83e!tbhX1Lk+C4CPcLJ3s+$-)mf1{$y~ME6c9#BK?oA|`SVbt?Ak z@6`Bq1|HPkUTjK)7jN!c*qSy~#$@(aS-P2d9wUks*Wo-5FL0$6kBwIzKbVP5+Nd9O zNy0TI&Wld1GzJoqebY>dl^gcpeaN#&aL_^p!`P&1Y0Z39a>d-tqeGs71y%IKogOB0vhR!T2!a@xz3`sUi+7> zXPpAq$cnNDO+qqO4{UcjPjp$UnmnIrc*lw+qxJljn;CW)kZ(4JZ7Zz9CLAmSWU6gq z`>-4?Uqssi*8BwI;5T@3s;0>IT$*nP%%)4rHFDm)z;cGZl`Tpr{;uZlb6_OJ*JXBr};mM0mm?6vK<@%nJsek`qXq_b`Q^3Uv%WdG0k z<6C`%e;DK4n-y@MRgPZ?bH@47L&7HYzpjL7RCivsC>6xCbXWRASR9Y~6+#a4CI*i? z#0YcY8XGMK?E+wimggE_4L@PK5zGZL4ZW0#Y~(Qh}1))!26$I;u46$_4A%gE4`%+MS&akoXa~rDhra#?H^i=-Y)xQT*fkW^u zzoFR|mj2e1SlG)9PN#+WMH^?eHL5jHwb^3{l0D@lIvkpq9#Gmt4m&u?Q4(q@xB1I3 zuClghtlkZBCDccDgBmN-cKY7mr}!8bMw1Sbr;gn8PFkbQ)~ZWk!s-EepV9;F5ARf+ zdss@@@_5z2Sc>8Cg-1BHfqz_{ah_I&R~h=Mj{u)dqkE8d!M`>P(?(=iWTyYjt9SFJ z*KavWzCS@ZL>%BhQ|~!0(|xlQZ!Q;{$l40qtiltm{CWZTT| zLv;|UpZh?wpoud#2@6zG3GVg8X!$%p?}!T)KiVTNjdI8N1UR>l zlv0R%9^9B`+ZET+zq!vaXM3|0v&b=DoAOaU3D zhaAm5HCavjbY4q2#Iz=l69a)=g`;p^f@djc4)kTo2mYmFXT+#FzrVqX-37zr|6i+1 znbBt6UgH?iY(aGsIgFi5Ig?BymwLd`?N4l*0rM#wLe8*ih}u z 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

      rv^PjgYoWJFd()-`<$C?z|V+ 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 z zEnPE)_AaamFD;7V_tm2n|Yvk zRbrOi%ne~;jm%)A3e!2EpXXIqRh6zy)m)Tv#MHt2T%o}cB!s1RD4NuVx9+r@|~j*)xQAg;^ANIRad2>$!+y!Z)d(;`%UBVJfhKFTBsC@*a1% z&9J}v>}>m+*5HO9TtLuZ7fj#432a^}_U!oD%5X}&Q59wkn^GH7b(Ye27{{oGJEZB;Q zo5cyN&vcy<%!5LOyt~Xp2W%&Xzh++%gll(>Fw~gc)njiK@?Cj8NSef4 zVEwmE9IUPISEB98#lF8f;`mw|5ldQ^l7P1W1r-!DdFuS6wgs|7#?h!cHwri!Wer&;8w67AfJypGi2IeNfTQhRy6t_; zQfy0NrfRuurs}!d7IdTtMspaB~4;CV=_J?c#u5(Yx@z znz-_lTweIp(!U3`z0bHnOjavLMmwozq`r_Y@&65XQ=$M^+xll7DZfaKSX&=cr{_GuX2rHKKsl2&knQ=A_vr)b_eBoKrxVoXMoV5`n(=CuL~Ox z2R)?d-$?(83PS39kwpBVAnXjg49wPMY+?26h`lZYM|!eu!baI5BTfN0hG2o~sJ`!B zVsMMmN6~JT?c|WOD?9|+s+=rcI^hTIBgr>*;a78Gj6N}3Sde!Zl$z&KDg#BCM1(MH zg&tb(mjd<;us5EityuHQ0tuSaZ9v48lFo|KL!bEI+I`fkK-fYb(4 zNMN$ldm&7T?Va?>oiF|5LV~L9i*xnR2lu@-t8qz}&mTEu?R+?QEjhLGN<-+QuaTg+ zZ$1#{$gGH363eIiHliIfYj5D)R${V1d7_(q;k7pv)@gXYHtXo++DG1NtXYX~@G?bX zDr?c)@i35K+v3(o*^_67awoYIzb`2XH-G4iIx|xKP(l8D%UKF|Py4B)gKmWn~n zROoi$;XC^X@%#0xLySUlU?V1ZFFi9iJ@nd6@@zd^Z73^meDG`DCMuFLs^cNn%;6l< zxdWhL>932nQ=$}WB;~NK zO!Ss@MO(i`QMbk!dPf*nk|sO%o;kCb$?NV}b)jRq?2;zjOzMrSV$&C%VxD9x1B^t! zlWvJ$?qy4pg{+pj8FvTm7FN0q!i95YY<6NtEPpLp281dGY+Vg>63K-I?ZTkPD^UUH zsGYYiLE1>E1Oi+;D(hgdYzfoI%TX4PLbQ1Gc^a?Bx6^LiVcxvAwQ5)Ax$(<;38Ca? zesItplhKd1SUj=_NQ1`PYFXAfoJOlR_KMGDGDTE~!{{3nOT+D$%k!_qOZWM6koWjH zYgIbyfD;)Zjq?$AtYFMC)SF$xD01gp{?@5h+|k5cm`WzJ9P9)Rsu6o05wz%E3p-hF zQmziRHE^jgqW$A6mSZHi3?8I)<9-k(`;vR#G1Zun;Y{B0q#LnHC`+KNP%5Xh8B!Y| zr?ul+*uYUaHgVn4Uw*YvHXh>n^?g2&>rT&Ez6rm*GYSRDUj^{~&3o>W@q_Tndo&}hKl(L~qhwTV#7T)5)3_l!4;TN+(ARw>{`%MqH zps1O3`G`n(+3kz8PIXe_DZSp=(@7QZCIYaEUXZAAAnrmc<`^78xLr%?f?D?>Ub>>zaIf zANW)%n0r}_`65i{JT?WjVj_W|s|LM54?Mj)zoHIqTS{rr0LcmU=Z5rqU(RX|uwZh_ zh2ysQ3D^0EarypZcbx$Jh?irnnS$H9XIg4kFBVl%YK2*Qym5=UAf`~JdlIN~k>SlR zSLYQ#`E%+1me>mwGBRm;h@!Mdq~8rGb{%Se?isIgP8ku@EAGdZur+qP4-jb6th1qlJ>ctO=dGj#m-YuDo#}9wCuvFi?;;`;nP- z<@WSWD27?2mH$iM4OHTQj|tOY&7JX38~14?$*-YDKL)aIDxun-f_ynM$ zTFZ68!l6%f-uc+8pQp99D}!kqnsqmtY>%9x#J6jC<_3Hog&xrhtXw!v=G^H3=#vdh zIVw)fxP>8?D%(fCm0H1aeQVZ3Mf055?=5P|U*Toz)q-oYq~VSy@q$G}cdIzgm9tqgE%tx#_=ZAoG$-UvoWZLYpejg1pBOW3 zUpZWehf6dH4l1I_Lqw9v}e}!KZYTdVf@~)dg>hj zD}0CwrK+NxLZy__ApHDR<_B$F?+~rybkDQY4UDEq9aYAb>p)Vl4U{&LyJ#&p^MqHK zhA*l@`Rg8&nu%u}S_Czho*Bn5ki2r7&yD&uD@}1f#nLGC14kEagt#ZV$ncPB0iSNO zGn-%u=Tj0$x)r1j&P#7f|EaWv4f=r0%qR+_mI5Tfb(ij;#!Gr=&rQhz;SG({xg?sB z@0u;&%MXjRVN?T+zx0fIui?|g_i87yZS(lP+5CyDXiDk*m{EH+{hhHpj(wys%uj+# zKb+tsDKGiVJNHK4?n72?g*w}~Iwb3vtF`PpD?4~{ zErv3?6Y}yo?ej<)NMg(xP`e<*<>BbI?O<<`gfUWL`>`=r(9xv$mP$a<+fZ%g4rFDD+|!#j-S~=(RjK~W z-XKcViE>AaoTRPl<;aO8Tkn)(c_jKJ|BUoeb-HUJ#@x-nW%Gg9rf!?r9wG2F!7^n% zZ9RfkVTIg?g1-5bBjAC6n!_+@p{v78uGyYGEJAZeeqkNq$EF@>~7xixVmY)&^SuF%s0im;Fy zSeK1mpUAbz|1(e$vql+Rxb-L>w*I{*?_0Cj$NzVWURQ$=MY7n=Mz*Kq$Wg|sOtnrb1;&8V4F;2}1*yB2SgPI7hebq*utV1Ro#EqMg|@$bCE z0f0n(=rBJ6ZfDvpu=D>j)@Z(dI78Kh4nk)nYsG!9EE~`}0CNTH?~m>5hdLZ~+bndv zo$@d>3yS4Ln#+rch6SaX4bHM6b@Y(peCxqBE-B(veX(45rAkI!V>mavkD-wL{n z+l;A~c6I92W2~1;H=ib3$bd|fGh~!|h#^cB*%&=4fbd>;`yE3?OwJ4t*=+-n(_`JD zTG1Z5fK4&NpLy@5XxI7+`)`QEG10*omsTj23+&~Woc8!u(VZYWIBpM>ltSIOpi}vS z5n_tFRdYn)w-M(usHb!kNp!SCJ^~y4c4n?WfxoA?Kg$NkNz;S9CRV}TpTAxj{|bsS zW(b{rP~}A@%n98uVDc4HAF0|mv&3X?@JoN*RmHT=T|C4%u!4ki?L$1}^0BdgckvHl z6Gq9`IzuBX8g(iSRWb8f9eqW5OWrHS+DO8_{LZ9|<-@h(v`F!|_~W*$WG)ulky49t zTAe%h=lfIvEl8eFeh%33LqsyiZ|iVd=T7N`U-hi+sy)@qzs;U8fAhPShUR*w{*3ni zo>%gZh>WCUu7!j754Igv9~bYOeQ4y7v=Qsidi*}5sQ(rlYn-wi#~(4uuibPqvQua2 ze3Bn?d^|7TOoHy|hCZA(_qtnO+HnbsOsC7gCJCxrslXbk169L4%RslC@q9-%JX0gl z5wq2EK2m_3z0H{_1rvP77*}=|tziz%ZI{Xh^D*eCfoqcZoGD)oUn|&Q-l_Cm{+jKJ zowRV!sI>6R66q2}v1AY<6a(hfpg(*+L0eoRkW$9GyK}U?kU2#}M&J>%-$v+MdOOX8 zF`9R04zg*iVT}&k*NX4}aXKKqpls#P zTQSd4SDSG3%i-!%{^f(%jty4JJib`RiEWJ4G}F^0deJbZSGO#yG#6ObSOQ$4*nJv%t?%pqGBnbFg|0OnF*K%KpkaXAZ+Y``965cm zivR9p_wCGv>6sYWDez@i01f*{VA0)4{>^bEupXhB+Q1mH#VtfUEhH)hUQ#*F2{g$`OPr~UfKvaqM}AY|CuT}K5V%)+(t?n$!c+T%b@ zBGJ`FF8eL0%zplWCHnKA0PgG^=*34FpxMZMaduFF?WW=3pIlZBmpW%|yi%Uy4sx4c z#zBKVNRz9%<;|Cz-jVZLYJTDb?fR2p#Ie`@K;w>JU=kF+8N#B6)Q|q2F^jhQ^e*EH zQ0X`QPWW}=0cLE+;<8P53}4x`>&4Fx54YE<50i z*qk5QNJGm2JzW(;4X6q6m2&oylAl7#dCT$#`wOc(m8MDTgM%((%RuY%lwB`~13z}A zyDal1k7kX>Gm*#S3I|W*E#kQN;v^W9MF0EARI+Ym+tbEkWcmpbWx?v88wZ|+s9{X^>g$k5@8)*`OayQc6 zC!&a(`^}oG7T@w7jZP0b=F--p@23p3-l9Z@gI<)wYTDz!KPTLCQgnQTPM)aA0HJUe zoJS2272otvN~Tne6dV>1taLspXPp;+d}HAOARbjoDib&E8NO$64M;~n>&SxR&tcIby&Vqk zw)LHd@OBK{Z^V`i;e5ji@AmIfJKd@bGrWDiqwpgd_f4|XX)dRnNo8wWbS4#C{963H zXn!mpI<@WL)#Q!4)#Jip!@MsZU_RchIcLVgK;P}^@^ijy6iu_{T_NeptUort=vt1$+>F4gYUxo5OMG~PgBRFoVfK* zRjVfDLQJdYX5Aa%sr=r}!oEebc>|N~8jkKY;g3}Bedaw(x>T~GfAc!`^ACEJSV9Cl z!OY~L@1FBQr}pLn4BB$@C}9Ed?R0AOzs2VamEh@+g6(T%c!9eG^v|t!vSncUhq>KY z<@zraHD?>057+(_)C{QCzH9DJUsQ%++PoQbxF|dsA?-*cubbv%(=+pgQOICeY-s} zW&T45;*Sv59oooca1VBN5SL(f{vw1Y>tn)uL1JG(wX0%fmx%?l=SmZ)t_N!d|4@b` zmqiZOS1~aK<78zYkIf^(ptnSOtox{R?l|3QKvl+IIG>Zk{%@DpkdO>57Dy4e98pZB z^wb#EdsKT1B|B9@g2fnBlTMk43Xmj{ZbkEJ*1>I|I%9QSGmfr4TkCff$H!kd04V2X z%YJ=pfL2s%FiU~Hgitt8_kJ&+m-(nY0dKw%{%3Jt@NgIw3RAe7BqO=9rsS&<%SlJa zhwSB3kV`u1yx{Iv|05|~FfQ;&K0Xn8;;6Z?onl>6n|n?p#vq>U0NkGm(%jgTi4TgG zIW*4OQJOobn51S!Avc~7H`%2TZkL^h4foW&q{fKjRtIjba@&#O#(E~i@lA5>&Nwa& zK)2K?P<-C2-W=Sw=h+DiXJ6T5V7ElVmqgCc20!Iw{@O>P>1T~&Vpq+8(pb4kYGR7M z0lSma-jKQ|G!vlL88TsNbLi5G3r$#R*W3M*J5{qOA|DW2V~{5z^?;T-?vGiN__FdR zxtEnM-H{iaTh)Z>zqx80D_Zp}rEw?_mxqv8xU&kB_X38N%;t@ZuYv_u37t4BARQ z${70SPuc&`)N7&WONN84Nxj&pq19aCON$XPxc0sZpoqVc{AwR3csSo!_Jp=EBs`kp zh{t>{$Y(DE`kmI(K5>YHH>rJ^lkM@FsW|WD1j}n;9PujXen341`!wiL2HoiSap#~F z@A~4pdW|G5U0uVk9kpoV#@W0juHZ|EJ4;*6B7R5Pvf$yalFvbIU|p`&#{k+FeVo5OzNh!{nIvJEPCrS3pV4{XPry@7-3ltON)l%^p?0v&a0PPFc4gLm2jko z?Pberqb_~V@L`!N&u{scYD7D>e?r;W4pkXp2HhR!g8p3c&Q!WrNixpDy_g4QN$Ag81kq&b@oyappG zfBJ(<;f;zOO25`?0C2f}W~&5@3#1~&!GDhblHC9~#iPhm)fbs7fDMuk{VPE$P#1g0 zcrs<^YLA2PGKsK2Mi%aNPY)AsO=xLsB5}9@7Wap@VWP90!EDXZpwn2p1e#2vT341=u1i?JU)Nqqe7aIh9wygZc~!-*aM diff --git a/examples/slide/assets/images/raw/phaserParticle.PNG b/examples/slide/assets/images/raw/phaserParticle.PNG deleted file mode 100644 index 899af8a4a05f9396565392299bb37aca4879d2eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18949 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 z 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 diff --git a/examples/slide/assets/images/raw/slide.PNG b/examples/slide/assets/images/raw/slide.PNG deleted file mode 100644 index f92ac459c4bff9f21abf81aa52b05d486bb0dbb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77185 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 W243L}dl_87=bEWCq|(^+#lHYFJX}Tq diff --git a/examples/slide/assets/images/raw/updateCode1.PNG b/examples/slide/assets/images/raw/updateCode1.PNG deleted file mode 100644 index 64b3b92e969323f2299a2d725dcbc0f0d8de43e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15827 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 YEa`5g1MtpIA0Lo>Cns7etpDl%0Db_^Q~&?~ diff --git a/examples/slide/assets/images/raw/updateCode2.PNG b/examples/slide/assets/images/raw/updateCode2.PNG deleted file mode 100644 index 91c49b5c5e0901a24c6e1ec267ef16e1ce795b6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22192 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 MWZ7e%I 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 diff --git a/examples/slide/assets/images/raw/wolf.PNG b/examples/slide/assets/images/raw/wolf.PNG deleted file mode 100644 index 900ada311044dbd86c4c207994af99d858a600d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18607 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 diff --git a/examples/slide/example.gif b/examples/slide/example.gif deleted file mode 100644 index 63e66d1acade0df6de67aa5df0084c6655ae28f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 285675 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

      oSVO6B`n}7ZjHZJGxhG@pp-z z4=D1n0MhKm9f-bbR$aJoTav~9`7X`%LnCE4TauaBs5?-fMz2 z`%)6D{WyI5pJrICR_L6!) zx`&;fRsNdPa5CvNzl1mdpa$0U;cwrC*9yc*Tj6FkDdm9~;RVuN!6J6m^Mg?T&8(s{ zyQ=%Aip;Y(pm+v)t>2NlGXb1oU&!89@bMM4T+E;uHjkw8`9b{!botIlcr zXC1F_m#qo+LRluylFk8SGKoJcNNAZ6Py-w|Pasy+UXR=sZtM6#Ro9^#cqW46;3Mez z2S`Hpj+O@Q^N^Td#;~i-n@mVp{wPW<43Q0F?A+*|STEC5ejPiYbEOnP_ro+E%8gNK zZ6^4RHik&;m&l^CgeK}?Rv+SKOg4#dKQ$JMo!}eE_ptqDXM%mGlIl `AjNySA+- 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 POagRbq_`q`^K<{%UYL@{ diff --git a/examples/zooming/main.go b/examples/zooming/main.go deleted file mode 100644 index 19bee5d0..00000000 --- a/examples/zooming/main.go +++ /dev/null @@ -1,85 +0,0 @@ -package main - -import ( - "embed" - "image/color" - "image/draw" - "path/filepath" - - oak "github.com/oakmound/oak/v4" - "github.com/oakmound/oak/v4/dlog" - "github.com/oakmound/oak/v4/event" - "github.com/oakmound/oak/v4/key" - "github.com/oakmound/oak/v4/render" - "github.com/oakmound/oak/v4/scene" -) - -var ( - zoomOutFactorX = 1.0 - zoomOutFactorY = 1.0 -) - -func main() { - oak.AddScene("demo", scene.Scene{Start: func(ctx *scene.Context) { - render.Draw(render.NewText("Controls: Arrow keys", 500, 440)) - - // Get an image that we will illustrate zooming with later - s, err := render.LoadSprite(filepath.Join("assets", "mona-lisa.jpg")) - dlog.ErrorCheck(err) - - // See the zoomR definition lower, wrap your renderable with a definition of how to zoom. - zoomer := &zoomR{ - Renderable: s, - SetFn: func(buff draw.Image, x, y int, c color.Color) { - x = int(float64(x) * zoomOutFactorX) - y = int(float64(y) * zoomOutFactorY) - buff.Set(x, y, c) - }, - } - render.Draw(zoomer) - - // To illustrate zooming allow for arrow keys to control the main zoomable renderable. - event.GlobalBind(event.DefaultBus, event.Enter, func(event.EnterPayload) event.Response { - if oak.IsDown(key.UpArrow) { - zoomOutFactorY *= .98 - } - if oak.IsDown(key.DownArrow) { - zoomOutFactorY *= 1.02 - } - if oak.IsDown(key.RightArrow) { - zoomOutFactorX *= 1.02 - } - if oak.IsDown(key.LeftArrow) { - zoomOutFactorX *= .98 - } - return 0 - }) - - }}) - oak.SetFS(assets) - oak.Init("demo") -} - -//go:embed assets -var assets embed.FS - -// zoomR wraps a renderable with a function that details -type zoomR struct { - render.Renderable - SetFn func(buff draw.Image, x, y int, c color.Color) -} - -// Draw to draw the zoomR by creating a customImage and applying the set funcitonality. -func (z *zoomR) Draw(buff draw.Image, xOff, yOff float64) { - img := &customImage{buff, z.SetFn} - z.Renderable.Draw(img, xOff, yOff) -} - -type customImage struct { - draw.Image - SetFn func(buff draw.Image, x, y int, c color.Color) -} - -func (c *customImage) Set(x, y int, col color.Color) { - c.SetFn(c.Image, x, y, col) -} diff --git a/window.go b/window.go index 57e1d4b7..6df3db61 100644 --- a/window.go +++ b/window.go @@ -211,7 +211,7 @@ func NewWindow() *Window { func (w *Window) Propagate(ev event.EventID[*mouse.Event], me mouse.Event) { hits := w.MouseTree.SearchIntersect(me.ToSpace().Bounds()) sort.Slice(hits, func(i, j int) bool { - return hits[i].Location.Min.Z() < hits[i].Location.Max.Z() + return hits[i].Location.Min.Z() > hits[j].Location.Max.Z() }) for _, sp := range hits { <-event.TriggerForCallerOn(w.eventHandler, sp.CID, ev, &me) @@ -231,7 +231,7 @@ func (w *Window) Propagate(ev event.EventID[*mouse.Event], me mouse.Event) { pressHits := w.MouseTree.SearchIntersect(w.LastMousePress.ToSpace().Bounds()) sort.Slice(pressHits, func(i, j int) bool { - return pressHits[i].Location.Min.Z() < pressHits[i].Location.Max.Z() + return pressHits[i].Location.Min.Z() > pressHits[j].Location.Max.Z() }) for _, sp1 := range pressHits { for _, sp2 := range hits { @@ -248,7 +248,7 @@ func (w *Window) Propagate(ev event.EventID[*mouse.Event], me mouse.Event) { if me.Button == w.lastRelativePress.Button { pressHits := w.MouseTree.SearchIntersect(w.lastRelativePress.ToSpace().Bounds()) sort.Slice(pressHits, func(i, j int) bool { - return pressHits[i].Location.Min.Z() < pressHits[i].Location.Max.Z() + return pressHits[i].Location.Min.Z() > pressHits[j].Location.Max.Z() }) for _, sp1 := range pressHits { for _, sp2 := range hits { From 9f592f16d9cd28510b1b0122578f0854af7ad57f Mon Sep 17 00:00:00 2001 From: implausiblyfun Date: Mon, 9 May 2022 20:56:58 -0400 Subject: [PATCH 140/146] README: Update some of the iconography --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8af2618a..8bbae527 100644 --- a/README.md +++ b/README.md @@ -85,9 +85,8 @@ See below or the [examples](examples) folder for longer demos, [godoc](https://p | | | | |:-------------------------:|:-------------------------:|:-------------------------:| -| [Platformer](examples/platformer-tutorial) | [Top down shooter](examples/top-down-shooter-tutorial)| [Radar](examples/radar-demo) | -| [Slideshow](examples/slide) | [Bezier Curves](examples/bezier) | [Joysticks](examples/joystick-viz)| -| [Collision Demo](examples/collision-demo) | [Custom Mouse Cursor](examples/custom-cursor) | [Fallback Fonts](examples/fallback-font)| +| [Platformer](examples/platformer) | [Top down shooter](examples/top-down-shooter)| +| [Bezier Curves](examples/bezier) | [Joysticks](examples/joystick-viz)| | [Text](examples/text)| | [Screen Options](examples/screenopts) | [Multi Window](examples/multi-window) | [Particle Demo](examples/particle-demo)| ## Games using Oak From 8c8e5f043ab905b67de83d805f8d55c1cd33a948 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 21 May 2022 07:30:42 -0500 Subject: [PATCH 141/146] retidy and update tidy script --- examples/text/go.mod | 2 +- examples/text/go.sum | 4 ++-- go.mod | 1 + go.sum | 2 ++ tidy_all.sh | 8 +------- 5 files changed, 7 insertions(+), 10 deletions(-) diff --git a/examples/text/go.mod b/examples/text/go.mod index cfa040b4..1bef8311 100644 --- a/examples/text/go.mod +++ b/examples/text/go.mod @@ -20,7 +20,7 @@ require ( github.com/oakmound/w32 v2.1.0+incompatible // indirect github.com/oov/directsound-go v0.0.0-20141101201356-e53e59c700bf // indirect golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd // indirect - golang.org/x/exp/shiny v0.0.0-20220428152302-39d4317da171 // indirect + golang.org/x/exp/shiny v0.0.0-20220518171630-0b5c67f07fdf // indirect golang.org/x/image v0.0.0-20220321031419-a8550c1d254a // indirect golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 // indirect golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect diff --git a/examples/text/go.sum b/examples/text/go.sum index 56e16ddf..21d854ea 100644 --- a/examples/text/go.sum +++ b/examples/text/go.sum @@ -30,8 +30,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd h1:zVFyTKZN/Q7mNRWSs1GOYnHM9NiFSJ54YVRsD0rNWT4= golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= -golang.org/x/exp/shiny v0.0.0-20220428152302-39d4317da171 h1:z30zqzcMCfd0FKAu5UKufCveE9KnQoMY3uvRH5+pxkA= -golang.org/x/exp/shiny v0.0.0-20220428152302-39d4317da171/go.mod h1:VjAR7z0ngyATZTELrBSkxOOHhhlnVUxDye4mcjx5h/8= +golang.org/x/exp/shiny v0.0.0-20220518171630-0b5c67f07fdf h1:IbXVp9Gov7/6bw4sWq9M/u1cr+mr2NA8SJWvFCnu4is= +golang.org/x/exp/shiny v0.0.0-20220518171630-0b5c67f07fdf/go.mod h1:VjAR7z0ngyATZTELrBSkxOOHhhlnVUxDye4mcjx5h/8= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20220321031419-a8550c1d254a h1:LnH9RNcpPv5Kzi15lXg42lYMPUf0x8CuPv1YnvBWZAg= diff --git a/go.mod b/go.mod index 4d60493d..710d2aac 100644 --- a/go.mod +++ b/go.mod @@ -25,4 +25,5 @@ require ( require ( github.com/eaburns/bit v0.0.0-20131029213740-7bd5cd37375d // indirect + golang.org/x/exp/shiny v0.0.0-20220518171630-0b5c67f07fdf // indirect ) diff --git a/go.sum b/go.sum index 4e184703..42f641ca 100644 --- a/go.sum +++ b/go.sum @@ -38,6 +38,8 @@ golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd h1:zVFyTKZN/Q7mNRWSs1GOYnHM9NiFSJ54YVRsD0rNWT4= golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= +golang.org/x/exp/shiny v0.0.0-20220518171630-0b5c67f07fdf h1:IbXVp9Gov7/6bw4sWq9M/u1cr+mr2NA8SJWvFCnu4is= +golang.org/x/exp/shiny v0.0.0-20220518171630-0b5c67f07fdf/go.mod h1:VjAR7z0ngyATZTELrBSkxOOHhhlnVUxDye4mcjx5h/8= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20220321031419-a8550c1d254a h1:LnH9RNcpPv5Kzi15lXg42lYMPUf0x8CuPv1YnvBWZAg= diff --git a/tidy_all.sh b/tidy_all.sh index 2623915d..66988be7 100644 --- a/tidy_all.sh +++ b/tidy_all.sh @@ -2,11 +2,5 @@ go mod tidy -cd examples/fallback-font -go mod tidy - -cd ../clipboard -go mod tidy - -cd ../svg +cd examples/text go mod tidy \ No newline at end of file From ce6d9b4d1a83abd222c500311150685c2e17eb3b Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 21 May 2022 07:49:58 -0500 Subject: [PATCH 142/146] Update readme example links for piano and flappy bird --- README.md | 6 +++--- examples/collision/example.PNG | Bin 4465 -> 0 bytes examples/flappy-bird/example.PNG | Bin 7156 -> 0 bytes examples/flappy-bird/example.gif | Bin 0 -> 490727 bytes examples/piano/example.gif | Bin 0 -> 203411 bytes 5 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 examples/collision/example.PNG delete mode 100644 examples/flappy-bird/example.PNG create mode 100644 examples/flappy-bird/example.gif create mode 100644 examples/piano/example.gif diff --git a/README.md b/README.md index 8bbae527..1830ec5c 100644 --- a/README.md +++ b/README.md @@ -85,9 +85,9 @@ See below or the [examples](examples) folder for longer demos, [godoc](https://p | | | | |:-------------------------:|:-------------------------:|:-------------------------:| -| [Platformer](examples/platformer) | [Top down shooter](examples/top-down-shooter)| -| [Bezier Curves](examples/bezier) | [Joysticks](examples/joystick-viz)| | [Text](examples/text)| -| [Screen Options](examples/screenopts) | [Multi Window](examples/multi-window) | [Particle Demo](examples/particle-demo)| +| [Platformer](examples/platformer) | [Top down shooter](examples/top-down-shooter)| [Flappy Bird](examples/flappy-bird/) +| [Bezier Curves](examples/bezier) | [Joysticks](examples/joystick-viz)| [Piano](examples/piano)| +| [Screen Options](examples/screenopts) | [Multi Window](examples/multi-window) | [Particles](examples/particle-demo)| ## Games using Oak diff --git a/examples/collision/example.PNG b/examples/collision/example.PNG deleted file mode 100644 index 25bae7378ae6e9bd4f98e614cf519a02bc24f9d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4465 zcmeAS@N?(olHy`uVBq!ia0y~yV5(VM%xN zb!1@J*w6hZkrl}2EbxddW?7=Vk5n>K#S8m?e;)VmXSnu9y^dkERS&~-S02W&5(!4VZV9F} zFASJs#0*&?E+(?<&`ILhu;?&HLF5sE1lM-K2b($+4|MS^aeM#2pY!Vfy|xsLYS4el!Mta!+pXZNEq}dQ#2$EC9b(8|J@MNV zsoecS3t4|m>N7ZSJ8OyUQn%adT{0N=Em7wAuuUq{f91t*+N0V>gKoGao6*{Lu(d#P zemw5C|6j~-><_1b)?$u=SXRLVM>oL-ySS7NH1#MQC>3>SV3l-jc&*jJz-`pUa6MFj zQ7lD-aouVKCY=)+Oflh(ED;j|S$3>z;@F@tYQSh1jHZLpyf9iGjFyR`^#XP3#t+;7 z|GFK|P;j;W|Ks=1|GxkK*Z<$c|G$67|7WZHl6LRiVNn6#FbRXFtDnm{r-UW|YLY)l diff --git a/examples/flappy-bird/example.PNG b/examples/flappy-bird/example.PNG deleted file mode 100644 index c8487a3c9c31b901401ae5e99507153581db60a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7156 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 z 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

      _aI;LssA_i6Hec&z8rxQARPBkb&rwjq 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

      oo~q(eiBzvc4r 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�S@~z8UG_gsd_BWdWxwc?5cIm*ofO1?<9F2qYP<5(jX*?I2gBcS7&zoS-7&xq|Mgj<_@b_c&cb+tYG5jFV8QjJiL~4 zrqu)MT2C76(hiCIHL}(sH=FKpZRX3<>JPY2o8i=LRsjyXu|91zo42`y{A`ELI&EuD zJEo)8Y=QfB)Uk(uaxcyK4GVaW(=Qw|+i>;}+MM@5rU_1Ibeg~6zCP}QNk2ucXl^67 zIU8VII7J(|>j24|42h(lF&=q#aV?*Xm>^q7KX2*bdwxC^obD(=&($Xt^{!!a?=S|R z9c=gEHZG@ivxqWzjH2!~r%KzTOeJMMgvBGV;gxaafaZR#ut)9`#HcoFb`K?}seCij ztTAc!Fsz%SOsi#AwoaYAf~C3PsmNT| z7rtf7F`l&ZF_!ykIUTDhowSSDe~7JCv)*Z!tF`y_jNT?~zh)2AdbpaM=xtUf(ylL! zIU5NptT(@=-6*+mw`Nz^te@fEKoYsziZJMH_b>>4!cTL5Z>X?6Vj`gUT`+}*5_rf0 zoc$S3|5Y%3Ak;_M^e<5r5K;kJeLVgFT>f~t=lz%k_#?am(&|HO^e_4KQE3H0_AxyA z$g&TkHIETeKzRL2q6Ojr4?$8udj-(;Aw~KaA^mrN3n;UHWZcK8n}-GIKSlr^VfX*{ z=J(&hUjR>o{~`;3$zMex^bv>g$xN@EK{v1n4dAJKwon+k0_x6;T;2eX1>omYlcNw# zB(MT5ezDo#Xs=DG%2B8DGEc8>oEQoNh&Gtn3M3a^^#BvD3;_xo!u^#-ZOlNzvQ}U;N#(tyR;tnN-%g7MqTImOtc-9sz_AJqT zs_z9XDhu*^J`x`!_U9yFOScN83P=tw(9YkqMSdKsB$bZbb?knLE^LpcdZQ>vh*;&% znvOC>70oK9=&1JHBjhEaOrXST4faxn*A`Ep-k_W0`M%`@Y`)h#(QFC@^xcS^vL>QF z)O@LNSvIeVCgAOvp?t=SL?c+>5s7#m&mvTo<)op}1n^aJp}(WaEfB8~l46Q3`3h^n zLBSAWt|Yi(O9$)8sW38jeSBMw5P+*&i1yicDgiW!W;r^_kA#a%4D%8x0ICO$UYu25 z_URW!Xg-yh$`_bIuv81tTv#7F5MCMCb%=|rt{U3Pp2n}Bio|EbJrTfc??S_@uj)#y za%xcU!$(0Ael9>ZDu^q?zz3IB*-(U${)B1_)<#C`1STuz#tb7J3X>Q9xd1XEFPyEc zPoZgO|3>^16GdNmEO=yJKU|f!m zjeOwRhiRV1c;kM)60Om6ci3Tb^^}E8(=~R%QR^wZ#o{+8|4llvW9;y$c2eNlhaz&= z#&L(!g~zLQOcg9UQ4AB$$!=D?eY>tF10fT=CcbxaJ#VgZ?S|(f#T@ZM36?`BvJ);-9T}Cwch4R=27pC^+kT{mYwq+g|?iY#6iQ=E{BxdVYDa zYix6KIYs##(zGTb{oyveVx;+sxM7*=&L}I2;b-u`@{9YE`DF%(--M3zwMgAC;hq=l zc^Y&|U>hu|weOhuCm8fCo{!L#Hcw#3U|+}bDOyGQp;afs^0+pjjavkeZ7hfd1b)X% zE%zg6B3feK=0_{H)uk=fbJNB7La=L#2w}d{dun6)<>ske;G6br^r&lo4DdiOJ2DAI znyBCitz9UGAhAM#UDftbbxbO4TJ6DvxPZ-B!y=Hn`bZ*shY`6` zAB(o~P!bphJQCn0rr#ZrlH!=Z7XB1uC@zy4p93B*E#k6_lui>~2VXaTWH+^rP5%O8 zGTK?h?RY4i!D(RfbK!==bxAVw29mRNGB_*dMQ0Q4a87x#PsQX3FZ*d>J`2~PK=Sj+ zSsWtmG6+AkCOGKbXIQHgKE@Eau*fetP-Uc|SdF6*!?w9FnuY(U3H_&$(0?}^sN{>b z`p;`0rSdhuUHecj`7d1inC&n8P7zWZBxNaz@L#y({pV{R{~QhsV+wU1%E=Qff}h{k zXo9|q|9(Ma*U{V71!in`3);cUZj#^Wj%lQ>u_md~kUvb7Yl=EQw2xC2jQya}3{88u z6qzP|9;(>lV{k;hs=;>iBentE@$l86hX{l_sWs~B5&a1b|NZ6Ix1VsfVAyoYCt0Iy z-io$+IGl0_Jm}v8O5n%yOvFt!ODs1LU1~{*Bz9@ z{T0}jTiXTIuO^y)TTj6+0oWdyq`&zX>BG;b2 zj6e^`2ED(b)1IcCQ4_hBT^HF-ggV+INi!FqORqi) zp|i+33UNng_ZUK5qvy%9`tg?@MJ>7(tT^*SQ_kLAEiyJLI14veSKbX=dJZnhi}=ni zA*=U#Zb`{Yq_r-gCtmtqb;-*#moDMZ5Pje2yx`o1#F{+7BO#o}HblWCUsJZ&e(**#Z|+bG5+WdjC|rN52CzSv}T*R0!} zUtvzGO5%J`HmYWl_27cBqGi&GhiPWZ@-p07YeqrlXZdpGZhep2p;vj+50UPRlAm59 zK04Ja7&<#$XI?*o>Ce|a2yXfqX5x4*x8ewIjRcySQ@vSaWtVTP zqFU$jzFqF5Ww?)waL?BOH@iDBe%h&g7*DbRZ6#RzoSJC8X!Z80Gx&9|SkQE}r~IKQ z#oKzTj^GwQ=|gi7dzABD55fP(+FAEi+2`$=MiivGML_9J=|;M{yOC~?mhJ{YknV1g z?gr`Z?q2T8VTN(;duE>d*?a$ct@Q%V&-pvP$9YFS?b%$e-g7)bI>QSBjm|TC~wR<{& z`Y+RVPlr%X*y`h`9S~a|ckTZAayF1+eg2$cU)}SSX8|de1W2*v|46Z8S-pg>*bp8Y+UDKUy?YvpD<9bVL0$>kXA0J|pgG|J8Hklp8v%oZqbg5-t4mRlb5vAwZ4txW%WRr1uR?_H7zBlDttun{K zxz8r~+15zN`lR5I1ma-Zhl8ohM|s(-DBIB_0=T#g$p(C*O*eLVqtGA%-H(|;E>v13 z_Qs$zQ+qI&@5?Iiyxq|k`?|Fb4LYH*46=B<86N2?uxf6i{z81P$Y>^?oo)v=(2$;? z5qDuygSEAx8QREx_bnlIR#1^5it>iU0psI;23~aB1xZAJwW2MhxEuhXQ_tj$N78Yf z6eO&B0f9*f&nEyL0)E1Whjjf6JCa{_(icZK@iR1vn3b%ruhcAbj%aL3AiA<>96f+jnn-249=)c zejJ6w6>uc!fy^B|BDMz1Y*v3DZ{uRo$;hUAa_H-#e(l4}12KYc?&_EI0mtrEB^;`S zb)dXGlcr1Yz0z;Mv3m*chT(pB0U0i??7+*tea{i$5DUpZC3DNlAKWS9H6AE07Als% zDw<2w##2t!)8!P>DDSrb;zYI1!m+0FE>arj_07h(=C><*wDMpv0MY6sNts#mti7?+ z?STbev5f?u%2xVsL@Vbb(Yj7AN)-6+M?0LbMTInpm%?cuMRjOQADvU^Y0%%)LVUl} zLeIy0j)$qv@N$L)yDgX!fn)cvF&mbHDp3ag^V10|Me5N>6_M;}VL2y!>Pu+@ z5wpt~%^dvQSqskd3mKd4!I61HTYzZgcjnB#T12hKH(&6EC15HPz$B1cLU<^yv->zF ze!Uh+*kZmKYmCp{5M%rjYE9B1oqhWSJNND8!6zy9o##m{9J{9lAhtcYdT!4BtG*Jp zgJ&}>oQL3hT5LzkaENRtFgM)qj$v?HSx=$gdc8YC=d@-$XV*J)nTv-ke7O7|Us`@) ztM5f|W067|c|IKSlm6DYPDj_vSLli-A&@u#ImTEDGI zhRvPgS7=7^rk|gMPg4?LSs1YaVQQ$rc&WtWeYEt)+1LFN6vU6h4&N@si0#hLNlf!($5x1`LJ#)PIeEugW2`D-o@oZLmkB$|xZ$7gN3V zdf;6?kKEL7?6SbdrNR!oQhIm@o3FuJz8Oy0l7YBVU&CPo7jZR=h=lxe!&3`W28~6j z1QEzh3V&=ay?}wlRspi{*covnBg8Pfs?D3c8*#>0FH;;QHg8jV=}l;)lV#V8XqsKv zZ5Cxy&%O|0L+cIgWL8@2g5HsFHg65R`!4UjaYxQht2BJMAa8jSy2*VqJFR#{hd3?f2q^h058q8MLpMp3e_8)MXGlSmmwC)BS?vec(a zgDhin**DCT*khH+OyVONH|!njQ^Y9Q_$}>)B;rX&V;Pfyy}fS zx>SSgjBJulW{mwoH=#c9$Dfhawu1<6Q-ZsWvv_8=Be@&WqA*T!Zjwwfq;Iq1ShjQR zaCaB1k~7n$PV#)!cURI~v+`k13u5MWcZM1os*R3{TT{$$4`-X2r_M?ja4oJ6T@szF zRMNw^EbcIHTf41{Dv)a|OjuJ|hcB(GO0msJwCBFf2p`wfVp}}}h8e~QRH~~VEMXJo zzHfya+pSojFgxM)l@jbUSEn8=9;OUD&>XhH&09Th#qBtO$t#AWS@yB3TgGv$3no5X z@hxOqf$Tg>gd4I!d5_nHCQ{xBvJE}4zcXK0eOVvEBc&hLpSU6JSRW>GxE4L0+QSma z9%neTmcq%tb@r8U*ni)S3KGA8|EMn3;cz39Bx%Q_q&CHu#w5oMd)FeqAvM3mq%Z}0 z&vT07b3Kh|DJsr>00w7PZ;5HOK=MI43+I>7Lz7y4oWp{6&YT@9(?&a-qlzicyc-&` zwwUDOua}$!;76A2l{hCQO7DuWBdmM(Qcmw{np)`*Z3bVYp5a}&xAXn9=^n>9eSz8B zEyiOzzJ_zr;K)^~dt^QXnR5BPhO69m*kXY*Xs!y6Gp2y_6@-N91U{?Rr;4TPGivmml4ek2ve&Qs2}5^6wEA z5K;p96%bPXVS*X(JN?@etf%n$7l)XGgMSV80o3cG%<`#u{ZDhu!0|rNxdK}+fbH`4 zwjv*T?4dX`1=z_zLi1{_Y?DbBg`9V8G)?Ah~+|DY+8fCW@Bpb%bDn zo6Pqh1DYnFe}z&l&yI+C1N%V(j_7awD-M&X?50RO{;&QuhFJ0w7s={8(7(#2@sJZ( zvMH zB3RQ147!QvGz7MMnJ$z!xExu6AsEwgo9Dd;7`PuY$PYtBoR?Vdd5dXBJ3Jl?*|Mxo zF|qG+3KN-CID0x<#ZL~!CTKq9GBP7jMo_vW;jTL>Xc0`_%dud}*+}h?f@6jTGEj@W z9axI5j|C9lgB=^hvWo{{`hX#g2))GX&~1m8GVp;&w3eJfO@bgE?SK(l5AMWd{ux#&;H`Jkf1xB|(-uH>mAhDkGX)w-_iy^`bxGu)zY47<990_bzQ<)~zZMdeH$ zqWhJ47thB_Cxi_T-UBE3@nv0-dzMOb4HE}-!f`2M_1oW}OB_~fUc@!LDW^P=IuAEE zYIbZ^*J`@|x>xEB2D?vFsn214T>Ff(;P|`92IW`_QtoS8Q8eXuW1U2XMddn>h$_e3 z^tSHfJ+E60Dntl!Lr43t0bQ>+o%X~ju*gRhJHX~UZ5>Tku>!SR`y@;-#YHg@n}6vx}*hx`PwbIwbhi6>M>mcGDu!#g|GJ@;jGvUpu+B z=It?Gvw#HDTAQ!esEM^umaV+GdI5aGU+BGyR7Z=_(tdx&)aBfs@xpHpS-!*UoD;9Td6ZwS6fUFO8 z_~2Lqvz7g%FQxx}bV!=k{^C8!64GV2d4}Ejp4t-Q6_pDi@(pFuPmi&7qf*f1@-!v) z(Dv4O%M6*=9_YcfyY%Ruv5-*qx)uqX!{7TkJ<#j_;JNfS_kvd-f?V0;b>>6zK}pqF zptvr5fkFpRs>?IUlg&sp;l5C3L_c{=_gFQb{N*F3R3~UKOVrt2?W@T+doi6F=WkBxobb;SJghUVUA6(S@z9m!Bq4 z28$>y#s`Zqs5O!sM^RtWXvdIqwbz|&V&4=QbP_r=$>wUr7#yQ*GS-#fxUh=X$Bl&+ zH_cJ5VD)zm%0*P$FHnQCfA@<+3dj|lr$L{2ANU{_&=#vfaa1k7ydme<-eExR<0yec zHvXYMR+%yLN@7k(K6YF|joH#!a?r3+bIwAGo$E?cDWKA0tz(5lXj;m+<;>>JqD?WB+4{?tI1x%HRd~Sz)B?k(nN^$b9e|2pc8^Z7J$yMiP!$cc!lJ8AT zrH9F>(#ddH?&&~fK-f6lr*`?jSX=%_{|c-v{~B(oHs?U^lihJ)@<#PY=c7;N4`V2= zTj4B0jB%5)N0`nWiOaAL7F{@?C~q8!({uc}rAhg*HjA*iM6kQR{j}kvNk)>^{lHlE zV$8Y)GM3iOe_QL_>XrAcVF^)tVb{Z}@>b7#TE$*d9deY!aD=a~J|gEYN6uo_BMYzj z!X@dlNd1ULhuQJZozrEv`VmE1vlhsQy$ZI4Xt`Z%9b%ZO$6cZl#|UE-hTx)aw276( z8L%Eqiftf%sglA|V-&^ZVqi~})COU+9?4#BpujTIARTWU=g)2^Z>5@~OfVf(e`jbB zFr%&yvH~Ryx@=nH%ru!B87Jss8%ho(#XFE~q}e7JD<38$(30tfI?NlZf|3$_E;l~= zXqc!Is3ixpY-YvHn`m<5q(*(+%+5?TwY5^~j|9|pHE}o9u!8-m)^rhn-1rvH zdIP0#da&8a=d4)QM<8*TV39TGPE(WK7<&?ou&j+e)CN@=uM=Il{JZMFF^l}(;Py~m z7>G4|Ej(tvo2->BN@!>;hJ=0NjLg0xr|1JkrA80))#+f^{s;2*)D{NXV32G0M#fgc zB4e%H&`zp77cKs<Ak@MlZu z?aG9P^^cz^m{lp3&)RIWb`Mv!>Dw51*w@dYAe03;V)B}qx*&+wqAz(T!jg1%2)8MkS``rpO5?lh^Jm znaV^jb7JAup}@Rhb-})Mz~d&Bb%tnmUdPChD-a_=8-juPA>nqGK}D*;)yK%a2$BT{ zd&_1E`AqXQ5-%z>uS;Ak$6ILc=Nd$rLNE|FHqdCoCS*p62AhKDV9zyp!T69R=(ZA% zcO2$3js}_MKKnsnz0nCGyIsi&W!^Q3jMO6A$@a!EOO;IIPM%2cD@kT8nq1u*qvPr5(Z;$?Ne zR=21KeUsaCQvR`P?^J{sa`JS5w0$6NfQ_)}G?MkoU0@J7Y@cBi2|JBpObmK~as1_5 zNrnjou?PA|c-3P1DS7rV#_8v#n)E;5f)VIvo+UNY&8oX_G0wr{Thh%#_u|tnK+O!& zf)@2osH(Jiq<1byeG=HO$NcA9t|x*M8m=e93U9BcqQ*IHe#C9L-pnMiHr~vpy}!Ge z&(!9;UC6O>yIstmZoF-FH$QJ^Du>;=T7s`FIody%Dq-Dk`02)Zhzy%SceH&QeqYyz zDBaY@A+mdaM(g|HNPGg4pgCvUIHU3+Mem5Kr;D?xsdg}gr-gr~vWoj|L)zW5=3wcZ z`+S+C5cB{ud4&IS$xZos9+o$~15y9%OZ?AN`ENc{Wj-+T1bGd$EwKC}KCo!25E+JT zFJ4mnvV2*-=5Xdi;UDos5Yz=%e8!7$I_!VtyK-ls!iR)m>D!mJ^2{=k2@m6aAZQU% z@6u0{>lOEKP=~;)!`N$9vgd=r(rdcof>?rYg$Dz_eO#R`Qemb#6c4dp)0=8Cp`=5R z`dFH^iq!donHeK0OqWEzXdsA<>9#LS#7}=_y@!H>VJN))yFSWAA`5qVUqmEic0E+R zAb(9*l%&1EJp5YCWK$k9HqdQ;FHfRRyeYN>Vf58RN|CwEbW2*!(N=YReQO zuDm-M*DxVL?U645S2vn88|#D9yd$AsAfIqrl}jO%|39x0mVWXr`Fp5s-5o7Yz9`b6 zrc|5eP^zxDDAsbI)L5dJt}m%Bapc-ly6XE!9jgQT{;#bOCQp*>%;&Q?AIhaWWgDZ5 z?Xitpp;r4SfDUj}DcPsPF=|3$4{%M*+2^vtYm?8Y_q_MmS0EzlvKUL4qs%!rF0Im- zib?Ghx8~RRracMJ4y~N8pEB#e&sNR_X0Sri5)r2 zC$y?~5_r<`-Nb0848ijfBoU~+tn0QI9;y07wMxB91|Qhcilp9L$@FPwpGFmHs8glL z_iqDG0cY>LI%7BL;F-eN%jS1NtQilO z8UogsqYH}XPS^_?B3GDWM{)M=U0(-+l=_W-r-6)|OXVX9aCe4( zkCtgBATXiaZC28vX)X`WUgp$ocDVbES2a6UhJab3&Fz(U61Opgtn7gxN8X0*S)Gsw$rqDm*@!({iYco z=A`kih^HS0T?p-#yzs6`F+sz@8Fp)>csJC_pwUciyB*rJ8$Kt{KtBDF-JW#XozN9% zvMs~@ggpITmi6b>sJ6pJDgK@0G-zlh!{KTeAEcS^b7Y6`G7Rc*=I1HA4*xT}J}LzM z+{gm?^>O~^iG_V^VIRZmqbl_=zXB929Ua|c1^a{$Ji@Phe0%}|0#67mV8r_UiVKhp zXlQ6WA_Rar_4gAlz&G$aFyQCs2Xw9x5fP8hE8vPNEiDZ|T{AN?f4|~-%&(8O)S8-_ zr~LZu+qXv_e_vnU6EN`TO#K~l1-7;ykGg>T`Y0p-2DO3k`d9GQ|I)nvr=R{^c!jeR zO%;uL)e(aEtC5W&c_d;@%d&cdU&}9U_k8&BizV=U=ORbe6Hg5^vh^`v#nO>%E1<-y zOhhx#!x+$JWq}b!z#$Bm|w7#YKOXY0(PuA-Q_Y54#YmTVirFp}M-iPEk&Qnl zBM&@$hB}^^Sr}B_KppXF9|V$GBuFAb{b9$!hs%5ZSu_a^3?qD3A@$KY2N@szBo~ ztMK8xj_O2v9V)u&@4jG&^o#)N^LH$Sx*v+cLTREhYLKxfKH;h-qOlQLot@y=FOh=d zqIij2FukR}Nd)sed zkaag?vbKjzxkyG(X2P&;6qC79c2cT&@`1Cl+gUQq6yxZO2G4dvjFOr8ut-0T;cTzDjOzZiSey0vJ&@C~Zcyv*epIi7W80`vZ{#EWV2lMXOti{(x% z9<*Z-kRu*?N1iPeg8-pE+G#JTsYO;VRRq;!QcV}UTpxCuggl-+G+UixtRz`X4FoSS7O2*;CUHJk#(vc^y!MnBKP!Ogy& zrN&LaAqKKw?gMhx&1R-@VSRh5G@#Ibp0l{QTST&cyPcO%aR{;*RC>bvKBGyxe=Ylg?+4>gkCTZQ^X8TnHy-XA zt~E~gvz@If(D?!3J@@GeB6BP64Qut!$&L5ZH@lOqh5M!6I_x@N3(UOE#5NMoiwN5f zMVerDP2Dl>3BgEB=%0gVe1AgfLiu)+B6dmnoe8YmDg?DbUl#i8>8)HDx0fhjV z3mYFscw`8p!79=Xn-EKQRDzws`am5OQ&*HPrsmFoLaC6|_>4PKA1HJiold z>!K8%P7kUw-uh85=#-3@Auy4O4Du*;wZfBaHuZBO9N$9SX|kSn3&}QL+!L#$U7absl9DS11qpWckLJvwOZKs?Le& zkTgS?f5S1lK55^Q)QfUKQf|7w(C?7ET>bq)O>|@H`5|>>!uP#sC;v@!Z5JoEj@_>e z&AYgn&b}^-7!|d_%aWV!393uj-<3U2HweyeQ~K|u=v$}fty$pSNkAHpHdo%4f*>Sf z4#Az9dlpDOj^{5sFw`YsgVq8J=X7U1ol}Sj)`J4oS69>P(%y2fe|nF-CNz|o#q7Br z_GM?8mcK3m<&x0foI&RztG3(l{)FDwf)~D)t)BMKIGj9x-Hd_VM+(En?u*9A+lUX{ zOM<63ZSSP$yDR#(nixP(l^QFrx)TNk7b~I;_BQ0Ru;sqzoWw8>Yy?c*BpHO~CONrm zEf?H;1mWA$ztGHkx8^+j>af!C=lme=wEXC}!Ff8~puTwP_}EQ{JsTgsjBJAZxb>=i zBG-eo9Qnk=nZ1Lcu7|X0;K>M%fw^)=7-O|;MRq8IXr{rUeBnz`7W~PEq5-4o`-%Dy)RJ4<4a`Y{ zrH1WG?fG_Wk&`Zv!@Mnu*L(+Y;7L#Zz%eOj(}t3#ORuW?2h3cJKFXh`0~Z>0Z_j=Qa|dZ7LGf4|0qeBNnW-v&Peg9CK@@62dNw5J5AR>73ue zwVfRaL9@XTEQ{L3SFg{wmOZua>mY}ZdWRcM^)K&>8F^Of$TyaAO5N7jLD!Zd+;hc0 zFZUYp-JFKG=e?Hhcg3{a+?EIy>l0YFFllbJeL({WOHA{MKi%A6wU^p+osXy&-9ve_ z*BXsoP9nHH0C^hEWWTZd1)rx!l(F{K_|^5btd?h7hW7SchT|3HgGW%H_SIgk%bhI< zl%2b@ezRqF2W$U;>A;WtsQZTn`@840?Vm~Z(e?iqk=REE0X{xHAt50k$pS_#e+LVI z+pfp4aRvqkK$!Jd%sx7^I5;?-@K`Z1u}4ByUS1xUzkHkoc)IO+>}LNvA^T^kmbbU} zBOd$28T@|Um7bpdc;WRs8(UUZ_K3$m>0N=g_V;;!->Z!K|sL9AFDD$mO8KP%^v1NaYJOdS$W&<0+(#{D8qt z@dQ4LkFjvPfO-JY7Gk3Z08PIjYrgVVvCo%JNjqcWzlB8(n z%5#3f&zS+(GA0urrP2Li5U9$KR-w(ZdmtcRDX~qf-DeVm^I^vFE&9>V3TDYOFD|!9 zU>2?LLtkB}j7Pjbsf9$*H}UaCf=4Rvz!7Lv zA6O(TGF}+`H$)#}LxU?Z7zsamQfVaJRB|1yP%3$KsUBZro<&)vd>h|$)Q10{F8>Xl zcAZWVNhEcogHF-ngb%AS`=krnp=qp}sNe9g=1rVNR1ZCM(FXylT)~Py`UEDsUgj8k z#vb;g_0xV7a`^ROUTrG-7(vXzlTl5wV*4J6v)%J?vR1*h356Gh}&J zx+3pbWL4xnE`|{Ts77Tc&yzy3HS_iUMsjzdR+7S zH#XMshvnWm^GC&S)+@mn4=PQxk!hW8V7a_x+J;dCQSU$}g;VdMd@Z^egIY?u*^}w! z-rlcLP8*-B+bUt+>iPs?*fW8XW;`CpiC{e4rx<2DJK;EDKED*FWw`)Tw`RFSG(Tdw zLUW^Ky~Yl)X1yUuIbyvfDWqk)qrOV#Jkjry=6v96IBev-E_`YE^NmF}#BaCf-Y+hUL6ZJD|wnubx4&;yy=5a;g)=VzKoVc&CVb z;V9TZO0O(kq>EGh@&~tA1w!R(kv?b?8DFMVj3kHd6?7CkCc(8=SCc(!l5)Cn8jGZX@x5D? zD5hzti{vR7eS2YYW;yeVZ#fhCj*1zai}98yV=(*A1}j{uHI}HqB=lb$RJb;yEz?$F zNbn8@Drf*M>fTgK)AG}{?9LF3)ma6oae7C~9hAGBs72`cKutFk$IYbyVdyBCtjdb3nbb9z!oSH3H(#{uk)z;uYIIq|3VG>UXs@3vJ$(K z!bD_Gb?DzwvG3<*|G*X?l-LBmpI`ll=e01$wctEEG&`Tf@{?fdtJ9n_3mV7b!l484 z>FAN1bth(QEs5~yn2n8f7oj9AnUd+)1JVsQMQm+_q3O5_!wnC^ByE+$>G+474KD|5 z9gUYi5}-FXeEgGibZCAgB9LwR#$oFkNc~7cH`?^iNzyg3`jL!(Xkh}4qi5l%l0v$< z8HA9mXOqtMmD+JDWKc|#@I1kLXR0!MRcmVJOQdg zH$ioBonMj6>vq{*F1=Ixv``re&WS$9^9rH1A`z-?(f;MQQ&4@!z8nMO*uX1(MwiJ@ zhBqOxLyT3GVkhu2Ts#TGco%jt;0SVj)=49;neCIESPg}SlSa)QnOu>>lrUy^8!KJSzh-8#E7rPM2gSl z7}FM{mYh>K)7Nvm*>@$N8c{o63YBQj?Cp{@^2i_R6Xte)Zff$i3Z#ALdvT zD{=BKT$ppTzF3S|bc*_kzi5$AJ~wE2Nk>bt6h_N98{z331j{|;o9nugqvi5RyJae= z^lr2LrISnF!aIBIi!D2R*U1Ra{hTf1J?-XOtzplpYQ)O}>$E$)BhTq(>B}Q8{Cgur zuOFQemnRWv_hz(SGlQ^KXBqe&!FODj@M-t+oPrUjyXx+@DL521j`#DS2x8muCt|H2dmbc*QE;}@+0l}hiStj5gYJCOUNLbAF#66f6ueez}O$L zg2sR5+27@^aBy(XpFe+8Y5gZk_G$3+36y=*75rPu;E|FA?5_Y{0I;&aXaRuB0vYzt zl+Wjk5AmGpTN<8$sEKA4_$g=~^zw#^* zp;RhXg~9hQTuC6$GOUOOQ!8gpU{!vVjHG?L2*n<=Hk84uxd}g8P7anO8ob#NRh2dR zRmPGgZ1(u=WFc9u9@mUrp>l*;D@GMX4OM%YkzJ%@e+`jZrTJW+hdN7%MvZ;v?4a&S zFDB)iL%qQ}2U@?E5OUdXi4rMvOWj~udNM!TPIRl2Yz66bbj$Wj((8v&k@TY@e$M>V zg2S#K%!DpSt|{q2J4j1oK$3&+VC@r%IOR7|Y;Q8xOj$<-2f5C8lF^hY>^aibcD72p z!OeUu@B#zFOcJEhd;0yxA-`*en~Q&)*B62Pb>a;jAAIl`=NDFHS3U%YkMCX+Md4VM7a`6P*)5g0nM~3kXx%>k_%n;7^Yu7y!EfXoBl>o$%OcGF|@6#6hvL%-+ag zV6Rf6AkkRz;(+)5uIyK`!ugT@yx3(??MOn;1btE2YpV2Rgz3ElV8F_VgkF+_M)88l zc0|5@{~p2+4U9Ud%?~pV9H|3C;SK$_cuI$xad|MRZ{Yf7;Jn~479Wzd)RH&y*VAnr zHppeH4kxxgQ=q$!X9mS*=ShaLd_w)~07qf^DR$RzC&$YuZ}DqtO_HhZ=YZtNyvR5+ zGtr1Cw4DObtIXu2g0hdKdnQ#=uCj&n%>{e>O*QL)tH7ntxTJ#vjp}_nnfXWs1MwbJ zS#1U2D(DQ)Ua0;-097nL=$O)8OXfdET~C@6Lft@|&q>|*&X$sf@7Qy_r1HYm-n!xj zgY>8g;=*mTrQ^8;a$76T{zNMnO%h4(>PWpLnEP>%ZOwyY9KP5HxH<_J*SX2VUtYhr=c5H2W62Qm98?luLH@>s}n8 zo>bp0(j2Q(SQDI$F-n)7oxGBEyO@FvZEhYR@AbG^Q`hFcSlYw&4BtXs;yyYe&uD3# z4I%h>d4|};{po5h<7eAlqs&hZR^9=0n-8$|su1!u-vS=2buUPkAqg>fA(`p)QBzf* zPwd)~43G7YnU-N$Yue82kBz%X6rUlpeUFGc<{-yYdoEwi4_#wpK$ow=?)b&s}kBva3(h!GxF zU}w0dfgJvZ2J!d`7S0!~~4` zq~kwVl7Y%pIW)S4lA^}H{;cceu!ccQ%_qtF#hn8XKwflsuBriHrlcRNJ{nD|qjz z9%NDk$EBjGCGA0$Sh~1EGmB9*iW3^xww%HXU!!V`&ndiKg-4HLv7V()+g|qT!;x(ojIp^)$l4bjU)YV#O+_)`}VE(E(0>t^h~`H zXQ^v0gUa#sjS-XPn5Qm-+cXVqOB3f6S*}7xxlA0EuqKj7?e!7D1O$g=M`NaX)0(*q z9Rrh>42>LP!PAX=B9fLZS+0|i35-3Cl2#lXuQL+dO#Mr-S6$+rv)_VDy}IWXL;_e% zKpP0Et}l?+l`(G2WLpg52ou&*m~W7EY1EReM;DtroI07cOv5u~SFO98Gh7x;Gg@)B z!!T~Y1Z$anS;E;#Qo8+`v}l(56K6L+{x&aP%e;^fcdvZvwxE8|yp#ubzaHbRs8`FP z(hK*XP3f*=X3?Vd3iq%#{;q6?+olmV^$7OLtqr`@rj0!H7?ah#J&D1%nHKkiPuaZ# zyVbhaIQ0~<_I`w($M(n(?`YKVzKT!Va#TCze1_$rMs~?^kT&fM_v(I_IKzHg8vl|j z;bGL2&|%IR|4L~3VcaFdVJQOtS`rg98BFN7R*HY4s0^A;%5dBo#=q4}0L|nh5jyQ1 z;olifgXZcpu0sD#4Z!|mc%bs1+4Of_00^f41s3=-DFAe;K$ZG9Jn#evJaGX}P=J}4 z82|-5S+D>i;3;lC;Q&u7Sichize`;K761SN>gwu#X8{0^^$`U4v)2{KmjDIuWOoIY z37%Mh$95FhB>4Y}u>Ox>^bdakvgsd(2hfm6#O;AQE`Bg9MzgBFb*;}yKS_XBtP6#` z`ISvSEcXOcD`rVxSAHD~q$LKjsok$^3cWdjJ)t)oDikw?CoY%Y{sk*doVnMYLLd*U z$ZSK!fs(&StDRw=BL3GM*NbS$Uw2&9CUXr!FKUbC>-F|NK~t^;Xd_a9**vQd41{bF zy9j`u6YK~?L{fMY`N{_j9xo__;_?$ZZww3+x!_wcBEPT!K3404c|Sk@JaA926}s0D zW}geH9cf0t2O&a2@bQ*2_WYibA9Mw5=yb zhe1jL##G}>5`HsStslVx+LjIHLs0z^#Y^+Xz!zq)?sW_yFL%uo9QB}^$F?TA1AgXy)ev1 zGg(LrOj4vA#kRkw3*TIGYkHf3Mh-R!IE>T($PLZ`1<`7XI{k* z9ED=B@x@z9v6Vg!8tG|0w?mPQnuZdQgREOCk&|!^T9FG^*HYOXnnr7(8>3rVA#iz) zWBCUhHyZ(Ho`z#ZI04QgD`a`j@(<`CZsm^HDUG(S_>Ffb0mS{B6~Ux)ZXZJ5?lo3~ zQ@^@ zSmS*9xmXrjUk(|pe8TO$UXtTk9A9jHb!f51BhHPwQ3-5%ZnBz5p>D~$Sy8Vqd^$wk zp-Fm4vrSVFj<#29j!Ut-+aN`=Ptuo8y4O-F=5ky$y?B)qgINl3(#NRXbXFyR*mStP zdPsY*e;S^7o^3Z=f7Py!Sb7Qf5wY(2JlZScChAK>>Fs8DM#J5`S}ENFSi4u+ef?ZX z;RDJUVL6xyJ-A#bu){{wg|tl%{UOxnl^szJkqHA_bm&KlN}@ixZ3cvjP+x{Kq5)nL zM&z+jKMqFXA(=N!=%=Cn;&#NNI(5w03}FGrmAcb5Y^?ZS!vaBpXSxgCbu9PD5?Yx_ zH#Vkquf{4|D^izeD|7oVPEca4*^TJeatCxSBVr-#H&HTOcukF>l3!G9VvBr#Ye{jG zvJ9Wg)-5*lA^9wITO#-WDVu7^aA7^*^D*|xu0U6P!LH7G%%eqE;oJO5@H8m%up1+g@4Q z4VshbO|uQ0P}_NZ!q>#dO=;;Sqpv7TDbgYr{qfxDGAm@VNOv4-_MNArZ`$CpDNo|; z%MwSwVg%5Nxir=s%8;Xfwd9JWcH$hyp<_UE*ow6^);!Kjr@+p^6w`KEBk@Epz8 zhD*jXlzNVip_+$CDY$|MEK!Xu=Z6?=cO5%Z5l!+;)}R9Qu01oRm|d<{ZcE!*5kqoK zZi3dBYq&xW0a2}rsn*1McapNMm-WG+H0~!U;?Nnb(ekYxICG zlr4y1bY7HkDS9wU!A=dnNR7&Os{cg|qgl0vF^vG`Fya)W`OUr>UwiyW1v8T+vZcDv zTKs5(1CurJfw~xE!r1p}CR=(-4M~!O@xBWtJH7)A9&)S^a*PW{u?0;gc^S@*@bi5Jtdh#^eb=yklQko7c)yTabwj<2t`9kNO*OxZfVtZ(!Qx6bV6d?i%l zl4;svl0%-n6XEFkC6n7UUnF@qp~f|*yv4NGIC(GQ(lxh@+pIh=dB2dwEkF3B&6l~9 z1N`p8vK4|4wR^Zbl1grcqad^9?&PD&%f>qJC5twmyXCi5*ZzbwOF^|xtKVo|q$NmQ z#m;FiJLg_)h@`uC_CKtqkza2iNI8G7_T0!EzTRflx=GFeZRXS7?D8z$er-)ZEw{ee zm)5$=TLSGgm);)b65JOd{@m?6x;?2)zb~Wxxi?6Ach*htP$m6yfAZ+=Vj463F7XJo zu`qmdWt{%-&D!f|gSJT+0^;vW1b5sL063e>l<{ z2L}hxW<7SQPlYNVe|=(J9|3{KIjzSw6<}V0DiweNfGSl=N(!J|9}87wW#!**ww}gc zf8W@81Oc8B?h^v==oyHPjs~J`LP7#?tpy+e85tRmg({%O0ut_Hl?pum1BQX89u-Kq zk3A|7a(}Nx2gXtN!Gur28j6x{~S?K1a7ZI zKV){rfQc7qsLHJi#?#4K0XV={{sd&pg4iV4Te|Q`D&KHHvvL#huQHqz zVdA4eeflz2k6G2eP}xtdl>n$u_an-TV524X(5dIDEy^1tU$D|l)*BU*5v}_7hZ5p_ z4eecB&DTtJ?pL#n7UY9M;-Lz~I{rTB)6R?<;xM~12=Nh{q{q}7+g4^k%2MYou|c2@ zAr?Iywq9M8_@H*$rHq|{P~2+>C;J)xtQyPcx@L|IT{19lRC67Di4~*vlepemj<8Xo z&w*@X(4g>q-FuGieU&tRoip%np%gqXb+W;_1zpb20Yv+`Hw?}jy~txAP8e5(>AX5Zhcq0~yttzn{=Z)WI zK5$_P+gG1(W;-)vIo@Q(zfhZhqZn>`@a!A3E*sGZ7?I5A$H*<@o2hWAAIB3YhHSFn zu^2heCc`QG_`G$&pjQ0BG-%$CYDyu4bs-4DLGi-anM4`|uw`zdy|AX!nJ@$^8-amv zVp%7ZS0W`Ak``4#7Q&%JGuuvfaUflg2e+X62oWunycH1d_#7qYlRw37WX7(^ZoX!8 z!%P9Fs36HKs;p}_|Gn#}fq87DRQ_JcO?|R@@i#L2H*yZ>ZZTzj$c06G-2`#_m9Rpb z6IBx!1_#nVj5tSXxE=NmR0qtq_Uo2+UzgPG%vM>|988_lRG*A79aUa*+0!&`e66Kz zdN{nIZ3bs$qicaKbS|s7sj#PQhx4kpDMu(hr|U!};h--=KdL$@!B4QK@5Uy%D=#LF zVPfbZeed?6=q>66Lm|Ce6+<7jHs@JBvy(mJ0J~jdWgeH^IpZK-Ag6t<5NmZ+wxqH> z)38|KoqeXPvcpB1Dkl^3sA6NIL$W68IrF$~KPO9qA)`IZgy~!(ORS~c#a`WHSMd>` zdNnVsZMS=&TFY;(|4`fMv&42S6r54V#_wDEMiZy&?P2aSHXbVP2ie;0+ zEu3&0I(Ud>he6qjy}r3(r(q+{*Qmjzy3payp}xQV&bC>bVtmiDTWe?E1Gbc7p=j>D z(Xx+6TkRZp3V%56(6(~VpZqe{G(4v7$R$2w9zmJ6aMt)xxC7Y)Dmy^E_pCf2dDmKh zA>iKHdZXXe`t5;a<|jM`Z#;sGE_BBXIB7iZXKERJ1i@KINesRM$q_?zs5xkd|3lte zg~j==S=vYvEChECBtWp>4#9$ZZ~{qy;0}emJB1ZaAi+JjySuvucXz1FyPLh)ng8zY z>FICgnuG7KIH&^->RN04*1DfKp>lHtBNE>^gjihRwyPCN4O z%rXSbwCR!GOK|Zfibb}ItnFe;@(QzrM^xKVtv%Pkeg9fMD#eHD@GSw4RB%VsEOV_sRfh}c@&S7)ELc{SuB;#w(}h^r*HRTwcLeJ(GVSPi9*VWVTr z0f`!tBcsb<6Q8NIfs>Tm#}`bcHds%^rUe;Luo!b1Wus(ws+RuHTa=Vt|N3S)SHPAu zBIUrA`f{08(CKGH>IJln`tB%K&}}p#4SGrqg?aPN>m=gaGd3C+jJ$V#n33r(>}cR9 z-UtP;L}nQE=e+0a9SQ$GQ*8ZPeA+8Usi6`i*pR1M7C2U@qmrXj@kYI^_Iqg*d;AC4 ze9fue$-hWc$AO2luMc$qC9ik?SY>_o%bV`xxhM&BE6~Rwn(5K3EQxI>FksEs=s~_H z`}Utevi_wGkahj~s+FM28qPYhmE@)Mq0v00CM(r+!D|}^WT8-#$Xe|3B81Wqq5a^< zI^we;q!tw6&BE4LzH)|NtrjJ4&)6nPzo zh~WHIYWJ`^X4RM%MHk2H^rNz7vA&ZavW)7A9zRy)BL2Kpq})0C!&(KrC;RF$s%M++ z#5aBZGp$E_ub6vJOwYA8gKk3KnAkCQskS_GQ*{3|+bNW9WL}v` z^dM5j>AT~31%9%aA&m1=Vc3s~LV_{FxOObeZg*1ThEXGBc6QW$^mtef+|=UFPJ>bT z6-9L+V|eFhAfb;R6+Iy1GwkP%ihx8-`!|W|3`kUsCdlM=#ks5Xg3iY!$kg%qxjPPt zti+Pi==UFIDuLQx>9Wdpa=nDC zaDp5?FM*CI-7O=`QhD=G=n;*}^-R~qRTmV2^u&nHwTGnmq?=pk#Lm)nfOd!_t7`tl zyXkI#+47?Iv(BmSlItM1{OQmk@fio2+mKkq>B#ToGae?lVcDV6F*K5M0r`e86|}Pn zk(6^`%ZBlf@@GA1#24}&{1XOb=QCO<7s|!_ljgeTbEYJhYD4@}_G#w}E-9BFBydX4Rg@_Y?w9!IGz zt{b`>4ZVtJHk;2}H@Var`u(DeXLgg%sT>-*t%qzDl9JC*@Z9R~boU0x>P{)4ci~_% zy_MCZt1*y!Te^q&s$tSKw<@$r#Ldzry^VBhf%E1vh}1nZf^2);;pRFa)jhYEY-hjf z<~Enqqi~39_x$qaz9!Y96rODT-Vk()0D{c{!3Tn#Zh;WGK}a+XD2NWIMh<8a4j4HO zSb+{WTMl^L4g@rgM2LjubhLzr{hXxSS~ifw`zFb+;q+V~^nPLO2Z&!r4G{ z2%O{sgz%qn?O&<{|E>fErd|)q_pua9OH2Ew@&yK857k(9c6Oi+3xv6kN$x|H;4#nr zvrqu6y>xVR9`!GPEdUZ;;M#$urR8JJ`xhY$M7@4~egL*0I5_wLy9KPk9%J7JMGS<$ z0DS9l5eBdfGBY!Cb94U^1OqY|$bug`vOwto*oC#WwmzT@y1Kf6%Iu#5u|He04>Pd` z;rvja1!@RDQv8UP{nw=U;^G46ApE}#i~o`x|NreHkd^;WM&xaJL;yM&N3w+VOV1E| zCe``w($&sD4F2FB@yx5;(KOuNzVSZ|TB7hj_9k;%Wr`-!el}_EIsG9^#xK9~1id^* zD(OA{3)$Y7m7y#mh;WJ~(Btq|Dpmq05uYcEWNW&{+;;n2Ok^K2Fu@uE_L3n4ZG(RlJ=AzDo9!N7#RiQ-ox zHN6fGLnDNDh1L5d<3CIy?o*NcU4n=S@k!$_)|Mpfw76PprK|P3L=r)%YK^yFA4 z0GE%p886K)ib16X0TUfa$Z;LNrFo+EIK&zt;E(tdGHHv#;#fzv!1~Hz;Kv&%z4dB_ zCj!o_5wjqE68cL1hKfQ(MB_*t&I*HF1fRRJdN@=Wl^vdt;<Z`J|RAU@ZuTgL zUn1SJj;s@sP>xD*qrMy`p><;$+m=G5m>|};XPewNVIZGU3_>NF!ExeepFU2!Cz++H zK_!{T?Lj48P@h31f-XMKZD5}}-ytDfLb>MWSiVMPBv{d*CBP!z)tpdi^R0*@3a=It6oXxKAuN8G@UIldqHGY_D3QI zv`NWNxf%>!GbOgP_q^p+mod;NbDq9?ebIU?BdRp!^6SYGcZZssY|*L5_H%OXg|4p1 ztJ0Jls4F%6YEZM&Y;h`m4K;syt~}zevDl|LRDvY&3Sy)&@fU0xA~ghxmU7s>3$ByG zz=`SE%uf7_D=%_`G8obR zixFx5OE0-^ek0W`3BNGs{Y)OahneyW2$0%a=vyn|7&Wc~ahKj-7MmB4+m7rrhfB%#S+@fz+ zf=Lnj9*Gy+YF1u?&HP*(RSVqacvgZd#3zg40&WjA%b`?!E{P)@)e&P?`bum^lE5~q zGi#4Vd%*Y$bE|p`$Fuba0|I@eU-7X#q~vyz(|W8gG$3NC>tJ&N19gEJh)ULaj9-F2 z4~IsW+WW6@)&yU_h9^J_8aJQ`UNr{hAcAk4;H`H~^b3($1j(kV8!250hK7SPDY~H5 z)CmG3ZYXz}U*+nz^%+CsEUpn}J~m;Bj{{Kk+pi~ET7E?@9Abfg}Z&L!>L zGV(SKEFPBa67Bz%<87KCJ*v1(+K0E~ZC=nhszMEC(t?YN#ARJdA{Q*6yW!>;|guWZ>ND4I;MnYvk)9PUDU-Jy1x| zOW35lsEPN2eo0SC*kWzuj23Hf<7M60!uDvu&2?s~d!Am}`m6)jB@&58P*d8*dDYb& z!M+>a;qTG=Y=h-0Ygmb|zY(mjH*F9Ct)B*dMcK0cm90-E?*5h9WETR$F|xs%1`$+) zi0~aqu0Uk*4(nA8l+zBct{kZG0VCo_r|!t$=*SfB$XxBnI_=1Q<;aQe#LeY|_qf`7 z^U!jJ{4=HpR(ptuh=3`1yc7K3NFJ~gKnf2`^C&4PAI`2lWbT0H;Ns!}hIkKOpI`|fX9sq6;o;#A!8(wtKMd<0?g2k|g}S;r zz$H9zBOcRpzyts&-owK~pcVos{r|=(iT~$f{4Y(C>bHJv0q6u$$r2cz9U=I%CV)Do zXpbNfQEit{`q2|jDkvb@^OL+Mia{^+1A*e}J_rH8pOCO!my70Nf)e+ZWQ$}__-Kmu zj(;1$mgRi&6un|+ERWLXi@CEsU0bdW7=)UHPCt{TH$=#mKlydG5`L!D{2FvH{*3k6 zU`femf88de4Y>johdelpKyk!Ubl6fvT%i|;aT3)G)0tEN4V9;@O~3cOAWHpnPcO75 zNem{)s>Y7HB*dc%o1-{jzg(pJolrS7EAx4`OsDg{Tk#OZ!lc{P(D*9USYby7qf_<>lro0oV zW>e1X%XPM#7f(W#foW$#dfW`qBmoC>ZscV6%zoGk2j6fQC&%{M(Z+_pucl2(={(Ez z$*i>7am!s~%S(YKBwpsFmJV{}r&ZuO=6|b+s?JYOx45FqYSBd6{2o#}vsKzHtXYuQ z|8nk)RQ`);(~vgryn>t&0iJ!yi6Teyu$c@Vi-`4~&IjOa&0G461*KZXnEl|}q94aL zJeCRPnwJa;_b)GtC01_gm{MR5IjoeB>ME_opQ5%%bo2#rHpqsDl zMcu1xot34BE_PP#{Va18*{$mPL`HQnq_4bNq2^ayaitnocgCd(#`N0LsyZhl4Wj^TGx~(g8V*7hNbb5d4 zPT<$^C7F0S*E>4Qcut0}=@~X&c&Q}{@LEqqmwy3VE2$aB9Oa+?H7os|fDk5z@KA*!i z_#zhnX~aMH_T}bq4mW!SW2iroo=k6iG%MkVy@LJ%i2+1>dVj>p?MDjMEl6y%WyIQI zjf99FPhuHW$;z*N;iWx9VvR(}CiclPmD`lW*1e*0%8y0rLOiLxFeR7FwME(nh}2P` zl4~K=65Rlv^x1%tTZR4-!vaM5YG28{;l~owKAy}Ss?%|J2m)gsGs)lnPc=z2&ocgnKcOU6xcrYMNep9o=G(AbDd2S`u`(u$ zV}Mr5I&Ul)fTywF(<f5XZ%vZ_Ii~-Y)gG?w680xfZhQ@R|5M+&4?0vqYBPvYDp7so z%lazQ8fZGI{t21+oFXo511u30#>CJ<6lty2F&l6teGCJ>HHyew6m!KVF(i^DJ&8q= zkt*9Kj5dYF+Dtp3uoClC+ofr3W=6=XwiHYwGGpGUFK=r@&n!?|qZ!D2VMs5Krd^HdZ7gSDDy5fU zfRFC$JY!*QDUe~NjP4&yE`jQg)N8V`Mi0cOlo{}b&YM^O~nm2O_Y5#zWc}-5;s)FZf8N!pe1>UJJO?4ZnCZq2JN<~!~M7vVJ{jE z-np)&=a*U&JHwbb__@!0p z7|#qf2!kZ7>RmV{LfcYwz*Pimh8*14iqNmImkDb~q*cD37w+Xk(o6 zwZHCR)D#*x5wGJLWz#(!p-VaAp3`pQ>N*?QhB6ZLmN}06ByI8PJaWFninR2VTSn?uqG)GIF9^klG z0jD?`Fs06jC;XcIoB~poPn|a>JDWmDxfZb$82PMwwwn9#$}xg;F0=S@yJo@BvWa9q z7IMBbwQvJ!f-d9^UG8nB+`1n^7aP#74lhaWywQFyb;w^GBc$H>GyPs3h`2h%BfSrn z|GhFXbahTGnR*{?`TN%b+Vv$TDKsYH_v*Uk^|d&ui?y!%#y->ajeM&6_aTqJ*eBq_14i5e~)O$Qzv9huP#N&WU zeymXcg$VrrWuo^Vsb@gc8vZfe;}Y@zuZmi!M^Vf7C~DvQL)6}k3YT zQ!4H)&r|s_SwvsstpY^8lBHkKfXEkvLCf28$;6J%!T$pcf{g-L7>*K=RC@Qt54uZ> zNHRpi57mh2eX-5n%A=ut3MRhHNPBWA6rXy6yJA8JQ46`Zf~W~Ba>&Vt-$x*-Nl2?o zYQA~S#3%6fn%PGL8@|K<%bjk*FAfHV!yMsDoh~Fk{%HzPHIgeKNQh+o2@0;; zkzYu8OW>H0Wc?>aM9pQysBk8dHF$L83Qylic38(RLc~_-?_i|9HUE&8>oh`#;rXy4 zim?h-`x3|d@`=}zr-O#70Z%c1Y^a-6($2;s3eaW?S$gASCp&>E43peU&J7cZCfT=q zn4&b+Ql5?Wq^E?wP&N7-`JQJkGPqSg_eVIPrtuFi9s8|Vag5yUEC`22c3e(Y@OmC_ zo1E~C%J<*|nu3sC9$M=(79P3}6-pO$$}R6X=#@Ha@*|Dx`*IUM z?F;2*vMLH?7ZT44Wmdx3Eo9cc?JcCYK@|tG4U5-|Qu`+Chmz+y_Dl-LCpG!@_i#5% zZm?Lhw3!7NwZ#(GN)=X0Pbm}ivbeXM-xecT-dKsFid0yCz=*zy$;F}LJ4&RO<6$n! zHgRQ1rbW5^naWJWTb9O7=Ti2KoA+ z?By!?F62@ zN)Tw>T#DN7x^dQf`8abmxS_FEtA%k^a5aJt&$vYVZuz;Jf^KWM+hWzux!Y6vczL?g z=j^V96L{Tux-)NGn43#c_;_0?h+KES*GPxb_Pwfe)=J%jW!D}=$))N+9 zdDb%y=?KH*)!C?6*pF^6Yo2eG%;UnsYgj^AHS$!1`TIAAlvJWW{1=g_w}p0UWPlh&ZT72~g!>eo zlCQs`;l{9e;p6Q>vY=FjgL4w*8)r+gtdPTn<^94xql{wPXp5U9<3#{8FPdUS9Y1;k z>=($u{6$z(O&IlMXh7B}#ojj>Ug|HQ!Ifn%_e*l>Vi}m!2F6|#)`{?>;g{LNLzO;k`73KFdYMldx?(ZHX6Rf`Su_KWrd?351QqBNJuqHn7q) zL`+j7lladzP)i9!I0w;_6|py8jA)3N>wr@<>^5;%X2jO{vBK=2{n-MSJwxs{r)e;# zIqwjphP?^Tz9IhS)4l)FnTzcdqvn60DCEW8j02)JTNJ2A`z4NN@>FE={6*CMyC{kZ zXGrBs<}`~iIsxuCQ?(Yae}H0lHUH~G;634(K=jvf$|-_WhA)J8#hl}gRSci&u&r~y zAL~30k3@n}nqF?r3S?ZQ=Iw8oA!y9KI{-8(!7>1vr^O}7kIF0LUJZHA@ zqSvOtf^>JXv)F(Ov|q78dIs%*M+5qgw91g)$qE)wX~9PZTS(vHIg4Wpy$*9Uq<@2* z73vHS>eCcy#Gm71b_53DS_Ex-WTy9{Bg!c=1@BG9kTDWof+=TxwiD% zB+8mqsn3|R#pZV?ns~Y!1Wt-Wi1%Kh@%D7MpOhvg@6j^x_6{_jl;soeGsyGyO+Zg7 z>XP@FEqVJF1Wv2^h!5B!cn8+qPiy9q54ekY2lpFK>vo9``GhrGl0 z0%wK%$-DLkH)UiTS4}7+N777uW2j4KZM-DM@@Vy4I8*2CP9Jy0booX|JkGkHL?kE5 z5qzT@o%=l^ZhRxpMv_JJ^)UPpxf7_t8}Tl5Qe64CDQUi&S|`^UR)ak0Ay2j#nVlsf zU*Kg{`E7}pJE?zb6wS8v-Ht82d0)~ah+=4VwrOE5pp{KOJ?68pK`3ic{fc#2I^7v z-OaSVo1)bP4Wy-<8eiVcu0T7{DeITh+3$_8Qg3{UNzXIw@B1V@f8~r`IvpicnJ^MF2JD+(CzxL{V?=}9_YtY|oI?HPm^v??z^bdO125u2H3(#Q? z6_W@08Ug~squvEZf!NsCkN9AqQ~gK~21bGZ5i(dt0M+3wwP>=@huRY*^ALwWgTr{8v z4fLOZWcTLg29T=%_5SmJq)q>C{2kD{8voS0*wq>7Z2>5hK!}U}7~(#hbt9Ji352*b ze?zaGtRTlxe601I!T2r6Sg2JVb=P3G`saFIe2XyX4Z+T0|2L5kQdHZr(Ls5^Xq|!Dirw!(@0-8> ztYUwznmLIhcs6%uzS#!_Qs-i1nb{OTr#pDZD2mUS;qZx>(%BC4T?CQrVtw7^A)6tT z6l0~u=Ls%_L=Hm6%iF!4z?Qx=dBF`47;#eir*DNMU@tXCK+0}UaE-`?8CTSVpW-4t z@r2>mM~?xCSUW8H;X6Z?kr>fi;Nj@iKfs~7UW=wH;C{{d6u=5)wjSu-`sGrl)Cce})Pd7~{#oy}b?z zt%-Su!Hw_b155AutsO=KYWGEf)|+-S*<#>{&{NcyZmp+0{+X3zT`g-1gP=LP zts;cuZLpZ`{<*nERXKa|M-Ouj)6d1_cJi`m`y58b`Q;q)=1t}f2G-eZmryzTrTwZe zPT$L`bF{Wt9Z9N$PVkfv33P` zdnyDi-Lg~)2bFfG9CVd7me7Xmwih8xj(eD!9Vd+&RmJuv&GPcL=Lb_{0(X&&@_hFf zmuQ$*R3nR0)tgOlgikyvF}_J58Z|%r3FGxr@skw(Rx_ONu)qzG?&+KE7BB51k6(I3 z*F4iLXzrrkH0k6>3x>ivevuZG+Uf9G(-_#PqJAv&WT@OVn}{zr{rM@!q)gDk+>zgDx|2vw5IhuU%iQL@>PiM+)KQ<&5nFeu=N+>?=MEO znPsi_-kYp_BEWko23BAWFG~6@yn`Rb`)kC`*;n?NSapk_GgIUgA=PsfL?yHmwvuo2Vp2lnh6v&0r_y%N#nZdPkO zvHR&t&VXmsr{&HF$vQ)P<95yQ>A=Rjfhub~G*^OwMJd5apYm+Jx-nRYHE{F;0lRTm zqv=cLB$jBhp{q^VC1&O154&Hv>5$}7(xYwGv<>O!Xv_7o-X@$t%jdYOB>C+(PC>U+ z>u-M>mwS$m#ST%?F#Bj=xxN{Xe7@fOjx4b)&_X{0`(wHoyZ1nz#`TtGuo+~?TIP);%UNgh-5asC#SeeWJI=%m%2n*y zQs#xT&qWnA5sg8f5aFnZkT1;p{i7B=&*VHwL`+YyDR`_z%BDbnKUae_XtEsnJf%J) zTdSs9#m~{cXrulOO zPt=bE1{#4HL8_oKnEgF5L6lji*Kv?UhCE<;;VQ=sOB2>ap?^~r;wwD}5M z5MAs1QLTA>#+zcN0e>BJbB6|qDO2+z%2HR4TJ`z;jN3%gQuaQi@&10!<0H}XwzHbg z6UMio*rX58H`9jj&klWNBo`v#99s=TO4yn2_)r}}+aQHUQcTZ(F9tMxAzi=~M^p26G$-h9K_|(=N)569^ zOj{XK`dVM6@q{Ttdz#9$MpFZN!cs%8#S}uI@mb&$x-wd@L8`2gt!hyg+0(DZ+E=4u z*2rqTbT`JeOQ7QfWp&vGj$xqGDtif(2O$+MkkHK<1i6=wy=2(-W=X7fFJen%N?DXK zoz-;(#J0t-w_s9_c}VyvwhJR0k0(w`0A4`sr6>pkAMa6Wy-*DfT7%LED8>Erk1a)ZivN zi|UOZ5u}{*@~7kZmgi)tHM^XCU&hHkm~ex>&T$Lea?Yw>RC(wg1l8V#T{b3`LavWL z>)uWx=$d(Wm@Q*8-nsuIy~-4nUCoAi9PNl)-}HJk&Q|KWhPnLSTaLKCmQ8a#57D() z6R+!;LX*FSBtxw$1bdE`H18vle=o(lzeVsw-0*lQ?n(dElOn*AC(Dz(%d>XVlMKPD zo!X03-0O>qJ3)Y#VWt;;mzUYP7aoGQr-2uVxOea?Z`=UyoJ?<=F7M%WZ)^mgiB~?~ zFWsH7Jm9!IxEuvW#5Lv(t=Nn{bI@3eaD5TOw-#47kVLeWMl_VYvXY-RRNS&srZG{O zwo>DA(CD_(LUjCCZKX@&_BqE&57E~k-pVju!&t(NKZlEF+8zGNKM^ZnAiymzo39Px z^}5@|&QZ{1+RM$z)dT+>=*k7U0&$DN3Z&o)+)xWdvI`X5a1RdT3sv{#b@YhD7mA9v zHQmw>QnyOu(oC1I`tGQe$z_#oq@7D+m0zu0h;LOq{izhustjMR;>xn>O0Q~(& zQ8*>gb}Z1?eA;bwOLz$}c$>y|S6yV?(ROp%_>d;}xLf4Z$o72NWTo2snoIQ7$R#$1 z2Y%c2sRjsc-LVrtQpzsU@yglR2(;%A5ELJ9ECN1<1l?{%Dn0?@(SiwTB1a@F@4G?2 zue?cv#P%hEFO7ofuAyQKLBUM9!OX_*S$l%nw}Uw)#mOau@Dl`QroCyoefV=h+(;q3 zv?1cO5+VdXVot!tNrCc!z<0D!!nxqXhS`=9n6A!Ew+9Aa;3eHLVac; z?YLz@3GqtR@fn&B<1e+e81OhqD8IR-|&(xXt_N(|_$Hagh-xy=R0`5du znt*QvG0DdXiTH^JR7p?O6VdRKk|dLAjFV;q61#H}2N9EQ}C`*)HT4W+>mACpbY}AEhq0Cjo9d| z)Lo6_LL|T9T)*>emrISL>zcr04X@MffHfqyTS>qBZNJ|^uDDLIGd@Yv*Qw8tQif?# zUSEIfpGt+}NynE8Ly!tY;&G=44o7|CPi*4$YbN0pvIn(E1g(ib+GDNf?=Wuje>%ed z<@EOP9pq1g2rO1vF~kJx5jdm^L0Yc&34PR)%sFplUR)tt6UO`2I{H~t7=4=!fS7~p#Ty-Ek?B!8iX%pZGJ*Y;XTVWFu zzuok8Nzm$0Tk?E@+np%GZbkuz!HxYE9p+^>MvDjI)9x5A{I6W(N`fWec4Q5DW^_2s zEl*_-k9qb=F#V)|44Tms7*8Z~L_1F$zR-(B9 zWu(IU1bn3z)h)0vEcz7fsHVhkn_;LAxZ*vP;*2*wOTfNuBUFjU@J5#(rl2OFRJa=b zAfKAMnQHL)={tB*eDwHusr8=C^gyXh94rO4UT<{#Pu9=y7<`e)Q}tixZD%PO$NHl( zl$Us+W4V$yqgWy$FJ_i}?B33YmLSJ|CBz{<15n`8+*nyfojbe5akWq00cRzLW6`nM z6x;1vOQp24n%~nEx{1P;_+Wg|27A8a_FU;ms>PkilO2mQJrFlm6@7=tkN80m*-{(b zLa9E=<)Gn8IHu^G6dQ%8vf=RCV!w+G)1ww~6)iCA=QX2uVwmlUty2RG4&NrB@!<8ApO^b5KO9c6o1L5l_sCt$puw9xs}`Neee@o=+XMX-fyhIo z?ZMllIM^b}UwTrqcPDPJX>U*b-VENIS#TfT3AHL0HxzU()te6HSu(k6O*$MZU#w<( z@a@ctkX4@Sbjhn+A7nE$++9@-xqsZ)1$jVW%w&EiRy5_{(0d}T>E6e)z1zQI@!IA zrW@Blb-1cT@*fU>zHuQ(3owc#8bxvKdYOUAgwUSG&TJ&C{SqTg;w_2Pad4H(uaWZj za+)ut{vTvMVm4iMynT7Buiu_QV2j_#mIn@DB2I@b-0FN)WF2l^@SSAEkzL^HK!|hy zG6`>Y>$?}$kv()jC>#R2w_>fp3}$P$*hoDRH^-(ZPmodRxcMb#55dWI->BgcdKJD{ z#UwuYL3=MCB96R7?IuSV;j>w$UN$Ixs+2Ly%KGuv-wbVgDyf`@5mS*f0z)1VbzleWXGP-l6cK3C%zxd617iPIF0`x$7mlai<+m%i#e8q%bMLFnx`VhJ<)G$pP#+A z^F9xG()f!?ydZ-qK?h-NaUPDByx6K1Z|`JiqE%0_*9Vm(S9hAMk`| z{`y>5@fu*ti>ae%dG~TSmKQR-wXBPo-vQYd--(wv7;4z3&ghZm#yi$kr$;68Ip>N4K8<6emA zUPH0zwu|iTj)TedeX)5P(eM?rWAkCkngSZ1E*#N#)AJ1tPfD3uBxU>>BCO#e% zTSpsGXbJDN)<{=yyd{MIbFgHAB38bm1+6=CsK%WlUSGT!b0c%Ov8yHtgsw|qkucKd z`6p75`0i0cmZ+etwO7*9-5j8k;Y50aIK`S?ygHURw5)Z8&HO%{LHrm_;*CtNntnmj zQ>ga{UnOf9x2A>rY4I=mP4$tQ!Qxuh)XV-&f!pgL&llz25M;N6iEf4i<;pYg2DaYw z-i$W?mu&c1ch;5 zh?4r-{6|Y6ANTbCn~pHR3Gr&Ms__zVgu8Q#oyS$p2#uDW|67hQ>2B>GjZHO%rVU8^J~FLZJ?VbN}$M`O+$ zZq%!>1Eu!}`?DdCo0f*4#mpSe#bD*Vj&+*Zf^FQzuZsp_Cqc87V%)104yYLz&0>8u z?s^I2Zkc{)zAX*8S*UCTl|qNi_opDYa~JL&Eyd=?5d8B44v&zLC5!W^`1?K3?2i-&k$9j)jZz#iX#VlJ`WUmL8FF(?@W>I zSQF=ojp&6ND47M3f(DoqB7!g+Ma|AU5jefSsClc{dD3=!e<}B3n)d2C^XkF&+{yCR zNANKe^=8|W;Xst-inrh~0`WO|v&4Idb9o8i`{w`h)xhzdQuRd<_d_=H!$I`JJo9m; z_M7zgBhK-|#&)8~@zqwBH>7bC=>|zVdN3OKf4LGdHgW{gnNM6k)`6J#fu;_K0T*~8 z`tiO`r~QLOJufB$pgvpy0nq^+DgmzIfky^`=l+2Kh(X8~{z2V=uS)}}-Ume+1rfdu zI@<{Pju@Ox9enyeIM*ncyxQNlE0{Ad_#`X13^7EQCgk{iNR3elk6*}9R!CEKh~ic- zggVq{JtWsK)JH5dDLXX0BeZZcG~F+Bn>s8EF|5KctXC{-KRfK#dSGC7U<6j6>{S39 zRd_-`Sj%SE)6THtu5h$x;SmAhGNKXr+2K715gF7GX@(JLBH?sf5lAgTmCr(ZXd<)q z!XfJZ2|1DRu#vohk;U-f_cUNJQLsu*gh@ceKsMN-%A@6L1W(}yQs1K(!adB}U`9grz0ZtD+ z_#9y00HE4|JDR`|&4=z6;A#Lf102o-Dqp~q`hg<^*ciaT0MB8@#>N006DWJRxVX5w zx;|2ae0+QWy8;-Mhleo0q5wrM;0X*ELIW1%!Jm|sl>z<)FegBrtEHs{a3%m9XncHp za&i(FHvp?3apsn@r{`G(3-Rl3wcLL5w`R{LG&lG92bI^geFmy`7C+|vM ziUk2^%zwxEY)4Xv#4+Oid}2KEt3T-v=kq!=2=29F`U_K4QQ#WUe6ztYftxY&L=#+ z=FMzQ(%+nqmd$Qtl}G2_osZzN!zzd0Y~S%kOh1q`%q)aN%a&(uGvzPcK2dpZ(yIqm_+ zu|;mKq4>iK1EX4;&{c{*XT={Kv*H6fh58kyKfATjub?yyF&MGu#9*&L7O)XkFxzB& zyb3vtVjDWcUOVBI)0=qv-(=Jf}DX03^fcG4gskVAt_Q3wEgOX zYETJ096q)XY$$3^^*98meZ{D7hDO4{uoQT1sAzrN+DLWX(8qZ}rLg9W>JXP@m=^fj zc@voz9|jhK2RrYzTCl2#vA8M;OdA?={X3r@0JnEL=ZCQV)brP#Jd5d>l{@9Z`$OH4#-arlBiI$5U$=%yz zr^Kwwn$RZmw-41+o;{y-bxZj=Ef7^$2^Mu3FB5-X%;2E>b(Q;k(sq+y6}sRroPW6# zR}q%G3}r{XT9G;CH=YgTJc#*a#LIZS>Z_)8UEwcZbS)dX#Bj0kZFl^-$vwcr83b`i zx~WP4-opB%PpfWZteY%cq|3_UZlx-Kw=kjay4p8~?Y7u_WB7Q*t~GU2b9W7eOiT^$ zx|)*i&ZgmiyEZ9B%h_KnL+agHO38@buA0;=q32uD#f@J#t1NGC(YlzLcF*7^Ztuf4 zf3w`)NiSW!ndDz_WAf}h)g9RjXda-A+9%FA$XKX^c} zAqc1JS^C=0QEZ3?3L{u3xUTzxy zx&Dli_F8n--YQ7n^jA$PVn>lA*x^G##zavL<|`8nBW+(&jHdWj%3nuc^{BqjwgzG{ z1nce4Cv-QY9pNMyRTo}YmdT#3y7=UDob zr2(Sh#5PgvzCWP&K|R+gBZkR)R8Rq=Duv)E-ybp=wDL%`QWk4b1y7Rc*x~xrcg*7m zax)n={iQ>y~>7XP}e~IL)tRe*Xzl5`d_#M zkcK^94x}N@WDAM;5Bt#Ar4yQNi6SE_y1w|3h+SwT$fP+GYVyGVlc8HgFtH>OQ~w7Q zYP=+Z_h`(9X(pU;uJr2DF>WWjEX@2|8S6KUDT^`Luhw$}Jdi)cBA=)2(dWIJKx+B% z=KPzuERABC)L0IWUET*-hjH^PJ?cgAVL9nXG?dP|pC3v>8$Ns%#M8)u1Nns% z7Em(nigcTBC`KF18xr-+P<#cIJKLGb@Q2Lu`&CwmyFeMtB$KAkQ$UqL9|~osg0;+h zDyxzT3!ht}XuI84RzIKEmji44SY^44=r!24t-|@ZD0itc@#?_7ZGC{SRj)bxx4 z*Bi@q={HMt_6zqC&&|3XIB6~^l*XeRmV%X!V%2TP(6@m^e4pqw9ouQ-N`uwxyGHLO5szdWS|B)je@gjnU zL+e7r5r{K+0ZrGTeS-hkPK|g0Ptc)rpyAlYA$gvR%%L0F!GB@}A)crH4eDho>?W4t z9Apru{H91^tB_hf#?G`pz@1{Na^O0~FTOFvPI6}Yf`3eGb7O=#<;;pPWj*4D6>E>y zURKiSc3dToP^pe_pgBtmFdqn7$bC->C zqI-AST{_nXL+-mSWWP^Mm(JIwK0)D;pb8;^_Zx#V zJvpCvF>X4!Zg@Ub_c&^I!K3k_gV^Kes1sh9;L>=L8EH{$nNS9Lzv9xSo;IP~@}`r} zW#~3xlJH?x|9p>N!d`8{n`6QsZz3pR%gJTG<=_cR!;48{%i8TDa^)ty zXd0x5sH(hW{6Bg-6Mv{1{p~B;SPErJ3zh8AZYW#Ch?2655Xv(4-HdGpGh@cs_kAm6 z>|`5zA;yxW5=uy7?1T(4^L+2yIi34;e&_i;&pFTXXS_exb-h1^DR5(`ksb(RE(qmC z*qM$Xtnell5||TYp+=-oZJ4JC-qVBh$d~Nt53vjcd7)sBgCSn% zky|uQimi==9}X7aMaKHzgC0RKToPePo;XEgJY*Q}oB(_o#FIP2Jf_2(SO{Om32+U9 zqb-4kBLw6T96AV!6vFNn-c~S73l@?<3QhtGI7tMOh`v9>1Dc46DHP8%vR4%;$PMiK z8sy&w4Sa*=IXU9pLxQ{=2^t0mcY(b7Vg8Jeh`Nyrof2MOD8UmX{{~3NoM6B^a8#*& zlqNjt<4Dv8R@6@_vbQ$!HYrLfC3+Aa{hoZ|2hnRo&}SEqt0ChVjzz6VM6@1^29siP zM`DgqqA$Q=MewoLh_UquRH8(zh<+q!E>?yds|$;}gpa#Nj62#DXDP^d^lw8Hw!i;G zHU9^U>`PGprT*#g;llux{8j(-Pk6FFQ2Cch41g;8Q|x{HDWLP;k6~0*Rn^ti0dm^}at*N34h;?64`cqT5HP@~B zeN9G@Tm0^e{bF9>P?2_`SZ|?W;rn#xAH}?y;?YX(>W(V~K8_#C1O~e^b!tn$G@Sg* z^0n}T^jHRhk>ivuY4u)HK=jTY$E)&hoiS&1koXkm&u>uTj^n*`o}=C8)GpiT4pzPZ@U9O?+fFcVqkI9^%aYpZ}UiB*git8njI_cNVrB%eF( z6clpBXzlr1ey)QiG>qDN^d%SKKtYj3f3x`G6AFtNu-&f*51cb)aKk@SJ9td!u)@{@ zza>7{WN=%xA~};H5Vl@@k}PGoy<&MbFfL5mwxi4xOMmn#WTbx46q|kaKB=>DRM!R z)9GFNIad#U2MKHZ`9V!#58`R2qmRrkvU1)OUDf2X=e5dmK{xwS@^hvPk69kDyf>%H z5isz|Ipe9o6C$m=V`tO`Bx1#K>@q0!HNO++YpdqL9gUpgc7AET$M>$pGB8c*bGI_c zOq=}T+`GZ~#lwtnFNRl~=Aeru+(#Dm55DF8JZ96U z`@re!A$Mp+DCj0xgo)2h^gwZ4S<|PD;e|6SL5w1tcf3G6ZW=G|ilLW$iX9hvHtzw& zyscb!6*FsEyUxTCoapPCwo&(p?u^I{W+fQp-#xhup7LZp;d{?p#YF)ZCY<1VJJDj< zH#l8@cSk!D<)Y~Qj4Q!U`#At39z{hrwmq>xF>k)o)a>$C`HAIUadkx}8>_47F1xN3 zoyzwYI^~7ORv{}TS91G|Elht5B%3vEj;XXXK)S=*1Gc7*hVE^7xmwV6qBB(x!%dZP zs9&SU4N-T#^_R7nEbH|9PyFJ@Aui|Fo?nafJE&`EzGL@l&i8gOcLE3F=XO%Q#%jp! z*__E;RuzWFt7xOtoSef{RUn3uI%9T%?Kr%Z|CA1z@C2U@rL+niIfuPeECO{Rx8+Q_ zNz$aNEV*#xc;V7>`0JuikC;Bzs1>;=s}pgi!IG#T<#9Lge(zJQG?Ku{oBH9Fy4*XW z@|xXN7b9R}mW-xPZY501MOsZyabiK8iu^Glx%Ox0`e2=k-GkwRbI(M0o@x#8#d!yu zus*>h*>LHdERwMJO*mVS3_0u(cQ`Ni+_^6DDt0r+8}}n@J*T_hMU)jk=XKqNaLs!pXIfAHfNl2({qRt2m$BuDmMpfGdXMQ9eI%Pb z+6Md4llq}O=W4b5TPLB*DN!1>@=bNRZq5CP&7!mNZIU;9ZePxvm&w2WthU1-=|a{u z+L+kq^00n}`J<@a#e5oV^vFGS10<78m>O4oGp5u!m-AebZ#dfwqEc}AQ4y$<_>0O1mQ8P}bzjQK0!Sxj9z zsKWLfq%~2a`kWqi{(T<5cY&63;e$j)J(pI`LZ2&zS}_De0f!;6`%CkR{R%p11U}-u zFAmUtzt%DjOp()Gj;Z{?VbUYFQlWw(^V9g@2#R+Z+hUOhjU9@5!B=d1zF30m*T-t9 zq~{UOi=GJg43cNOUnYFXwmf@tr1#o~m&iB8c0BB#UK4z(vPKDccwW* zEI4BOx@-K>OPrlt!%aUax7Rc(J#s-ce4b<cl*L!POErH|9@Ktzy ze@UtLb4TuZhheYbB^RF-jz`OPtsAE|%@F-PpEh136_XkZ{SOsA461=QSC+V{4Tev& zl?a&aF0D+^J|{46P+ge#@o=uiS|tdoM@{+X3uab_E=RU;|14ip zm9gO2@@eH-Di71we4JQHeLBPJhPT+Qt!9Q-+v1i?ntV0av)A}3a$IR|ur=$sav2m+x%$_U&1=sN z4bN&@l)g(so_KLtX;$9d)ubMNZ|`PAX2noV7+LyKNZ^&@!xYuXzTPRC9*jNV=MPRRXti+TGn@<$BwpBD4l zc&rZyC|wFuv8d)%-=%;pEr>(`P>{jxrY_}Vq zT1!rDtSVZh_8uQ!$FeGYy`_S9$1%PUtfe$*NQZy?^<^^R>roHw{m}Ozrox}#*Th(YFYf{e2PBM*D|vyzqDtcg&J8#&Ftly(ziSgK+G6P z9?TRoR+tAH-kbyKaY*737sP{y{AgCoi%;T-0NCpo#pbw#*GYu!QLx8ps9n@YuXALl zGsz(xweB+D5NQw+k)TcF_m-mutHIIYWG_W9Qg0ZYXN$fBzIlb}c%Kz>6@pYJ-n<2N z)*@jPG_48?tg<9q}y{8GFE$hL;Ycp7pB=L%A`g5eEtcw^QuBk?dC z39I!18%V@h5}mqmXjQGSXjs@?Ojr~I`*h^ieJJ6HAl~!?K8zTKfT?7R1Y}V?b6|vY z!SJ7k;XQDIr!}^mOsIbr{)-uX8XjIm#l8JXh^2%FC4{L^A_}O4!IbdU5#0`u2bqZ1 zAZu0%1~yUy-a!Z-ByitAI5okD?h(QSH1I1pa2BRF2aRkeYKBW7*I`i~Nl_-(@Q~Wb zc|>#&IeLT|H7pQKO~Gs+B2C{%joQV0#>Ln$$4=BnAC$zq<3o;w#cmU0`9~vv5My?r z(HGmX6p6S~+Hr={F<-P|A5vp=5wy5hq!^~r7%4V88p4Y~J6@nGN`Bj3mJM}0%=%at zT75M7R%)o0NsNNM*L8(B&bd&L)R@a`iB}~PFCL3COpVi5xYP>{)A0?}uESaR-WjF3 z>vbg>&n3#(BkzPEZBlVhwDInB57o3$-gV)wVZpv85%4fnpthCWoV&e!!i8hl>5&MW zecZ#k&;tsIjHB_8(b&-Kc&1qF&AOCiiTJ3l_?Wr~=K>_E3l*ID7(MEaEl5aHAY^Fc zqEizeTc_6gq;(pnUDr&Pg{6ZPlIg^B)w<*pl=L!|3=xTpN`*8ASVo&>h5|9;4K7_M zInBB*jhK>Rsh!y}l4_(WnQAkV=+l*vP07dvWz|SzRY9_v@R|KY!Wbw$b~{x=JGD?U z{a|n^q9E%%F=b;E@=GDBu^@hiEs7!;MYYdNB=Y|a=U5o7@9(Vi{u$@?r&cU1Ec+qT zZ?ymy7uRo``^|EIK?|tVojiFGNSj1NL;#x>;2RJV6Wedq{a#^RxpD=dI0Xd-V1KnQ z)B;Qc`zx&9zJdJ$9pD?Vva$jeS%7cgpB}UU%m%dQP$<;zL@FpKXdm8w*XRJ*!0&YG zuhXpZ^78%m9Pkwwptb$Sz<_K3c-FSB<^`H`Kv=cE*V-Rz?Mr!q0v#aY1t4u|YHEMD z1!Pyhb-cf6ZFP0^x2Nkrkn#dJ2mdo$QacGcDr813|6^x$0FnW!cnZj}{wvPuiy4sJ z&$T9;7Qg?;Pm8y|v!zH`Z!gZBqfd3iZpBNP?`KQ)N1W#_6~1}~yj}a!{b#mx@-Fkk zA*qk$u=j=LK&!5!!nH?JX`u$dIm9{*lO9|4px*CKoO4re5#YJZ>_n;naIQhB6l@~- zjhu4Xaa_jGWi0Wboad=K^;L6iS-)P;{5Pr=hRd%SBf$+s$_UAG!PfNnRaj*SoJ06- zfHd%_r&;${MH@@pEF^R>Mxng6|MQzl#|f8sN+Lg_5iO5R^-SpYS$)dGm9Wf)Ut6mM zAx7&57_gTCFc=K-^80vlVeP}C0AOcj>23I(L6hw+(T$Jc=Gf!}`XDpueGscH(aJ}| zoq^@Jk*=E|tGVE$us1{LN8ZrmHIy?>YHA{(tO7T9SQxK^RIwZoX1m}o2GI@!Qu$??| z{6hQe9pugVxqKy_b1a+^IWhJu)(M1G#x&V_gM3;}hm^Fg+5r(3W+t1-H(@3B+4zbp zS)^qk)r8aPfhIPVn(P9*wF57%9k{+&_2Hqx0;ihOfm;W!-xy%zv1RyrT*vS!bg7PV z`1?BzW@~*$HNGmIn`P6qPq2FGjP%EPI**lxnkh+jMdwv&(aLL(bp1OGR+w6w*FmdE z77!zcq1#h7y9n2N9A3E?0d0|TMm9s4i!6t~9Wj&b5USNZug@RA{Tjt&UH_`NS@~Q^ z&yBJ=$*QYMW9tLzw8cW3ts^B>&opOy(_ZUn?b*HGoX@EG0JYGr?*4f*b94Bni}PBy zeu#5T_+y;U=BU%rl%H>GYR|(1T;rD(#}Ez1aN4lU?2^2@zv`aV#glSvknsk}2^-cYB|XL$A$ ze367!_V0eO9_YXPs%)sO1Mz)l&=!^CIRLi{(j-i?PgHNOxT*JwamA*K3Lq9!ixwenLo0n25=mZEk$Gk zi-OJ@r7qED=AH@bu#!_$-D5hWMIlUKkbcP@XCs{QzMqkk+6tACs#ny^{|f5 z5X}&mKiGY5$2mbr^10+%Xmr}>CYr>5)2nX2OFqb~NbX7fKB8;kLBsIY2F zq3<#68F`1T@NFzK*;GffnM2wX@Tr>*ygLHO7s|A&oD{9o#|&&adxl%xl(}IB8ZQ(o zaD6g`o|*3)^93f@^k%v|BQ|Koc4wZOXgJQV2W)9PQKp+{A*BYhnZ7?&%f=62Lfv!c zoQUdgLHh99UQY*4%lJ6^&dgX^N%$-EBe`sY(jMg|mKM^HF&Xc<8s(Ur>Znls?#tx7zT`e@k z5r&Foy^A1Ag~qw;A72o>i#@~V&twulnkN|+iaASPo2dU-*}duHfE6`ed8k`IKU5mP z{K7)IZuph#`7*#OW%WE1dWYYqLfvsuT$sZoOFJncp~R_2Hod#o;o6f7@8@=z0VVxul6|XM^ox~Q z^yiwPpD(L>`I0=bY+opS4)vW^O1&*K$KE@@8`@e+uN85O>xFHlPoI~|>-)^@R=B0V zXoL5kI8LN$iZ*R9Cj=h4G_hM_-@-gsh6?;>{t*d(wQzpblPkjVg=9)Sr%O3fIOEIr z+aop%V)!7r6W7?Ia~H$ zwe%;4mPqYNE`!nbC#D?^ZKvLfs=y6$Op6Lr$XC2x#%Xc3i|LFy>$u28m+hXC@KmTZ zSQd|MIUy|<@7w*hc#@XVzbJXR@>rd{SXSahZ>~%ayvOTQRQkG;_4NsOUjTn!7URiB zD(eFMn2xtOM+42(0d;tUZN{^!oO6)>vsT@|wX<5fcPiy?JF7?+4?7&Nvx3)uF+bt^ z`S|#TSYOkY(n`R;i*qevMl?-eXLVL#+VWyuw_%h=ZSn5+v#!3TmUq{$_Wb)hE8mwe zB7ASo0`51GuI%$7IdIO-*zZ$(vrk^_9>rDOZ!BCH{&YAH`1s&Aj&6qMZ0*gWwtOf3 zl@VD2$XVR5@6@s7JLegN#v)tRzqOp)R{7jGm8h~Y-ITel<=PBbQ#NMnPVVp;r)}(- z?Y8QyOvR%zHZS`$by`I~8OTSzdm+46V~^VTGNIhd+H~WMZ<)XIQ48u(mFC6krMnW( z8n^NEz>LIU|8F|kX$k7h?YXov>cZAtw@=aFEl*`+MlyY7HraQ_w3#;RpN;LAMf_4% zM#T)%H&?Q)Hrk5)uoI}C+jjE527T#7k%s;Hv`_~q*EwLQLm=c@tvkIlfCqY$ z5g(|)6u`-c3IRgEJXl9dwwu3yjqM#h1HqI$-CK5)WaieV8! zi12WdYCSoW3=Jv469xs*??Lwq5N<^hk==MqJ1q1I88ZaI3{&rq!rVT?BEN#LvrxA= zNYnxhy99Atpq&KlsisQbZOtIyEKQ+MO^W81on((?E-bV=!WbeUhM0iH$5rF})azpJ zE2!#fN8T-nx~Cn+x}BH_L!M53a8}ao99#TjZ9*@MU^*IO&KB(`8E!Hcaa}T6tsv6I z*U;{m8&Ki-^QRvhgZw`KX#azM0P@+#p1(dZ`OQ50wg~`ueyi2?X$R=m{Y$$VpjO*A z2=Cj~en0N}4Ltj!p?$&HZw1Bg!0MkgYrmQ2zdF_c=J{<`1MC!lmtvoMN=r+D-Ozqc z1-OO*=Gk|w{gYtruXeTHzx#fx)qt(g{~xcKE5JW)Igw}(7ymy00Be^F37&t=KMx8Q zQ!adclLRsj&4cLwg@3YD6x;gg;$XT>Vj&ni0a$KN)Ytnq_{tofkk4{2C6-+%Fi~Iqj7jUHRcvdaZi2{!|Na}%%Dlk;pe>w5p5OVo)NXe ziYAfL^^ag| zo2DaX=8_DVH!PX?#HU#^y*>=FC8qg_6;kw!cz7@eIL+J`eP?oUGq>@wz^drdv8%5I zS-HKkRezZm-hYt+G)Ezt1tM=)XxCp|2ntbvOy?9x=GM=bHcDMHIP_>&r1hxU*sENe zh>+AsX4AC=rvUZ0<+m6Z+_*aq$<7FzEtQztS*&dmGQ7!m&``DGkP5q~Xsx&}$8tk~ zP<4;bShgcgW>UKqH(g(G*Ggs|6yz3((eQZJ zCG@aYbJ4x>)zw94r*Lwy1NnHo=F2V_Il@cF6VgLJdefR0@AqCAEUwJD)`{`FbDg!x zwqK(_rg8uxuDzkJ(w4gM{+jIGr@?#1=D8p4xY}%fJownztIrH~D0|rF{`sGyqp^XM zZdmP?^iMr$OFzfN3A&cuHt0WAMU}6YE_@DPT~3`i+jE}!HG`+`LmOUxJZUQRz%q3j zt9FX_TY}wq;&)Z6((PG&_pJ2koaDYFN^7jk&b(!=OXhrWXH>=)rcKkh*_X4(_=Sbn zrN34nYs=XyuLLIIS9y-O?*0IumV5f6SF0>;{mMS=i^FX(*Zs9Z=3e-Nr<}RioGc_LtiaR3Z9(KuVV#0x{!Kmqu@@0I; z$473D2D^u6FFe%(_@_6l;w->F(|zRFD}@#APGk7v69^L6;g4=z#>vY7|13L4196t{ zEDJdtpz zKe3_RAprlVIi6DkRz=!uBACt-M-CG@Fj5JQoX*eGg&nH#-R@6$v1zwf z@PiRz&d&lCiCS2ecd7)hyz9~hr}YT;(+a#|Wt{DM9IdE;%1n^9R%`d9L*gp0A^z=$Qzf`N?U(sJ^^f=`t z4d!5xKK%ZjTSXNX=ES4;dF-%H?V+U-R~|=GGr%(;#9XR@4IjHxaZRPvc{w&q=i!_~ zSp8tN%ZCJi{TYX3yRq*?cuTnWVpMXY)1?*n!Rwbd9b%g#54l46IVNQ4hV3`K3j*%k zp4hz$Z;@UqL%DiclpGo;xc=Bun7AaBwKo6n8T`1jP!!HbhY6`@z*$aQroFt z7x1UWrg%)Dt-ZbFVQt=D3knf$T5h>tvEY0%rFhNdO6kS?+r>}p)<~T)No&_UIjw`M z!KECsmwb@L*2gCn9ao%x6sE}7%$^!8)h>PMN-VZH%W*72WBKL3?AAq9X3Xl&Dt_MX zL-bYtUs@HNJ;M5T&qU9sp`{AIGoj>Y_MdnrnqF4{{9`3nYdrAQ#k1%yo{4`a&T5=A zQ$}CBh@ zaPJ9LI=m5;n&rv5H6>i^`AYBnkBO|tx9793cCTlwhiu*W#L>cCt!26nW^Ee1rAIBn zt*mXgH`eM~_;$vRr-iv*T~cxNAO1G79N7}Mba-WS?7I18bYfsFT*YtV_^F?YhRU_6 z6Mp3??HdCxkgJ(A3%{w$U#Koxw3WTPUTb>#JD)!yxBXrBrWsLttpbNOPz0oN(FA2? z<@>L-e%i~1?A=`fl+f8Aq9JP32L(w+k?ev-LW9<3f>v3ASHyznHG`*ZgTI9aPrV5C z$`AV99yHt$95)-h!W42wD}-hpG9(s~iVI;Tq1Z-H!L@$r;^<^nG#4eL7K`Q~qC4K8 zk5bS_SulJO7)ecx01R_E6myJ-QSZPUr(i5uuqR>YOu*5C5A5#$w zSiXu4HP~__OU|4~(S?hO*Sf zL_uR65V15ZJlipx;Ar4?7-4}FGM8e)mFmP37IkzRDt<>+!3=@&22FI}czzDmC;PnQSN!HRUn8}u7WbR}iFvMOCwhpwYb z*L^^LU_du8q#Hh@KeVIUInW)P=uXabXE(Z=7u^d^ha>2SKzbkpoen7U0Dm5UBse-Q zo*th>PfDSudsL4lO9@c{qu#i zO3#JyL!=sAvXd_m;h4!7G002pQiBh^W;v~wkV1Y4MyxH2R5B`^dag>~72u}DfMQkO z@UhjVI{=M5rLGcvrgnoI8x6m*<@JRL3!df!hh=?(-Y{+5YM%%OE!PemxCXXjVq#W` zVdDIt#%B^DXbU~@kU^##!^xy@PlJ<*kCYrL@j~#k5zpyzbuN%7H`5`_?>3nP@C+pV zA|pZPh%=*%D{u9QoK-}8wtb_OlaK=lh>(D=uR^Tk!l zS5lavjh~43qd(3Um7z<5Fs1o42d5IBLkDiLf+!-l_ziAUEZl24<>;L6V?Us3>*e9M zR6C-q2`$EkIF{x%4?&2vvo(%(_2s7|iyAgO*jB1;8k(*&gU3x}S{SyZms6%+9$$TZ zZ0GZmBS=0Xw{_vt;%Ynl;a=xx5Hm@<*^oH;>NpszlJvS^t7C-%^v(R z*c>vmuw8?3*o|$DKv7>Fj?BlF)BrJl(aYD4orjD*DmkCu`Vx}re4O@)`gLi`z-!%l zYXY;vOTCK*BAnZ}g#_wUO!^1J-Dn`ffy93^*#4g3nXs*!4wvd&D351Nnqqnw1uyV~~(!lWu(?Zr^?UW6GN^l!&KKiI?ZSy zTN6MSBHM+tOfos|4&!5)q+(#4jd(_3N+sx_bqH^JDzkLRYtC*bGS$okH=ntA^>0NFsB||+N4)s6qu{^}t>9KIb2>JHM3iHTmW4Umd z?xg67jG@@aDvqNAV)j+@j3xGlm`_`YKGg?%XfhJ#*i7}RlaPfa&aF4nKMl_tsn@=> za6yIVOzyan+P_D;v*O35=k4l1PNkj-9j3$YeCiP)E{xB^zih&cL&ktcUbFw}Rl=6y z^!FU!ew~bs(1F@T=V*Tu(m3^pZS%$AvOsUN#qm~n%eN9)7dnUK20N6*B#u4k3J!RdVoNKQqWIQLT^y9%8*c1Sm;e+kOn#EJR(F6gcT6Pxr|`k zs2DgAGcOP-Ot$)Qdc+PYfp`c-nUV32AUI2~#A6uF1B&?t$4HQIQh4uJQm7pfje>^e zKyeT-UY~*sgwMZ0uwx;g!mM`Li-d1Rfki@Fz(G2Sj-8Na#CiXdID{fWV(l!XsG1Tg1alAmLwO;i>rWSH$oXaBvz4 z*E6NOiWBdLPAPPN=8OTPEJliK>>roC@CqasHmu^scC3vXlZHb=;-L_=@}Rpu3fvv z$jEs8`gJBICT3>l8#iv;ym^y_h2_?*Tdb_Cw{PEOV`F1yXTNjj4hIJZCnx9KyLY*` zxVX8wd3bp4-Mh!j%X|O+eLggwj^=I-wP>C-195{W{gJUu*CP;hW?NJvO%XlPhiSa^7NL`1~r&z~bB zBcr0CqNAf@Vq!2DOl)jyTwGjyeEgR$UlI}$5)%`Xl9G~>lT%VsQd3jY($dn?(=#$M zGBY!?va+(XvvYECa&vR@^78WY^9u?J3JVL1ii(Phi%UvMN=r-2%F4>i%PT4>Dl03i zs;a81t7~d%YHMrj>gww2>l+#x8XFs%nwpxMn_F61T3cJ&+S=ON+dDcsIy*bNy1Kf% zyL)U3S$0sHxCMPGSrlzK+r)Oqn zW@l&T=H}+-=NA?h78e(nmX^MK`}Y0&_vPi~A3uJqtgNiAuCA@Et*@_dY;0_9ZfMW0D>|hijtbWpwwLYT}8>Qez4mrUl7G9?STvr-_CUvr*?+2 z$OSMdm!x%n=6sT)-(8a48^dSP^F_Hdqd#86esiw7G;=T!?nTV3QkFHGiulZB&{LK@ znyHnl@>QigXFON8^zD34dG2JPQELFRYDM03srhJ*L2pI=Y^CjT&sWvTg85pf!_E2L z%EHA)BtFRvwW^|Tt!Qd)!@jEG<<79%stIb5fM*H-Q=HhGcU)Tpcax!m=c`{h7g_2Jr3s%oM}ea-RK zRH^0SKz;4$-clyFbF@=`4PPBkpAXh)@&S`0-gw@$O3GQyq(y zDBU;NE7AH68!ItJzIRtKucIwiW6d+NSL3WIHdfJsEu`XFVlIXmdR^Op$9NEmG(0MmpwA&PK);hs}-5Bww!0thDI2o7q_z zIh#3o6`Py6*rE=ut-P{{w_EvDt2tW*btju!g-wLq+eK}3mfOW$cXGE&`h>Q&ONSJ> zcgn_eEO*MM-sJ97%sFiBR4(~)?^gYYw%n~=&&b`a*{;~yt=;e7-mA;pFxjg=TaCXD zNE~hLHU7p++G{#FAlYxmqt3H!Cb@65-+Xmv&bAqb&-1g5;#ps7JN0s}T_=qt6JOWG zYyF>{EU9zF-LPBOVQUo9$~*- zZ$F^O%_P_?`%C;|7wgM;fiX2pcY#Swv-yvc8io2o9cGi;f&)hJ^C$h5S6?bx?Ntp< zdsI0L%CQ61f%(GIHW2sIUM~n))uOv4lW?mGJy!6$IfVD{TLASv=bp$!E72dGFGDI- zVk_&MS3HDwMZaZk)jAHQ|EjB*C=7ikw)PsIc-NEPzlK`(62uQ%I1=1{44O#PkEhxco}9YbFS_l_L*7Zu4V$=Q4?1TP zE`JU6-j_USvrKHZvvc`8%Y>gte zS^{yz!1uL7QP7~91Zxm@?ev~0o%dJpyNTulQB7oyUUDZ3gA|0Y$eUaB6`8Pk3*~~Q zH5oACuxh}@2G3+B;cIz@}UGDVSBlL^DS0wkd zWMJ=$(68hT=s%yevxhwLLA<`j=&ai)s8Sq|l^JxmH4*hb zGB7XcuCRX(&j_VS94R{oiE@wTz~h+m?br92vsE++`J-Ih()di2W#8N=!PHBvUc0%W zrmzqZo-p@}_m#6cpTlUd*V8-qbGsGaQ$37LDPzCokLb5id><9@VdZ{xwMJ|Ilds>g zPfdi(FrBs;_OZJ>>C%qbgXR?xcKBqgBKVuV-Yt{~!C!tzf?jAo7o+(KZeQg)kBxZt z{V>tEZvF1f8cpYb$ml@sSf#shn!#~TQaA|SsF?NiNOwH3_-$pT5Z^syA3~E#d~aP< zJ!dr9#XfTo%%x1`@+3;*Lo$Na{E-aTQ(u*brn8skilJ|x+G>2vl?Z+->PkFXNI0JU znw?9a+gUryK`>i7cf8{P%u(67^Iul?n5Cb{?~{nQ?TL zS?;@bwDCIq8FUqu1U7Q%wR4j*Iv>mG3!GF{br1L}>qakkou>nJ&sl}*4o&lH#$6ZY z8crKm>+idK6*s^VPc?#8c`c4D4a!O;YG=}|y{9c+5|~t$@6Ydgk1H*as#bm6Rp0mB z68~Og$k0OIQ1o`=`Wy{OMdS3xV*knBsiPcBhx$7n`QYxQLB^^YsRp}G_H{3B-4yA# zfwl9`ezQzZf@$w2;QL_8WJ>wuc@C{1|EJKPS9dKL+MYKYyw%h%xije06{=u|jR>}S z^^?`9$MQ}wCb`a(#gAdYv+givnMd$pr$e#4bkHt+A!bO{ltf6d(kUh<2Jb z7`c9)Ta&ce8%>maA6e+O&?Y3796E4Bt9N~kand;(=$r(cIlV%TH^{{Zp5xq&Yf5 zB;bo~fJat9maebmnU9{iPeE6}GX~UK5mde|G8yBY2=#Nw3T$HtDn$4w>iRdB2ZcjD zMx26v3kS!b-|-;=l5~STor0Hi(QzVy3G2aLA|WXZ_SsoMW#;~O(Z019-+FZL05qtP zGjIao>u(;gxE{Le6jFW`TFDUh0~7Qe8b;O?IxiBokrn1w<-cF$46_J<_=gZZ4L{aIEQNvwf zQvTua>=0K(nCf|$P<80%v(J`yqlIGwnVqBWibimsdpxf8{Lmfgpd3Bz6!V}OWfvP` zem914I+{~7nl?LHzB|S>7V`}neJA`gNA+j3tSIH~sGI9C&o_Kxrh`PfFpX0YKGm2I zXQcf`6x&@4Z}w+Ce@}~Z4AXR2WVdh9^QfnyQ4!T4pQqz4I^&;Be-0Oo%*&3A>W;B{|bS ztwJPqBGxZOIraKX8eTw*Q~*ZTB@{H1@;E1TTQ^OaIQ5h$`QR+EsyjiWC;b(1+Km@q zFbrQri8JMhldNh|47egc=A=E~%6O`h!Kf09b*#y7f15#)lktK${Y`f&vL--VEd7&9 zMrUjWlq)6ZZP@3ytk`RrgkqT^v6)7jSqIK(uz*z67ddJd8S#v10ddNnDkihK2pwJyq4nSl9#}hJhz#oQ=Mo1Hoq-EyErF%@!KMyV9WaOLa0O)rfrqOUEIC(i#q zlSRv&4RS5&CMrG_E5WlYVf~f8ppuz=fi2?5Eg=*yYJQP>?|KP?c+^!+&a6u*fq3af zT*;Y5b~j@&M68URq*PQjKlP#*(92h=EoD?Ko!Kmbix(m-lG%E5wN=YlT*_p)ixtI- zZ{!x##Ff7iPgv~9KDVftCN6l2Zvy0=N$cso|9HTvTCHSYZK`!d8gkY zJl9IaQ){W#f?wB~VA&?B--NXZZ2K)ZA&9pj|^omO3_%kFN8?zy0TM*Y53xBf+|Ze@wVA9?-DYMmu{T_<(L zA#?ppz|wot>Ld>z~wOp4?{|mY$z%$n7)E zpLCF%^0+sM-We%koMOwLa;hHy?@WF+7}s>4-ryNZsVgBfn0~81B}X>1FgK;*KKL=X z$KvbAelJWr52iLcPWE$#NM;sFIcsMHt8j-^^*7c1o+>Ass|=ngy*JmW-dXT&t|otu z05$tu$)dRb(JdpM*yZO7?^P}ppsrvbm{CWJJ^UL}3KkmWS$QH(!7v>EX zc7hkat0&Dd&o8`N_?f=|idk69Up%c}{QY}zFL=>Fa&drcalU^M6tZ;mdv3daiBMya z*l-EYa1lbjL@xD>(lGU!VF$S2+sW4@I^J&^`J)KQZ@XmQZtZ?!G5p5;=^J+bJ8Qys zriG;k1K)XhmlwsqKU1%{&O6L(m?DWCl}=c``DvN2;5+B1A8^ATg4RDYc)zicyUQ$0 z$VnyL!7kMYFY92xYli$#PgqgW_#uQ{F*ICdXI!~&|NXVpGE#IUw135tcU5^|MfJw2 ztj6-2-DM}kHS7m$z4@-Iwc(6K$cl5rikjhiA=w%lyZS<7#g%u>XkpFQdad^Nw4Kz3 z{ihB8h4r@vEAdjRff{|NPg7o>Ru~30QbIPj~; z$-5PPV=KF1OSFEuT59vjjzgREb_MxH)xcExr)~1o)vWo=Myahz!=0W_t1ThhO&XiX zg3Z>1ZOrc09Pdtf!%jPP+uM4_abb0#V26HSGxWyp@QuAh-i?rf-PM8Z`Gmdof~}K* zt;3MLE2$l=gq`2J+p@&_n}&P!4cickUDCaM_JVbi!hILs{qNWv5cwX%{huGycNwMk zmo@h28nL_Q^ScyRo0AO(cM|6>rGB3F|KzwjxT$#n-uoH<^?=o5mrwJspZq8L&7W3M zhvIv?1dTnk9*1&!2MUFUWQj*B8aq7qkDe@U2;Dr^e0i)=c${m!FS&R`)OdVAek^f+ zh4bc#Zs_4J-eZ%&W7Dfcsm2o}n~k>=2N%|-8ZS?c0#9Ei9>2RfeY$u+Lw+K-`17^R zQG@!aU*f5%^x3u0vtWvyz|fOhS7$*UKjm%CBPq_U2hVkQ57i3KeG<=IY|bz@FVb)J zx!Ii9-7m|fIJLTYR&w*G?_Ryx;6<_KFJtLnp1h~o(o4@?o;TWTLZvUVq|d9QPn%qR z744nYVG~cf5)a*_FWVO{#|AGOZk}%}oX1?98zx>(E?zY6ou6u43?~lN7XBLYxCpt4 z^|txFHi-Ku2AgsJEMoBYXyNZRildFit1X)=00bbVJPF8d$eU{=HF=XUZ(cvsGH&*v zS17Y2ufRr_iHbMfb1wPwgC&(%u*Jj&|A%kXiKk@}ilq|WjIT}0vD z2&ICc?QmsAe5>M~#4k+NiUf_NR2)2Zb9Sn8kxV7M5Bk+?RGJ&S`IQAAkyL$mx+SoW z`;Mj}sWipEjg<-t;%_|>6-#a7AL53PQ4fnQy4mt8l#=ofNKd*w)lj~FuWUq!-audR^%g1@7$5dlVkH`YX#hIBu%FCGCqj(~%&fYz~AeOG({@j^BXx#9y_rny{ zi0q{A^=R9%fQiXvRIll|yv_?tJ?-OZ;__gDr;kgc3Z9!~(jIGB2bKxGFfAP4nPU%R zKh^vA^5bc%YCEm+WL=Y~`EzT0 zFns&q(}AIH=rY3yOs-<=vEQIrwT=x0d-}~gl>L0!m&5wh)coB7-I{f-L8X}sCDuCD zG~lBmy=JV!r&HsU&*Y+}jbC(hO_1&*`kj)!0>-^u;fi>h%9m-g=2gjrms{xg3{jiL(HnZ3rB}YZ`#um& zx0l_NjdgqV!X9qsUFB@9cJ<o($^Rk0|)fzn>5{to}J&D@C6g~~?x%I`7#qii)1~EAF^{F?wZu-fOewk@8^`18Ur(|6giZJ* z_fZpaNe46{%`f@~k>z@c;9Ki(vNuIeC$-b(m#4QcBw^xouUQDcL1c$SLp*QjvyeDe z)X?~b*x%QGweg`+?#9WGpETGQ<|87{N;iyFk~gM`s*=AWH0-bGZA_CcqQIpy9Pq5o zn6A7^f!AR;@Fm!Up51VmR2w+k|OFL`iI7IK;8dH8lGMp? zs0a8p3xOy?mTn}>PyRJ4Z8btsXe2z;`!yT8sIrRANJLEA>pOzg${G$MpA*5RoC=~U zkE2H-Gv!UWw5wHgDn_CTy-j&cMO9x+j6_$qneu+DRy8~siD?AC;q$?Ysu|ObVmjsD z@JCgvy%8FX9rS)9kS?nJR%bMBvh9sfd9}K=!)W{>*i58dRO5a0=$AElGqLe%4Tp-+ zuY2BR5-XybE)$~(r)_3Z$JLsjPDT^2z~*oQF)dHJu_TCsxh!psmaouQGKG)1JiFMV z0G+WE`gU_g!J0=Q4r8e|2`mr_Vvi%D$I>_yEL5~>9!FP3}E z@v-Jf!pT^sG{IXfAF-z?bmLh{3U41r)jZ7*8qe1BdHXb7Ogl$sJm*>aTb=S6?E;7K z+?NEFy6s{*CDG$~W(t-s#%pvcD#r6|d@S`>#Gchmj2AezTN)nMU?(*hmmpxMKkxq|};DJzp})c1m9 z8YUQ&NMjg;`d~!4{nZE1Z3Y+(UR^U8gSZ)xAW8aCNnq$E@-id6Ih{6$769k|4ge7N zci{F~BO z9v~G4hG1k!kput(_|*@ex@9N{s3h$(AO79#=PYrnNB4zz!g$ke_W|q8=E=Bkhnr%c zPGNFn;P)uOzE@?jbYQ^xt0e$NLaeLsNofp>6+Xza)K@8TgG&N9>KK7xM6)b8i@%kX z3_x_&!u$!K!c)6NVY!b)al2apST-cl2V4APP!pJZ--!Gk3_;L`^t;~&XStW;#mJ*Y zNkuBdBJYHP7qB3yBX3ct0&p^`qOiNj38>?eCrHW|B(RPmC4_!p2;;LuJ)P@^tmEAX zNP0%#=0zvN&?IYJORRjELIW(da)#IjKW9rOzkq>>z$1j$@L6Dix;Oc+5>m z->_^$>V_dgnASyL$Yp*n!BH~^1Usl|LaWw+Z2=a%%_=+zaxLJ4K-0|Up;lR%umIbA z5U6S2n<1_EEs7M|MAy#g#bnEOob!?yc!X%9R|_Xa@x{<4vM2#U`@u3u6hjckQFsK7 zw&pRqB?W~5#7*QDsY};@{Wivtq>wxMw;1tWH46Y*Xd~}ev{`3RLAIX+QhZBmp60EG z$9ccO)JybV8CoBXB|U>hdfr$u2j|-a5&&A?&P@{u7QO@SEJexOH9EFlY52&S0HHgE zP}HcD{ue5%7SE9r1fanPTtRgaf|kU9eK8cYoErflYN~!T)kLmV{^-o}K@r#~tAYa` zSs7ScEeDbW2$!j$N?l+S+*=7D18S0CzC_yrce+7(dThpN}j^A-Hz{gO8LJ;HV`epXEhd1)%_tgjIeL)KE~C-z|J3=rvM)n@0)b z^&$|@3ezG#%MIE0G~;ZT?aAjDk^*Spcwpewl=vy_yDB75m+`0{~eYFD&j=IGu9%$PJrqH z++kvgM1+M zbI|1@9)jG|QlPd}pdoEa<$(h%H9kY&D!G14at-5uzAC?ufeNW#0f~7q;A+K#32aszLx=2w)093J{ce5iH3;&?H3g zF0iF7AP)uGiy*J_`OyMM&8%+LecwCgC3HiOUTS|LPW+Gickp z);_Hb4Qtla0)rU5U5lDWtWd59BsT*Di-)ARt_AVYdW`l~dkSG==)KkCXAFbV4*7N9 zBLF8Kt}OIjb3(uzLU7+^r!cKP1L!A@vjc$T~xK7f}5px^{Dx|%#>5IY2( zFC0Y?2DuG`3e|F7@A7@WL}0)NF%THcQ`1B(5tt^m(IcuvgMB4R`5%h-S&2wmucLl3 zbzG)_>9Yt>>w|@XW7KI+Rlh3Mfe{=Sh)ov0jT)c$kgxs}p%@G*iGUc{5-LwU1^Bd| zYLDMG@-x%&(L(x?W_999Oi~wWWh;anLs|?~`4j=~p#*@Dm-U&CiwQi zL;(x;Gm!+nuJSc%@}&mKtyu_-bqTS=V-ioit@m4A;3Myx5x(XlG@Z(Y8lmX-A2q{} zq|m`IKF|1Buo!~~&;?wBqcGP2m^mR6gTFZDndwsk1lXTI3&rvaiYXt94c6d8@TjaX_WXFSRS30Vw>?nASI}Q7uTmFnEi?Nr?2(p1&AOcv;p$7sZbGQI;}snNCIr6 z8P4L%Lk)#YA^F+@Ktlkk35kj4Azh#G$pW%>ruNIc?FooLOGv2G!za#opfE4Jb+0fq zQm@L#ike6c0HHWN^>ls0&QN;h{9(5GT~YesMqYXhV4!=hiF2-%-5)!^3(zeupKM7!{fec`*{!m`4`kACj)$De6f zI=S&cv|5I05#D_Qo^n}w;Yb9dj7AvX#e_^Li8oZ8@zt~h*@PM9O&OAJEQA^nX8T-! z_>k-;^Gg-3MUpPUs}IA-QY8Kq9=jlFTvbya(D&FK?(?h*U;DKFFw*;D}t+hZ_m(S zuW{Y}zLW?-c;A}4;Tr&W4H$LW@pRg&DS3hcFL{Jd-|8GAoSL)t6Lt;mYv!D>X3v{; zzzlk?TRwM*He$hl+a!#p@mjNlu*0C57%%}Rgd2(spj(%Rp&#?DbLm>VBy8}pUiVwr zNJ#MZ7xIEDsx`Bzh3~5k(WsA*S^&1{#9g9EbejQ$KwO1IwDpE&F3NF8j!k=nLLA=? zHjE%c>WX+@i}Zd2hHxQ3?pa7&$c($5!qJ5IMtClK>l(VRGOQJSJF5MpeCppI8yxx} ze5iNO*QCKiL|;c~-wk8wgNLuB7tN)34fRzwl5aQDp{oll%WtF|e3f;E;}IezKaRH& zWkFIS#atMC&725&N0BBhgzu2v01SA+2{Fy`a&W>&e?gk*LW~eTf^5#AZAg|B7;0fbT4aRlc#{&=(rtc=qf^~@X2#t`08~xQk40l%x?#-{hn=)i8 zCzGSlg{<=+@w$Mfd??wv3gKuKbZW|{Yc_NUw8KP7;AdM?|ElQgXexn!9xXb*e_@sw zRY~AaVs3krc0cLZMoHHD#wEkOqDSmCJ$dFoX+zUklC(s`kQ_#{xlMN0AqOn<2e&v5 zScMO6D;=;sb2wl(JGkR`z~Ohm8FO$q^MI@JfV=a6XY%0Q+5zwB!F|XfAN}D2jzfOo z!-qMPd#`GY`co55+qVB_`wPzf2bzl`bHRiJ z1Q0?32!s#{#a$6XOavt+#$A_=nTh!}EAHxSygd9;67t%QpT2#gV`Z-Y!3Ot!Z;)=b zA!xf0f7~0V^tNS<^yEwo1cnUo{f)sycy8YVT- z$b!;tDma7{HOu(`TAEVpFqtMW1ryzC!3`E!H3DsJDAO;>HB=!JY0)t{Y6(S32J4el zhVL!>Pr;9t(Eu+#+Q3-|iTp}C*SqPQ&tbyW_ji1M+{1-a2vYi zi6puq!ZXw}BIAuA&eMS*CfEk>jYJvDN%*;&@vkwmB+W)N88-Ys0Z6+50enQTv!G>f z!OJHh_w@L8X2NWi9r9d-mlqmn@hL)_MC@8SLaBEpW2<+@>CA<1ax#Bxo{CAPC;gM^ z|43LR&==5iK;!>~U}OI+*j+{6WC@9w{-Sk_TOo|BFL1Q(?H0%leitU?2-dDJM%5hs z=lg6b(R|u9q|PiE{UHw}jk26e*V?{_IbSg4z|6H$5EP7(ab*?*Bs3|qoI?V4yU3}8 zoU&j^Ig=1(Rw!l()rwcB%`Bgl4YwpfnSVZzfJb|wst~nQ5@E?8ygEaoOM?FuTGtQH zmdr?aYoS3K7iUI55#p79Do zM9Uf}^i}M=XF#rQvPyc7_P5d8M==gNE=OLzr7#*avv`zg013xaE2E)gYY3IqbcCAB zEjS@9CskgT>Xa7|5e<(MA1p@Br^Q(vDB5pnMK*Gh7a=7kz`i|Th_@5$)kCuaUN|)k zJgIHte}=~vM*s^X;&{N#PZH<5tAjS0g;L_bP9_&y3wb@TM;9ll%Y#>L(pRh4-{>cU0Zu0jm!0jgg#T391`nW9kAG!PgVn#q$fJbRlf6{>>0M5sU!}D38 zoaSdm#xj&JDYddL%2c9Y8qqsPXLhMw;V`uzD+HgFQB2)(V2Co3<_f-Nf?LP$@CDn}1k=mb0?ye|#Ds{jIKkX`@z#9EyGkqOImhkJ5DLOS zdp{+BTe)fA1&9W?_Wy&GYx&p85h$=Qpo?C~;t?~5$#deh_@Sxq%JSJgGVUOwRksbA z`hL4Bm{mNwkKr*}C&67EF{_Oce6?6cgNZs(>hu9JArqmrjR+&HFJS+;C1kRN7rrc+ z?|)w~^Kl@BU?6~9~0eH_zdQu78!)ziR4VZS~JE_OIspS6lt}g8Kiens7x2tp)_4ubXB6@?8XB zJQ&;#>Pto;<&D{IYx1X*1H&JL8@0mlXl%DJeDe4dtm2Qyj7q>g;S6LIA7UfYnqmcB zN!3j!d25p0pj+4PDp}JcWA@Hz%WgIsN#?P=_>gmyG?vYt@Ip}RV=Dm}{S6lQtx^sm z5>^!>L|F1WUkX!Yc~0BpHZ=Yni5I3Y6dp0Y#RIjoEL00I8SQ2WixK53DBvfEVQ6Xw zd3QjbutWkN`8IDZDNE>opEq#3-4I}iD-!O16v>}`?q93%zu4q(BlF+;+@Hbu|6Hqs z?gElfCI*wgRztE4(Bey$^C7)1B~iua+wM822PZHKklD>4)WLOs12|HG5l3f+}wbM7LAh=;OYj( zjTjy%sFydXw-1@8-_5WnrqWhKdArK|yy@KB+p#U1k$aPl?`sze8op%|&vul| zwRW!tcKnFAy7Ifa^1r$Yyt)d$x(d0v3cI?(JsEvbbfay1E*>x>~%t`gV1-d3CjWb#-ucb#ire`k!xA&`E#@ zCy*H_l2F|eu>u}=`jC3UAQSL#kXL&ky=EU;WM2Ui#B$#nXew4{591`rLPD3>dcyGd zs>0U4;he7PH>eP=4l@*}!RF@cu?NPa^zwl(^dGU_?F(d;7a_Pdn&LrfrUNZ2&EUO_Y9i8)xP8Rh7W&Y=;=s#7_zsaIxu)loK|Gly(C-1$#`=VU@IAfF#=ZpT4 zMgK=r^p7ekEiEk~FN^a<|Hz_$Ows>oO%&&d{t-m~rG}cBnf*%*{ks?XM+(L1pnqJ@ z{~&_?mG4L>%99xB!yFQEt-W2nwe?YdzxLqZv&BWT#YKySg}3wb)(Z<(v$G#&XC3C} zZRh6fr>9;2u8-o}(f^`2`X8)OoHF|L>({?qqyH6U^p7n1#}xffG||DqxPgJh$w}1Y zq}RlR&**5#_&9oWG`zn*rMEY?rzfwov!bJ;y1l*bKM19Nw@LrEsHA`QNO2PBe`1jS z=lUpahQ%FDzCoEd!{9kyDN|}N^roJ$EciARlfb>XJB0XTw%brf52{jHzz~{4CmH0ITv2_jq5(1cGp+R+;^gMO^}kiWH=;L0JGM zJb0_GGNHb36HrV>6R1tIP2J}CM;47Hh?Ll0dZIyZYhFaoJv-<5NSX68by>O?c65tL zd+H%P;Eya?@&h1cW&0zGvNKWHmZ%F`z}ni_@Q;y!BE?!lL->j4hrL9$3|j5%v7}=| za(F~P!|&p;YY~Y|8PPBDd=udRLDPf29Y_Sur=((n@|BPYJ!=BNug@bs%YQ-hEoaEV zh<>2%E(sjAMB-#ot^j8FS8$>OHDU;K+xvDH33g+Q1t15*z&)&BDX1X$waeD8aC6<|YrIBKjIv*A3#EQt6oIr;lU|JnP6q`-*7pFYsUhj zVf_ApmbbKxfW(khIgvmsOKKCo51dk>HAH-w`GARu^z!g76MNcce5QA0*$&rt)gs#X zW11d8`Jrw}1NR(kG~(acj=k5o_9Sm~c4w z4m7=j93s8&B#Ox%8OhSNdxd;hVj+11O(V<0BtVrAvQZcrI%+Yb2g9uZCq83f9_HvP+Jow~JOdtuVux4qU zby)=l2;Nc{ksRh{R1wo0y~7cOAZc6hBl`~iyx}_{Pvt~>Z3*v{g%?pqE;FB3g#?+u zzAZwULRW-s}ltj^ZPU57@&g(~!Ze&m(@U5_r)rJz^ol$Uva{AbMSX zb}D4^ORy)3o(aiD9E^sL6Awki9i?%qXRAEx8HuhrO6LpCRx?u>jhi{j5b4j>aO@dP zxH!s$ljUgnsf?vC9%muca~{X^jAe)&XKMxLJk3-Y&v|j2quZaOQ`s|K;BuU6M3$@D zsWMR#cbsRgp8I05XQHC!INvrnSAR`qvS#MEz^Omi@U&;L;o`UuNtR~>QJrdGJSjq} z=NZ%YPIZW#6o&=pz2;Dz?s;)ig6YqDBiuVZ;Br!$M3!%^q&hPacT$$6p8xh)@61Ha zNqJE)Hs8ujb#`Xvq@t=n-`cTvcH!crvWcv~)=zcrJEJ3?zS^!`j3pH>|7kU+9q)(C zK>}r0-iI6hCW*g%o*nsC^^WJ8NMWDDoBV`$q11 z*2+R&j8;-JCO(W|!Ak!0u#Yze;V^Y>#r%+(!0!w%g&XcwJa}iXPjzFX`nRWv~Nx7*ZCllyetW#zAk(HVhF8KmO|gZt|)#n z92QcR#-YBUqIWTZ87RvT?%&XGy%XS~yeOnR&rE&m z#q7mI)j)ZHWB-=nuZzhh@`@rq^=;$pzoxo0DoSGdx8I2WnjQ+ND9cped8_wpW@-TU zV-@{7)~>ZLd!Ut7o$A)_J$|LFXgJmkzI*(!R&Q>bccXTZ*#KwBdjd% z!FqVz4=-`i9{kLMsI|Nm-o|TvCgi(;qfE9B8><`M7uY}gS+|ySAv%=Kc9blay{_m; zHS#$mE&bsEWJcaio&7=CwJ2hex%4x^>+*w!jk(^Dl*@Yez;4PBKdC zceFgj=Q4RutM%%49R|e~4hN3w4}Wicx~iSRzkgOj-LP-&A@W`G^+|hf#?KHXvLCl? z;<}$C2t+s5ne!Jqx7juv`kqUy6WzWTCdoL;fRJuJNsJyZ#qtz*xIZ_(|EqYY;pA1d z9WII;64c5rvm=e2wQ1ou!UUSbuLcrd>?f5S^4_8zXk? zrP&v*u*xm>u@Pa7m$yZwFW6JC$JA-Rcj=**%hDdFlODfMl{~P$jUGQwuYO&1x`Qz8 z_~z~eBJL2VJJFOINtPR#lN$xXjgrBQdfk<_%9S4NdQI2$I;Si1naj;Cms=Q@+vYCp zA}$!f% zj>=OGs#y-|P7ay~her$!Pu4$bSABej{`g$?qu$vE#!9=NjxH~ucCWHrOb~Xa=Duba z-?t*ZR#|jrXkQzstDT6SIi;VGxnJosKbI;$%PGItC_f|v+D!yq{S1xu?Q%t9(2bSo zAWpZCGjuz>e+1esQrExN(I2z!7FXpzJn5f+a8F_gm=q33%W}_f3Yd=x$bo)3)gi5E zBJmi4xGzC!!${g#{PGdhhi^z5k|55opcc-cMlI4>bLzc2q;7mceVjq=wn1Mo)-^y- zzi#kQSKx*a>6mVCzf*7`!ny;1&UFPZa8hp&k}e}cR-n`?Z%AFkLMEz0(nYMBfzY3v zp;;o<^+uud=+JXcYtN?8zV*;625S^cSSuoo=aDreHpCGL!OsrkdSnfX4f)6df!z(F z5)J=R5lVLr!jK()-JfbjCzMVZVhf9K=8Iq>3fU70`H1`)ahE8ZNA%N*ZwTMr&kvt} zz7uZ!4f7d%3nF3hX}T)7kKwc2M!<-9WD7b{+2ZqNMo|BHq^5G@?rNZ-a+G%Lr$UCn zQgeuXQIw9TZ3GP8Sec6AS+rSq6eKfR8p&@dDoVmZ#Iuht0V9UNVh)63Y@6^qlSn0# zVr;{rrS@Zbnuth}Vkp*#eXm)I(!|(7Ndme9i0`7qlw;%QVE_Eu6a?@{0ZIT8;0Ka% z2X@@a>d$A+xRD+IZ@=%t00(6J{u_Jm9Tjz&t@~FM1r$MYk{~$;QA9vMiy#>R$x24a z8Ofh9gyblaVa4cUMhJxFmjctn@aK}FC~ zXADUd!tMX*?}9bO=Y0$KyIe}3YD=$Qd45y1D@Ky8a%-k}?uwj&m&a&(kk8twi{m2K zUrE@qGTQ2}IValR#SIv&DZ14^7`i!h@N9qk^+M@s-slIDKAttIElu>5SYACATIXNBpMgs9enNJ*NOboud@aGIuS^96O3IB z8ND7lw=47n@r84U+9l~oQsyf?hjuxPA`Wn1m!lZXs%E40xXyea8Dp1oa&J*NT~u{G zF%@H%!z;A|SJJW^iIa)sF-)H@*DO{Bb~))|T+i;RmBWU;8+cV9zuDzLEPC@)%O}fc z%ehPpXu&gr1zbtU-84*v2(fdt{=a`1uGVi$y%@w}{p#$rz-m5>=`wI~}!CK>U9rjF%N zJez!(L0Wv_U>w(p_RI}*(QxD$$DpCoghEKRBrpP^rC65_lncLNkgCP4P^^#(jDYTy zUQN^~wVAti&wMgN?%@o@U_*s|4e#T!Z)N)xzzFDMqvVBKRr2?pff3Ms%Idya!_WA@ z2uN_E(ciXR#jd&5JS%EguFu+Y&%6tA_Rt8(5(2&GNW_mZ0xD20zBv4)4j2Ko@q}C- z-fT~U<5=jvfIoYE5bOWd10m4vRv(@0JVkjPG=?W zX~}PN-{v;_S&KzRj0y|~-#mP?FQ)zA-RnIy{AjDaed9L)alMRwP#lt9&YVB=@0~f! zM(vW9FajGH}G+hhkyB+N7a*dZ!9`&gJeO?ZVT*u?FWgq zukxcvIg_>$_S6Ssg*@OLN1jT!2#lxFc)l9=Rkk)*)~1^e_C&EiVOZ(~{l9$dX?nl0{U2T49VLtUEYnf3C3jMjU!+ewA7y0MY_TZ>^Eg+$AQd$Em z^;~2qlt~~_56vPINqA^ZWiA~{DHUNSTDL3{#i3cI74A|v7{jmJ=lhs!StVUmetzh& z(5oleNJbonh4U6VW8~Aw+ya$fE%w9uO0O0irw@AYO)I#28>+|ID<5qh z!3r9baWH}ht7fod29lLucgufsu?VU?^Dou@@49)Jy+ERuWfNc;((0w?!v6p0=A}Q% zE`9fG;2!<&ZeH(mMw3;K-Mp+X`n3rE9MJgOl6jtC@%X2km(obrPd6{|f$z;CM{ZtE zrkipHx^83Kyiz&M3S1aP4&A)a@d*~~ht-}~L>$gTd+6pR!?zvRunD%uBJTVcH!pMR zNNgnfBl2Z4aPz84;aX~E^D1WWOl<~kUbdSD2nmdvm;IIJdd=SZ7&oumH=@VCc5N>` zEw7IBckA8k5a}?s@^Ab8HFEZ0#g7c}gCCHkBDw$=X(~Dp%2ATzjkvJFB;79Dybw%* zvr6mq?gOW(+!t-&=4CJ(oGZoitjRQBEfBbQU3L>Cg$Pn1q=HF>r=ErLt(LG}7X01K z3+9FPz?pA;6|X|XaWaNB#N8x8OGh!){mej^nXJGy;O3>BgSz?;cJ+h!P#h-b{D6+Jbd{=ans*&^LjsN zi*fTR2LqaY;N}Iv<=gFmQv(k#1ZTx=7oo`3Za0ZMF!G|%wR_u3V_EUGkKSVoczA{K z?e(*z*zG;$Dz4ZY;A`628x(xR_ipIib2~7gS*v*WMB?MtyAdQV|NBu{YWw$N3Y?Yi z$5lkO-#=BC=l?LFrECA;nVx0khe-pE?GMjQLizWnZlu`nPg@mN?$6jYZST)IJ>viP z;?{Hfk8_@Dl^+l0eLrr0d5 zmecC*x4g=#{`&bn|F%y)(syq}VB}lflS__v@5gbK{XRS}iv3WhMpk9kJ!RCrPu=}b5i3%9u ztey|?uBr#r-)F)SD(S>^sku$|jS0ca)kSKy>&78Vad5S{fU-_qUci?*(u_;SSidIZ zUMn+ExokIsPD$v&#Y_^C+oF67WX|$35-h0r64`Hpwc-0-EELaJd$}WuBXoQdN$b~{ z`CQKEUjLRy(#_S!l3WwTyT?L%H@{DqtT@_%f{6YV7t`7CGZF3&SSjC?JmTG}jlCwp z%0zzdkyLvTIz;6J3%OVN<+EhxVtflMS-2ISsMp0Ox3F<==Ra0`vKpJ6$jT+7FE16p zC!Qrym>^fGG+j`agz{qN`_3|`zf_pqc#lB9RWZeIk4&KbTjBK}Zk0xo`cxY+jXWG^*CpM2a`Q}vejO~QB+Y)zLX1v-WdGc~U3z{S zP34J^Aoqp~XC80cnnor}>o35l%e}DMY4K=M)oes>X=8Zc=d7n~h{)1(;=WQIw1&uwm1HZX8g)3&l8AmVXp@*=~P7e$M7& zMQ^T%_6)z>6q9)kr2S&H&*)gEc73e_u*R&d|G zF-+k;oLuXAx1sXBhtz!L>7N^71duNA`GZG8CPWtco1_gF_ek@4wCew7^lU&2dnCO0 zRnPY8djH=eV*-y7F$A2+$wZ0>PRyf~I%?7xLcn?|SV1GNHTZ5G;C? zO(C92!{XfIx|@nekCKFtbGU!h`R(rt%#~tH7gVr?1udq0;c|WEHR&)!&O2O%;67 zbrXvhw4k+yJ#x&&QQXtDH|vu8T8D=wPp=K;$RxN){j?apGHmL$F%@giW%-WPehWJ^wa>B$2}mzLpBIbbpBy_;mJA<*>XyZP957UzKnV>Ok8 zOx&tz5$BsMiBFxc>FSHOzBvt#B)uAWXh-kzBkhY~qOLcVz=!LoQQ^x;I*7bb!yqxq zbrUU;E1xF)|9@>UI>>9S-G08%+O050I;40^I0&}Ycz+UsONe5&wTWheBKDtzI$ryd z-BJCp1iAq0Aj@Rhg}jbQN$pseX)5*!uuAkLth?4b~Ga&|juyG8j3KVacZANHWQ zOBa5V-QJ_IJ5f6W{LjCg?dLA{rF?w;u7qK~)!P?RII@?}kf9zZzjGId9{o6jWR6!{SO{O{w#+5_wJjoJE-wB5~Av>PZYN7U|1ZW5aA@;6J$Wu6G zbm*Xm?~I((p{GP4oiCNEM!TdakW8>7K3R(2T1lXM!*u1U5c$LNex$NGRI&cly91^B zv4rubiuL44AbbZZR-k%6ZXS*`i%0VJUl02qv^;;1tsZGs{}rj?u}lP^R9k=)|MSPE}OMW|z%5b?7swC9T>jx2?BdP5qmUv_1^ zZmgKQPbV4Q5YbfqxXm5<^@F#%lUg@uLi((noL{DenO|_PIJdW4lGt;FG?`oF&YH)En z@n|Uw5`6J7RXSN}PDvgk#pr6zoyI%sd6Di5RtgSgX%KO4=mFen1*sQ5&DF~J|2~56ee?v2sT?N&F&4G66P*yiP z*$Jn}$w5}rAa>Ic5Os7H4yB+n3|a#f$D9=tq&-%}^oQ4)yMZEQRqgAx)j z*dS!RC;_g-%V8w^0zDgEAT?%B;q#DVY&2@#!38&4ywYcjoFHi_{&#glKPL05Y9NufRo$qM+;x75Z$!V%L_7zT= z@2bPfXzY38t%&&>#ebWcPGr4pe0S8_JI}8z)>xUkO{Hl0 z?W;}_aBjnIJWJM3$

      !f)b^c7R1sL;^G1U;zn<8n6DqUpFfV5KP4Dy0e$105TdXsav*L5vc{*c zoyInA0a;_qe0|$uF_1OZ&i41OM)fQw{U&QX(li1oBTz6l9_kf`e*BpI@niQ;ruhCp zEwDenwSN5%a6BphG)99W*|?lddc*MrEDFLja^#{(#jb5B9GT*uf~TR`l~P#gy0i{W z@r5nNC&J$`s|8>30jBuxEk^Tro42 z)p~`octcxFevKx(R|DI4x>j>7p6|>aL?%=NE)4qh1ikLoLUJ$|qtV9$Q+zrCnQRsP z@)zAnLghUbEw1uU?7j!>t9YK|hE+}7pu|Mqc@d@SQp`Ml-+2Vjct z*w*;{+eh>5mp`IjmLGio!B4T^52r$y1mGBnFqz>QH88oy3->>}t*BVS6hxISpDRU| z-K2k=#$tWJfFVLJ*Ot>+CojC^?Z@OuzV$Q6{l9IB z|8E$hWwQn^Na4as1W^!XG?N`3qZPVy0$a-vi9_qF-c`+FC-~vHjgm6?}}8lYy~C%h|@?i)d1xC*GI z)#&_rAkMAoUs%BP}=X)%9IQ$5W9=Y@76e8GX$Gwv>bIbFF;^cb{Apt z5Q#sn>}n6^1%eRp93|i}up-Ho2_Yeursr}#Ot=uJD2dCL1M`AwaFVM9ifDGV^IDJN zZ(>$vm9r3 zD56iPl@X?$T^UFrWo`{tOjsI9Kj}yW8tQ^8*@xxnoT>U9d17z)=(x#vo_hXS-x>7g z<#Nq4*LqvguVt#Q<~y9Qt+SS@Kj#<}&8^8j9d0|)TFG;cTQ?jIMNIw7?D%nlskz3q z>o$RFl=9i?r}a^O?OD8MT}Jy8>Mi_L^y>{$Qy;qQD4e@BJ6x=xEZp{%%l6s%#V#sU zpT^0tM&94FBk(}Q4sm?IYnB<3LR}MA;h3Cg9VBSSfD^5IY(6*!3+6kLrVmi zelEyyG53?>q2@jx{J$JS$w%9lBQ*I4bO4JMfbac!qaflT#0Yv%RG<_Na266&s9Ef| zjY}yYvA)ZUS)%JapwVD{6hbe~L1=x3O*)p1AYDQ%epxAs%Q$_A%hh5io!S~a*IYS= zk}rzmq|#8VLZAc@UFXm!J5`DuAM_rd z>9sx_`@G9JA04U7brN$yZOSApa}hsRX9x&*70W}tq2dsVBO2rdx`(TQw`GAW4=&EWao7+yobmy8{4$Yl`TS(xn zSU{YVjp)3U1F#TsrL4^k8--+(S_|Q3w@pZ(ZfDH13yZX1 zAakwmxP9jW1AD?x5Q=)97}VRkmcYS9KkAeh45Nso!<7@2hG7%%kkQPmGYh>M#+8TE z)Z}$z53mzXP?Vk&9wMw1&*6eBNx{p7rHt-X3PPZFn8NQLV^v_r=LYqH^8EIvJ6sI@ zLsapPf3*KdR)L-2UvxA7kXHTmqdz)o|Kz_BFTjlN=ugM3Mb9^t*V`3JEYGHnsLhoL zqrr{gszCvP1htSfJtjrG zdV8jkQ^kPES^9R+2|7_b1k{~Zk(>;1LsVl4f?s+qLmI6vbqCr`%Y`(up+RC((ev>M zoMGzKjikSEz88{?g%3SNDH?LP8MWk#L+L#sWgb*f23- zf5;H~6$?3HLXKj@e#JsSdKicf`xOYeEJu3$O8+%U48({5IOI4$><{T-e~u12211NI zTue<(kFXFB7xpU_a+DYb;==y7vcf>K01y!ubOfM802p-yirni_1dYSr!bLEk$ZGVtuw=-Q(Oc&yNGxnXK~Wx^Ii4@4O+Mle6W zevOL(vh3N7&6y3omC`rmEMkG&Im!+DUP`OD@b$p$+S|8yo{FnhXC5PRRI1=>s>2Dg zIrk59!$zV>^4n`p)mjd!L-mT0=k;y`KO#bJuN~!vX>EPSjYrAwqht7%B!V;o2(KLF zhMCFZ7g2N)Qe+kkDUshD3PG}wo}$nXjw64XSszJ=Ahl+TS2~M_3*k^W zSx9`o=j;_>)qXCJ8zvn#dPQ>aZSPr<1tvAii|T?>=iCuuk2!H32#ydksyn0b--|*! zsN15QqZt?!&PJSt@skiyAHWJ0pb#yTYbV(ob+m@M45gdaRmc#DG&FT9XtXfRVP>N^ z*G%2!V(u+saLKqRjEa-q&$yirh%EL4!b%qE6~iY2A- zg5jSEA}zv(gtA)@OJntqMo}PoC4}U^&qWDKGlb>a%8BhJ1omT;2HF{JI8=~mzI-HN zYZr!sjX&rPJAg`GVTu;tjryF+Q4L>k<-Tzc6)LciV|rO!pJtbsh(_^hvsHnl-!+?Z zW;Xl_m3AofOH}MM<6;Qw1U}6cH&T_>_L0EXt+U&cvyO~{f=VJqo=ZvrcrV7o(F3V( zk?dc#P^7F?yZj`$y9G#e`=@y`d}+51GUO!*lY4mF-IN{%E`!3)86i=(SRs&J#=8>I zL*m38WJ@Fv2?6`jsvig6V&5BjzA_!*Sy!*(Prc2={z)EqM&he3NS$b^d4iO7#*fAe z_J*tnW4&dw|}z*6$0b8H{zmI8vA0tw(q5S%H6w-gA-ukKLTF21;4 zO~3(?aOr?&IpGUr0ltTjN)wb0H&|GN*rNlnKaF9zbITB&UI-;bAR*m`CXDi*m~m3n ziLfCHvR=SahzZt}giDB^Ha2E2tl z66(ha4Wy*RN}odbo}9ssGU=vz!u5z?S1>T3CWde?=dy@ZC+f_%SBXEuupl)k;;*L5 z@U^hei%$aCuApS7$F0U-*`0*W4;GEFx^9PvE;B=%V6^u7H#pJoos!G_W(K+JLiV=GE7!w&F} zcy=|A$Xv}VY}4Xi|Nh}1+V?pK)e>pyfzgl)?{i6_OJq5f#v-o0&!ZVGkrNphi}8M+ z&vc?xL0)P6zX}S1^Bwm$6vSG)LW+%GdO$9uE*XP@@QM$a>9E~hsW?JG8gsIR6|L~< zW}dcEu~*(a*tWG4kDnUfZ`6#duy?Mz{(`8ni49uisL1{1}!iF!Zil~puS4XZ=b-;@RJaD(>pwtDOIc-IM7X?`&%lOp8b)_~! zcgT$Rl4pyjpx`Y_!dLJVon|8UT_1Bh^ST(_N0JvEtO8YDF|7&TZ)-ap=V5oFdc5he z`sx`g%erN*{Dy}*SDd`-RZN)Vn+6PGHWMO;mSa$2L#~oS2kAe`R%xq0*Vy~NGausx zD2Q0Sp1)$|8~W#x@4W7JeizEd1}F$|YkSE59Tep2>;e%61=(@Q`1)e~N>l6e;T`w; zU*~pXnjWmFzVV*@I{)cOQ~Sr^H~wG0zJw4rci>*x4LaR;5~0@IMcwXnTRw4-B(%Ak znf7f2r|%MRLv!z$9rbA4%vUEqc=jAfJyDNS&RoV97VFl?c1hyRT)}huJZS2#o@Si6 ziqjz0<(%!B_3lB=1>?byrjze;$>-MO9B+&zJn1hKG7JMK2uZ$x+W|m9zTCesX<7WC z@=?`mBVD?w?wH2f1j!o~m%ct4uiCe-ZQGvq7Jq@q{;`FiY{xy8bpG8z9za24{eSp` z!%lx9C2ij&zaX*1TJWj&Qpwwxm&D7gcke#dJh+(r(AVQ^_2+GXf=mMxq#B?guK)_t zbYfFeE#q0e(fO(XNei>nK7#-SNdzbed;ZtCHvk10A=tegkg`brPynDH1^@+V1}MmN zfP&Nm6vVjj%Vae^KtV1g0ThG>pdgw61<3#?h%i7wECCAg2%sPVc;8;VjQ{*JfPMdA zfYM&|kA&TaKiJ;}Kt#!4q9|q!6wW77L@J7*7DZ@9Li7m*Ck-UyBB9U=q~;1d`3XhW zk77tgF6#G;FXGs9JX8^B406$H@>2?1z&Hh4R{=$0xB3%ArpZvu8{UlTU zE?N0WiTcSP{4P)V%9r>mdip9W_^Q(Qs;&EIH2Y|V`Dp9;=yLh!fAYTG?`@dsZEWRj zD(Y>H@V+_aWm)27?dfH!;AKza<+$$Y-0bNZ=IN&A>A~gc^~uAh-@`A}Bf!cd5aA)k zd5f~&=irW~Ybedh@RG2|66)w?*Vs=!aiZagQ(?)7@TAmmPtx#^{_y^$aDalOibfQq zh5;1hPHM!h#qf$|-@H!|W7Ls#3V!$WBA4qk8DTychE$=5{c@u^6&GE z+DM5S==UF*ihA=gYLqKrTr~QFZuDeWz*K7V*QV$f>j9*egk6G!VNQrp6r!7nu&>7D zWmpt}2Vsv1;*MbKd(qesB;g}L*X`ygd|kp&^;n2vY^XY6OmpnnT97%4##fB(WD3XG zh(hQR5{Sj!L86Hj$?-f0e<;M^dm$b<#gQly(u>9QK;m(y3Hz90SxeC&Cf^2o#Ao)(&Crn*ZA@Hqf!rTRjClic|%q##G_iSRd3UapIAN_4(Y;V691Ha(kxOHRn1=rLgM49n_dbAu)Zrj06hWgVi z8bjkyU?#UgKnkTIs=g>4ihEL;kcl*}CxYnA#Z0R>bD3BMsff%HjT?_K?q25ImQQL@t0iGgHTcqP+AZ!0%dz}(aX9Q{_pD`$&!?SF!WTBzPSeV@Xv3da z(W#>7top{|Za1AM`#w4XYf1{&p0GH<-E#l^K+hT zKXDJ!K`}pqwSnt)Z#zX|N3>#u1$Gy2rsqrzBi``Qz~>_(U#&t>UFW{URH|FA@QK zv7~~q2sk7>otS0r5Yx%Yiq_^K4`ZwK#&Tt2m_)p{XfPW(5}_DbFBkBMuwyp(<{_>kKUp|*Q&;`KBskBN+n7ads80CDq;=rx~kJIdhl?E&L zv1BaZ8yc82ZfXa|do9e9;zo+Ug!#H8e=gVbtbV?*E-G z-pQofp7fnIJ&l7wpE`4KumN@Ma$l%n9&nngUyYRm!}Q-Vw07`={p}C`CpU%5Vo>6= z*cn2ECml=^mj_4=){8GnYV)OHnIz2!#m*Ky2AUunzVNGsgF$@81DVtDuZA+%z~9R& zzF77y(jI3;-_>d?mNyh8Sw_M3v`8#>)0d~AOrcz-^q_}FllOUqad!meg?*lBj0W(- zrdFkXlhbrp7OzP8)7GnRpMaS0VzoAP=*Ky3J?q6zRpJ!;5}I1`)>u6G`PolzhJT}r zevcU+F`3ihxNvgK=5eL@=@Vbyf6$utwSP6g{gHpWzsZov0tT z+MW0x(%QX8ixl$7jAvv4oArBId!c69wd1t*h7xTP{TNHz7!~oKY3@4rrL}92YbFsMrnNg?eR4$e3FB(h9!e>59d?>89HzCuu|MQH{H)($ zqcCahu5Ldl`{^)g?UqI>*7eQOYmY%%dv+3r?=U7<>(5|*e+T~Xz>-nTXn()?L2n93 zYyZ9n>3wz|q_z9YtWd6WkCeP@2Wjnc6EEelaDZ;4Me!Mf^CH7J;8nl^(%K`lQeL_W zo}gg91Jc^l?u<&6I*ESRVvMFmDZ8a2j9Vk+dI-0L1`oprw%h74rA6^NIyaZo zo%&9uIcx@UuVryH;w5Ey?r-E~8$&nOavJfJs1&;1Dz4{|(++^NcB;wv{5YKf=E7u) zYurU2tv9VRGm|MciwlU(^Y|AQwXzo$mu>R6iC4O(Pn6%gN@H8ue6T@nNIjSSx;pc- zQju~8)mLT>y%XheHGSum^~}o8P?BFBzxsNs0j zHSrex(ZZISi8QXoa(B;?PY$KUl}P1N_$2e;Pgp!HCZS9}S4Lr@S)g-Qry=6QicXS> zrTg%Ji`_(wMST%FuM@vg@TrG8x9%ry_ayPJ%rJx{?i^X+Zn+k|>?HhfQIe1nrQd6c z7a1I-c~*HaZp5r=){|{*NaS-+dqu(-{ig+{O8gI6?#Vt(wCu~4I8&rCQ7%%gI^?`R zHt7*~dTX7|YA8`=F`Mt8(aS3PNv`tGB@7OP8p3xQ+6yf19v$w_{^8E-KP=3C*}Z_p z%dyzF#hZ7>M=V00zx*hW@BlV5h!&s<1l|-7;&F&OZOC3AX*ZOzv5?f%m zQQKM9X1#TA&rE-7^EBG@p`0JZhV{K#YoB)23nDwy53kEm38abMe3cw$u2YpJwl0T#P_k3cZ3>^s?nS$_}9>pQLA!s3O!4b@XYZI@po`Gn?TT4G@ zb7L**#&{EFCjPCBVk~-!Yg{;id!A!=Lvb#Y4?v86gt zI21n#=ff*T8We&*%O${a8V)?M7m$HC_$Hztsb!H3q2{F>0yi}f7l@o9 zRIFoDjKEjDMi@?3IFNYSJY<>cUH)J?tFw))rzWRDI@FtrqKv#`BwaQZNBe?CL1)3K zTv}}SDpM9j8qCGnaRNmokWyno(ix)*&?NVbBEWv%#*un6V$`CAtCHu4F{ ziXxTTL+pWF9DeUyx6*?U$rI@td0>5ME+?firK?YJWFk-5e_CIQEmAB`o|ZOw{jA3Pr7yqFP5Y^P2@d@Xy2~5s4;{@{ z_#ZSohqPRO$Z;TIzxzs$;cToZL!s+>Svjj(Oq@Z7ds+oL~xA z=%U|AcZI1CdT*{gN7iI64K*gEn@iwz5VquYy5*Be#98-ds_58fCHX3%J5~m}05H)^o!+%GUFu&ToR(fgI09L86Y$ zMq#Q&*+x;O`{qV5u;-hurf=TNMig2_>M@LQCQSyW~mlEn~qGzSUo1=_%DfIL=ja?)7dtIEbA6hq@oi3ePrp8tkL8Fc&ZnzkK=+&PF{+5 zF(tU%pTH%S&X;y|c_8-m^?}5buAo?v*e<H&CoN?*}owMuQICm@(q=;QrQ3x#O&nfmG9RD^qPy72wf#!p>Q6 zu{&&#Mrfq!xB0%fZqyV*ue&Ry*KQ0~YWqZO zd*(fv&E+1y0yMU7UUmRf{im1Uk;Zmy6tpr|+Ayt5z3s~W~h-U*TyIi^jT z#-_(4jdzkQr?ZF_wV-cEA%&ENW0|OTA#hTi(hbQa!AUXVqHwatA+H#)QKTrTk-{#D zVd}suTzoc)-RfW>4Pg*mfYjuzB&pZJ6c><)(v8a+_-&uv=#6Jxt{WKh`Vt5@FDUUC zv@B+qS2j=5J}Rr(!iS%3*%+`DaQ#5`D^?W=4vY{~=-+i<{+=`rqyhYk$L6;KgL&PP z^BDZ*?VyD~nf3-!b6Fung3bim8A!eDmz>Jj=82h}zAz5f1Gp_B>G`x^~r z%h+N=Xf3VBN;J!jvZ&u%58N=W&mPt}zdhUR`dY`9?q=Wo{oAe-hX*F@D=gHHx@C>( z4+qA_ZLK2ZfPjklfah}p#|WnP_p^UU^6dU2en$K6pFh2Otvmhx;=A0h*xv!sEpCOyI}ibjQz7&gH%&wHJ5!#9GU3Rv=(6MJj)i9wuA3R2 zrY)gSE>7w*i&|Gqri!`uz2{Xd$*MwvWB27-tZ3S^|Kcr6|4l_Wij z(v@Tbci`<{62iR-ydA7p)2xb0SJUnO=XU=~ZwEgfeC|QT1` zCK*hP&$pB9_osHs+Ro2xw%YH*obq{_@J@{m?-a~=zGe`CbHD{WU%Dj>dMtQRAH2x( z05|lj6ZAQvmZRL)+>dYQ796GuD#JXJ-*4y_91MBC-Oye*< z4Egr+hNihR>k(X5^8iUEN&<73# zUSjwRj}~zJ9{f`$h=;kR^+DAsgmV3#uR4D%>HHT<4!E`dPSrWqnoA&1CXengQiiCA zk}dYf(;ZcvK@7ZoE9~mc;k4t4BcY=M3I06*Z!0A5@GIRjd0MD`=qR(IkJJ;(^ZEwyE>hjLFgR0~3*`o$r(}#{SHy1-<>68y0 zWd2N>)?uiXU43TDRw_l^aQ(7yb!z3K!VUfT}Y;oMHXu<$Xsi#`)AcVB(l? zbWN}JfzAtm(j=I|;+*Lnn)rKTcTT!DlZBo#`bZi^5=WEg@jcCR$xAJ(XDn#3 zlIypL<7&yP7>VB&47;{Q~g|D>agUEZgx*ufX<8Yb2_~A z$GX_Gus~+yInOWkv2rPLaQVe6l0=i16?&5#FDzVzi(XCU2_}IE_8VvvPKoWp=e1cE z)#G;$$tPDnC%P^yQgsvv2eTCH+-`0nf?)I7sRwScBAj4XnnNq?5!7rC1M#4@I#5_6 zj89%PaqFE%!--H%jjvvnbtKICT#DMq*%s$(L%zA5>C=3?O#=1i3aB@HF!ulR_2wUD z9{r0Y=O5J@Fo!mmh7d{#P?VyVaS{+3r?jlmH>DB;B!A8@4(rW3Qdk%rss}CahBeYI-MwO1`+gI&1x?W(z5oZSxC3uu z%nak@+SBsq;@O|ReB5nlidDOGaryIycdx6b^L}Xym{4@|B@03LJ3v=@a*;YNm_$dE z_KvZB$zsS_Tre|u;Ov{qu!evQ2e(@&m|^riTZ-hA!v*ywUdJq2w9Y+WU2LCbKIZag zu4S|`RB<^@yTOtzUM0QxhOVldb$UdAqVuWE){ zKQoN~9S5smY6pyiRn@1ZC@{Wwg_aliyqu`(@OdTGvg-3{rpM0bwVY6aFY5&<4qrA( zimSeCRy6H=d0m6imEL>q@O8U+t?KK}gO593-*n)f{ z@$c^^bREBcn6j+?zW>7G&G(NBZz81e@jg)dOR+E^52OyVE};={t{Q)-A1x09LCs`( zD22$5eTerZ<1P}md(@iQrW-D-l}fs^_EteSWjiyh34)d0eIST&C< zH-MSIQC8*gAovev0>E$M5AjCFE<69wOaQ#q{@y(0KMmd-4OT$a1o#c`6Zq3!n58Fz znA@nQKd!qkia`eBiDU|N1C;&}E%7%76EU`=icj;0(?!MGhk(TnU>t8ReQVaV8U~J& zty(}aqnWF4w=NM>&G8bAN*lLyH`|^nqwa_X(S7czIxC+ly~C>MH0Khg+_Y`bV*O4@ zvRs$#C3vL`e*5amVcKa9rI!P}VRtXBrnI}t$@RX+NkWW06(?EOGVgYW>}0szT6?N2 znSZ_o&13rXVw_PTgBQ!zv%^=~fBj(!d8Ib}^`7aK3<%a@?{z2~@m|M~1cgN6JH5pT z#A7;#T1jlRe_WWNzsj+iYJ4GlCe7dix+vZ@ovApJu~~oB+Ah6AD$9{2d@a)jzh^Bg zZRIgE%e_orKbzqO8j4HChbm0tNJIf#->RbnC)0tX3*RCc35A^mV@DV#Dtrcuf)FhY z<4CnJ2`no)!8D3p81DqZ_g|vwKyuP7NWsZ>X$`Q+!;qQyzi)oPhkp@Zr6v%b-#+}K zgw;QM`~Tm5_iThadhj1hcmObtrP&p3v(#fo&DOxI4y=7kv2aF)EM8mjT?% z*nUn_2uu-0Y=b7k6N+TA>G@&X;dKij5Hn#%f_uDpJXQX#Qr3ktHoZk!WUJCe-E@Lz>k;6AL}DF9}q;e1%Jl33v_jO zcHfqDHtOrs+L`3!n|YPAV((T)6l}d6L}yAj>ZLe;7@TPRVEx?5G{KG6$9j7b{6#Rr~F)A$;FVHkSIeIjLJSU4h}{fAuNi-x!LFGU(DnEO0_Oj1~)#BqRu+c)fWhIpLg;vY?!q&t5QGrgKi~Mzh>J>iMyIURebR7u2mYr%ZW9 zano6@WfgEH4nRvX+?A|Ki?UHR1%~ByttI8@9JIEj3^#Jh;RGe?iRdo~l$+rjZO((>F7=DQ6(JD$ncMRWIz%>i6=C%(;=X zeVmx{yxw~r-)Cg5Nz0BE@@f9ITJL!%KK&DqCAHcUow(7sL|)5qsT$}?41vGb)p$pB z*jiXXyVg2;)O_=XYHk}8&K`F03k*Dozu?^L7VrV1NeA(D>+b9?yKT=8?rQ`QT=L!Q zWvouz8+^BO|DC*)F$|aH#>)<9pQakc*6~{8GgyoGX^@~X3&cdhASg#g?8MPz;FYCd z;CFc_1Y4^n5WmL}4ikk!B3+;`hmNC{ZB7R^QEwne912U?M5?gB#QNuR76EbjC*b7Y z$>iU#WRQwWOiX-)C6kZ=Dw&J|{PP=-OiN2kM@M%ABr}44IM|t(m{?d?SXo(*Ib;qF z4lXV(Zfly3ty{N_1M7T!ef|9W{Qdp^0!2OwtUJo710i)Fq3$TG5rsk>Mb!ld2Oo3D z;o;#&C~|CUEE{0tE#Gw^XM8u5=>K5b8~Y`OG|5O>w^am+S=OM+uOm*>({hMKplfr zy2;5-!sz<@>;IG`d7L5%@*_cVBqlTR4{-8vVBN22bz@^=fJvU1 zm^fmRr>3T+r>AFTW@cw+U%YrRH#avwKmYRO%j49^g@uL1#l@wirRC-2m6a6$CxfWE zjg1WeCvR!4kcC7D)nZ!40a zh6cr^Sc%n+1?0IWdgkHCqC~Q2 zVU{p3L;^W=Y|2Cx>X|Cg%$!anMRUz^+~LsrY1XJ5&skY`2la$geHbz+42~^DZjv{A z-p(_;Pk3H72u06XK}N)J0)htXGlW*K!d(h@QL2m9Ee%;>E7%hrHbg-O+q{8H2=avF za-pFEidmixE(Jp+8_1ozEVNKE&Xo*=FlC`;=rge-2c&MK!`OJE9n;jt{34?`8uWre z63UPoxG=d2MD-**xEl`3Fo8j;+hGJq>I&ZvvW9izO1J4XR4KPGbDY5+U;R)J}48Rz=fE9pYE|ojWfisE_h5*WO=Wudg#pSxCsY1R1GP zTu28&@GTfI1;pw}%NopTQdcMfjt;)Wc9|qv{7pa8sC~=j_kA(pmJ=|MR6MQsNY)a~ z+bhc{j{a9tyOp{xu|iBbB>4%okivd0x?x;}P-H(R)-4S+S{HR`;k>vz0VPPLk6-&y z1x&)?QlA3t^GbC3+J);S4UMjE^L9%2)B zVG3dtsHLLc|8ohx1aT){N*-4B{<5;NJ_NdhAYjZDRSy3AI?<)NdxO1`hzSQt9>5RTQqPp}qdVjJm`lL9BU*Q@$EZ@m5RTFm-;^s^3~s^h8KOJSrbXEF;ABr#Jq52k*4yWD_tWz^gc6ZCGWSTwMr;~n1o*lWSaJ@#keU|{SG~F=P^1%^lR`OB)`=nNe`Zb{pZW{90 zOWMebb^2?~<1x2w^Q4I1lJ>Sd8N00qj4I#Ter;VM_~6whMe;H7YulJ0zgJJ|SYoMr z`%dMM_f?@+`_FF>esNIo`!Moq>u|08Xxq^NlV=G$65NTSS*`HAf^>x${`lp!Y6k{& zW4yw1t>m}WLV1s$!?@jhXpMM-Dxk|B%OSl?b6epo24*#R;(a;3&g!?+&ER&aStkxP zYPjm=G*NDS(t9-l3u-SJp=*7U+cmMy-DB)h2SZx_G^eiL`r%~#cy9+XkF z9+$7pbC;Is;%_3Q^HLky!f8(=N$Shkvfki4l&mzL=+O`RH+>~|LDTc@UE zb?P5xZ_C|1npq~)X(r2lf45O;(cku~<-3<9zTaCfVe)%Kl6LHLOG~dDmG1X_sM(Dj zU;=XLdWNnp`lLRVJ^;+g!_FO_l8&S|)7THEfa|`P1OE0Ze>GrEz6O|+%YmFa?x~Kw zYb`SG!9cnb#9y#X#-PxDp(6}1Cu0ddK7e@1eulDsd(%^LIOk3Tn3E@R zw(l6rEPn5B?dJE}1kB0ffH^s%@Z?Kt@wfL@1jnlnGY_U2ME4$lHwVng{eU?+3NR<9 z!vS-07}}gn37C@|0CRE^C16gr0nEuBlz=(e!Z`pgPD$MqAU732zfZ;p50nuMWNjj2 z_Xw0o2;}l0<9QY+x*I4UP9`KCB&Z!EwofXa9>iM{B;7}!#+(Y)1VF)?!B?AtuZ0KS&<)l@1mD~bG8_ytP7gA*4l)-HvcL_pdKPF?8ffPc z=%5_v2oH4L47k%2a5p@_T{plJ5#YU#@*PC^r=tR_Q9o zP47od-u2<$jk?~=2=CT?ul95=-wk(dUH>j|_nvV7J`eYS@aUnY=uzG1aS!UD(&(v8 z|7qQrSizX?@E8n_m>17t#`a@w2N11JV#@AdB9|cbNN6i@^vWRR0SeXy>@Bt8lwd|aATC996~0t>BVtGoWwQkByi)AA27oBB;whrlG^hU zMGwf<;*%utk_3k!%}Yra=E(*alZjQ51@UkJbF!2vOuaeb(g8%9GetrhcC9%{Fe63Z zlgxlK8LJs`X$WFMl`1Nia?2*}u1P9KM2b;Ks$@;FgI?U7om39I6d=Y!oFv(u3dDSuG@s^YLw24j-Gdl67%%PMSyFgLy69A*gi3tOoAi(&h;T+~G9DSTXU1N7My5@w zFOUFqkRcq9z!#Abu#*{U1Myx;$SKR@pNeOFlUYrL>)DBUFVC&PlMHl_7}%T@2!gt5 zVLaB$>Uu-ED<0QEh5MKh3Qo8;Qg(MNf^2QfI(E|o(m@P;#7HuikvShh#)Bdyb;`bZ zBS*?P2P+?&tQz}cGqx=%`&}8?Ml)tH3&aL|?`sAbq8d}Y6OWjYSl?*zF_VlXl0kE-PJ0zng2m`o^K3cLbAYuD1rID~4@;q5o%`zbMcei}n z!cDdK1z@ZjXL&Q=jB|f|Xqp)$4Cag8uQsocO`+6ymnw9r-|gzhm5G^OnQRx$z*B8Ntop#;Jk`6xHV>%Vj1~EX*qXThGIFcrt085VO5Ld z7j2Q2_++7xdfptc^**v1z9(UNI4Z7l3y6wHz`2CpW2LC6DAGxM;ncW)xq`iZxSo5s zP`^Eru0r^Mdad=CzD{dB;%1!zfR0ylXM5J-@#&e<4EJcxmRtw2Rm~V!k;T2U+^l}lN0@cM8`Wd^ZhGsTWr9?BY^4*#D&r;G-;W3 zhv6`Yv5J$J^#)V$>%S;XV7VB_cp;QF!#Eu4Z-?!)m0F=d1lL_o@-p=j=`_GVPiCu(HqfU;&YC~1REqFx=c0TtUwd&N$8bc< z=6QpYf5+=cF+PKOw@*2JSyzD=F!=e8*vHA$Pg_Ev97eS6JDUCRW0G#P^Ss(X=p%Z{ z`)M6*Gao;*nQM&nsWjKxbv-nn&gNclnVi#ieroj6z41e4%iZsmK3Yvrmg-}ON+Nuk zKjnnyPTZEPZ+6{!@+ddDDw}6}fxMZ`9TMex>`|yynffr(SH^CaU%MM3%OLh?aaqpt z#fNXsCp~z-8==sa<-he}H~(@({_$O8QuRT^7xYHK1Z~@_omu*0>A6E;crK?yghU+) zK~t3!e!a6J7Iyy9dNLK6#RU38bjbL$pH{LH~WK6eL^@EEi+Wkte126tyX@e#C?e%w;m4A z)KIjTcjcTaJJs~nSKP?bRjGn;*CFO(jW1pYd_sW6#&M!H1)5Mb8{!t!eZS?Y-KnN; zua)xst9wdBTVvu)H8=ZWfhB-6DeCnI`s-mY0Xka(yv(TEY`t;rX>fEpI_lAUgkI{X zY%A5&`KyItmNOu|uYYba*81hv%EbhT@wiX*$Cn{jIb^BYo4;(0M$w#?YL|NUcBqE# zyI%*{vBpQesfE3&%ss_I_KC{p)K1hBE7T#4~k= zL78M-5j88l;gsB0MhBf)2IAmyZsh2VVQ6nP%&k`(LK(3&Vh1_^p7H{iQFm=1as-t@hR;!YILwOvkzy>drPil zR1rv=W1b1Lo=t6o>e#<%$J`2hV7updz3~RNRAs40wGKuM=1uaq6sCIl38rRa(M_M$ z8q6=aG-T+QzMk+M@iL0h-FcHxVQiH=*0QJmoXeqSu?%2?H#A4RKk=Pmza2i15cGL4 zMPg?O2NV2uH2%J?|IZgT1Pp)XRL~iQ%S)Q9oUnQ+93~SOz3BwNmEo6T>(Z~V zDWozRw%Bu$t;olSnm-whxMQV}D+@^Cq)p=Si9%}vr(TuW>~Jzo@@<`R$F%iJEnn|XN4Q;9-KI$vcvWj( zhQl8D<$-BKl#=3{B!%esw}Q1uybF3FAOB+rPDZZ9Uq1XC$$AoYEJf=XEQAg8`LnqX_q;rfOmc zEWy}ZQX*bFZ|d3g?P;<-Rl!}u%g=2}ulTbn?&n=w&%ev$OR-X7W^>L=XCnpwI40iHJjMmL$2o&CGa9x;L-9Zm8nD_E~)SnKhIg zKUGW3IDzxZC2BDb_S7-aU#^IM@cIJJ2Cj(-2(W%~Nm~OR&|nN&A=V}VCWVM|1eOo> ztMe7(=r~<;!kyQ;6G=464Z^inhEo6!cr?|OVwG@ChuGdXS4!k_WF^1^UWui{ITX$v z3d2t}HF8z2DQdi}<5DWV-zd9^Zhw#>ES>La-U$!jAi0QO#SiZq2LnNR28 z1(lU=EsX_++5Sh}oH?JCxM=z8^Ob+e>BffSd+LXGI7@v)nm(~B%NH+TtNtlX*$4tdPCc=O=(V(*=G zi>if+JL^+1aUFh=-p(Itnv40*slAjm+U*KE;$=wly}dKdW?tp<;+xs}rp)(-56|uW zDwHkGG5WtD(WRH)*$vSPjG+P=ovpDAUEgIkcWSQ+LEUL1cuNVBEqQT6atK)}u4&jp z!n3?^(&2N=Mhx=gg;BKfn^_ThQ_mK!p<`tKNKlQetRp#Za^9e=6 znL>BabzjLu4uf13%=Xin>N6Yf(Pmd3I#yYgf_*0BM(%Yq*WyN*W`-YnU_V}cZtBXY zE&4^mnb%K-qRn7e-&FODH1g}!Q(zpSovZR)WF$03qq@b55one93sDz^kz`@J;!<(5 zjj_Co5080(FxkR%1~8*<%iT9KKtve5cgmM{3%(c&{eT&4!RDf&Q3;;Ui#LPLf7ODJqWE}s!-j-J}d1&YA0#B`w1b1cKWWUIE{mAtN@`k6jcFc{_UPm-d zGm#^t&95`1$XX`KTlre&Te2wIc86);?ZeOQNIDMQj!->5If-)YjKEN@w!&dJCVni= zJW}0FECZ{#NP2nnRyU1g9?2WD7n~;&u?6R+EwuoVlz+FTM~_-w$sX4ZGhFyq^W6BtN%h;@3*R4p zH2x0S}^MakjQgMh(2C03WN`5!4kg9drlUKX=86j zm6qNOaRtTNKFA=usXIXULNK;Sn3+!7TIs@yV0>V*DZ@990qnH|14D0S5dP30Oq|q+ zXN`r4N^eN5pu#ru9xI0wBe9xn?M>}FEG$qnRpo|v82A#MoY~mIx}?2eye1SMe>H~F zEGZ^2yb}pq!ccD*#UM@x;o>tALzO$zd9zTsipYQf+$GF+fqK}*5?~@M5GKqTBz9q5 z=r$KOm|zJ-uU7hiSYT2|`&J3<>*oF|eV+nvaTIMxZNKR&z9wk<9m_&?SK@NuT$0XL z9(|;+o>mCqOg@3ebNTjP&@@232c*P-YJON6&*G&28>#XCk$2%#z4sIN|1Yooz9=|R z3mmu8R4Ir78hTGWv9K=@tnH%Z84nbMr?OQvuz4msz##1Noo3Q zaW(v>rLlm9Lh(z})%CfGf1yUYDST@#(2>FK^_#ov1`UANpN-~*$%|I4?f1a7U%l87 ziZ&ND2`cuY8xi$+#vg=#bJ4sL406ZzvW zVhnOSGNq;tRKsaTj&B_h1>Ud*v3NgchqWx@j`~xG^yW&qNb&WRi}8kT<}uQ>^{eKT zB+pFZ6rS(txLv^hVxFMBK1=SgGBrTsLnmfqp~vZk`!vNszH!aZFjU1TMV$Ilak_P2 z8N1d;1RUrYmA=q|-2w!H9lN?pUK{x!=2G_WAc zOVgH9FR;peE_#vb z{w**Oan~1Jrw*aa-Dqp|Lh7f3{bDVVC;lFt*o9t^*Xta{2UyI14I55C1% za*jowQpihanB^U5netP?+Jpz*tgP2KhExiw635h7nJwy6C|x*$FQ3`#%%+_hvB6o5*K0{EMf0*G#)gu?+_022p0 zGbe(X3jt&d0);j&FYj3b1E7C8fBw9h_SY+m^S)xD6>RhDnVwN^$16neh0P2D#PkKGK+s!drGX|Z4yUY#^uWGX-{!+ zKh>TFoI&&&Eh4?~1sZ^PQ}m~Kv$bJ+;l3fuOblQP$Y{$xq5qw+a3?^h;Eb`b$x;Q} zuiu)#ZgeS~1OsLDhy9P6KN$;n6Fs@P$7Mc;`%{Y(KN$;*T3@%%F9n!UgfF2jqc!Y6vl+S8Vxo{9r2@bpxMIYh}}_*UhSi z&ElKyTfn`ORkmv#Tk?2>gHrr9U!Hr*cO1peJ$wv;yqoXD+OpfR#7)}i>LKOH+v!eE zSdfQsH-W&I%&t80_~dq>4p17br2r@oJ<*_l-L0wq#L@`u2iqN7?5SKWCKF)Qk$}e*U?%Q9UnuPr`GgaZD&)4m* zuTT)a{iXk!`*kD6@FSMWz%g=KCfD%u=#3lgUj~iS+V}b$pSFMPy>mm_9W*E)eK3N_ z?|1k(h@r#nm3i2=gOLe->7#KqN7;|RdU=3CmjhfnFECP0DRh7r>CBP=BmiUKU}Hmm z+(Bmn;6M~Ga2Wxqre{VZAP@+!AOU}Vzg7UPq9w}bEVIcqG5U8w`Cq?2e(%u#`oDoo zhyNd6I@-ToI&pNri|;&lZz*Pp{JL~*tURFlDKRg1Jq5d{Wd}sI=qKKnrw-0v67%EP+X_AC@WdA+yB7zdf0vjWoM*cQP^cWg0loa2Cq;l` z{HMfR^B(o@vT<_bIIJ;p6XK6DMd+1zLRPevFsA6ac$jw-iXA2rw$iuUju)CNe5z zGN8JBD!!XD4QFK*HH$#tTTDi9Hf*L|67Sn24(6M)UIkM3{%alMi{i+93ZZyV0hw%d z7l5ML?}WrD4lflY%iD4Wq+7OdmM{dXzQM@Fe`Zrk6|ZmWUs3>|sFwHY-*P>uiL~8< zls!>3u7K+-absa`a=j{|SMThCP+~FK`x1E&2Y|?ZCcD5RPd1QPMO;n~u*0r%=axeh z76LF9J4)UmA=Z;1@as7xQ0sO-_lLHB7M>U#k3}j@OWRAL_JXF5;$}2WKb0L1%>bSE zG4&u*)F|~3dyk?Jh_UF!^Wovy4s-XpW*`NpUn6uDpO>VO2?>S1T|WBE2;d$z>dyj3>wr zuwO*iMXbrzHM1|E$!_Q~h4kNBYa+L}nxtGPbm?&B{>&e?4c&_3dsI3+&r&T*a_V*6 zfce-dh2dP`m3ubA>y>uy8;dnQn9vTXCV;|VPr~r60?wsZB1_|MVUSk4hThoZ*m(-; zPoNxy-o2o5-R!!*;ivoaOyy{xAMz&Sti`d`^S53JUFDd8z9`-4HHu^42hP-;z7g&V zj#2k4UDuz6apeNAB=_ls`jb$8*%R0Ccdvkl{KE}|*VOwgNB)V94*jG3H++>XuLPan z9mq6L`R-^d8TsIn;usnyi1y~8RCaGII+5HZf8vdC_K=^Rsk5{l^g~{XCcB+BN`IBY zFh2#lQrn9JUn}^G!qK%nNPrl49ayBBxnWtRSy*DNW7xQ?Vc^&|=uKrg595(!yIl#k z%E2*2cI6V2$6G;2?M>vcffz$XsF)jY1juwdyTCsBOGqpTD6bQTUI%HB1G;6~g^}Q5 z0?LhGcSYh5Fm{$)#KU6Dv%W8_@neGjOBUe&H_Ittvj_SIo4w@H1oKmJI;)3sQGX)4 zRDt@N1h(E3KEZwwTr^Zm{PMaFUajRwr0m7FFI0Zsy^?|mwGvKzFLL3e|nyWV%(A#Ltond`}$GY9Jey`bqYVFB>1d zC)8})H!Wxln=Z<}_rZR3vhc?3oV3Gd8?o7Hz}CasMQ&piagmVeShi;MUX`)B-8Q z;ma|TmrXIMB(W(KqbWJjRbh99{MzpA-<;;-qno1_vZx7gwBE~W#6R7)Cblwca zs}&ZLa{*i5G);5M$|efCnJS91ZgTJXGwHaD@|?v&s^in)*%or1r!5|8<8@N*N^Cn=j-x%XTgR45k56Jy5r0rkdu<8`qTf zu3aA>!94r=nA^q7RR5um7_TBRZMG1*=7Js5F;aU1j zkwh#h>hS5j{KZhTl5=0jE6LJnI9QMFx?4<+qI6j+@G5&fNEQ1&V*i#}XoRcwb>&*i z0+(ocF`esigabFtvZ?Ru>%I~_mtH6-)JU375<*Q@xS9dZTuBbSGMMfh#Y>gRwWl3GCo2RBY&WCK|^?e8nfYNDO;y=I4bV}@Bi3ef>@ni!hpcNzjXUz#<+|Sxw2w)TficBc<_okPSnD|%I3v|3d{rRKm{g)l@ zKW=vo?>hPW`~O~@p23oVebetX>aRr6zgVmS@1xq^tvM5zQNibkEJd1jO_c(HM)$#w z!0w-o?xom!z-VpsjE(lF(55_5kjFv{ghHvel393Zg!y!>;h@%eSGu(m>RDVMru~{zp zPvkP~lA9Qumk$l(p|B5?u4{Z@!_D!7%I?E~M)yzeqsP5S2HVf` zilTi8mJngeCZlL-_OGuD=(d$#I#Pu^T?{;YZGFp)^@~T!ZC&luXB2ITj%@oz1?)&)L`E%Oup{LeluRb+{PGz(E^Z9UASyYi(+`e&pZ^3DR_v;JS zrw(6VdTdmFZTZ#cimQWRIUCq`i1>hITO(uuexxvc@hU&EqiId+ijn79I!)QZdYb#m z(nbmcV@qh!V-y%e=-#67TmE~Da$8lckRvGPs8OqD<0^m-d3yi0JZ|re9nf~?1*K*v zL-kHKE=D|~3?4TtQT8gIs{ja>zs>{%n=^Os!lFaQV}Qq_mgM%kFhLj)He{zS6x!Q) z@`a$&7>t9RM;w5?*J|t{l6N6M9EAb)nZO~1XQM!;uQ3h?7`nxSbU}jviT(arEe-57 zAb7wngm-ok0XPl$Kv)tSt{9rlAQ&J%yU5cag1fDN7!>)AsZ(@^+!)j<-9#i!4-9H?Kdk1NvXP z6r30mH?+n2Jik%9|M%zj)qq<4kwjGHOE0v=+GbfEAQ*jA8^WRjD9p`wM&r_DfEtW? zW#tKAu@-AbTdd_xeFr~kh)3}mpn~N#>mis}^e=>!6wH<`nrE-6N3+8{>fGN^7GK63lIq8_e1~tV)N|K14YN#i3f)5e>(I)>G5wp@&8%)MBvc> zRjz_o@IQ8({%p|C4*maf75;4vI_Li{n8Ykv0+GQj+V(HcTWJ9SOBC(nZ-+N&J29X< zv|ZRV$28q|+@mx-gpdIN5M1HiLN8p$e)l%qs;%ZWF!b7WV2Y9!a$vLb`DhP+7=3eu zZ=wGo?*5erE~B-}c2~yOS7~Y55g6OT0~gOZe4bJUEJ#n(&u@R8)>7jAGNW_D;mfS< zKbf>UtU(0^U+Ut+W*izT%{UR0s6}svRC#QUW4fj#iaIUvr7)t3ZV&M`g&HDKqq$2SM0-eRyfk@jaPPuCtmrZoV2Zn1AMK9RdG9A?@5WP54Z2g zjLSo~>WJk*M6BOISe?_N;!rBq9XTjBxry8-_xngW9GcE*paCiTcK!T`fdteX ze+7dC+&Vy!0c`gEyAWWw2Oz!bO+e8NV2}v#&yrtYbgHblf-AjY6#SA85L)K)v2-$A zSe!1bN+1eVH_#B+LN$TMuww@PC~z!;%xGmnGm;CvAt0=Ru) z5H;CdkDC7eL~h|6X}w2Eqx2%-snwmeJ#Fkl@!~ZB7-3Io6@0|xFako!*vRwZ4^iD9 z3cTx%O~|_-Ias3_t#ZB)QjQ!)Rw2FfMR^DwOKp`h{Oq?00a2khC@vVpAkLq^&40W> zAtWLGRYd;UqwtA|0IQULFqZvOfjB)q{q*V6zu2Sx8#XB2AdFi;1WTSA2u#358%~Uj z2!W8Kdf+DH135mzBKN{cRup5&Dg3aSomhv$3FTZA%03qLCG$$zw!wvqR5Gv~L#4&5 z?<)t&3RjIjOG0}&u@l9!j4pP&CblBB%6{1=Y|sHlD+ zN$TtCe^E((N0R*C;gJjv508$Hj*X3tkB?7IPW}l=0vz1GOC|XoNdoXlR##VlAxSni zHUKKg8IojsdmEsV0OGelfl2oE_WndA0oq0YOafdIK#jP33TZ@%1;W6LgVoDOx##Qij(kCIFcqn3S@r%nmcQCEA5CP$mDSxOjU~rHqXIMdv z=qzqk7uNf{PQesnB!y$}Pc=rKX|0D+XYXTjzWW}9OK?z;7RHi@uz59J+vHD3V@hni zjHe49=Lp-35Uz+gE_pymdB%lpQ&#EV#fU7?=Dev)l=-sFC?BPC@wTas$$q;kqq zj$U8;Y2wBARCx{GU~jGaI!Fmqm;egols6fNkJGP+DFwxy7yoJC5 zapab|c3)sUNx}yiC-28mI|&wy2^S=nEJur=7o)nII>56Kk6MjG;&84xQko`*A`ztt z_%LXGo~n2nPhJi()5q*JhjC|ug79+mlP-BH`yN=56OxtWk_w-V7G?&jFcJ?`>in7` zu9FGOxh!(0SDw!I)+G4|DoGU&q`Py8!=#e}Nwc6ljRj&JJs5(y7#$2IUqr|A9PrN0 zTy;W`;K(R~1d!sIjCn(B>9=?LDo&=Gv;(9NnzuV*88ddXf<2MwNWSKxtoihT}CDshaBKB(H2>TFoUi^ktnJ=n0`X zROH`Mxq5~}PFCeFf~AFn1}YhoutewEcUE+F8^8dPsNpY+Q+Ciet$ z>VS|La%mc#ilV|#AE=%bI4R3Vdci%&x{_@Nu6+j3wuEzb7_0<(V)9U>7pNZ_W!PN|Z-q)@4n zut6|u5)!gi$1Hu$dFaGoG7^op6%bWI+MQ7M_KHlH?8f24441}np>#DGSRyE4RnQ3* z5sEdFC)fbzswEK;uR`}~xUdKlrBOWAe6GY`7^P?sUb8wZEyF;r7WS#{rA+=26wn)}U?`d6T$FGT}I1U0oYYIfF z*ED=83S&IkyQ&O&Mk39VUKj+L1Pfycf!vfaWN|WxK#1y?%1hOj7co#A&p=@qu7%Lp zfFKen-EN`GnqYjhNsyU2@zD@M8iYVmbt+-_y&GbT(z;|HtwjWG>msMfAHc)WVHD3J zCcGW2Mp3(*V*~3J)ZC$R+!gECX-ZKZ-p^S?9^mhUL8wy=A%$WS*x!?<(*~iy>G?3nJPZ&E^54 z@gS>aQT%Pct4fuyQe*_qBu0@5CX@Xjt}Y7nrMDl2UXXog+=_(#twqp8Yu1;E0G~hFs3QZc)J(t zRlxw2)OwE$C(P1X)_5O!JsnwmDW=d|->%|? zEo8jY;9mXZ^?UV?M~g>S#M+O)JhWNnUIMo^vL1)mVD?ZnZN%`KQol2)eM?zS z?xq|%B)>p#<5>w-@k15LcZoRO`#shKyUK7M19FI1Z`)mmuxl=6Bz7UqqHZ->*F=bS z$M-uA?gzo=(xK+&v2)o^{;*#IY}R)y@p$& zH)_v!Cw(=`{AjPQ*Lkr#Y-?mgT4`=<;#*}d9?hx*hx_B8>kiq@k2V!9i1xtwYKrK- zy{fWrno53en@^N&Bb3!Vo!u`|%0Xk440<+RxXzPzb?ohR@2}I=ZuQRRdAD?;TIT%w zMN1tkw+5cHJjGcTtq#+8XGU}MKY>c}*qaJT)G`_N{!IN^-e<=&F%d>f^Q*p@*Km z0F~qtKqUzSs3aQ|pNk)#dwX@F44{%+t@8gC4^T-M0V>G_fJ)*BP)VMae(lI5*$K+c zUncu5-+#d`1fY@}3p_sf>M8qqi{;xJM}SH)K?qPu{Ij?3d_TYV-OsU`|Kue=C20nz zBo_fHi9bLk`2ag!eVlPHeL)zYl9&Kgl1_k1;txWybF$1V1xM(Vg z5kMswqyVTS`T&(AoC2VdNC8xmbTpOZJU}JUMN>(H0V)X`O(o$6s3gxw0V)YMKqW~> zQ%N`gDv2(dO2PtAN#JNI2?0PQQ6>hcBw&C_f*YcS2vJrJxnvz8A0Bd{G(>tZL}D{U z3^!C55h|b@%4;3U6&}h_8p=8t%Cs3uj~hmV2!kt!QCNqOhKCWAhQS8I@HWG6aKkYX z;UMMkZ&u+ahhgDgOTs@7gzs*IzlTI@aYSq?MZC6(SP6@GRTA-HAYy(aVh$2H%@H}N z6gg%UIUE)_P!icY5ZSd6*#U`a<%nuhimJDYdKl(rvl0BRBuZl->fUnHW8COWrf6-Y z=sxRcy|C!u{OFOv=)mP@LrBaNA_l1xb7U3M3Q$Q(V_t0fFYd>@w2oO3kA0#W>z5z1 z5FU#UkA0_0`F1}RvKjmF8S1lc9I;2-zIec4Qyk^9xRdk%5LG;_cs$lY0FGxob9y|! zULb5f9$KuHw@&qxqy0!So5^alx&@I>bMAXdFZq(>q`BABZ=QSn(K zU&cwW09BH@c#_CLu$X7ku1AtkO_DSone0IlA4#&jC+R*2ELn{yTMh9MfY!!Chjo(? z2}J!nPTDaE=Sn41noej=ryP4H$$41qD)jsS9YMc^ip*rQmt*E zEzeS!nTVXI(kxZdteaCE!_o*6h`Nc>ZUI!1j8rW=x4?Pg0h9DFiL{8alse+{7*65? z5GPcO=9uKHD`T^95%n4hYM#Ip>B1#NPy>(3wNTn2j*SeAk@w{vc;JB1Hn3i!cRA zJLT$T}Hx8@Rz9!FME zHCWHrSWh!6c#GN0Hr&J*{6z?!r9pi#$a0#+r>9M-p6I+yz|9Wz5LoGpzpJ>ozi<0` zC_<&67d9ujHWDg#CpAOwqxA!A=SW!@ofX@Zhh4IKG(v6z^#;y8eCm>nf9QTb06%u# z-~8BUCIT&xtS%RTgZ{AvI=cf2Xk-=OHOyTRguF(#!nIcwL+FJ8@W<;Q!-rO_Hi+6Z+Ptdw8aYXUHwhT`T%3PG z+jfK7yf>buBIfv+#p{v){>!POdb)W%k_9RwX`qT8#gz;tm zXKhDcmo)r?#}Z_GvT|Qr89jW}@#SbC!5wazLxO8!2Jt#auaha5o~u2kLZeD+xwIvB-2hC!H^=$+4> zRL=N#=&2AsKER>!?EF!8U+EJ-;y<1@0>cQIzpI$3 zG3(>S5fqzIj$cIrIyW!k2rX8XFm`RrHtQO+&h2y(HbW3fj|5`HH{&Y)icr^R2H}CfRFhJT_A8O+9o;w>x z`0ld1a>D^dshuEYY%}~+G4t4Ap|%FCC~d8K(EP}%h+aYs2AnBCF%#uNkqvCAE12SH z{m_ci;YQ&5ZrJeFWU-Tff}X0aX?HcLolt4KP2$z-@xl>@HaI%hi|FRWc)QftHj%_h z;8#sq=6S$zU2&rW(78R4ntGf|ly^Fe*aG4={r!l3skD7?``KwM@WeJ5Z*IsSmep1S z#erc2C982LEwe6N2wh8Kz7bREv-xo88Y@6iYO6~Y$=i`S9V*aoZEh>NSXyYad62vs z%YpxeC0@ZxY)wgzqU@Hw65pF!iJo_7*OGKpRpyhgSt>qr*K^BQHZ)2Vr#CQ7rFyB` zUUtjU`=(6@RjQr*Y_f|6K91GBDh##~L-HCoj-0FaXEroA<(uPyFyQn}M?Nw9|IG^i zi`I~nUy7OkDr*QjXD7`R0|T2vcc~jH`xzPhQePn-3+ILTWcSxsnA*KBt_vh6kiPUL zI{C^6BRNl@dN0oJ>()bt-h~^z{Qieu9)6Hr(6fQo>=PdKEL`{f0Mh+xM)n6;_?q!xmVS*uDd_-MriVhnEdhs{@$%#r z0+%@O*C1E57AV2#@oX+NQDUwbB;DbCylX^EmeS_<>Yag1>H#sTb5UdkRQ;0HtOPT~4A|2AUgrioN$fi@)iZ^# zAi6hE^d_q6fhf%CXe5UC8;0xaNX+w-auBdqZo{k)gp{}w#}yTX4O(*e=8VE31fj6j zYB4cUH~rJ`P?#_>2u}EdpNCB@W_TV3u6VK7(M6Qg^NrgWwF`cq8^+tR$u7Jj$Cch? z*YwPJ(!Nwl*V~fd`ZF}V`oZ|K1-81d=cE%%~@lzEiU{^%fU?;8>jR3X`#r=^0u!EaE z3?c&T;Bb4hG&Y9wIqFmo*MK&;yS@5q!r1Bi_w+YkfjIEfNa*L60160Kg9$(Z`2yG#!RG~f|-OM6+R6`~sdHb6v0|bWA&LMX9D=`v#rDU$shlo`RZfwq?IL?%m zB7bJO|IM20r*(g~JHQzB@64L~H;E{IS8@KMH|ZiZ3QVC3>VXQvwXw)dqZ0bC;lb~_ zH;Y)Nf}a{|kzCp=NYXrnsyV$3A=iE|-m=xikuM6bdpa(O)3i!|G;5}#-TI*s@?CP{ zx}CH1$4c%Cha}g-1p7WUDDk&LHFdVJ_vSGlf7?{miNW4~90%k>Uo#Hy`?xxyRZsE3 z?(w(dFPIbZ(A7pFKRGVA98@|_`apZzXFw_(UltjNffMJeb7ZtlTo6cBlotSYHasY` zY)7yb1&TB+f$+pz-fKI+^tEttFNSx$(Q|*KEaSnM}b5bu^4GV5Uo1%b42qfJR}l=ZL)?#Ppqm+`7s`Z>ZEKU z#?Sgt;e@09(9HnHZ%QN)OdMR*o;~OrRss7x8p@ zjf~~FM0h+%Vmg|}hB*Usy2{a)Eyi+1r>wR_IThi&D1tY0U%o^ZyWhYoadR|SRP?>b z;k2#hL#VmfC2A428~K3R9mvSso~%QT1WI$0FdLT2zZu4=xB+k;kzd&F(xh$3r<1Hw zrXE&1&QwHA;mdBOKUhG!!4?rz$h8r7x}f%^gEgxlu!5tshTa|1_VU>rI)lRs)wztT zud3+W_|d&8$33oN=iNnzT~*C@3p@G)CFX^FFXJU0EAujp{oywbcUG5rP8vstp0^q= zT$3niAIYxtZ2T~5b^I;U`uGcHU*Wk4qmGmBApJDsyNnnfIRWDb12kr<*o_o{^%fMS z0ge{zdGcT7N|zmVX8TNo;QE_PHo-CC#^%7RK+kl>b09f_p%{^AQ8=skB!rVPY&Aea zF`3Eo0vDpl{tXkHHC{4DoHc}+exAhxM)+DUTvf~}JqfFTeNo}1jNUzWDP{;sT4sPA zb*j;Nm}TZ66$N{i__xM&uiP=5oGho%#=;~=Glly>*Vgf@1G7Rrmo?_FB}%j$z2*^- z^UYyvk%6{1-rUD@!!1mekX5z0=Mq@HlKrYnFR8>oBJ#~OY08#Y6(>~$P34)FF~SyZ zO?0WgeQ;kd%+?Mkv(7p%)pDNu;ouYfEz<{y>F->#m|B(}N^~GzSk3UMy?gYX&dbJv z;&znr{dvC42ZmyNX|#=pDI;ZZZ`LhnTeCFF>?6uzZF$5U%zli%S-iICKDEuGsldRFJfUGe^$ z=2f-zMPKd13)dO-ueOV2y3;gb6Brc>b8`s}GH(4l6g1mS*Frw?oy@kt6t7?yDmQD{_nBJt^sBai&LwhM(5^nz}goyj8DWL*Xk+ ze%QTiE=0zZ(M`c8ML?w5lJw$uhrN4sFwTgN$FxdX@gi^`S)Wuf#o}2s@$V%>-xzGo z-!mELjg4@$_W>JsfO?SO%ZR%)uCb(#1{qQ@HUe!bjE6h-<%nE}JosB)k>p=%!mZNw zyREMK&QHAig}U=~=Lbxi?ECUq4Ut+-6*n2&Ey~G4ZGCRu%4ZTxQc{tzk7v?nqT!I} z85D)N3*IZ-@`JRo^$!PRwB1C=a7wI^e=T=_aRt$P$h$X<$C1ok|2GL+0)@rMSs-7A*VfbOO-`MoXJt z*d=Nh9)>J{LK?YDI1-|VnRz%|rIQWzTcUYP8Rylc%B*UTPLvrQzXm)()fQ;Db$eu4 zW|E$Sjs&yQ6gU&rQ+v8BNC){O|Ngy6?n*Q2Lhx4&4o*(ZZL&cy$ez_#uZ!d0-;iO@ zpGI*`HPDKq6X(TIiyp;{V9_Y!41oWZ;+?{-=cls&M_tVh_*DZI_k_bDMoC-UL+&w- z&ilnqqa$cO3z~+@(C??L=geRyA(+5mqd%4S2my@@P;6RD_nt__2?XymYOX)c)a6vt z6~@u)qBF9TzBtek7$g&!MKc&WEqM7}f>y|AmftYv>sRy6wN&Kg3PvW4Ir1$wdNdnA zVT}Seap;ycYXeI{>E$i%Aaiydy&(~+3gc=^^t;#1Z;F3I|#?7R_inyp*w`uRBma3fHACFedqE z;2k#En#i7~naP(4xSgQi0m{Qj;)}nBI9bURB53ja)#YYV2difiB~)@-EhNes=;Oqt zQuWn-+I(LZy?@O+1m-!6Dj)V{I_-Inq=++0LjmEOv^>bZE^`HN_(}Op*);}jZXYeY zb@iNWGNO=OmiS(rPlw)*8itTs*bPVhR8$^2^jjoh3Q4#BI_9$PCP4I{1;lx+8++{` zwLKjj?VGXP`GO&9+V6LyUd7*9a`U|QAqWakpWcGMzSd)t!^6};1&>$v2e62BWaRZP zw~h@<_|76;vw!nWk8(_5Ze^CNz)o6UzRN%3uY^VN^OC;@^w|>mVZY!RM`p|}Z#a-x zdz%DMh{)!7s;1NDco8Zul*B&pbMFAq=DZ3;**Xv{qL`GLO99L!QJYCZ>RjvY1-Q|r z=8Q+O)JB|6Pi0XEB2ku34~Kl_VNxlwTN&sbACHnsLC2PXHhnrYCemjon;ABVpqxAn z#$#akh8(Y%k6kVDMp)36-f=M2M@Gs7d<=nd#oO{0g8a(z%F2T1U^(l|EOjKiNPs`$ zVUfXDJ1E~+Io2e?!`RLwtkhV(90aXLXfJRL;EDYLN+0sK1gjh^+UIth;a;ynVf4G=Lpkce1`<|v-fI=9jaCV zSq5G89j{Iu?@S$5sp1g-Rn@w^fFS%~M1b+^Q+^fUUBMM0o9}d^c3$J`R+D62Kl$;Po@Z{ zxErewu+eXVu|xFD=TC3=b%(jJh#M+I4KfK9BsDsAmO_;$A5vxJ(blIa3}U=`4%Ub+ z0;ec9AoE74Le@oW^6PX^FSDgfpYImr#HS^&9=hJ^a-Bgg1>Mq48QjoQY!uTku*_N~bHT8QTL&d0J%*7wfB5NaNJP?ids3+a^u7=vsero``gl@~@Sf6I-_K$L9d;M{o z?xnUTL;%ai)30~2oM>O;x55KA?bc8Yiv5qmNr0*{-)^2U3@1xIN2^-#9G@zx-BOX+ z_wat3$!0cMjWr$DjB0u%boDXmH*pXd5yc8lq<$4&A0}w+1eK#JkiYD#Fw67|%uc8x z=N4C31AqMrN(_be8cOIf$V;F#?M;*R1%FUhy0DooMp1~O_HzX_9$9^2#~Lx= za$6faf`f7B1{Dcu^nf7bV|1iYY;fDtz@nB_qMPCBVP9M6$imm;u(<7yrz?`25M?tP zW-Ul1AFo8%TteDt(Lctlkw{EPLV2E+_}l{N?q-Tb-b7YJN~)kJbS~mwb~0s%$3*_% zWx5Hdw0kdH4j%7QjzkA~a?0YwYxZdjkD(>KaP*|mm5WmvCmqr22#@}eOww<|!k;^G z%9=e`oIOxDi$!YLdKDs#7;lngyZ5pfFJ*a6k)|WQ&ZzO)Uo_dsT6&-BbX4i)jzvP$ zG+4>^sFgiNLXEbP#dMwDH&JW~}r50U=r(fQv% z{M4yIObXGX2OqIR^!Ci>|L9Cflio4xh}o@0BMmA(YGl29049NnM%xAyK*H|ie}qs} zRoOpRO9WADDr!yqFz1fd`)hl>gwo#*$62E!tiFnew7`XeRuUi2WO(DN^(~|Mhe^4O zNfjRHS8bfI2qQH~F<-fC#*F;EgPj{=?$OblIgvFnYcoHrylxC_Pc?INkAfxDe#-GM zr_%^Sre4{}pG!cyls+N~H>S?-Sm-Hbc{Q4Bf-_^3QwEu-*)EaiQ^`5iZ7~wHuSE_z zaW8Dm_a$%SDngvG!2BK%CF8W$kskXs!yQ7^IBO5L&yLZueicrfk~XZo~+Hv)20EZnf*4JYAo%z5X8oN0F#} zki)!iHETS7ewY3DBthp$!pFMZN?)rE&2|0<>179lah@Q5p7W;MaQPs@J8qlRY@gw+ ztlU*5-`AP`ZDK9&7B!KtsS_3tpGhQvdZnSp z;%Ee>R|d^UffHqhPKm*c)Su+g{QMD9z=2Wp7pJdFNMu2TYp!X(9(>mi~_#vuDb*?a?S|dqc|69~oxO$cEXL+9!F*qvdvb z$yU~WCdx}%gyrFy&;ww$oBt?{Qb5bV` zu`s{Nt?Wl#{n(gJYVj43eML{?VRiig0Cd>I@9$R~8v=Zy&rP0=}Pa(wgLPm;se*non??hfb2q+d2K_CmcLr0 zCR}{Xhej-0c`*WSY6wC|PQmA~UF>a-iH@aJrhbm@et3;gg=`^*z_WS|i~# z-)ig1Zz`h@qhn=Jo5i)Qz4xNCd0X7~u~H-?t84TZXUE%0uVCW(gLp}<@HUKw3HuG~ z@St#f)2HqB^lpc@Zo5+-ZI_4P3g><2^8LWOt(D$hu4$yW!Xjvf@XD#ed;fxg;|X2E z!)eWTRgTQgu(F@WiZdZO?s!{Ztj<3E88H?rLIfFtg1f=Q?@8f#XGpr@w-mpF<;8cs zJ!bIW~BPyxr zbXe>T%To`+KG(#J@1-LJ$x46XxQbx|v01Cs0dp$;jbjOR z`$+DHkR^P`f%^01@-VLXS5>regTSGWqwmC3dM2m2TZV7m;qL~cMhAJ8-ba3tSZDLh z14`C!&k||qkdW7x6}hz(QK1*L01cEqilh;|wDf2_5Eu2HE=Yps)|Gp2tekPVpFqYq z*?p!ON7)8E2j zvquSlG#N)LBx#5`P>|hCT`5yxq|U~I^9M?(^(nhl?Z=JU>4RGQPf_#v2XQ#&fqL-9 zG}zDLls!Wghw(@2y5K?ITbx`j7Q(-4RKp&$xXC2VrPaaD%0Nb}V#Wh?#eh39m>YHd zy$dsOmp@t-Jh+y>CG_S4imWDuPW{=KN|JL1kaf%- zXv_Os=0X`)aV}(gV$^n<=2dgc(CvcMDahc5azB!y{A|~tQ;ri2 z?;H3tLpfU_kRY&8sdgk+ft)NIDUb>t1*z5@8G^B@<_p=00hh1QdWB?>zu;b2Pv955c_PWi3-723(trO|$e0^%~4%^N%whh{k8{D1< z`o`h^2WIbSGvxiHA=kTfvo2CXREo;{e)N%k*Yb19AW0BB<;WJ`O6vsA5u5SQOot-l zkFh?F(?L-TEg4sd3|q&@o+Xor*8X?SBi)jC0k|h~k6-x&+fEX-GU;K2kCg{eVkpg& zX1w-o)IVhL_zu%I{`y)PQ)^olWynay9A*i`%8^-`^w7{s+ohaZdzvcS9_21Arke(P zT94-De>qys$Red(EwlczdsSM^6oThR8(E4w zwhPo4YNsp7ksq^5FMAo%07E5f1bmZ8KX)b%24wRSCP@GOgrg4uEh`nrw*y91~Q|#7QI(`e_*Fp{( z?3oh-8Bum1H;)PyWot+B4v?M~g`;xjBM0XSiXH_QC4_I$4nN;o^l!@E8KKoKm@0$w zKB7(mYTMZ4uG2vZL}Id5Y@5zoy^j^ljkR!ygAE1iJ%M)iL{fNU|Tdb7vZ5qI2a~BeHN$%>o>ohbt)Q z=ho~LE<879tmB!X!Eb;BpAi)v?YwQ5<+rEZCuKpLc~aCX&OM{~&BGzKO+&teGGnsV z8DTP4AgQz*XfzjrfTAINrMP@qPmydPRBR zD+c-13NY&JBCn-@=c2T*Gw`Q>?j-iLZIvU_Zw-%auDfj=w!8bE$#rg#SjB7{`wAYl z2P;QRtk6x@@M(c3qzbg4{+0c6meP*6Sl#<_#{F))5T3j3#21^N?8TPO4G!unc{-g4 zFBqz(rABI5=3*miuG+A0sBrlQ-59LDLv+v8+N5p8u^=j*5n~uA9y0t3zoH@u=8Z4+ zo_er)5Tl^X>dKF@A8YZTAH7B2@-btc#3i#8z0<+Erx{tTjgy}vMiq9(fPZ*r@)%;K zpNr5>eIyX{r=zg2O8=hm4h)FRO4>V;R}{l?ptqyTPP zcbJBCBvshK97M~|s}20@kvxDywt50F2FxYEqFF9^`$_9TQv9_I56P%&33wLhFI)&^c^mJ)_K7LdoLpG`KUnl7;_O?X#(1}m>El=1togO@eQ@WHzJn%q`0?TA=FAK z?<=LOo&z9Ds~lYjQIo*{;^&kCZz>81$-C4hf>HA6^om z(^Cl-zQQESBlaq{DhCcq?Rq@=QebJEah*m6klv<98x~8k3R~l`skz3Mn^E{v{}(Fm z5#~DmamlofxiRbEx}auMQ{HtlAAjxqp^j-a9L|gfw68)*kt=vq>kA2&={(uEA7uX@ z>;HY%^?y+Z+4uI7cUuNQw9?f~JRFSz!B_Y5PstdZPbd@b!$e;KE}}oY+zh4McUt0D z=2f-*F#wJRz!4eS>Q@wp3eSXJ^08zg^7ogwO4XmL>9SfF2}o|#8X3wy#(Af+=34oZ z$?l5T$yH;u>Lz$zejLXm*=&9VgLYqSS90|PQ6k%$tkv6m?qV0mc^P0*ZJwc*0h~u_ zec{(ANb$F>+XIw@R9@9S?7QP~EEZcE+U~|Cqmius?_im$S7E=4Ki2`*ldBCuFI~@cD;6g=_(qQQPD2}kFPAMl z?l58=+?^=`p2;J2F@6_xO-lXACL9j$osr-BN4+q&0RS$bf^+o z+%qjAd48=>g`Yf+Sj6#Kw^?|}5LM<&A=9qrhh9j%>jX2na^L0#cQiMnQ;F`tO<#S) z%8@SEkJQ5gnvorBC*DSzferU3FWZ=(-zv%}(e_wVaEZ_=-c>wmr62;2$Tk!}3%32< zligk!rq1(1pBNBkWfd%u(pK!B$Ujz*>Ic?iD7NtSF9(G%;xd|5x!c-QL1~r!k1AV6 zI|!@O4_7Q}qB|fgrp06qmB-t*YyutR|=DW$5;Pc|hKFksKHawpSk7+)9l)E08VIj{}Nvyp4DK~FWed8ICyjoS1(d1P< zfy+hHh?GO@?TT5Z(&ju!zVl>Gln4DL`FlBh>4vQTU!G>8{(K*3if!(t5BS-8!*oex zeVk{;cYD*ZUc+H{ZP$yFi0=TaM1gx=6I$~eN)xW+y^!0l;0MgWCtLO_NG!Mw0*Bc9 z6qdcabwB-6Nc@irw|nZlJN7qxu4SN5`oK1e;D$Ztbyn~3=+_621G@FL*4BACmzTru zbyM88*&az1zbD^OaKJE=%ir@<@FvBdpCKc`ulN2Ky?<6RPtM-5SB|d%`!vnNBVk_k@{)!J91;hW(kSZL7EBuCQL8N^{~T01YW}s^#^5;+a~HD5 z0V8P-E%$f2R6GkX_X9waDS~fl>E{BTWX}EkDTb5~*+T|(rQED}165&1 zU=*tqJBG7v4iOhCT?@r`RsvWF`7<0)%XEgFi)Vln3$QKKAArjrXM z@xwHejiXQibNxxNmQH|EC#yzwr%_1$roy-NTCRs_*EL5^e6zF{ML*7w+-EGpMGPVk4EEQ8EKXg6P) zF4nPe&jCh6yo*0OZC<_OwI6lyeY8lDx{WTgrR~tsO?~Y~FiLyE^f5El9a}ooNe+5m z(;`olwQ^CRJx$GWux~X_Q{c!Z&*ik&qctS~jvi(Q(vEDq`KvRW6h$cG8x}><=2VKi zF`iYX26KSPl02^ni;B{O(;i3nGSay1?UHi=$iyYm5c%y=XnoIGSp|GX zN4X^kjBM&#Qo?6bx3puk$&PwpQ+s4@+~}hm2d;0E6SQikp)?@L z%6xe&^xe}pxN4CX&&qBQ5g@K=AT>XCPW@fmdQtH>RpruEH8###FmfAUU)hK-QBw%> zZ)vQKv4(MCxB!UntA8=cHh1%Of(C|dpUhm% z^K?)z>2rPQyrAt`b0L{PS-Vb9z;)tOBE?B%Rgd49lZ;YP)UeJ(Q#Bb8 zi|1E#Tz~EC{ns#w@6eEF-Zq`=9nFmX+#@vnXu9^lKi5ORq{BqzQF0^JTuZIN6bdF+w-6s;rTnSBw05wQtxXWjERK_v=`3L$!fBM@Ypb@p;G(?fQ6 z5J#qDkKk1#!LiF~#5t;s$;{m|vqtK_N3YXXvBbb9)a|0N$K=&5+asK{<)q8O6t$q< zzhZ3dKN@t4`P#Wi`aNrq4eXYnxu!=13#t?*`s&D}I7LQ!izS_rob-c>LIFWevi%|H zM+jQ!F+2=cJ((WNfW{VwJ+!cR8_cjGiqa#~nEUa>*6hETB-}`Ajbd!pi&}uX((qS1B=zo!$<`F-@q~tW$3|&ojVQ#1?!|JbZ9V zZz>}c-5#9kPyU_Z7-+*C#4u|~*2I}2Y0RrasH$zvl@A+MNnWZu?mjssqP?*Yh$k>G zYL$|+)pfv@D=|h3@eE&F-}{&4Jx`{LZPqmgEhV&KXoV5!H6 z#_)RzXzBgo{{i|fp*5<h>N&OPuM4cGOSPC+qe`2g zt}bv`f@O*?3TQY zU(Lh-A4rKb>3>oTgdwvrZpi*F8i>NgHLhMsrj!Z8Q$d;e^P5UGf|w$OIVOd6D27C* z01f7+)o3=G8G@5-Bdtn0jP8}AUrO>N7Zi4v6vUy|EcJ15j~w^0S?y7SMHTVqsg*0x_Tou+eLCCePx{D@>Ct|J`g%BkCIk`jg#w)~_9m*%KRV^#>4Mp*pix((-9iqRYM%gF8=G&wcOBbo z-SGt=n?LP```3!Cp0Dey$%vbwZO;g+!EjiaCf-%w5m#K1uPU_tFnM%#0s(|NyIxow zc=|yY!T0&jU#wfqVn}(i_7tXSvR0!@+kJN;hKuQQLV0?CDe)^e>HD!`gd?Sq(}Yj^ z@j`vkn}9$32Xo01)_+V=*`-02X&OsfG#OF(ZIr3n?!eL{b*$0yIPwhs6&v^bQ(zQE z7`(MFNzba8i-)@0u0_9*9bLlkVLQ2mY9gUgK^PnnX|d-^Oi@6HJf2;N8`emcXY$pb zifDUfZTh_2p67h0zgG6(tf%}jQh>97luacR$SB9)wFl~8EVM^>F|F+|x2^*AdecI@*_VAdAB>y?vd$&Aw|AXWJ? z{rIaKaHjE;6LVI3Cmqj_Qu30^9!L^r$Pz;%Vb9*g7$sNdml?F+HbHcJf78lGes+~f zPm{;lEY2j`G`ov8ndcP4DBLhCT!DYr!CN5b1?D;@X^vF>x2XjOJNc)mN_4&CW-FZ3Pe^>|rak8z_qDo6 z0y}sew}uz+w}#zqah#6H>)!wV?Y8A`RmaqEJx%4XBD7mxiWaol&F^B|&cnjbY9pN#4gv8R1d#3rk=lbRJ)vv-c$y3lX?+PsQs zQTldNuys1+F*cv40d=zube&^yn!52*xJytcXr5%ufP@7xp3s$RG1myCrcZKM`i0sG ztstFc&g9u}fZ8E3=F_<_xO+^T^0G-SjS2oY#}DcUWr=(9VQSQ|A~BlTVg;Ydu;Py? z9!Asxl-092nc~{dO4YlHe-|8l04fI%H8)yeNM86c;GGYuV-B%^WwdN>EfF>E&=d6P z%g(kW?K@%Huc|&R+H3Lpk5vbI0C6bbF2%~2Lmn5P7( zgB%I(3QQYfvIj!3eSBd}5DsG($RJ83fbP%Qr-Z5yMlS`PSUXmgMol&EyGDO0C+%tb zft=@u!nq3zDif>qr5_PI(yc}ZDjgR1zZVt+d-SI(y;lmhYmb<|u3yxWSQ`$1X%#ia zB+ypZSfMksSg zlS#jckjQ?vlFuYHtIf-HeTOg5xaSt4IYs62aWsy&=-uemN@Y;TH0e{zRdQLJFdP}v zOBbSfSROU?aQ0>6Dcw5I+Uu+2i*06EomRORHNje`wbgCu=gLK{->0fyxvq5Tg4qz1 znU>iUQ^H}dCmpg}b~@r`^_57TEEmgDuWLOO^}rTGd5!X9B-(D~!x@6)30+UO7PIMc z{n|A-rYhiShIJrmn!W8-e(Mo}F`viGPFM`0vw=ptNl#lo`Clde4$rlg8k49TlGDQ( z-B##0YrtEx@6G~fK2a#|)nh+rx@vo4`Qdq1mSTH5xJ?N9_tFfJL>?AvIMekto3;SP ziAHVuKca;O?A8fo5MK|yh0_=1=)L$$&@oj4H3ITMlu`-rN{X_-wTTCgdbW8oBWZiF zl(GHjft|WDT}hCZv>q_@i@)DqswyP=D9<0nuahr()&}&P(ZVOr!|Cv&%eRD+&nrU7 zvB4^yqBz?wCWV&gl)f&~97Qgxt(5>{`&xHnKe@|O7kEz*g45$UM(BYCDMZU4XjR7< zwQn#q`%9&vwY+h40kC7EQmfAkR7`R!0CX;VWPFd)#pq;onCkI2YI19lWvTK){x z6P=$nZ()s}CkyKTxhNkmVR9%Mi8OGmw;qZv?y~JTXKhQEvcG8QJbS(B;&YC4u_?I~ zJal|av^gugm(HmN#N*k1Z9Olbb1Uzmvfu-t>!ikn*4{nlS!9iM zh-ui+J@3P`u16nlY?E6rNA7x!3h$GnTZQtOB4nn861^@${@4#P9?5fQ26|tCF*J+e z>)cFj-L9vC)v-x=64QA2SSRdZ9o+*Adl?wY*pmKIO~VhP5rvEZPaUD_nosc#Ex8EU z55o^o`|BOF55bS?opv zV8%?<>dU?EojL9o9HrmFMC)G$${Iy+YQZWJRpf8L%%4Qsr;5<9T9js=_s+1eo{&@*X-aL{vg_3l_|xX0h*kzv_cq`4Hc2X_~Xft4y($K)D5!Y zl0m`+EB5cqP3s@8haoakHMX}JrC$rZ`9s(nQsCop!?=7U28%3H%`B~dSIW`Lqoc8l zkCRc>(Mx{YQ|IT9Q>TtfD<^5&jEs3NaYQ3Z+3=H(vC`Vx>B(Cb)mt7Z;m#e4tyEixP>qeoTBn527}4Y{ zv@5$yr}}$i65|$TX8y?e4Dex~F-?5t(S> z&g8z$<1xuuE|`PVu`^Us*V#!v!Y|5@E@GSe$*K|+IDYR;rX92WVbF@LjzBW-7WYM)NPF{5ywJj1hY zvsSn^7|BYXUb&;&>7KkDa>zT99_?~hyS9eB;;ytjFUhHy@6T6AyanEJ_B-LqGMy@p29d+V~vR3e{B6nklrghH~XH-d|WOAe=La zN_hMdB|;DT$#f?VFmtSy?OFj*d0+VpkG*l1qJ@4WXz_Zj(jN2GXu|i#tUm-LZYxj|2WugCm&9O9=z$0yd);dnI#ylO(O)6oK@#vrBF=B4k(4(GI>HLH`D8XrL@ zvti42!(i0Y) zgj90jT<`0r#}Ao>-^gCpO5d#Tmz^ng={Bqzikl5Xk&bwELZ8(ZOang`@aE{@THDS# z-P*O8xJ7soWJe8%@tOfH%&fn}FyK~F#x2V=?bv5cu51P{ooP{q@RcC#hjWF=n)@mp z(r+eiMxGQWe_fL$N<|Dl*^)VvYNs~YvwO-({hP0y=dmo-P8@7#e^L^vX|8jWY(Xpc zCFz_0Dov2=ke)#zDPfy+o_se5=oEZrdtCI@{2uE^gua|!P&v(6Wt8fq?MW$)vsQL+ znzekTP5a+AU>3dD%51?2<{5QxWHQQeV2mCZ6a&?zU9K__^t z_Q;aB{EqO90ATb@3Z0tSUNAC!TQ(6AW9JnI3IlKg0c}|whPe8$j_{@GcYh;|;%^{a z>ndAozx+nM^HvISgC9o6n03#VBASbYryMa`tpk~Z9Q@>&lR;QM2fQPkQpj@C^nK$BVE7YPVhm$Fw z`$*gWb|*RNwf&?55qvs3m%-Y;&J36L+HSkd@^Z)2-{gJRi7F#}GB1rD^eYm(?(Ha( zjSYH1OqUn5zrWT7-95GlX?&iDa=d@GmH&5FmA@MD4a(|fQkO^D^R${6bn>3m^3ck= z%k89qibJyZ{5{`y7oNXrf zwsPSQp#?IM5FYKpOOU#=xIz)Q^tM(1*Mr{s*7KK|`n0*d%=n61iiE@$}EOyc2V!S(-x? z6tmXnaAjn>QKC4ERRQ-@>-|S3-@1x19KUr@VVAe`QD3Q922qoFiNAA1yU4LWH1~-} zW7ySrI1=Ei_rGZH@<&9faYe#gOpCWSH!P}WWLTDEU;OEY2dXMxh2g^_54Oufu|hhU zh!|7xhq1@v!zbTzX-)~c)>qXd0>{j-XP3t)h@4~B@(wU&ZN=qoKUw-t9PNYcCR`}x zZ6X5I{)qavetwxWb%!b*v)(<`GCR*F2$#idw(%<%C#FcHa#+a~oJ@mhnv}COCnat` zyj?Wdxp;>gsOb9g^Q(=SKQ(DS_3O!5Gjf%YmeUGGHFan(Hu0V*(1^()j|IECq|bZO z%3b>@xt-yJ@m&H%E9a?bSX1-v;Xz5UjM6cfS_QLnBpREQD)B@YAnoolg(Sv#iz%-3 z0ZC9PPJ||2Vr3*%g0Z^Gszz)^v&1>Wslj?j7o^#-KTD^R^V(mktAVaArZodroNB3Gu6gvEE z03IDmOrx-z_odxA!fJZSV`+f-Nv^4ZMv*kInG1Z0k36uxWn6ChRSPd`Mi++=PqxAC zd5q9VM+3&HqMemLjidP(@5^WlonKh3;TwZdj~OrhPZr~;~jW6w0+JlnWy8GlwBH`ixOOXESc=Lapj*xKPr=xd4f`R`m`n%{?#79B_ zoXQ!q{wQoj^9jBmrc#Mt=)}9SZuZ3!X$1uo36rT6!m%g-Wqh2X;wdx+B|`LWhXVyj zVmxUKY4ox%qCTtxeqU)ca`19{7G&M*6{^&1v;#Ym&*U@YoRmM>FO&@D*xI>Y65$nV z0IjIJC;2q();jh53LM88oRzA5&7g~Ic)yMMeU_mc0XQ{g13Zx&wV`UP_Elj@(h*^DD z2!`g%P)4nq(fy3Em9r)BMQKMe2e3e**PWt`EG_KrM=MGEf$g>>t`nE^>oWMyvitG3 z+{2bZYY)6s+Hz|)2T9`$pf9PB!pMhFeExRXuKKb3yOugzwp%$j>3U_E&WY{R$!yNP zThZ1zgcb#+@(e2gHvj>3p>F}QSwU>jfO!$_?Z|Pw5m78j=`eaGt!I+83|9H{bGDsn zob&T(k+Qsiy>UT)EU0qCNS?X^s@q~$Zc*>ec%)Yek_XrR7Cr@sr4K%z`v%=IZq*kc z1W?y~Btm5jNVWfC6)GxydeN+D?9CFm2&;Wwv27n<-xipxP$|dg%ygA?G?z`@p(2lD zQP;s}hYM*^TQBL0{BIhTC$TE3#;7bOcuY-k@)#vqi z_{{A6?nfXuSHqg8tr2~BzT4bTeFw*|s9=(>wH&DWcLT1m?HnWcFKu_V1zQ){W9$l! z?mz9|glx*i*T?ebc6gjPeYy~G=B5Y50x#OuTRIEP9K=|v7BnlswNB{9Of54e4)%1$ z^0h&neUrD@PWhHhc|K5mx*?}`_Aa-3r|ypRf;~1MDTfQ-?6I2P6hr=}Z9F8-kgGAd zPT_acPksa6qjX-QTSyvlT(cd$O90nA(4)t1@~gt%g;1>Vk-5|S@aT(+%6&AyK81)U&6afy*eL>~r$*pE}uZ!j2*5ahYqf zkMxK=4t4`)`m0UH?H{Et1PJ0ke+m^67xXH$@2=%W*-!#&`(B=D;QGEo~~f9Df|N%>Sqa$q-G z`zHw0BGnZ3cF??KZ_8&w{t23WR>+jd_HuO3?!#YV&KR;kJk!iS*u&uG8+wdLap8R< zP#)rI`E1T%4sMq*$PUMc7J zG3`M^AU3MVTi}#4B`Md&+{QUV&*ZYbP|U}|D{QHao;%1%x8X=wtWg4qZXCcvxu*YS z2X3?pg9aYM?>~=eYo!2A!PzBb*&^RI<+8#&Dnb$bg#&39T&K)!B?zD70+#M#pPMR~ zaY16#&eKZe7l)ku{bQ1Ds%bRT#_0%13<;F(`CAqT=PRq6r=J^4yc@G+pR>8~9yxt# zDVG%}wPr2)*eqoR^Nx@*1a`z4a}M7aq^c@aKrLM0)21@5@D4@IS?mIrz|)?3eKFt? zmLVCq6zdmJ@8lptsi$VD9H+dr-63X$aK3S?`GX|DFAlJjv#)f+qa%EXTP}1yS)fT% zjeFBvMbtMXM)A6E67N+S_r_$dBCmIz4Hjr7+B8LDsP}u64omF5(A<~T9yOe(x{vp! zu+=+n%DRg9(%AjpV-`{P%N#2NPhiVVCB;C-nTI=1Or2A!uf1$Qiq8CI%I0<@qh0f< z{ZEyW)1-UvKkBngbu)b@V+H)2{F|06HD|f4J%MAaxYiIc`46q)nn#q)9!nqA-KbIx zU#H}nu86L^%^;L8|1C)W*VE4bm_`4g5Z))GuOpv}MI+Hr;l3cTn}^1HWFqpkRoxd& z#Kb3S`lEUvm4d@&F8Q2%I2^(H(VR=p-3lfL-D#@{iR18nypTyLLryCmDUe7Wis#3q zoBpmGf-t#y1DXX$(BPqi7b-(*DKf|IbsOz8YgDIO$|_svSM$yH#cTZB&xWep7LB>v zo6iP%JRY=h^DtS*vH?`kpscJz@jeC$M6%VV2GzKXOlv$QKda;X6v8Nk1h2Y*j&Ocn zY5tepy)2WvF`8 ztJ%n4ba6i(t$RSjO^Aa9hi(r03sqcOzjREyJJip8)=3r`4)M>6WJ7p4Xy$*?Mcpbj3Of2ZHgRsocQvciL=Wn z9pD7;sN&I%@JlUOjp;2Cmb;^kv|y)@)&nt8R=xy?ba*bwH=kw|_$bC!7AC8w$XKN- zCP!KM>!3WDyUSf6Q3h4|wH}(;)Mf$w9a`-6bBydyk8(ZM@QI*>@><#t%>r0e&$)gY}QqHa9CC%Aw!OkbIvYE zB88E*3c8yx2CDcbe{xWiK#C76eTNblbD6go90D5gn2v))b2=E~hOq$HW#a+{=Gxvt zS@w`+We3yPTXX~ciXnA@)7pi-9H(}bEiiRKZ~7Xr^9T^wT?hAbDt&=+1YW~ z_J;c@T3oP^8n{v6VWhf$%kA9JB46MvVa}NI%HzzL>v~`ATbE%V#LaKBJfe@yD% z*3-Zb7@LO_AEwJ67A@rd?#waO`t4hXuQ!fkIB(DTPQH@#3^iPm1Z`ePZ1FxNvSvbG z$K0BEZVuMT&f9kS4UgfYse7#=-R=zv;gD^6VTe8lpad*u9#ynm@wIA@-z14e+;K|>nq7z$u`Sqtg{F2Qu->{5o+g4s{FF8q!gfs(8 zU)zd2mofTk{?C=4Q(t;2ldIEgB6Jiah}mdd_LjQ7(l%kqTA7_9k-g2Vcfh+SY=e{5kS`f^zLq7TZ>>z5oZhK+RldF6~FD zTJU|H7V!yL*$huLqst8i?{Y;(u|uu!vzAHTp|%W2ask(4rX;IUNzwUDnj#j}FKU}Y_|6f0#Dc{mlB8h;|t z-&BZ7vg0pj>_rL@#H>6cdv+6)W!6NDCLwek+j9Q#)|ugETLyJGJq`$Ut11#_rX{+G zr=rR;rBdlh;AqMoh|9RJVg9#{=YOt#KD-GC0)K@dVj+L{sucJw44r_~ z4Uw(jdnh&o8g(gaVNVRY5an*EGPP9PM>4eUphQaPbXIL{HKddxsW=wZk!P<(R#Xcy!#7SC%|vVyp2KQ zqPy$gzov0XE%Wi$bdbq`kh!6M64RkkNYdMvGO%ZuX3G`c!iy{ju{@p3RiGdI(>>%if*JjSB%l?T$3iSLlj`R<@fQ+m(qE zFF~p`lZ3qAnj0Y3TsoVe?Gd%^We_l|muZIUNtH2}qrDH_2pYCXa_9!oIonJ;5hr^v zmldRV`z&F3{BT%0$Pbm^(MgV2*FMx6L|Qb=@EvG1aVAr+u}(2zZ$Hc;EXONLLpB*C zh)hO1I1CRqAt?Fb?tpAo27`Qy(p5;i$AK6%ngAKp^^MCZ%c2K>RK=mqHgsS=4eQF7 zT6lreV)b?%TBRYGm&&rzV;}oQRwP!S!Yn_^nbatS^Jg<_@RB(0qs?-%b1!B zE%;P~^&ZG49yaww(LOY96Vb8jQ8YXqmpHW!86W@DRIVQ?;BQK_*Tqt)lsw=DRv$S+1&izg{pWuEFdmr37kjVOb1)}zG!^C2^na4B|aVgx+}&Nxutz&Grsj9K+jzFHQkcV-KnM;4}l9q z*Kx+HLDd|;tg(M`E6ZJyhMgzPs0o~Vg@f|#-t)d)f{Qb<|Ae|fpxEA}9H6|Q-)^;t z2;X&ls_r_REL>}UY{q=?dN7&Pf4-lNRy#jW7rDSe_ZvjXJ%t-$UMe{Eymih0AQs+) zq*Lo>O11fsN2?OiqL%yfu92@OKF7Z(^w0oR@-?YLATGaBn7&FTT-pQwb=O6xOmM-G zQ{*qgdCNc;|H_<#7F|t1TdmK7>&CmdmhX?nlYve;C`~sA`WeEve@12ZK*Eu+LrF&N`ozj*3LIT(DXHh9M6)b28m8f4a)~7QtW#?Iy#Ze3bQQz!UGn#0 zPtu?o<;mG$SK*2zS< z&8r#oWGHOKhg)VBa;Nc)FTZXB4>SuV#VJ*EFP9Ocl=JaP79M3g5X}M#7P4cP8}?JX)gKE0T%fF+ zcRQgo(hegH}k9zcnI zWqFFw+P~Nt(LRG-F>CNx^zZl^BH>f!1zxrk5oB6$PNT1mKv{>K3+}IRA&d8|( z@dy&606%;cQ;8_lkMV-TwOa!zAN6}UOIi2i(zxtj4Sa3Wr~F+KqmF~0b~X-4ZFw7%?=MDfq8*vXX^=K z*%&hv&z;GhYMOJiDnd8=pQVm0163WKR!t73zUh@u9_Qc$oc)y`4B^8(cSMs&O&2uwgPb5NomRbw3NA?sUuqe;w7+~^5N#IfQE7r0IFO0fk)YRFkU;iHc_9WOcc@%UH$L;vX$|L zK;5!h2aA`YW?P9Bx~4zy4Cm#Q;3o#?4%8OnN|(!(+rjG*aRwoQmOHc>BIsH*T=U=0 zb{7ORF?PXKXs0wj3H!1{?z)#P|9U+eA?T~(mZ7S>*^j*F!FgUH>F)%VENSHjXVZ5O zw`e%ki3|TdE~eceY)CO3Zf9>jj^b%31~~rJANb2%d0j|+vFh3+06*?j{QlzjszN~# zXqhYHXzlhBIpXitRMGL^S(fxhHtRw#^QhX0GS8<>3tJZX`vtphruu|~d8Ve-p@BG0 zSfA)hT)}XYLw0jpr@F`8dduBg2XY&s+iNsZb4+DU4%of2DJLNPl)O7Z(l%Lyrcjrj zmEg;pQX(SXnoT1Mdul8;t_IJPHT-R#YdIi!X&Dn`KAvjYG0-&+#t<>QJlm`0A9$en z@=~_Ge&Y9M3aiU++e}fU;|%0j?LP?mg8BgQjZZjv@O&XjJH=Bqbhv9Djt^)VNyura zyWXl1xV$S#=yFAyR(ZNz5a69sRK4j)ek9)K3w=TkdY#EyM%Lg*x;}pkE|PZ}^PF|& zNK(buv29olSk;Ul>!IBvPp4e$V_PszXz$k4nHUViO%~p< zzq$MD(p~h__*E*Lw1z7&h(T?;ef!`ie7O7%F*O6Y_xC@${A+^MzptSb9F{XmAo-cQ zk{>WW_9CSxM(A};!^O_ApIMlyqGtlk+fayBL@w< zy^!T!DzXxM{yKTa2q_;^{D=<{yuym!OxOjl(=<|_fyt?k@70KAXjrS=T|(W>Xh@0= z#Z$GXJTJ<(=&gsPbX8a~{)`%udV>UQ?T^wLRtvxA50nxd+s3aF?Z68ywUtF(Ntt2A zRyj$?SsNfmoSUu0?*CLFTxIM-}~Ez5PE)o_|h>iX0?JDnL}XjQd5u)7UW9CYStu`UGSZ)%=)+e1VJAq z_xdZ33PSWv}(z{pcZJ)l@mpQd$>QroH zSzvYX{2@&`hfPGj%%5)sSDqn_K&2VUIjfv7CBgUG>V;maTy2e|O4Ala&~~A%-!nWi zg|dEX&pE4)*i{-j=?@xUIp$ohs8wenfEWP8Ud`VpYDHm;r@9%rF3JkpXHS|1HUvip)p`^1ZxGu|LI&Lmc` z^L_f4L}~o%=uR*Sg_63s$Wz^k_#4~0=7YJ&Z?;v<{QA{>+DJgNzl^bSJ$eTwtwfaa zXQxbtwd&MjN+$VHJ-uYem`9WtpY^zH--~*isHV_#PW2BTe$BUB`)_2x|4f+q{|gr& zG2++2-(l!q;K{WvjlYLsVeofmvYPh95r6dgYsI!L6-G{xtCv~7Ba_Y~uJZY)c6T&} z%RD@E*okg5NEi>3k)Y91E{`<9MX*e5Z!AP!UpP!g?NBXF9b>%@?9MP;Zt&BlD;mpe zF%oTZ`-4uRy>gQMMi0&->xoLcS4eVGMH-c1vsuCV9RrWqW=n)8E$m36IQXoa8xr z9`n+?x;1dHyx!I3e%>^eBJyQqxygC6xY#zL%CE!i^bZXzdIO2{%xo^64caa2L+f&J zsq7hHNJ=^NpdS*EJHF23(tUx-wIoL~$D zdH_J&GQvQU+KM<{%E%9;KDNm5yCKMgxGAbXLJZk$9#>-6Xb-ks7{Ifeu~hKZ1&QB1 z)QTd|?>!(1D9eXf$^t$TW^tFw-m6Jp9Po-$Dz11p)4%mZ?xl&u4;yFPrx_z4EoXti3O^XB1#|-3Ug{EJXZgJs{^QtTW-&-l(-)`$*XLB ztcY(%BRZ|Kh)1T(vqV5XYUr2-WYybkO97jj(=+D$V+mglYZn6|%UcSXq8Md{lPjtN zcua`S6FcVdD^e@she74j7H#Le)19vb~s4W46(CG5dC2Pu7dZL3-}Emu{gdWFW3#v~s!XHYUTk#vBRXHT%pW zFw^aF=(COUoH%Lo-6ESR4zz<9N;>N&8CS3US^to1`z*VR4G^eLB2^zva|N%iNllMkKwb z?S*Csz%HOW-S>~?+F3{Mpsi(RLGAQ}&vi2u8E^4RFzVx-jY1Ukwv&PIb;qiOY5UqN zD{9SnmrjVIW`l#p;Sb)m z%8l9H5*_Lz#$*eZGRxc{UhJ=Ob_gTRHoIm&U#Sezv!JhDL7ySvD0z}iON_&)Bj ztsF8tg3r^NIdE2R<8lWhiXYy$#thir%PmVWU$R>2a^hBv-3+BcThoRrcCkkwfRRZA z1_lO_P2>`*~&6&rA=v=Ghkc2 zU2f?iK@YH-74IwIdcbotv30zVL|2Yn5+7G+@GaP&FY&m%u>USIsq7o}VT;T2tiW}B zsL3j^M2htMLH1MyYybAe$d2+}<6Yse&fIZEQI*o>qzsF3OYt8=bJMYNVvX9dA{VVQ z`P?oNd#NWqKHydpZ8_gG+#ypNGzB3G2 z2oy=@ibu(?2b)!yQN?Ibz=~^WfM>k=;dBwSK#xHJ8MW--)-99W(1A3mtK<`$op2hU zjdHZkp-bLYqglJwRFo;HX))nDJhmPhKv1#(ZZ)|%OOW`6{YRAibvJSOxg7c2T3MVk zXm|(3f2yGWxo`FcI5W!sFTpqbTLbOu?@)9ccI?Bq_z6Y%qS5KaYAPD>7C)h_Y}-RI zjr5A;CJ`#11(FKpGVR^>zrS2o$ zYIRf&_S)fIMbRuW>?b7P!0F_m-t0*2l9?ELy4s$Mpt@)jXlXdg4OedX9^1yMF`xFa zqA`I2o!oWZXY1XfoSQ0;P@U1c zWnI`m1+Em)_dt(I&(D1AESA8q5)ulc_x~THgTwEKonVuCFJNJ*~FcXC=hwx+Atsz zMsNuE$5y@-=bD~wm3zYXG!LEyl$T|hG)E~HVd(pqMQ1wL0BwrFngwMC!`{FwSoW~> zwp=vy`Pj97X&I7K*!^~Z(85i4TGSQ1lu?0&=KFT-GhJ$(nkOSuQrvA&YFDrOhKg?d zaE%1aP0@d`Z0M0dDQT_G%_69mVP;?|-X4$z)~$eLX{%f6QLF;-lTm0hdV!XizjU8v zvvRlz8EfLgwYe@k5dU>t_Ps;V$!Q>6o(J|@JIH7i_Y+3b^gmlXGY;&Wk6w9}r29Dy zEV{J2ba6DqlBQC0AD8!VJrLLR-H0!ex%fX5*SHA^Ja4r;E)!KxQN=7W4Oz8+zVqcA zwX2%d92~jr)T@xR>VT1yS6gdjkk~BX*2~lkk)WLEPyei6Yv^|rShI$;(Y-9TtXa-z z@8(!dk27pKr{Fa&#-LoU>N{FiIjUNQb@|5~Qob4Mh;jO#$25X~WRE|~N( z8@kZtbW+}1*_!*COP+rupvS;F!GDThV7}QB&HJR?u=;+VP(=Li*@!S2L)6cb?&>Qj zzasaBZOB^FU2F$Q=lIyq^Ah{^BoX(=HAOwYp+5nWOa~_~ude6llVt3VODQ8l&poP{ z=EGO68&`dUBKbJz&eK8C$)(sGv}YHA2%Y$sMW4RGR)K-a6`KdNkKHd@3flN%;MVyJ z@H-4kZn|0GO*cGI#kE+U*HNN!xcx48pA&mVY@=6UEzZXRhY%QnS^>f*M4qudS_>bB zZSijAp>5CJ`t1Rea}aQDnnBD>@_rH_4x=@YV)p^(+FdwgcvSZ!)kFo94>A8UYf zl*O$HD&TwehmoXk(vYqFZTzm2BXs94esj-{nN{?dc5YgK^U0plL;%%{-las@A49w( zC7;Lmh3t$h>~N&W*j1A1dUU&QrCRYlFs+b#LHJAn{%5Yk@MFqdpln&!Pjz#+>J`K>3<+md2qYcl%4^&qUfH=; zZ3%mAXao!_b7goHhQ_9HQW9O((bS3ttzg#gY{M!@T*Q%bWk` zz}~-uLnntT5DP(m_rd6~)}${8n}JeIi?vW97*D|G@6Z)_Z#cE=+pUWdO-~B0ez%#n z5>zbnlUP8Xw(7QIFrz)}w)BQhDOEI10b5B8pj7h39}eZi_3ks+&g8~A^T%k{b1kIZ{&zBM^46k&sv+Xc{LycRz~kg4#O`0(pudDuK#(tg`hZXGjz)w&&YHGkq*b~DXe!DmU5I}1T%X5U2yPgS zaqz}!Up?=1G#B&*)u&SzRu=x`;2|jf!$hXfIdxVp==N)xS@3QiPKU92&Qo~&ZV|s7 zc>^EO8==_}8FNqJ>C}z13hP_a2JpE}QIykGb&zd$k zpA{v0N9q)irjq);;imh?y9*1`Eb=`&(_cHoN5Op+MhW~OzEpmQCuSat(yZ+-I-XI2t%n$_o(ntCRui^f;#u_O#n}4<&MnprI6xAvK`In8~ zG-@3FKs@UQUcgrqVD_K&)b1R{X(3Ws1=@*pk9G8m^;9iBSNb-FJHth3==- zNh~D}k6`Vu*;nY6e^`cp&En_ZSAfkXF;t`N>;%WKK}-fWG^bDC2AS|I8djZ zX*MGYk0jiYq!Mj&n?q1>I8>ZAZB!z-^W{s_FJ|GZ;Hu*yVs|}_*k;UE<S)zejkD(NCb{-KM^QqrH`*6&&sVv5iT*Kd5lM zp3dUn+>Tf$0A%4N+t|w$l^b!ZCBxt4*`DsvrRjhm&9|U*H?V?gbj`7JS{h&1u2daz zPHR*YH);{7VoJ1peARThl0G5Zdr8KdznF>m;MjT{v9~u)9ioR-;+T0n(nb1q#IRL< z4ksY@yBxiQ@!A%vZW`TLWuPw08%PAw`Z_G3!7?8mo3cx*jh#%ZofcYoWf#$&j4;Ru zI%E7D30kh|wunW;kuMbe6^v7+M?*8yW-s?WnIY>>Gfm})rmtI8ViB=`I=YH3; zz3L*?34aH5i6^9Lo?U%eri94c~NY*f8*$O1m!rRq$iBB_YLW|1mXL$Q=1-M9E0#>1)a zZIL^pu#Dw$h5RAe1e^zAZ<Sl3hFlkCxt%Qk{P3mvdu(fdV80ASFDh_} zd}lcJ6V<$*hKWHsh~)qq)$8UElE@d*-=V`i_AAs-l2f~_v1d70+H}35qs4H;mE;qd zmNwVb4o2JzLRTZR({8nL$}Qlv)wz693{2}Uj;Z6h$0eLx?YzpR7}9~bGct# z68O6^FZ6e-naP!8(y;9K`mSkU(MQYwVZ|R&qD9yBIcI;~{DXwVTIfeoEs_u#wuaBT~qb!3jp6JBJIkWEH03<<&dII3YAks&okg&SBH2lW9KUA!Kj zlzdv}XAE!K=hvz-XJ0Xko}k390_Qul@AwbUF3mK0Bim93F9Go@szZUtOyvg_ZR_sh z^YhG2N9i(loxcatPg@3UMvEIWrbkbbtIl<3N?_N6TNNK$hBRC6!;u|((kI%P>z&I- z%({>YV@w8wxb3PuK6CsfZV^n5wQ{`Ko4<&naP`acr)}`78eBx~%o&CJj=dRY8Rfa? zen4Ki?nibVJ1-4@4ek69$Xn%{Btg+)s%9?#>lR+#Z`atZsUgT!rpdrmmIDs=FY!ez zskoao@`=Hiz#W37nwAy^}`Zp(HLU8==Np4$WhM>? zBSv}t-XE{=VyMjCtH1v?ss1Md#y(r{H+ZOpjBqNPF%&!#iP%F7@9g#Z9v3rA^D8aP z(RUV-k2S6-ykX}Yv+`}LVLl@FTdpW@TJkFBC`E3~Y+j_hH*xeNdR{i{z;wKEl@aP=mQv)RyBkOFpNBG{ zcC%OD00W(8^=28W+e7&ozva4B;^zCdm(j!J7~vZt*KXG^QPsy3eVmm2kVd%C-Tl6QQ2Sl_i0B>LiD@r^=T*(Myni8{ev>lxI zW|_^ga$-QL$3`@^WJB9mW$o0|*<dx$(Y||E}zqfElp*wj(s7fz!X-$z(40Ir?_r!ax zRb%N)ns+)OBOa}lcgPV=0xMCCldsYvyH`i?JQHhmtIEaEYdv3Y^H?a4_4cGRts(kxF3;G;Xp$R)@>6Zh zW7DuO;WwH*i6*CEdIF0nw;q0z^+L_m$h@ph%kT9>OV$1=rw7Fy_MiiV)fblQ!paQz zOu{Z+yX}ItdOw(M+wk(DB<$xNbGFy!?ovhuTFsiLWIm{%Ay1IZ&V96MYT=*@b`Kl+ z7vz=`Sia;&<^@5bf%AUX6S3xY@$taW7qz-sKL9Q|f;_C1M9R=V)|)p;yOP4wNdNN$ zok>`Za^H5?3*ZrA@j5=Z7M*GzxfM&opN^Z5ryiN13^@K|mV|Y@xUHf}qG4+KHU3~T zbsiOeFJ38lAFRNO49JOD6OYu-(A>5(4>2=&(gzXLm+hNdx0mH=v7CqDCEJc5sb`^r zOD&TJF%HZOf1vT0X0zvbm=%ajXO<}0TJZLK*Jm{W1F&c(`$ka zP@x6^O@_Gz*d_?J7pA!jt$;+$=lE20Cl%RJ4ktN5to3ClRo~ia9g4!?ahaQZ;~7{wn^de%D-OX9G)CIeH_4$ic4Y7+^iR2ZHGWJZoA7oUcv>l`1hZH8NUcxM$HDFFvrR= zx-{@z%7_G3>l**cSZyWG2zR=SxNv9F{5o~FZWz2gucT<^m_#|z<6p?$9Hm(xDxT!D z^ee1n`nL?s`Gp|F8Xo|#<{H&gwYSgHC5pP5DhanYXoe!h(ao%fSJf^V#EdokiS5pE z_&o<>ID#!}=4Myub<~Yt#T-<(Hf&&vEjO+@98~fyu_8|t?m8!o+_KL8CpHEAE_z3J+F8DK^J{70)mwvW1;9c$A z>GnG7kQ90xDx(!?iTLF^A$Vo3kJIZB!`0Jv;uRCi|8H!qV9_nPn}!cJ!ck zcRL;dxS5<#9B=D3d~A*hS1$cH{jGPTJ(P=G|M25Iu^N~Ag+m1q>k~ZuSMqA-EkzdAExp?+|hF6K$R)th^E~ZN?(ce4Rp4H1X=oC)?@)_Xc4) z>ZcOEP5Qp$PSo12bLb}J4t$jgSLURoHm~oKVyA;7r9SkmvL!A3GztHbkxraX${;=V zDHttDzyH(`S&NGnGk{R#S{^d^&Z`lYGbD~{Mt{l9@DPiU08!9 zk?Cy-HieC2YGW$y)7_-G1WWz{WN+;lB<-!jkyX#RFO&nAdWvFCMCjUKQAV0L=8J#? ze<)#Lp)aGLz>e?VQN-TJl<>4k)-Ir)J-8)Mn8&a#+O*k!oo$;q^Or3mQq8~h(iye{ zaHOGyS@6*G2h{_U=u)wYY+>x{EqCX=FCXvam)nTRNt@u>5fTlRF4-Z`5e`HwBH?|6M`zUxu_0 z#E<_qp$Y5_MaN<`Tf8*xi$TVFqY1#7_C;ZTaydP`+Wa0$EQ>1$Vl5tlW2A^@B)EaR zEeP1Jf6tuRnMflvjBZ5aEK&;M_!KN?b7`Rn#Sst=(@~~SkCLjnHk0C{l&+HbeXaI< z$DkE$-d|2*)mSD~K(W$2?xR+%)8TL=+ULt%Ins!*L;BIqrD`kO@rj-5-PmPQyMnie9A2)|vb7## zNz}cz;AlDUOFcJydEUxpZ_;)q6{Pbt(wSQ9TUG5}sWmWe2&24EfIXOQfHE?Oe{w(H z-4BdLq&v33{GK1|O&$zjx4Q?&Tb>||f5SNBdhpQ^q*f**nQK1%?gyl?`$iwMP!q5;F^rH!?8w;X(auzpjd@$&D;xtgT3fPj^e zdAAQuV^DGzjFXU=mv($5tKYT`lz~x(X>2-DWHDOH5qXKL>hv@zCg)OH8DjBLwC=mZ zbH%1M)qq0%a(M)3cB1hfLF{wXBdvGw8mQ2&6sbKU*TN;zGMDV=>A)eB8N64}sN9}Y zWXb-xo6qkI@d8EYgL6s{lGEs^aSp3upGQxKjHZkwX)UbryVWm5T+s32~a?#Z++;@3d zs^dWzEp2IsWSv*-Oc2r4##d`!ls)hR&dcA>IV{0L25H$H-4c(Q$;JquNh-zR5n22s zAl8+Eh+-tXo+PZ1|K>lu+X7GN-s*OYC=_g6|z0m?l>(e+$gm z5JeFm#5Vj%YmPY&@qI_FX%vU$d9GVFfsZra)KQ*2 z0o$^xZpkKZrDEE?<2V=2NU`d2(sA(h3>NOb(*;ckI*zIFcvnx-T%31&<~T&Pv&geR zYWs#S5SC>&3`}5fa9`h(w`v^^cwlVbpAG_4EGYKCqx4GPV9>t0VS>P-zms~dq@9` z6t#O&{BeKLO@E4x5Po80{f1$taje2w)pqxVR+$3?mBJIYMs;v4%$mB!3V!*5Ljum{0g@yQm%d(0po2nks>pHh!G6Woxr7SF|9D3b zL+B|8Mu>x*{nK~n5mNA_MJG_)%XbZtsJ!}l*Aurg{VA7wh3y^=q^5O-hX_5h^uDP zKcdoqW5Ju|%1zDr*Oo;q(4x4c&u(4FL8LNeU9yH$TXauN_L%}a<9dHplCn+8p&r=> zhF8u*2rXB3K4!I6cCR$RVi3XeR<*O2$i{Mw=U3KIZ*Rv*Lupdi^%f^iUiwni9?IaD z9zDj5K`Xj|Ic8iitkCr+#k#nqt1o}7GcqY+qLbwDCZ*H!$S2gOuTZ4RP(Y-ozd`G>SeyIWIze9F1PS(p= zENiP=8dh^MO*%r`r}#rNM?&$xD`(!;&HmFcYef$fgM+7J&z4Hc?+wDB(O9Lw-0F!X z1_(0_p_@sCkuq2ada-|%iDwXtx3g9%9E#y&1Al*Fx0KJqm3~%hZ8%VZV8)Tsw5vgT zbL255KBIHkNM`c~p{YkF(|oVM(pLGnlC-H6s~m>R6`9Vc+RQhnf-S4cEZ^?1m1}PG z;IN+P_QH(gtK_8C`Jb|>hS z!+&DgZYt50h+o5Yw5|Wxm3&?)z+yL_>Bv%C1gn>Ns(Is)RM`Kn+;yIeFta1z1@X+%KzH_u zdhxz?-$kz3!fC%n|+xpMn=Y&h?&Od`le=*+Am)_BPy`JWphHUM_~V%b~@z;Y7J zIq$BQD6DilQl?!zJ43SBV=Gh3hEE^7z-DC(7E#b93Y@*7KQMCGwqDE1NgCFRA@-mv z%0}bnqsR(|*QQRfrjSX^Gv>1{@(*oB(gC5WEYTMRZXX`zrCigj=H!XC6J!X1WtK~G zG@bxXunhJ6ql)ZpUYfFkDFW+^rf_6nRc+5>k$?F%zinjsInW|52*WqOx_ zZ)v0Maal!^F>N|yZ5RX$NFM-7R@W{u$)2b{bb#z9er}vPKwf*{d0a`Ue66x zmYBf>%XRl6jJU$Cuz5iS?2=ePNq95PVCzTS_mlR~wJH2sjsq$dLwuXull1r49{b*+ z(NIBAm+QBPf&PxKZ4;EM*06=>v>~fmu33g#QOG0LHcx9USGGmQF}WMs*06lMFW3T$ zaP1*7Sj7Dq=eg-@%g@`691(lF;Uux*3h9I}wJt*;JWpFOxc>J|wkGFZvn0Oj&4)!b zaMc$0mnv3{Jt%f5qp+>jac4ou3a77tqr9Yo)5`G4RT&5yL%4R zV-s{af-RWO1b$wFRO|NfOBWXYzia-zbWM-`KwQ70=*AUpoC^7;_wYyelSpJsi(~6c z+j33A#`DgXr;JAS`J-n#5qM-r|6jJmf%(v12N-eoXgeD_kq2Kh^I3u?t_WlIOFI9N z*je1LYmK1w{oble@Z-5j-aGaD{mBLz`ocgofXpj&R_y3bZnsr3;wsE|bZH8sNZpJ< zaOdoPcWF)J0(y6`&^Z*u8tE_-kAUaZhYCXvk`ZhvrO)_OrL>PGpw5Hq zmJDkS+TD|MCCh5NIEr5)@yZnu#PQjb@b~RE;C_tClPT6`E;@-kd3#g07?T8*#ysL2 zQF256_3`F?L=}+){A1tjqh*VV zwi$;Z>em=Ne{MH>`K79kF)Ab0zti+A&WPaXpm-!q|d3{6cx8qvT_ z0T*L$*l~jTy}>R?o0TgfEo}o>=@W8R+e^gCZc>Xu?716y8fH>B%*+s0aeZ4d{yM}z zKb#xEV!LMH+{oV#j{an0(v*xTrGET6hS~^`ckM_ogG-zLlZ6lu+vDJALFMZ)0A|769yC-vj=v zDLeM+;_W5#{C@_`|Ca*rKS*zQmEhjW7c8LQ8>=%g0)}dYd?1d9 zfwIpE-K;Mf4m+6>gl^uK#)uT1jhIqA8b>C-{z2Pydn}WW=KKR;T;jK6gK#X@N;>ObE3(5A8dr)a2w=&ev?x_=d*|b{|!pF&$jIJotLP{JeXMj)^wO z4Rg5k`Bb;`E>AMG&&R2oR-fieHoV^}M1nmF&eRKx2`M9uUEkF|EJpk@ZrPA!2tTAW zrgB(Jj=|{G(zfG@UYw7aFIc2Vn0v~E=rG;W65HZI)r;(AKT7T5`{tQ)$WPQBw!v0ZS*jx+%xrAhTdBipr=%e{a6oJI zY)fwG(qMTTFZu*t82~g-%HohLKM@81WU?Dr?}hqO>Kv6IO=yxs?QNoIf&k3Oz#lHv zI>)ZCI(HjuXRH06`2a%L|R&gv<6(1in8i@>PpBkaFn8=D*nl?f#zDK z%Av*t1sKxBuTvbf5RO-s6t(VsR@;|6e^%S&!B7=`2v0-{!rGq8?MS-zo`zicl%AA= znDMLqPUL0nL-p=suzT#z%PxP}Y`wh6g9d0$stlBUFY3mHiEF)Z7We_xyQE`RgU_O; zRr0_RfvUj^LP6$Hik82n;~o3a9JxaiC)5){E#{j2$Xu7l$Dcn60=l2wn%ovI1tb!p$ox^}7mO@Pk5e;oTB<2{f4jVX6@_<7Y4 zljoXIJ-<Ds)@GCN{#Np{CH=a1NyKgvF zVc|U~JkI0K)=WiLqh8WapIk+s-=NzFyVynFi`&MF&_h}JKyJ}$MY!7zX0ToXLND|K zvClG0@=zk;kuls3bM5$GyuN~=^N8m1aV2kHsuBEJc$*OoTR1Fu8MC02{gN+U!6MeE zIP;z}c6dVaB7}s{)k~1q`;XS;2<0>G0@o{_oY&+HHYv|x&zJe6cw%ho&vT`{tibDd zOEnD2cTZB6jn$zfy&D<0R(-0**HOmNc#bO5Rg^N*BF>DtGeBu6McOmXvLan4Iqz6Wlf+S6l?5q$D>!V?>L*%`yism!j z*(E>2Z4(`+1kqA2;udPlGM-DCoH6Qx4hbgincRLL7f-a~TMwJY?`HYwtqDC5Opk=s zr^rSh;(L}!g}#}BHBT1Ol_I+g(UKsn;|A10Ln9gUScTuF<7Hj>Xh7$xnKZ>QPrFbx zwq*|8oe#i|1e}?*06F99F)FT4;Hhx-h766h-4F<2Uu?W&;BXP$&s`oVH+`3!`4J_p zQDh#S?&=t+Fb#*kk-Dzx#*Bd13P}=g-u8X95^9Jh|A|``y$ZYA%4b@VpUYEd7T8g% z)HIrBgPFq=7PaI;jBHsA^W-#@C4}GY*(4*!ryCC&3ePl(Y(mPh2dQs4o0$|f(~r?B z(aWgtu9)oNF<0F&@R)jdsbgWS>!4j1!6fI5_`z{jxU_0J%~iTo^hP+J~=ffxQu!9Hd23SCkTQHzg2JKeV|MBnFCYbAR5d}L=*aqyo~X{dZ! zcN9?}>XibKlZxg_dg5Rp==1RM*$UmkfPTS*O1ypoZ zc)o7u%Ly=@ma{Itv#Y8uTiR10!NWJj>PzforoGv-(N%*X{f}qQ%cZslUB8hsGlL*R ziqbiYXZtzbz}K@oa(C2;61}jOD@lV;4H`rWkIx>w#-7A5&Fu&}7?(-3DN}QLP=n6QTx+XUKTd)jG-HRalR*7%?*wHRz;AWWf8Sx@nhWk|Do+IyW;+qZDAm|1$TFMw-6vW z1PJc#?(S~ErEzcET@u{g8}~+oYtni6@4fFc&Wn4`d2{dj0zJmBx>l{KS#wUC@-U#F zmu0RuliW#c&@~=o~=d6>N1caCxi~^BU|Ozcf3J;=T~E%_EZ>!E^^7qu%aS%{Dj#&UHm@Hkj$~09 zjyyGMuI00qayw4qDn!p zI^D+;!eznWlxTKO4I-qvzOPt{_5GV_IZjngs`4~ZbLi_F12}q!1q1k2HTxq->@Un7 ze>GW-6h1TyAG;VnT9+47KIIq!Z_;aurdC}usMDztn7KxLGoxg^~ z0jb&d`6Pa#9V=d8eJ`Wmu}N-x9M1K-3gWl}h1NCsp7}~7jFf!>QxT?*E?TS6de);@ zeQmEwD;!_15jV)#=f%kjdVY!h&F8*bQ(${r8#osdZ9s^d5q@6(e*QAf*NpBYTOg(+ zdUIqX=lZ)h4!LUL4qxt5#G9~B$Kdb*{tU1}fPV|!RaP?pnTD?%CUDkp!_DaL;kUxx zc{WMtmfS9Bt5zhghCmCHJ($T4;>t>wQq|14mDdkHz;a9hgyxu$O`+|3oKeo0n_Fch zW1`TOwU&@6H)9kpcxKhhv9LP5f_gE6zI7zjC>67{XIn5G8DP#kP;%=|9LQd$#2Kg= zPlYN6=3!VdSKzVFg*mm#|KO+^L2zO6w2LQ1vtSWza-c*o2^JJNz83PUIk*)s{UUaj zq*-rPeE)7S@MPj571(m{QU@NCp<+&w^EaU^;_v#=IALIWVH*4MOZKR7N{ag?Nj<9U zuwrDjE>JxcYn);D$5xVmecU0zg9im?l}x5<{J{g!*q8yGN??IP8A78b$+udyWF3-1 z$nKJ&+-s8uZkYPRPtRsG0B7>R#RhVJ_@u68T`sjq(Qd;qJ-;%SYx~p&2O4~p$tjxr zC4{l~Kwt2yX%}i>;uJZ(NBdNu^j+*v5$l+1-gXZv0tc~VQ`UunTz_!?>f@D8Th3Nq?PmyQD8 zODpu(PFbp4JyN?_j2*>0lR6#ml8%IQp-l#fbn<5FS~j(0%wjtH0zK@a6wG?^8EcUp zlWS)HgocAw{3@WdhBsHm3v`r)_TtgT)K6Kb6G0q8AY?msb z=9E;C(_Zs>iQ$O87q9}F_~b=RppDMBkOA5+XM7=iIt8_&Y^)4zs5;3t`)@U&>Spd6 zlm+g9rU2fJ>g@?9$cY3`4ZC$A^!$pw;%&ip2w5gzVQV%FyFOvnW^5%JK^GGeY4GJqc=K-WoOFf`;(_3PxmkwSP#Lj z>m%jzn&_Ub{yM24>T_P77xw+HV5je5-4=D!_>1@M3ji8XGw`*HUO(_}5g#C!J9((k z1P&`I-*t1Z%)kqiPkSlsn(>%0V9^4c;ts#9RUGN#GgK5!-t@c{A<`+k?}Uq4x9bX9*W^*GA}eZPknKtbN~)tBpT9pdabcI9Y(urzGtI9zv15rYGZJhD;TZ zJl(`Mo7RmOu)ZH+4e%~g{v`Ik&meTLmxiAkD^;M$Ou%oa0gI8X^qlAPzFn|@`1}%%T$>!bignD~lup`}{t8$?RxDGeZaS7gr1iUs zA4ffRsTA_`w&orjco#x9MmqAy{N$foIrzOA=2N|Nz$sC8o`U@VE9J-2Ffnw&x{`_n z=j|e0;`1{K?rP=}=_tt4X|QdD-#TvdF@MRAcF5hOp~npSW$8CZ|41La?>^V{t}Ufd zKbS$nRU-zyK9{p@6+KPIbtHAedsd8pMyq55AXkTzNbR6qNxQzO)68vJ@Di~R`0Z=h z&inwv&xs=^=km!l$jm|Y!$VDgiR3m2>Ph6Wuu2wAG5-KdTWntSGFU8|Sc7D&Cn?0r z>beSaK@}||YEf^)v75?#GiQ4(t*-67Ma zKQUKvaXnbZJb)h>@o_R&RR^J=S%2vlRSo09#@#kt6*@X%4A<&0#%mqx8swAlAG0I2}RA z)0DL1sp{yt1$mUFl9elWM!(4>g+~kn;x?n}Hl(zSg)n=DNN755h3ACBh_=!%wAo`n zR{3V=WzxV@zKEdMN(`4_$`}26nqo6rUtly{WFmH9GU~@E5hC7{O5LQLrrRz?B6Ft@ak4?NU%%qxzpyD}_&8 zGsTfDc{@_Md)jT{wp_o;p-GH6`XAMQnKPt9ejgL^#;8@6xBA#z*x-gpu1H+D*}xZ7 z8!(0yAWvJ$j7;tMi^;4s8rD?4(dd%YBm6LPSgt~-MMW2t1B^kflsOOE8wCI~W~c5O zGSJR*=DNP!mhu!*FcFytwCjFIuHwu(s1bqF zrnTV&e|#Bt@kr6nWYPLEtu*bHtfmi9e4?5^8uxHWF*xTcW7$HRaEo9j0c`%Kb@`uW zW&eiyvB_ZHx0#`!k*VeN$2fjUMq_g`nQQ;6bwP5qx4tnQOQlBg6+z-ElTT%#?PBTR zvK&aJL0f6DaW0?96M=gb0pFO-6-kARNX4o!DwHdkz~=!PDW$8`=~Kcxc+W?|rF&y> zYd2(9;^m8`(^|o5@1KUJAp6}KO>zSRVH_KfbEgK=WiSd57GA(m{-(&(a ztS|3BlMjAp%X@R_NBpt#DK99vSZI2Zs{-Fd?eQi!& zBTf*w8Z!%kB3my>A%~GUlxi;no20RZTJI@+qQcvE`Fd+kWv!C2W*&Z|#7_~%b+vjF zqR7N(o+Cqul%M(Wtb;De`8Dexi(_HDJeymrtWe5}41YHVcUv2nacN;iQLKBUQ&QUV zIkqC7T~}zi_;0VQb+O+UTdks`rn1VSARB_SY=!snSsbK#M$jf3-&g*$wxcc0wyvV> z%-p$V8+7j4NvCs>9!8gQ902PJrl_F*i~`l7b43rTe~$6KXq#}=BW?b|$7kO%@~%PV zcmM+I#%`3q<+L@KB2^dqub{9uws;EHxBo`oux`9cfp@IEsoVI~4?}&y)KFYyN8v9a zrguFEtz~!pbEhrmvJrRiMSFBI^ps<4tdHnoxbK~@YL6Hs#~vOhF-ql$5|xeHD$7*E z{Zn}H!eAEf18YkTrP<{5{0mVp{lcG=nxNT~I=7yqIpl*Wu1@tbZR>cwgYLZv zZH0=~5*2*lS#PH1*>z2!no`3+lJaGJyH%9KB?J`0W#BpUR(0w*E(21k+~aquc?yU= zS+_fIme?*ov`26t-gR;d@bS;XnqfWSJqPhkAWHte4+XEpFlMv<-D+_298s>f^T`qR z0xP)XxAhrxUv=;N_)*=q+>bx&y<9-;>PV=hs8;^+YWDf!5?7v>#PUyGp-c6>BK7kKEP4M45$Qbcl?7bQlT#SmI>aYh| zch9%foz!++PKErr+qvs-7oS3M4o#Od242flt&?8(#ZMS3_GAc5!_5Uezh%Swc(fwA zqJ-c288{m=^lh}FtAuWlp6YA&UB)PfLtYPxFhtjWxR)hG~l7xJoOKvheBt?$&P1)CZ1Xt&gGcxLafi1*p zOgFJ9>bsN%N4-ZE#;Z#Vjz1k;HSE|J(tLWqc^(z?b3G6GrOG@`VlYF+gewFs*9Ucn zy|zO@zl!VgYriGN#=Yo)NTrq)1SKhr>1BwnuAyLBiduNyTnyFGHd)7=?iN@oRI&a| z1|8Q7t@cGC&*oD2HW$nkk};pKt(L}?b0E$sTboUIU-)Opnv?pe@t4b(?8Ss7l2#Ra zLktdp^xlf!=1dh1f-c$jfoUajQ8htc&05M}4(6+DwSQuhg1o*Nxej#!H`zDC#2Tjh zfe(_GKbK++j%<`FoP&HM^;MUv)KSovYaNo!%!%lUx)z2?_hIR1onmGB23jqZ z%VzS5eKjtjH4C|lG41ZnG6JaH=Q$yi##4miV-H`N+!z)4Z*&(HtoZ_e-7s&~P=mZq zn_9wDS4GLstGsNRV{sWj#h43H>0y+YGNc#RO6I!aZCyQ59^72&mckJ3q2qT9Cpf4j zF%ujtgm=ieTz$R%f6#Gx=gAZCFZ ziih8)W6GP}jU|Kc{fq0p?5&A(1TkjDJz|Q9d^+=|eD^Fa%fSphJCI`Z-Tq`Aw0PwG zGk3X4j*uMLmd?HD*Fq%=X?-LpON~NxI4V>m?CRknly2W)*(B!Ajb`K-qLX}=x~)jV z#c;@Y_M2^n=b9Hn?WNnfUZWt|^`{c8KKVsFKGaN`-5e*RJN*kjpk_xJ95ac2_K9Un zc7kKyZ-GnWnLOfZv1qRP!v!6Mci|t9m0eepQ=B1^ua_;TF6ac0tWCgWYc!cIO3Byf zZX(yNyM<8n_+o60*f2^2`m#^AU90QjTjTPCyrF9U`qcpag2n};u5-a)GVVE4F6Mg6+0a-mX znG_||3l|6-+e#-?wkb)MGaWY#Wph0}&`|UpH%=dNc{F!mDmvW=bA&n8iUK!E9j4Go zGg#z#1KKEa-De0u`7V!w6p4PJKF3)rFWF^90kIljLwV&Y6P=hDq*JGCzN*9W-9LCI z_RTu4R3#@z<0r|nWY$$BkV4P1wD|SfQ_5OEIfyXQAr_Qf;|;@{+aQaT18CgdLOP3? zG(0!!-3`!j5Cu$v4wx z03(RVc1%}DfT^`w>HNC;Dz=g%oo1AQ;pfV+UEK)(*WdNSVxc4!Q@kHo?*~r-zmMjm zqU=~k3%K&CyI>OI@0U72ajsv?<&|3VHykfL5&{Gr+-6Aq5Zf$h@mbndzt|WD8)^w5}C>YErwpZ2j!V%*M6D`RP>P$Wi9f zX`S}_R%c$a8Cl^Foa+?pLP|Rt|IDDHj=*x}POa-)2t?HTm`76Z(W7z${h?~AiK)x9 z>tm4dg+B3DuG_Jot*Yc#B37P5jvdF|kX+`!cS+M$+rry{D0KmWMU#Ec&ln5S!h2jn z%Izlyk=bIe8wg*6I>j>`AumsEfX%1f*qyuJ(FVwtf}Z1UeMht-yY&|p1I8Loo|A%=_{b_4KyJNBkQt<{3496wLFz$(?rrv9NJ-2(wV@dZO*o1 zB>w}i@w4wpHqIo?1iAT1e5JNddN!V>bf8j@kL#PpoC`^yfA%PfB^|eb={H`dF-Z&; z4n1~AZrmXUjiOFhq7i7_3NuDW*)8AAWBo8^5nfvKDyG`1YKi()$YWL#f?bHuONn%# zL2#;~Sde{hEN#J9Y1hg2t@Sfnkt5Z_6$^ZJOd9c>wa?JuREtg%)07gqP?1*td|`F? z5vvc9)OEl|-qBnuN|cGJ@9=Z#C@hRkk;Sa30GDKf;WS?M4rLxgk7@^+DwPl+$;b73 zZ{vi$a^qKpW~L_om&P(#JL#H0s-*zuUJG(&I%SyK6CTbjbYtQe34p1F6qgEAA zw92x1bpHuol#nKCrF+v$3i_8LCj5j>#-@w}kkJux@dN9_H*=cHALUF~S|K!ye+LDS z?APzofEQ?5X#&Nt30r9uUQ6Zr`D z8MObRpZVVa`~PWHm~aq{3xnS)2^H*|N@4Ij&LUlEeN#O09f?t`2aH)d9zrFPA~Mcp z0hL0a6X^cpTBex5$UG45<7T29#o_0OBj;S9Qos|EA>w;&)nBMs0)WLxty)T8SGDY| zYM_+P)0Y&g>EN~h+{8Y9%QMNbr`v2@D`Z}sUbxxmKAX`h%g?q`Y(FmsN21B0o9}ez z+B?a?X)qeQakfQFP!Adl=hn*i6R0Zem#&X`qMDE!4;&@%kjB6x4J&feS6)Xy1dDJHI)zlO$O=Mr_*iGji zhb>F926>cc7^to<0xY?_vm=W(3Bb{Nf}0;vb^ z<5^SqS`PIIMo4g5HCZ48`Y~uVjK{{xRz47(c|9nIcf2wiGLqg7>!UVkLXa|NpgWEfuZ_eGZ%^&j`b;PZs1 zbw}>y$MN9pp5{Ftd_$wvG;RZ~HSR&Bwwa%r29MoP{4;z9M(xO*J9If>&)>!QY8#HV zg%O1J3!Ydy>ltSI9`{+l>u!Q#3${BKdhZxSZWwY9j{@Y#A)Z$zj9(wl@QIOnZ!)Os zMXyJj*F(Oiev_ZO0Uk@10a8H_Kg12 zd9Xn@g^OKEY%NDViCpZlc_g0`{Mv389XOr#s4iZI;vL{9BD^x=9RxtXo%F)FUI!BU zYaib}{gnQ!5`;lS;B84Sw%}0he$c%9NCjW;QkE15;XE|_+TmG;v@jF;$(>~CkY56> z&Dq!X8)?72mUyo!M>Kjh&W`KYPa26E_nZ0souucE-ehOjrsh55YKBkrD{S8M=0=kM z?;awx@4=Wf)OZC9!G1k zCQX_u*8nQ|KiY7qrJ5i9eU?=a8Byb|;vwfCJ#JAWbV-+Ju>f=&l)xe-=`P}wE+={` z(2}~wHw>BV*b~m+^Ty?LE>WL|ffbF~IMrJr>K54Rw550navH0shYZb{iU@3Ki50MU zl$o*U+x5Ca~S zybRCz`gmenvw%FZg=!r6JYGagoC|EN_XQecg5&E=Ds(c1iDxXKk%c_iyv*0@ZSV};3QehYE} zRdS_hK_X{dj00t`QD^t3IKbHy4Q^B14qm&#IQ@R#KekB+gN@YWx;SxdyP$CO4S)tA zKO3l>?u_y=nC-n ztzz&+rXU!W>m=6;y30#1xpPCv8lD+gF2lrv zKGB23g-I8&AmGoD3@8q5B@!N4Cf4NrX&LC*bV=TY(t|eD)DTZ@=<~>IqFNy z7`ffSIInJuCb~_D$KS@Rk-*$+19>o&wIH&#VYWUN(uvs@tg*x7S5B+d zJa0Pf0)X8s|4A0Lkbrf;I;C!j6FG#iqSyi17U;YrT9uYbNg8{cTK}c;RKHu}g(SmF z?y0gQg-*zzaIAlfsQ~in@@2D+e^(ay5is{0#AB4nG-n&qR8P#m* zYi8yb0kEvfkdL`g=qnbo$j5AwGYfH2w!J9wvdqzxpWw>6YEW+*v#pNzRA3D`XPdZe zcz)D9X?i<8XD|CB@#fI9FO;Lviz6pvt2W$QX45f}XT#C2XWf(`#;H9VvgB$1Em(_uZ79)*H_(3w1ziK8N4i18C4P&TT!@ce-tA zqj$?=QUd;x9MW9P8PA`4#9HI79E_dFzx3&=FlVpEFVfRGlTUa)=3aWD?c=Fh%AD)h zWNe%V>crkJU~iD<<7q}}UDs(&$yMPtUuv#?wyAX9z4Q&IgLe(Bp9cR4UKD!XBxlf! zBdGWtKU%Lk$$7aQWxArj8<~A`y>R89u*>&JlKpIY`jN}o5c2Fs0;^$Jlb7zK z_j*8@jYA+BfixG~RK4CWARvq-eI53L$OIk}DDfiL5K5VATq_MH^0%lV`0CsM@)MVX zNK8c)vcFh_in%B$3zzJhh*TJuX5E5C=j`Hz@-Y__HMqiyX;@%tifXskj*EpE!@goS$&+Y@@_jDq~rlcl*E#C6g zHnFk6A|+t-H5PVAvUc9&qg2{7+vhT-FUZUWY0!%>jD%ydeVoZAn}w`T z;6a6Amn;g@G8SSjAzPD0g&qHW*|TLf9GyjjZq+jCuW*x^0rJ_}JgO|jmE)s6?2+V< zY8txg%4TPnRJ-h<622cDUYAVxat`ErAP-<}{LV<+m*+ z)eEe)TZc>GGn&~Sp&1&>`en7IdmDCRfX?O&UI0;T?lwl-$Pe9lmbk`Kt-RB&Vo&6Z zT62?Qkpb;Dl{Ut0%5f#s7OYBfndbcIcuS`g-jeVP4h6wWgTi9n$;1rC^H78dnIx`^ zV5oly@c(Nj_2He^==I+b8?oOTh=0I!7(Dsh=mwKPC=5!qO@aCS;dmm!SRU|vk$4iO zOcjd`Mwxsv3tE@|`n;J$5)bW2Pd2C3K%R)-D+{9f-c%8EESt#LBHcoT5GT5O7MAU3 zlw6~(f%Wb2N`X`vR?Vx2?OH19B!G4e_fosnp?Sjpjn`4X%drT=3wS);E(^%XPnXrS zpK0?#IMDD*I_n>ZC$vQ)(YZPtcIKC80|+=-L>TY~8Tzer9}FdZIX?pWT3hvbAbk>3 z#NwM@DWN?%?#l7{wZr`7p!@~IVezBMsy?5Aq|-8duq4)AnZ$eesFQRxF_Guq_^Raw zG6MI*mG5k7wP;kifb`;O)nPo-%BZXNw)Wa#_NYcJ(Bf}0v}|gyEv9xxh*4|gt}L?d zNqX4RG{SPI=8KlT%l(&f1G7g$8C?s4#Hf6~QI8Y7@VY!;eoUc97Fh)Ah&53V*UBhW z46OvPAd&kPT;jnYhD)O+iO#E^EJm4~n(_f+O`WK$)?yNA;gh-P%NHBHqwywKVVa1w z5^b8LA`!ipz{%CA>Tl_}zL8B+xlaDwS=#0##B*Yt;tTxBcwYWug8GS7SSVs@YJ~0c zVHT2D6se`~w$1y*md=-`ShTL=sMxUyF~7`D{)8H6m+?wnsRoz;7fD1S5a&W*UdI82 z&55$~<ZYD^am#zKfJ1w+W5EHRTSBgq+zM1-|fdCIR8wX^#ZB~ZZq z)r+|HfqT}d3OW@1cDFvl%0!4xw0+^y{`e6P1n6cmz8%=G2ELuy{rUlgfO_4r>Z@bZ zdsFPg(Zsw`|#mHG3YnLzP1z^<%h*BlVuKL z9IAP$9wwq|E9Xhg-3*STHTP^Rt75q^y9)k3g9nxc);i|*a+z(3dBcx?dQ>JN9>TQ~T zJDgtsqWrnf|7PA9JBH8MFNlEy${+{lWy|SA^rese+Er}Lzy z9YP(!5!%zX8_=9^zZ+rI?L8^~DYs?u^M_f1B`t(cMCQ#q`CLawzTS1`elmZ_ZtBcX zyKXu)l-eI)6pS8IT&fNKJRb%f{~704-1xl{$y^}38)X;o_xn5YFXmr;-#&?){zjPU zdF5BwK3B}-#J{YQM?6n>T%-L|fW+}`u|@REg!6eU{a5I*&<@n1RyPC=J&?q_0En9L z=`BLp;un$0$!`w{k6I`5zbINzoU0W8jcYH;siNZ!gi?f9g;2re4;&bOAPONZ@X$tl@{$NBavyBxCAxfCF_^XLy ze5$1S5m$Q)E!|BbZcg^|BLO!WS7Y=uw-#Y5K|WZdK_$w6AFpif3l5W7gd^%9Sbj}b zVgb`H&AmWbvtlrW(Iu2oy#(_{R(`_=D`aM}w{Vqv;W{ zk?bqRKlrkZfZ$8=oO6(aOaD34GM(egT#2Nrw-YujhQ zrINF#Z-FbRL%ZCe#s9)PVlta>A=n(CLXnt~JPuPXT%tkXmS|akGYnK`n-DZunPpkh0ZV?KSV|gj%QBWw zu~L!$1{znl7d^7l@INb#hHV8_(dbx7BY))-bL1x4GGY>p6>UjLiXyut)i=KM zUk8?2;^yLuG8U*H@R3r0^U``WMHekkldiUwY{8BkTW@9xPpI{B#vyEBy<8wdu#*+! z^rEgC{vR-d@E=Az?0ezx{NEOie+EwfqLjS17UG{nU z_Fzt^u_WqmMEBrp8u@fa9Xxj=Y&wN_db<&p8153~WG=LY-#VPYxm+oFB2i?n)6Y=s zMnYwXyfjOd;!5bbF&+mpp%~q2!`8_)YmpMHh)GLGc7U-BMPq^Tc*i9cSrz**& z9MEM4+Mb0}1qk-N+MXRZvTGLLK1w_q?p)=g8=bgc-c9q@{Ur=oy7{AaD zMi*h%8j(#PJM6olR-w|bO1fY#Y|XSHEn>@)0;i16&pCk`$yw{cok~kZ_OMlJMpkTG z3pn3CpLARoktsMX0ExNm%Y#x=L#)X*EaISSrx33zJ1G5k{3Fx zFEH)aYXaB`TNJN`qFgkW(^?m1_yfjR8@Da>aGEav$W#|ssSzG_tyFDX_5DWftZBJg zp|c2hezfB#qk|BaB(w$!+m<|*p>Rg@6V-62;-7a^Htk=nySN@Mcysi+7c(~o!fm8+ z8D3i`>hvH5+3$_iCQemlE*~qLwecL--_4q7kX&|8@%^SBjuu4asgYn0Scz;ONGqxn zoV351W&5;#Kge*G!j*sG|b;js_2I-_k zV8!#((Npr;m0u088M5-KcAp4Ob$DKR<;`ztH&=yl(&6gUt;i3g=)sq zy7{_-+I5hc^U8CsTb+~p12uT8#O(cLHftAyJ@c;4xgu1}!K*PLgG zlpQ61r96~vwsyrXQtk&}s`j5dkm0t_1(6+F02o>l|J^{#ll|8tau6k@j3Im7{q&Yhv#aZM+?Ew*Mr5B>4Sy82wYJp*s(w8n~j+W z5l=OOcWV2*nLZc(QbMww#FxI4?WDw6xosz)`FZiO-kUMpBu6EhnKOhV3gU2=jo~*Y ziB&%1GjO;0Vj0l@v!dWhab`RpD8NiX%IL;ZLyr5`Q{oMpGh*M)kM7l z;(!`6YHgINNx@IW-MrIKqkFT+#Sy-F|I$@M+|Z^eAq>xI<1Viwc0)e=?#J ztL#zJvyBt>G@`t~8PhjZgzr!(dpE_dCL@XS)4XMhr9360wMK1|j#o*ZZ$3Eopw!-S zeau>|Ico>Df~TTll&uLfeO#)7N$CKnQj47(g>y_>uQP6NX5n;s_iX`jQd`;dfjetT zkxZ1^=Ia;~a$NP^Qp2Opi1YEc0>|-6^W6%UR2Nl^km)M-&v{iI)--Y^Bx;pgBel_h zU(mVP8VZN#Jy=l;9gwFodvU`?@0mWsFlv3c(oiNBv`=LVO&j(#XBg;2GADP(PUYc~ zNN=q%>^i(2vFkWxOE{RlU#&ejAbl9qTAmF~z zZq-8pr3*b>d~HWZX<9}hs4*T0%DiGFS+srEV<$(DCeUfxtIw3w4MgE=KAv`)rph4E zxiAH$DLIMN5IG<9REwruUI=+AG^Wc1q5Bg#m`$}2KB5DN_pWn>6VCH%dz>wx$L$ab zK#$LAqtldM`H}ef9>Z6XAs-Mv0{BiYyDdr($O4)*H^vJTei0b@jlar7obN=FJ8wR2 z*UIPw8z#`>e~X#6GWN7iUoo)vdl*fzhLM1!Fha!A+B5%n)|M46!8%rGPLZgwZ-!r- zQDkvh2HcA+F#*m+VJI(c#Asa}?Yk0Jjhcm=ZhgT@M2?WgOqQWL%}>e5i!2Qgy;>{z z!tbj+pE{+newePng@2SL78*m9rIyIBEukCxvY+`aqjERoiC3T~iPO`Y)F-OwX~UPP z6Nx^?)HIu3Ce+nazetQqh~BI1PsMQw(xYr?fyaL7THXwr3}X?l19D|di09F%23sO> ziBA|r$0jQQ9eCmiiLJx2%h48$Vk)U(vt$ao7q#4~k&HyPj1lf)JgPI4U^Mq`_bIt=62Q`rcLcEWV;o*rNT7Q;{MEyBo#11)+rb zx)`5XKYx_S505?)E0LHpRZZuqp^PCY=T`AGF}~R;>sXe1l)oMM*W4#3hMnH$@>Ze| z{YN|3x$XRy#s#jvsr@Sd?IE5iFuzmevHm)t>FCm19)fpE!0~&GU|u z4qhr)M4LO1!DrGurv=%!r>89%c17zjkC-;v&Oz_G_uY`Xb?@D*zm7e_ zeILfL&sFlKNmG0_`g~SL@q2}TbqWSuE?Uk8h;CI$PJ4PE8iKm^UC-J6TqbW21@;Qf;jw!)xc zd9kaCY(pT;^*xy`Z4>4xS^!_IDbXRmlnSl0CGE3X+z|Etbkg%rak2R{`!pkDK^JHR#*DujjM>MK}tg4}Cv8v`}PvMLb!hyfC5Ep5GduPkXbT;}$`_nD6 ztv6EA-9)we8`2X-aC+_~#{SCu=6pH@=*ImWqMK$ZTYdmYEnuY&9Mp@`2wfOe~wYVUQG}d|EJ21nT zFg#{Pi9*z`jAy1~!V*hTjXx-K^1o^TCKLe_O9s?16b;lUR2dW$6e=1TDmoe(IyyQg z#z!nnY+PI%JX~BnJpA`VNJv0LM8(L!#KOYD#mUCUBP1=Q@O~5(m6Vm0zJ66xQ#1B< z3knM2n&xs#j&o0m&&gxIV`LAEU-rnB+{{8#@i~ko7 zA_R)_A8CAwNUVPl66=Pd!3Ydopnf#EDey{kQtu2B zqzpKNzHmVmx@iEL6LL#s>WR`jZa#oBk-{KfLX#Y-K9OuQk}FySNh3--Q>p&aNVW_} zJ6Ee$>KD_fyenKww2~|j=x8(F$S^M%$rEa~-KzF#KHlnTx7(=?8iXgaYpVIy5{8MN z(VgXJ*8TlPdPO+f$>K*Qv=v@Yc7yDolUZb)0FjkxYsGrGXE%|f)o=mfsHX_AtHXFZ z<4Ic&v76KM4?%>d3ru&r`B6D~{y#(>Zp*VeGG3x2o-XUFHdgJuq+VWIJ3f%8Cs8tQ zpS_b9J03AoAHSnt*;-y=t<0!GTW|EMX~!5P)BpeYE#FM7kQWX zaUIDTeW(9}NFyO2#Cw<^^J;CB@+CI?P*wtc{m}R;eCJ{EH&4wY`QLKuv`ISX?X<~8 zj|A@k#S9K@mIV>q&m5>yMxtDo#7dGp*Q+#)d{00teXgs-&`CxhJ0hd7s-~K4?#w=U0J)}y5K&>dq=PK3rYV{7p1A>rR`?=r5zo9ft3%EGXRBt$ z66WPhdEX4mas(nwdVki%2LMU>mGH7UMm=7O5z{0}8 z!NJ1A!6CrIAt1mbA|kw7t0E)6C)_`IMo5T9O7fm(q|{VobTl+7B_<-Jp{8zY zscCPm@9y-TUY5cB&WX`3i824qv-b=uo*V)$OjNDRyrZvo$cpRN*AdinL^<)OJPU772!XOM5 zwhY#NVKDSeBqOJH(p*3NTm&;EaymsZcs5Knm5P+9xKb5}Tf$ar`@lFCrrzo4ysKfR zT}LujwK>sh3u;22Z40QzlGtb?LS5?3=?~pOgcSjyeclU;MuA$v3db;&2u7w7r%{RD z>xb<{L^Z+?*I|eMkn|ZxCAXt6z033(yAx6yL*#dFs>m`B~;9L<- z!aIdpmGN7#7%OZ5C~a503OiH&PfV-XQl0T&EU5zDMQ{@iA&ofmO-N*`J)zk3HQ&`h zr~4jAG@AdHVILXHqUd$I@y<^IM0~M$?Hj|9gufDr_L(A`=a5OR|SO)vO z&ryglbl$rS!7X8k;kdzd&TS3*AF2ci7(}{uLr~E$lK5oBJO1le{byfR7seF&|NU2m zK(W5x_ZY#S!~Vq~Y$%dMLBJGy?^8^rpm4cuSqNN8M&t26#rhMtmdZuYeys{$b19oh zW0M((e{rFkjwL|ZuF2*&QBD$rga0Gw0+cGo^P_^RbhlB6fL z{quKSZk;Aby71Kn238V8dfhIzgm<|}j` z4>A}%9xp*Z!*U))v$-Ai#=igMW6NPW+7j{m9tg-~xlhQfx0{;j5j4)-s)odozblL1 z-GUdZpOm$QpPy8>3P{Ba#gyJSZ}6>%3i{0coVT`Z21`LR>;^$IMHz>l5qhVD9Ty=` zI-$yg3rvfZz=T1trrstIW69<3%)wCW{TMv9HOg3)I(|w!c4@7``1IC}%uuqKXfr>) zN3dxO!f}UbtR&a5nJv)*gL#+?pN(k>+2wIzn)n1Ys^umaXxS-eIvr= zIFhM+oGP27YWy(KDsq%M_nj71ZsMY=Ws$>dGfL<01J49j3qrTGPK}WFvdWCpeL2jJ z>Plnq^Imuy{|+y4L{H)?HYg3Ro677NDx(}}{%vA$%iuUa zznLOQl?6}oe(>dP#ag3SG%MO5ex^B}Xr`mHX$E~gO`2QR$T&MfwJm3TfQ)aKdQ`#RD1G}FBd{3t4NSP`|#p=JNcsAqeD{i}$=!z-J| zL&wfqfFUa(o|xHzo({y|WHnvvStdCMBl27iKS=M+%kl4@=ac%skl#t2TvOclcOkM*PbUWZYj79q;W4qySU!x9oC?`tCf%D@?WtnC_OW3$-Y3DN4<2w&Gtf^&Qc$%*W! z5a=e+d#Z%&X>3&N_2zppYAFSR+?WK>ZBn#iDHZJ7S z|M)!Y8iu!+=Lq7HVvp)#-ueqq1knt-Vk5LVkI}J3%bqdm?~rQ8lNTMn{fr) z<$@I}gjUCAJiG4luH!32PUL2NL3jDjkf{o>r}5dq*Si8JG@v+w{9Gu}eIcR}Py&Bq zE>h^e2qOU~MK3=et9xHeFb$OEpO{bdy)U6atCW?IUq}JmmomK5F|;NYGP>@|I1(xq zt>hO0p!;%x=}Kj0g+ZI5d;wsbm;Ex?(RlPx3+nod( zA`jR?j3MXU*#F#}xR<(WMZ2yQ5%mOra6hS#JwQIX_9U%ZIj#`~U%N8Jfrt~j(xmANBfNPO07y_I=m zIqDfoNlH~4U0F&+79V=63f`3%wyVBz4lSIlFdNIi-&b9vU17b{tAhKy_(Ox^myHhv z)z&)AC^THUo3%D7uf0h)n|&S2mbyYOE6>h2mM_1Fx?(xoUsv%cidrgwPNlwbeJpqP zp;oO}m1RDoabL1ZL-qDliQVSxz>MYQY>Njj{mVV!-KFjbPJ=;-;@y?u4CNHnCgfGFT^aWIBgQ4c8lY^b5z7)0B%|A{KziiG8y?zbWMoh#!3Z2|+ z-VMf@JMWGsv^MVnzkyirB-Juo@S=E_yWmaZu(sd>CM+-dGDm~zjL6Pi^yjKxTMXds zM1XrS6J|?6A}hH|!4lurmO_x2>>oqr$jv{7DX`{!48JL~{xL%R2K#cPrk43~l=j2C z?1%(B6~eyi&Bl?0nk_SHoD3G>w?$CbR*WS4L2t0^c@ol`x@ zE!NU}S@YM@1BEu$GD2@~tY=1QS*&NpKFnXwPITB<&q?*>09&-^f2q!m-!?W&S}-}c zN;}9cx5~O%3%1Jpg*LY;hHr3gSB`60ZdXk{EZDAo@36UDGw;p$srF;E<)^x}?1E4A zTh*JN8g@E4KR51ASblCgTq*e6{QcYJxf_9Nrv?3z)lMsnt#GFePk3vm9WKwc+d+EQ zYWEGrqr%-zn&(@)T?{^4d);TQfO`R2Z7&j9B$*27E0COT?c;mFd$m8e*Xrtk=uG1m z$hDI#2qrQizhYR9n!9pHF~WI&R7F01YK%?~+4>ev%8(~d(DU96o!U`d8i;lne}+W_ z<8{NL;Zm=j!V`rCcz-#(1fK!+PvT-?uPU8VDdTx!o|j>%;W|!J+bx{A`FTh zN~XvUc92U7QB;!2=-3M^ig8!3jng;y`&q;bq9}X)huUt~-W8?SQ*w0*_w) z0!ohv6To^{z_{IlMoY(_-YCN4*5h#LYBQKO(O;5;Q84~J&U|?^HDLDowmq0SV5l(@ zMf>}Jr~xiE$O{M?K=u28!2bSMXaBo*{4-PgHBI~7<+EJj{@W<+=N#>?jsC?b?eBVh zaHjTm?f#$1+P^}d;IA*9Wocb-fGc`6# zy-CV7za+P>reyB*h2)klwEL29>i5@PNN)1Yy7J||*sDJ!cNKga^ta^RF3=ySuiAW9 zYH}gDGqvZE+feg)?p$(J8*6__Ze!h-)eFh3|GGK(|0MUHG{pb=lFJ-pwbz5lDctMj zs@dA>sc>?>le|A^qn^eU4k7ppem;%s}(Wx(%Y6x1jsp=-Px1R)iK=P=cOrMN$k|L zONK5YMbBLJjIXFQsZH3SS`Xj|)V0a!t3%h;ne`ZCuqk;{TTiG^HsAJS@2Iw+V;ZWr z!LVcDjr(;42I#En5K;z1SIX3uGhcc5q97qarqGJXmHL{9bROOEc9NnJetq=$UEl=s zoZ$S%H~+eB{dJ)E-zhk4z}>>NUxQIrQW5pEc6TTpvFW6`aT^-uEs0F+k#uQnMjA8C z^U_5?eAAQ0uQXFJfc=iY-r62>Yb-x#L1Q0gRgHq%JIqgwEvb<(xKlCfYA$MIDzWjq z`t7ifhuu!#sC0g2rj?Ho;yjFWfO>#}Gb^CM)D9z|rm~6clSUtlAXd^;NNq*;!(fXh zzDDWR=0%D#YhB7v`=}=ZUDLj0I0hX`iU~2rY&kLoJkTX25Idz610HA!^mrG?!UJFf zT=tMB5DE~fWhp3;X=(zG9sy6E0*;P=voqAi6~pxUgS*@~uxoU)nDvYGDgmB5aVQDwAXF+FY!DnZ&XJ-XxXVqtC zy=Q0rXJ<2KXFF$SduM0+e{H+|TmB5221sBuu}E}Z0vb#_I2`DJxx=x-cS0c^*P#^H zhTZdSavg4r0@^fj8X0f!86{s*^prCzqYN!Q}#snVoqp)G`E!bRQgtw-07%8(19nMsO-i(&&k3cSrmC zrub1Ij0WK=c+zcMiKLcVFKyD=EZs4QIOGhCpk5(=-aWU zzzISq0|2m4DJ343%E@_MR=8;e76%zZJOOLX$&n0cLL4ez8b3Jr$}IY|n`^1z5Bg%R z;P#SA+hq-eiLuUNS{lBpCYA=rVG>HC_4q{+p{wn4m8ic{Had2>Paq;l*Kr9ajKg2}D#Ka^dB&4LIWZ>r~ zojK|w)LQBg@r>8CH?rmCu{+Rq!Yy1F`O575-qymRM{mX?;b zwziIrj;^k*o}Qk*zWyJyX=rF@Y;0_5YWncu!$*%EnVFecSXexM{Mg#s+Sb z-u~IMXV0HMcXV`ga&mHZc6M=badmZl`SK*wd^ z@9!TN7#I{36dW8J5)u*`8X6WB79JiR85tQJ9UU7R8y6QBA0MBXn3$ZLoRX4~nwpxP zo}QVRnU$55ot>SNlarg9o0pfDpPye)P*7M{SX^9OT3T9BQBhf0Syfe4U0q#MQ&U@8 zTVG$_(9qD>*x1z6)ZE;BAqIby-3wtD8j2qpN__XuV|+ZIuP>*wv#ztV;UCoEmsGU0 zw6wOiwzai&baZrfc6N1jb$567^z`)h_V)Gl_4oG=4h{|v508$Hfy z>FMd2nVI+R-+%bA{P=Nsd3j}JWp#CReSLjnV*@mGY;A3Q z`t%93cI@oz?CtIC@9%&6_U+){;HOIMA08ea9UUDXAA?Qm_wV0-{P=NtdJ5K5ux0u1 z^EZwJ0M*cN!(j#)^f>!kX&8_$C(NqnWT}~&_N!(2IVJqZmgPQ_mqCRdD-6cCUck?{ zrY;OE_A-J8s0{v^68>sg{Q1K&?4+*K*^>L`wv;{ifNn0_5=8V&?=LM2i-_qoq?GBZ zJ@rTr=rxoZ;3COgnDcG|r-TF4#1>|y*{IJgZ2O%djFsOli=ujA zvx}QgHk!hfIeYm&O|)8@#m9Qsl{+P#+ZQd%k9CS0lSg-yAh)m`ZY*e?((VRd`%Z+I zMITLllv@9DN>~$Q!_-_#&ki-at||3On6N_@4e&G)QGET-?;Drd*b=(P4tp147ra7jCd;`O1V{y36CPeuJ6}8Ah$F;I2+Q8cCvz zdq>|7Q-;!peHaHQU4Mwnc|Ik4%h(a2W^D#<2Q>OUkdS#q8Ne2|HL1v~CXt3Flcd=O zVAwbVLwIzV6=>I0K6+rwh#`U2t5!g%jMyow9x8|ouz@INsWNn27og&@K?4-I-;!Qu zDqX^t;c+xXF_+ci6ckp*r>bVD-2{;3eVx!Xa7uU*e>Yi0&P@v5T{&bAz1AN= zui=klAsMr8W-1_{kB3zlV`uC!B z`EdRb(hm$Q0VFu|o&eEgB!HsIU?BC9z~+oVk77EjfKop;oA)+86RK`)j0n`51Gss| zJgGHt?W?*sRc`ly@=}IN<5QV|K+|^m{P>f1ryWKHw&cS&CB56iCtlCy7 z5j()SgF*Dnco3%-Ts$pxqcz|iX$%c-!4R@xpv{%Xhu!j>wfzh-yai-&MAG&lE{&EM zJ?=_t#kU`vIH$`1inN?BjC2bPh*-M>^aHr$EZn0!-8vMMCGIISy(wL{x5YODp zSZhb`oN0Dw)ml7=Xo-BWP8T3fI=1rD>Z8bsH3%ih@LcSM)!@8gxZ`M8z#0tTDicMI zgs6UPmE%ZdBP0h$I@Kc;v&1wq{rJR6a4$jT}5 zx-fwoT&BgHYz+yOF*Xdo<6?rV)u8Te7RRR~B1^XI3k7!ahGbzKuo02#Vu_2GJ~9G0 zeRz2aHP75AwC5Qx&7==;WFVBGhVsOY(tJcr?j)#>04G92gKi!Q!}Ek(F?3_VJ%pxA z_{gzZC;&I$Xqe+ZIg(@w5G^1H}$CeIGtKA2iJ4mpFDQ&+f$^G_I+XIKS(g{Z@a_v=da~vZ_3HJblo7 zI8gHP&Iw`c{sGI`;pdkcob%D7u`F2nimylt=OJBDt?byms0YvmSYK8f0Va{R3X@Tc z6$K|fdCx0ZJYwPiM+R0&TkpqXMraL;Z|L00{E4{Wl$YdMgl?3*!VX{Z-mmTA{8skL z&1I<`PT3_eQKsbkorsl_l124pnRNQi_lTO<&YN^)0c?6p%+H;Au2+|;JWVvDzOB>U zT2+1;acOJeityxsvG*56obOA#vQE7>g1h^BT%Cnjj^uCstbHrjd|FOi}}>2ClQ~(l5|k;E!tw0*L_#cBUl)-y>)jk zemb#Ps6^Rn+x*GN%!|%v#RcUH2A5t;uCZd*zoT6=`XVy9A^9z5iF@;5M*Va*51(IO z(WeJB33FxS&$F=ztm$j+&5ItD*3|`Vdtds#FdHlql9z7ts{LNamVX+5@>-uPec4CGkR=9kQIvynN#DAGu6^~Ji7Nj%6 z_HY@zOIO!=N5w9D=6LoEt7C86>~<=a-l|ZS=ulPg*VtIcclUF!TXOin6`h$6$X}_? z!w)j%XQS>{jj2vN;oglN(%rcCT733E^}&6gq)pTlvEfUq+F4KZ#=Os}bBlNmZa=!e z;`+{R{!HJl?XLbO!I6`JP5tSP+v0t8SH3Q?J^9x8g7#Bj&WnwbQ^#C6-5p~e*C-ze zqhaN#zKqw`HlCHN7dGDCYYb7&_i%9rN<yl#njX=;0EIeKZwdg<1B=}mg+A9@*5cpHm&n`(PM zbo4fh^|q+>wwm;|KJ>Ps@OdiYW3TPw;OOHR>*HMO<1*><^3VrG;p;Bq>#6PQ?dW^z z8|&*|>l--f8+_;+s;%A6>ldl*7fs>!_<>)%wqIGlQQms}>tzTNMRz|L0R;*Tz zqhFq*RzbI4k(pMBf?pXTpu(58NV4b4`V}Km4|$vWIH_!;UEr$`Z1yFgfcu0g{?E<)P>TFh7$BJ zz$wFU_`^v37|5N%zJ!HQQPR^)g?-))W6+^x5)B{I2xq0FMZ|>Mq@IigXH#RC2m>b1L%LZlt>CrCXv= zwi;1db!6IcQ95N&dQN2eM^Sf(qK!q#Om(6)Y@^MNNGYFFqtMKCma=Z#~`{JHdlJ0i~GWYM$Wim+(96ew#@h#Fd{LsWLeI(*<-hn4L51ThqDoGwzFKNcNIRP-Wi5&XhaO z5OU7c<;zs^&lH``)NajGw;;PEmZhnYrNu#}9iOFMmZcX@qJNwvOq6Y`OJb^&Uygk|v4e9CTUd@W4)HfQ^x8a{)DG4uY8bZ>z@wSY;kG60 zQO85>T&Tb z^4X*bz>YGsH$P1&zXn#oVoR7PR#0G3knWsUkz2qVhF76f5Q0+}v4LBsRLE#V_{OF% zS+}59DbM%Ve~^lJiJ@pLzVPidRwHlW)G<+aOVMlHq9%sorD=GVVezdRlqFN5P2(cz*qP{Ww|7D~f6u-?`CQ!B$eElNl&vD{k9 zFVA50=a<0y3WQF|L=q~vXRux|6tXsym2Z^DBvi;LW4WLTBpb?d7==IgS0>v}Lahz}%9E&0pD7x3cZ3Hw1-2XF+1J|uD zys-R08aU?x2NV}WM6l;Y1AE?I`*jkzKb)1G}SYrtRd$;YF?<8H4Gir5No&Ba;@KNOpAxHs3~q~8?y-Qhv)K$>`s1(>W6=U$-SB`W^n z>w25$>7@e#{WS;w)v=dY33SFQ-w2POm*`_Jf1mies?0`sB&q(R#OQ9a&Lg*vb9PvC zv3K09$!cd&6B;!{o}>g_AJkR0vl+Yz>)9Beph4!teaTpt=M>nYa~E$T^4}TWV@@YE zQM}5^#^kr>cDUfhDdrXVM9N`u$u|$8o*{n~lQLaJgg}(>l|~$Sd??!N^U*uoSAIM^~9cTH}0KeH5Y<9|C-;ERS3;J{*O{CZ(~d2Rd_r&n03F zP$1-(RzyB{Yp7x`$KUt%9Ep}=Js3;FhD<-Y?(H4f1OMrf{AKK7%Rwi=4J!l9$= z7TKrvPt6||7HBCI1Sc`Yt$LOWPK|_>I4f$U20Hj`Sls#Q56?RgcXs@FdydpOze zezC&aNzT%tv?#M1y`L-?rPI9w?v#O{W7fV+s+C!FkgOSTM zgKfPZUWefXCdX`gQ)spwgcl%^xsILknk1U# zX=S5j2%RTsf3d<0w42m(?Z)4@g=ak|x}r?bj`7gb$g1p|PJbwVS@$U`ZcTnf!P)&pulX>l(-V7tY)c zr|+~jACu0yta6KJ8qU;{&a0B~)J$1t3^*>4OEo`w|LT@?)o3)XZp|F^%!it>2TaXh z=Tj~#InNu|@kFlWnXu$6=FoRNYgMa17I_`!L2>Z@xyQ{Ht1p?XDpvaz1!}@>h0qxc z7zsaiULT^Lb;&3bKcnv$;e7Q&sWin|D@a8#*mikc?AR`GLY8a4YyHvdk8RU;=?nVt zuUz|)!e7(RJoa&KPU_&aBHEJaTWk$TLO61cGndR#-j^wFk&yp-oGvnp^WwKDk1`k-BNi;Mc=$$$H*`zKSZP zjw19uHeM`hiz*O?*aT>88B}YHU;hZVV1I^wIl*kDEn#F!>v?7rNepI+Q!8Kax2sdY zkgq)9#;#uQ&8Upv>uFNWWjcemq8TmMQWYi3BZ{ch5MB!M!gU&=ith~!$whLW?dEBL zcfJ5gMdi!hVb0-&EQpiXJ_aRtbbVqHLOw6vu-wNtS?&RckE!C7boE0<% zMMo5_gB21x`>U6*{8jHQVj!0+9$h<993tr)OJE^dll>~9>c`V761XuSx9p_$K&B!d z26;@g?+-_6RHJ#Jwa*=MF&trOkfAAKs;m5wR6u86J6^qL|&Ejm0;y-avq zEq#+g-b?dV%*J49{u<9=;F@$myo%S$$~;*W3s)t?rNnZd0!=|RhnDHfCGK5?-%N8= zWBk;U9W;4=Rd8(J62PSkQ2-bqO25q^|BR-9%oU_5f49DK0a^cQ=>aw1uZEDnj(7i# zF@b{d-}?bo=gL1bhxjt`{LLJq7i)X&$Na}ht0E3pT*ZGhhrIllckai;h?4>Rn7_>- z&&)wTrff7izyO*<82Zxh_mQVhSKBO6MLMT(-LG?OZyxB2+17V^b%G=L;(6&pHX{^G z@~1h3kBl%9ua1ATE&3{9R$*Pm>X4792OT%b)%7u+>z6cx>Z{}?3hwv4GI^F#WJ9m?UOF6|&;tHQ;&;6LMBfeYh ztc;1vm4JTC#;u6gDQZ&A-;Z-XFFh)F_4#&oorsSknvDr@E6JPhe`EBW{bc zk(1#+&7PMNpU<9OknhZ1a9UEofher#tw$8qOgkfr8#crcC9jW<*-G1S8raIf^=h{A zJ`QoViXpL0*2*!Z7pzt9bS+t{XDsfq*33C8v(_&8i?i0P#&fdPZ{~C6HAJ}?yWT)_HI6C{u2M5rI)RspQVqpp^>HkN?#$%z}1;VmOgHZ9A$J1_8ACJh39Fi)8zY%@VDV}RmLGOfMWlqI~0LZdH50^Ks@?#LE2VmN>y zIqZhMQx<~eghIyy=b!Ti{UtS|CEAif(Yj$am|v zkiaj~`?&)T;skjLQ2s>L|CJSFu(1BKEo89Tf}elkz`NK;{%hs^<7WXW*1zeY1dFUj z=H%ZN{eE8UN&Jz#ygyCv77_?|l)FDQXnOb4K=&l1S3Gy%r7Dsjq^lDZuP!RbvRiJv zXD4#^OW||ES#}~>gT~25NTRo-8;zvU1#={Agqn|esii4p^^&E%Ex7i||E+%|=i3rP z(PJ7;Aq$-f#gXi1by{3lc#hOGj<_*7@9U`bqf2?)Q6#?8o_8ABt-giCxf`tbC zdCZpp=ik)Z<1f_v0(zf2F3*WK7A`J8NC=!GZ)^~HpJQ(vyr1M75Bye~Z>8hI35ke^ zKmraT@IM5cl$;!7-&9moe`VkF;D?oknHd1_x1b=v@SA`$f&BY70sn))5j@-=0q5rC z{$~*Uf`E&Oi(epcDJdxtIT=Mo;IAm$!QtHNgG3_#3dBJgeu2VORKP9yztM0F4Gr*X zdi(b6f5ybYZ?M7hryvkFF);yw_=5)z{xETKb8`@jTUuILSy_Q(+{VV{4;;TB;~*A) z@#4jQI~n)z@bL2T0^vAF#sdNZKrDWN!XqLgKpGwu6$Juu(Bk@^GV!#uw2X|5zr*4n z69<8KQBe`d#KE5>h{emx%P+|If6Bx`+sS_!i`V|a;(s7`dwcr@2L~ZINWek-Juol; z5^(VMKQb}`LhuU$4qn7S2tGA6^#_831RMn43kwSu?E3i?(XiF zFJD0X{q^ftkbwU)>irc)gD6E6cx26+GQbS|SwVl5F2yqbdm1;$CsaG;bp}+(vr)NU zyD|TG7yG#zlQR^KbDE~J_+~7DYa+#M8}8ZGrMjv@Pyy3{+m(vQp4NctT`wUCY0A=d27@C zxz_%??w7JLE&%Fm#C{nE`SCaP-j0os+B@u8kQc&8P_uYjfvp7q;i=rPvfxW7@wEL? z2iJyQM%`w9VHDd5(`jORCYD-*0GdSls0o2jS4fyX<>6#%WQ}I3{+n7Xwt+nJG+VY` zyD^eZT|HNE@FM*sV&Lkd@;2}JQCbw$#$C8E_7wQSj~RaL#yD87mjToVTgYL8#Hjr? zNq#sI2{1rq zq4F2IF_aUSR|Q0dZ65yIjj<5cxNcV)O(f!MpXsB;C|xPXGVYSug=_ylyClXpDb-IyS&D&#&qUSgGgX(l@mRi6kHZ0H-2SHi#IQ#UxdXOtBa z#VeJCjEmx;NM^EIdwHO!?iLV}*Q=86>jOyANo^a5;9~%VPl0B?s|rZ%z)|Ffra%iG zBWY+44}F?Dc9W!8*0@LuaRIm+V{kB{@0wTk$k2mqf=ZU}dj%`-nYpYS{1&2=m|qac z#~QgqhXD~T#KNGLYGFp#L#t|ADj+=+a|qwraX2_t^!Rp}C19F1keurRsiJ%K;f`I` zxlz}I-j#gXEGsE`+Jdblj{g~bRbmD3Rx>e}{ITZK_EULFHTkbB&(|2S1YTJ0s9|xG zR(N6SK2B9-yQk0&08WWtaN$rwUE&?dLQBO>OBL%^iVi`x&^mVeZ=98GVE}4(X z(>}oiJp^#mXRlJTB9Qy-<3cPzYQk#4`x@eX@(au2DfpmE6anO7tJ;Vk`p!zYtV_tG&1(p+VWO;?VIJwqN&H2G@S*ni^0v+cJvgN{W8Lr`|b2+ z0F3F$X3~4T3b*IEhH6K=?eg{zpC9|HQd&rS!Oop9iFp|Yszdob$vub*4GwW31(I?L zf^{vk9h0>iLyQ>!Fy>_l^hafx8ySII+cxr3ObRusevjnuUq7F3uF7-Rr@b}zm8F9c zL7nbaU~CwX=I_8n%6G!P-`nNKr`$zJhtrfLd~d7WN@u#XUQhXU?S?2ZEJUW1%?)MlFZ$(!JZ~zY zmTM+);rz7l;u;ZyD>HRiYCQT%7}~X)#$@f%(vq|3LEvEiyY2ZUb1I$8UYJ(>?VQW=Bl7j7RUWOY}bYG7#>l$W#$t7igpNV{|KRjVIb}S z14@foJ;>Y&?YYg>tOW;D8h2(p`RwUhOI-)B!3tA(|DX|C})~73*rws;f%oJ>x);mZ#Jrd|`N7hSPr6@?h zVG70a@xy|ZKBqS zDA&eCiWo;`X;sB=Bbf!3n9Lq2*2hsTPYsyvI(9;Z%2llzm)XSQnAN>Y6`N_o@FLqKvA$6r&FEstd3CDKo~|NRjd)ey9R-W6R!{sLi8Vuv>AwA{iU1!M zGpu(Q{qj=d1Xjwk7Ayh_Z#3OWW@BOZ0+r7=Cx^2$%{EyBiRSKCbcdU) zZM#p2k}W-A5v(Mk(;j0}Lxt-di zpCuNFhSX$SvzotgrKw+D|9PZO@k+*X-Jxp-M-dglUkhS{)(;(=%MS)jxMFBG?q@r{ zeS2zNO-;M4_b6a8CSbSHqiIboL~JT2_+e9m>yUzK!^~YtN0NII<92K>7H@xlUR2Vw zt4S{L9{)*F!)2FU0?9HT#-Zn(?IJrbbG}dVzA_%Ii0z1@S6*D@IxY;C{8I9&Y4y>S zrSY2N(sDK1EpzH2muu6=9T5taJBNPTwLt=7C3GxU8${Oo8rq9>ZnA3GthzptvD9nYMd9uB=eJs3JW z1v8=mivLaOO@Y9_px&AYEuBd(?OHFRWiMlxw;_wSzJj;G1MmC3-uhYIy4~J-%iabs zpL;AmcNKh|nfZ*Od~~yXUUd6tFQ0>NXA$4KEWW4S+IK+keY?sxkm3#qzSYS5!V$MX z@C`l<9E(tiuk{NY_e;)INTu*s6!6b0kWCzqDJdTqMBwc0e^u zs5Ul$rXrv*m#_ISpq)6dje@H~JJ9B7VD}npZ*Abi(ZE3k)?o_J01-6q$UNZ~bUi$1 zT7>!iWDwh4(7ZO&qDb)NTfr;73~RB$nB~D+3JjkPgQ3JBd$qLt+96Z6A%~8%$F(7E zM?y}`r~%5*O1@BZc4|zg(9*C_97;;OsnC$!Q1}!Dv1nL;Mi_Y<1w~w#RaqEK9y#4n zm>E$xlQ}uFPPnOUID(y=qb}TVBpjsPB)pUn*Z3j?>PUo~B1FR?#GFVZrXmD)Baosb zGNPcvE%L?@u|ixVcUk1kI%3tMNOq#ATTaB9I#DdPQQD%!x^+?TktlspxFKb(RHcW7ODVZYston#bJmi;>NXLH5L4TaOXLjumE)6;O=jGmqu* zi{;FVMfAk7tj988$I-LL(J01In#Ym*#gXL2!F%HH*W+-o7=*jNhPOlNsn@qW_psItR;m)k{8&MgQb)0%#v6AlC^S^iF%Sp z){`$`r|c<)?dzm`=}A6}OIfQ+@rR`BuBR|Kr9kV+0o_zu#Z;JBI8J>k>r^U1d^nsc zjY~9*^f;W{IgLLqjY>CyW;#veD2<^$f=Mi0QYW32DiRT&E?1Y%z>WzJclx&_t# z#2)bla=I{gB&=y8(-)_()q>bbsZiFUFbGvxuABMF*=L}h*hVRTgaa1DThtQ|dzPO+ zg+uhPw@8MgXillfuQc01w-~XIrJY~Ai39Ux$o_~^f^L*`SE*!93?_@h`H)w_-kMpm zQ8YIV3z^4#nF@g>l%R9MM|U!$r;Fw`V1w#-(2-KYfFdHxC_b?aK?|7MFy3n<9=x@z z|G3Ox-N!3V9jzT+0d2)HQm^1vhtT$wGt78h5yxvoVzlt$85=@O)GJNkSabyydh6wa z40zJRfDtcVD=!gRK_wBRcN~BwJ&%^l3z6o;yry2Ir3}}`1tfRC#{@AE zE_<6T-e%5!H}BVF3tRNLR9;JZt9fKHE%3=>3bH^EVhTMo0%*^i-$9b*N5gBZezSqX z9Cb{tJe?HFA+~(%^O5S_nHkZ-)|AN+2qAXX7k3{{rAHmz5oM0v6XlKS1cmG1cW4xnrkp7B_yIwp3`wq_&c2V*(!@ zg3xdR(!EULq2)bveO48HIC4dmJvWq#s@@S4Y*&G%?9G~a|4q)ifrpl#N;b7{iz*w^ z?-e#KGu`89nyGFmY(A+Dcmm>slTWo*Eb=)DutJ=ZZ{pS*Yqw`xJDaC@4EDyqA-cW6 z8|Hi}x|^E+Howe|lsb_Y^}|hX&w}%Xi){pVh)Y3#>?d=&xZJj$rI*yt9qb0Bzv*em zFvue+EeX2xDh7JVw(~op_${7}i3CWbh2Dv9wnrIo95WByV|&It!Q(?)9;tlQl{G+6 zAKWs1SW#&A&Q@G!@m={uQ^kj*EQ_LpY4d_>@8;alg1-%0lLT)r^n8u08VX6F74>-e zyzp?Q=9X&i7(3cF`v(EsPix`H9<P+I*C!KZhlGRqM?0ScQN{S$4SnBPV6gpp&glRV)lY2eE|bvCq0t5NZN^e`iZ^ z{%K1A)1J>`p9N}v1-4i@@*>~(QCtN9VW^4x`Sv)MW0*-#7~(dMglK41Zw&8!nMiDK zxhk5{T#1x{0XW|t$Nb73xjGOcAHng~Pc!ef-%XMmuJyM0vPoKbLT``NA8HkohrGNa zLeA9_!_p`7Yljkc{#W}KuPy)1lHo!af>|=?)G~>=>P&9}@c1lf%xst51k)%v3Vu!#-)U8?GznsD*)9GH)+y z7C?%7`z&Rrh7N#`n7F%4S`q`A`~THjiSw$!43>-IQQX z>a2zIGTQ@m9r5%}35}1y#de96?%C3aO9o)B+s;V0RKwtpncCL1uB5xcpPue-Z;lt7 z)(G^_N<7+L8jX@Dx z>0r(k9xTkDg0H18?@r;q67h`EVJ%IEoC-GKEuo^lhy;e88v{V*xP}>YjS{C#qLnc?B)Vz#8pOwug*kR>Ss0>pBQHk#<2V*Xl;tRIw zDT{`MviNeGVhL|kNTM2vmBN&TJss}{SGmRGVH3D&Q?CVZZtUSgqvv*&x+hw4rl3)_lK0q4+z zPcpQ2FG|w~Zs3)?dAE3C^``kL&6ffC9IL`%u@Jwf{c;65F_qjrDnx*)8u~MZY1N?h zF;ncF3X6Ma_jcbIUZru6HZ%#eYkPDMYd=Dv{G+ty3AM}DG2;V~gR$qzNy4Xc&-#*z zKa5oiI!t26jNe6VaRYq-zRqRF;xGEvu-$n=>&s_@y4UD4ybJDq)a+HY-_nhshu zPm1&#^quwDX3QJ(o<#OE1XXu*#Vdt>T9C~A^x0hI>|O8X=C$UN?)J|VU-c&FZNjZ? zP>*ljj~FN^r4xT!hc1GQ_6xj$;H0o5rl7#g_ZQiJ@$MT>HT$Qatt%DKTP3{R*UB|) z45spv_9e`+L!wGi4eoIra8oud^C2(7K%;NKWK)X@T>VOW4D9~l>%GUEKBsQsQG4!Y zY&IiY-nab>>kMo2otlRIRK^#w^qw`Ix<2t`lb{0>5qWSPyccr8Jt3*VgYLJcJ7J+69|>fgsHPe_qOL+eQr`2G z(wQC#DfA3vuvJu2sWk|gD)(>px$%W(Q+8@m(Qzxp&+QQ7r) zOyE7XDjk~h5P~(_?{f#6NR?C5o_$B!MrD@3nWBbQ@>t?zp_%l%IQ2k&`!uQ_MgtPZ z1EE@xDNT(JW8d3RMDW;VzKd5gz+oN}Zr(`c8Cd^Lnmd*(gq3w~K~0`z|GzfO++H}UL0bJT#?_GfbR?+0*xN#F0RGK=?Xq3Hkl7Gn55;y({gp)zOs zTX4$sZT7zfr$lSL26+rQ3#uH~H?73-@f*YAxV$V3T^MtB6GEa-@k2yTc zFhwkjln0bJi}}}kH#M41bu~-dR-RjybvFB3l^5`El9mk~qd%^cP*E;YozM@sT|GVB z@wldm4%b?BF8JhD-HJPlb$w7#pY^Lx%`dDQ_woy@ns#ObJ~tkJvV2l;TJLGyavA@o zjRGe9ca1h2DTOEP7*cqAZNzGgHgCwq-#_VO;_K(TPWOsSqnk-q?r9ILQ6PUeM~TGK zKAr?TyMFd3H!H5Q&AF%#ie2ik8$$bmSE+ZEu*q)Z#z~<4sPvTqfe|68fzV;(?GF`i z#Y|i)CIswgE8g*VG?h;xBJP(@F=hNHo2IEqDw`p1zgG4hKK7yX1J06b>FF%`7uwRf zQ)qL^{2{S^$-*AfY4PF~e{%8Cii~9O$N5{cMa$F1FN;>jpVAer4!SoNu62j&7p}LZ zpB8L1mIoJXR<+R;Y!!_r=Wk~%(&c|j+Dp#+90{Gv-3cUqoxAJLl#;vW%l|6(i?@tH z?!Mb}WCAQ`}&Uf0liV{+d+YR}y=v zoTJUxQu#kB2F|p}kh%E0FCU4|XW$@^82rO1G?$;DqS#Elk4Yj8F*$2np}OiG1Ro7y z*Ctzmm+GEa=teji6w>6UYF^yT3osS!w$mhaZ_W-QJaZ9Q>WR{qr;$esV*tE^jv&le z7@djO%S?cYXT(?0&X~v!A;`|U>#LT@M4nUI&TWl@&S*m)U+9=ez`ziwVVO=M{1yU5 z06{q$^pxCh-LTB&gMiz{p$iM~5wNje z&e+g~<1)`fTN+z14VT;QPZLAYD10H3K=19n5ePgM3BzH4<0_=afp`*=l^05^ZpZ)y zAg76n-8l9U==3lElVTXKjpt7YBW@L?Cv(HJVF>*S#r+*D0~&Gq06Pfsmk|fdDF4Tz z{&#Ny{LdM2{>?W6U`PMah{Kx(Lr0?q(InFqabH1{gaoc36HF*t06#_Ps1hGOVYI7teXxoz?C5t#S=OY?4fs%LOy zR2f%nsy4JQ;20`R@Zo45! z+)*ayox~zSWbzscx1)DrLrA#6J!1@VY7QD!J^*9obv#-?E#Taa4WXqF;dQMy+!)}{ zC5fD8kb68{^V(W_x52_@;Z2aZsw$u0mz9J*NqQ>n<9#nTY-=Hki(EPwm>0<91U!Kl zp6Ahkx(B9AoW}%V{R*826X$%9T&HqPR6~=X53fRvqQCfe6VU+Rz$KG3pMcMCd+vf}e48s6JHxAtm z5-JYeICLmVNht~l(lA4J2}(v`|>y!UqB z^6~nj+a>io{>QQJ-&vwUbes@1P4F~z4`@v6RCXn|Uyet13mB)KJqke8uDq;sOm>`SeQDDubpAyff3Ubn6s*5=C|2cUm?I zO^{L0l+^`kP*$8Nu`$bN$gtWRN-iBFsWPM-$c-2UJsf!!%(W#ymiQy@>|=lT@* zDF_y)er`>fo0}iNL{6SOxz7_hbLI?Kp8`Kk_Zw6PND+`HvfrILC{B5LdV)xi1D?o1 zWorNPd!Hu)nil>wn278A{Dpm_$m7SC=jYw$<}S_727q{xi8ZeSw#Y$)3S^7ym#F?0 zEb?=e>VPc*f<=CAP=QpDgYMLRacZ9@vR|BPZEgLTCvy8q&7GyvpF58rOr&A%9taZ| z9lieWAs*z3Ja`Z>Ihi;;9X&ajGBQ#)G<0Kdu&S@G86=GK^t2DWjO%@#3RbDQy1Mpz zR6RXC{|G5^P^j9cicC*WAAm)Eri%RBsoLj>{M@Pfg(PwS5cwG$@(L_bp$Po=8#D-< zG$p$b0)XqVWrU~70ze+moU`&suL2YQpMc?iP@>}32410=nO%7>NeH@{ff(nB)SM6| zr;JQQ#X^{Ib~$#HdZO$*VE8X3Dta zx$J5SAz$rryRqhFAdN`Vx2`>OM2`Q|%+fw!n46gZMG|#~Gm{)nCOrEA81@5N)_X-1 z;0}WtH!?aQ>B3s!)O0!U=i!H6Ez%I3=4mfXl+~K@c%fmbf<-7c72{H%*OF-y8J0X^ zQnKA&`Tz_C(KIQ<#mUBrtiIFhg9>vpkQtVxj7e=Mkb@mkxJH-HcUAX0U>F9)X|U`t zbxxT$dU5xWtvjpt5bs$fqQ?}V1MA9=oW)Q^xzosG;$x7yHKD3f3nK#aOS*A$0dgCZ zs!c;)m|=Y%-{Vf+5;fWsQWG}!&|?O`;yp@;NeUGSvxj{r@xx+HK;A_J7suuezd>J> z{~a(qc;8;g#(N4#yfyJj4v;-J{)vfx0j`!r0r;X%lpv_QsK^1>x&aOUb0Q86QvUe+ zJ>JeaYHBXd}iCj0JHAiDo4%Y zZMb=IbFdqLq#kz!#;a~pO~k@va2rm%F$vXpUZ+eVC$E

      4w!!NST4ACm0TDjA@Te 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

      k1goelw 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 literal 0 HcmV?d00001 From ba70b4a4a4be66be6de91b28c4839d2ab45a2676 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 21 May 2022 09:04:01 -0500 Subject: [PATCH 143/146] audio: code review updates writer_js is being removed because it is not functional yet. --- README.md | 2 +- audio/fade.go | 4 +- audio/play_test.go | 9 ++- audio/writer_js.go | 142 --------------------------------------------- 4 files changed, 11 insertions(+), 146 deletions(-) delete mode 100644 audio/writer_js.go diff --git a/README.md b/README.md index 1830ec5c..225b2677 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ ## A Pure Go game engine [![Go Reference](https://pkg.go.dev/badge/github.com/oakmound/oak/v4.svg)](https://pkg.go.dev/github.com/oakmound/oak/v4) -[![Code Coverage](https://codecov.io/gh/oakmound/oak/branch/develop/graph/badge.svg)](https://codecov.io/gh/oakmound/oak) +[![Code Coverage](https://codecov.io/gh/oakmound/oak/branch/master/graph/badge.svg)](https://codecov.io/gh/oakmound/oak) [![Mentioned in Awesome Go](https://awesome.re/mentioned-badge-flat.svg)](https://github.com/avelino/awesome-go) ## Table of Contents diff --git a/audio/fade.go b/audio/fade.go index 8311653a..43b94554 100644 --- a/audio/fade.go +++ b/audio/fade.go @@ -6,7 +6,7 @@ import ( "github.com/oakmound/oak/v4/audio/pcm" ) -// FadeIn wraps a reader such that it will linearly fades in over the given duration. +// FadeIn wraps a reader such that it will linearly fade in over the given duration. func FadeIn(dur time.Duration, in pcm.Reader) pcm.Reader { perSec := in.PCMFormat().BytesPerSecond() bytesToFadeIn := int((time.Duration(perSec) / 1000) * (dur / time.Millisecond)) @@ -75,7 +75,7 @@ func (fir *fadeInReader) ReadPCM(b []byte) (n int, err error) { return read, nil } -// FadeOut wraps a reader such that it will linearly fades out over the given duration. +// FadeOut wraps a reader such that it will linearly fade out over the given duration. func FadeOut(dur time.Duration, in pcm.Reader) pcm.Reader { perSec := in.PCMFormat().BytesPerSecond() bytestoFadeOut := int((time.Duration(perSec) / 1000) * (dur / time.Millisecond)) diff --git a/audio/play_test.go b/audio/play_test.go index e6939421..debd5d3d 100644 --- a/audio/play_test.go +++ b/audio/play_test.go @@ -70,11 +70,13 @@ func TestLoopingSin(t *testing.T) { Format: format, }) ctx, cancel := context.WithCancel(context.Background()) + done := make(chan struct{}) go func() { err := audio.Play(ctx, r) if err != nil { t.Errorf("failed to play: %v", err) } + close(done) }() if testing.Short() { time.Sleep(100 * time.Millisecond) @@ -83,7 +85,12 @@ func TestLoopingSin(t *testing.T) { } fmt.Println("stopping") cancel() - time.Sleep(1 * time.Second) + select { + case <-done: + case <-time.After(1 * time.Second): + t.Errorf("play did not exit on cancel") + } + } func bytesFromInts(is []int16, channels int) []byte { diff --git a/audio/writer_js.go b/audio/writer_js.go deleted file mode 100644 index 17cc428c..00000000 --- a/audio/writer_js.go +++ /dev/null @@ -1,142 +0,0 @@ -//go:build js - -package audio - -import ( - "fmt" - "math" - "sync" - "sync/atomic" - "syscall/js" - - "github.com/oakmound/oak/v4/oakerr" -) - -func initOS() error { - return nil -} - -var processorIndex int32 - -func newWriter(f Format) (Writer, error) { - if f.Bits != 32 { - return nil, oakerr.InvalidInput{ - InputName: "f.Bits", - } - } - window := js.Global() - actxConstruct := window.Get("AudioContext") - if actxConstruct.IsUndefined() || actxConstruct.IsNull() { - actxConstruct = window.Get("webkitAudioContext") - } - audioCtx := actxConstruct.New(map[string]interface{}{ - "latencyHint": "interactive", - "sampleRate": f.SampleRate, - }) - - processorName := "oakPCM" + strconv.Itoa(int(atomic.Add(&processorIndex, 1))) - window.Call("registerProcessor", processorName, "js class?") - audioCtx.Get("audioWorklet").Call("addModule", processorName) - - audioBuffer := audioCtx.Call("createBuffer", f.Channels, f.SampleRate*WriterBufferLengthInSeconds, f.SampleRate) - source := audioCtx.Call("createBufferSource") - - channelData := make([]js.Value, f.Channels) - for i := 0; i < int(f.Channels); i++ { - channelData[i] = audioBuffer.Call("getChannelData", i) - - } - - return &jsWriter{ - Format: f, - bufferSize: f.BytesPerSecond() * WriterBufferLengthInSeconds, - audioCtx: audioCtx, - buffer: audioBuffer, - channelData: channelData, - source: source, - }, nil -} - -type jsWriter struct { - sync.Mutex - Format - buffer js.Value - channelData []js.Value // Float32Array - source js.Value - audioCtx js.Value - lockedOffset uint32 - bufferSize uint32 - writeChannel int - writeOffset int - playing bool -} - -func (jsw *jsWriter) Close() error { - jsw.Lock() - defer jsw.Unlock() - - // we can't release this object? - if jsw.playing { - jsw.source.Call("stop") - } - return nil -} - -func (jsw *jsWriter) Reset() error { - jsw.Lock() - defer jsw.Unlock() - // emptyBuff := make([]byte, jsw.bufferSize) - // a, b, err := jsw.buff.LockBytes(0, jsw.bufferSize, 0) - // if err != nil { - // return err - // } - // copy(a, emptyBuff) - // if len(b) != 0 { - // copy(b, emptyBuff) - // } - // err = jsw.buff.UnlockBytes(a, b) - // jsw.Seek(0, io.SeekStart) - - //jsw.audioBuffer.Call("copyToChannel") - // make it a []float32 array somehow // then a byte array? or just convert - // from byte to float32 adaptively - return nil -} - -func (jsw *jsWriter) WritePCM(data []byte) (n int, err error) { - jsw.Lock() - defer jsw.Unlock() - - // we cannot write less than four bytes -- float32 - readAt := 0 - for len(data[readAt:]) >= 4 { - u32 := uint32(data[readAt]) + - uint32(data[readAt+1])<<8 + - uint32(data[readAt+2])<<16 + - uint32(data[readAt+3])<<24 - f32 := float32(u32) / float32(math.MaxInt32) - - jsw.channelData[jsw.writeChannel].SetIndex(jsw.writeOffset, f32) - - readAt += 4 - jsw.writeChannel++ - jsw.writeChannel %= int(jsw.Channels) - if jsw.writeChannel == 0 { - jsw.writeOffset++ - if jsw.writeOffset >= int((jsw.bufferSize/4)/uint32(jsw.Channels)) { - jsw.writeOffset = 0 - } - } - } - - jsw.source.Set("buffer", jsw.buffer) - if !jsw.playing { - fmt.Println("start playing") - jsw.playing = true - jsw.source.Set("loop", true) - jsw.source.Call("connect", jsw.audioCtx.Get("destination")) - jsw.source.Call("start") - } - - return readAt, nil -} From ef797e83e2b78937f9c7ef80bcce48392c9606b9 Mon Sep 17 00:00:00 2001 From: implausiblyfun Date: Sat, 21 May 2022 12:01:32 -0400 Subject: [PATCH 144/146] README: Update the readme to have a few more points added --- README.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 225b2677..a87a843b 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ ## Support -For discussions not significant enough to be an Issue or PR, feel free to ping us in the #oak channel on the [gophers slack](https://invite.slack.golangbridge.org/). +For discussions not significant enough to be an Issue or PR, feel free to ping us in the #oak channel on the [gophers slack](https://invite.slack.golangbridge.org/). For insight into what is happening in oak see the [blog](https://200sc.dev/). ## Quick Start @@ -79,7 +79,7 @@ func main() { } ``` -See below or the [examples](examples) folder for longer demos, [godoc](https://pkg.go.dev/github.com/oakmound/oak/v4) for reference documentation, and the [wiki](https://github.com/oakmound/oak/wiki) for more guided tutorials and walkthroughs. +See below or navigate to the [examples](examples) folder for demos. For more examples and documentation checkout [godoc](https://pkg.go.dev/github.com/oakmound/oak/v4) for reference documentation, the [wiki](https://github.com/oakmound/oak/wiki), or our extended features in [grove](https://github.com/oakmound/grove). ## Examples @@ -89,16 +89,18 @@ See below or the [examples](examples) folder for longer demos, [godoc](https://p | [Bezier Curves](examples/bezier) | [Joysticks](examples/joystick-viz)| [Piano](examples/piano)| | [Screen Options](examples/screenopts) | [Multi Window](examples/multi-window) | [Particles](examples/particle-demo)| -## Games using Oak +## Games using Oak + +To kick off a larger game project you can get started with [game-template](https://github.com/oakmound/game-template). | | | |:-------------------------:|:-------------------------:| | [Agent Blue](https://oakmound.itch.io/agent-blue) | [Fantastic Doctor](https://github.com/oakmound/lowrez17) | [Hiring Now: Looters](https://oakmound.itch.io/cheststacker) | [Jeremy The Clam](https://github.com/200sc/jeremy) -| [Diamond Deck Championship](https://oakmound.itch.io/diamond-deck-championship) | +| [Diamond Deck Championship](https://oakmound.itch.io/diamond-deck-championship) | [SokoPic](https://oakmound.itch.io/sokopic) ## On Pure Go Oak has recently brought in dependencies that include C code, but we still describe the engine as a Pure Go engine, which at face value seems contradictory. Oak's goal is that, by default, a user can pull down the engine and create a fully functional game or GUI application on a machine with no C compiler installed, so when we say Pure Go we mean that, by default, the library is configured so no C compilation is required, and that no major features are locked behind C compliation. -We anticipate in the immediate future needing to introduce alternate drivers that include C dependencies for performance improvements in some scenarios, and currently we have no OSX solution that lacks objective C code. +We anticipate in the immediate future needing to introduce alternate drivers that include C dependencies for performance improvements in some scasenarios, and currently we have no OSX solution that lacks objective C code. From d24e38698fef0ce0f49c1d890354ee73e08a149c Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 21 May 2022 16:25:13 +0000 Subject: [PATCH 145/146] examples/top-down-shooter: fix set viewport logic --- examples/top-down-shooter/main.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/examples/top-down-shooter/main.go b/examples/top-down-shooter/main.go index 2f021cc2..17c0c915 100644 --- a/examples/top-down-shooter/main.go +++ b/examples/top-down-shooter/main.go @@ -91,9 +91,7 @@ func main() { ctx.Window.(*oak.Window).DoBetweenDraws(func() { char.ShiftDelta() oak.SetViewport( - screenCenter.Sub(intgeom.Point2{ - int(char.X()), int(char.Y()), - }), + intgeom.Point2{int(char.X()), int(char.Y())}.Sub(screenCenter), ) char.Delta = floatgeom.Point2{} }) From e4df7da9f9e2fcfffd23466972df21fb19ba4440 Mon Sep 17 00:00:00 2001 From: Patrick Stephen Date: Sat, 21 May 2022 16:25:24 +0000 Subject: [PATCH 146/146] shiny/driver: remove unused imports --- shiny/driver/mtldriver_darwin.go | 6 ------ 1 file changed, 6 deletions(-) diff --git a/shiny/driver/mtldriver_darwin.go b/shiny/driver/mtldriver_darwin.go index 46a12f20..5eaf56f9 100644 --- a/shiny/driver/mtldriver_darwin.go +++ b/shiny/driver/mtldriver_darwin.go @@ -8,12 +8,6 @@ package driver import ( - "bytes" - "fmt" - "os/exec" - "regexp" - "strconv" - "github.com/oakmound/oak/v4/shiny/driver/mtldriver" "github.com/oakmound/oak/v4/shiny/screen" )

      ihe5QieUc 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ξ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 diff --git a/examples/slide/main.go b/examples/slide/main.go deleted file mode 100644 index c273bef5..00000000 --- a/examples/slide/main.go +++ /dev/null @@ -1,669 +0,0 @@ -package main - -import ( - "embed" - "fmt" - "image/color" - "log" - - "github.com/oakmound/oak/v4/alg/span" - "github.com/oakmound/oak/v4/render/mod" - "github.com/oakmound/oak/v4/render/particle" - - oak "github.com/oakmound/oak/v4" - "github.com/oakmound/oak/v4/examples/slide/show" - "github.com/oakmound/oak/v4/examples/slide/show/static" - "github.com/oakmound/oak/v4/render" - "github.com/oakmound/oak/v4/shape" - "golang.org/x/image/colornames" -) - -const ( - width = 1920 - height = 1080 -) - -func initFonts() (err error) { - err = show.InitFonts() - if err != nil { - return - } - Express28, err = show.Express.RegenerateWith(show.FontSize(28)) - if err != nil { - return - } - Gnuolane28, err = show.Gnuolane.RegenerateWith(show.FontSize(28)) - if err != nil { - return - } - Libel28, err = show.Libel.RegenerateWith(show.FontSize(28)) - if err != nil { - return - } - RLibel28, err = Libel28.RegenerateWith(show.FontColor(colornames.Blue)) - if err != nil { - return - } - Express44, err = show.Express.RegenerateWith(show.FontSize(44)) - if err != nil { - return - } - Gnuolane44, err = show.Gnuolane.RegenerateWith(show.FontSize(44)) - if err != nil { - return - } - Libel44, err = show.Libel.RegenerateWith(show.FontSize(44)) - if err != nil { - return - } - - Express72, err = show.Express.RegenerateWith(show.FontSize(72)) - if err != nil { - return - } - Gnuolane72, err = show.Gnuolane.RegenerateWith(show.FontSize(72)) - if err != nil { - return - } - Libel72, err = show.Libel.RegenerateWith(show.FontSize(72)) - if err != nil { - return - } - return nil -} - -var ( - Express28 *render.Font - Gnuolane28 *render.Font - Libel28 *render.Font - RLibel28 *render.Font - Express44 *render.Font - Gnuolane44 *render.Font - Libel44 *render.Font - Express72 *render.Font - Gnuolane72 *render.Font - Libel72 *render.Font -) - -//go:embed assets -var assets embed.FS - -func main() { - - show.SetDims(width, height) - - bz1, _ := shape.BezierCurve( - width/15, height/5, - width/15, height/15, - width/5, height/15) - - bz2, _ := shape.BezierCurve( - width-(width/15), height/5, - width-(width/15), height/15, - width-(width/5), height/15) - - bz3, _ := shape.BezierCurve( - width/15, height-(height/5), - width/15, height-(height/15), - width/5, height-(height/15)) - - bz4, _ := shape.BezierCurve( - width-(width/15), height-(height/5), - width-(width/15), height-(height/15), - width-(width/5), height-(height/15)) - - bkg := render.NewCompositeM( - render.NewColorBox(width, height, colornames.Seagreen), - render.BezierThickLine(bz1, colornames.White, 1), - render.BezierThickLine(bz2, colornames.White, 1), - render.BezierThickLine(bz3, colornames.White, 1), - render.BezierThickLine(bz4, colornames.White, 1), - ) - - oak.SetLoadingRenderable(bkg) - oak.SetFS(assets) - err := initFonts() - if err != nil { - log.Fatal(err) - } - show.SetTitleFont(Gnuolane72) - - setups := []slideSetup{ - intro, - why, - philo, - particles, - ai, - levels, - conclusion, - } - - total := 0 - - for _, setup := range setups { - total += setup.len - } - - fmt.Println("Total slides", total) - - sslides := static.NewSlideSet(total, - static.Background(bkg), - //static.Transition(scene.Fade(4, 12)), - ) - - nextStart := 0 - - for _, setup := range setups { - setup.add(nextStart, sslides) - nextStart += setup.len - } - - slides := make([]show.Slide, len(sslides)) - for i, s := range sslides { - slides[i] = s - } - show.AddNumberShortcuts(len(slides)) - show.Start(width, height, slides...) -} - -type slideSetup struct { - add func(int, []*static.Slide) - len int -} - -var ( - intro = slideSetup{ - addIntro, - 5, - } -) - -func addIntro(i int, sslides []*static.Slide) { - // Intro: three slides - // Title - sslides[i].Append( - show.Title("Applying Go to Game Programming"), - show.TxtAt(Gnuolane44, "Patrick Stephen", .5, .6), - ) - // Thanks everybody for coming to this talk. I'm going to be talking about - // design patterns, philosophies, and generally useful tricks for - // developing video games in Go. - - sslides[i+1].Append(show.Header("Who Am I")) - sslides[i+1].Append( - show.TxtSetAt(Gnuolane44, 0.5, 0.63, 0.0, 0.07, - "Graduate Student at University of Minnesota", - "Maintainer / Programmer of Oak", - "github.com/200sc github.com/oakmound/oak", - "patrick.d.stephen@gmail.com", - "oakmoundstudio@gmail.com", - )..., - ) - // My name is Patrick Stephen, I'm currently a Master's student at - // the University of Minnesota. I'm one of two primary maintainers - // of oak's source code, Oak being the game engine that we built - // to make our games with. - // If you have any questions that don't get answered in or after - // this talk, feel free to send those questions either to me - // personally or to our team's email, or if it applies, feel free - // to raise an issue on the repository. - - sslides[i+2].Append(show.Header("Games I Made")) - sslides[i+2].Append(show.TxtAt(Gnuolane28, "White = Me, Blue = Oakmound", .5, .24)) - sslides[i+2].Append( - show.ImageCaption("botanist.PNG", .67, .1, .5, Libel28, "Space Botanist"), - show.ImageCaption("agent.PNG", .1, .11, .85, RLibel28, "Agent Blue"), - show.ImageCaption("dyscrasia.PNG", .5, .65, .5, RLibel28, "Dyscrasia"), - show.ImageCaption("esque.PNG", .4, .37, .5, RLibel28, "Esque"), - show.ImageCaption("fantastic.PNG", .33, .65, .5, RLibel28, "A Fantastic Doctor"), - show.ImageCaption("flower.PNG", .7, .41, .75, Libel28, "Flower Son"), - show.ImageCaption("jeremy.PNG", .07, .5, .66, Libel28, "Jeremy The Clam"), - show.ImageCaption("wolf.PNG", .68, .71, .5, Libel28, "The Wolf Comes Out At 18:00"), - ) - // These are games that I've made in the past, most being made - // for game jams, built in somewhere between 2 days and 2 weeks. - // - // We'll mostly be focusing on these three games, which are those - // that we've been working on in Go-- Agent Blue, Jeremy the Clam, - // and A Fantastic Doctor. - - sslides[i+3].Append(show.Header("This Talk is Not About...")) - sslides[i+3].Append( - show.TxtSetFrom(Gnuolane44, .25, .35, 0, .07, - "- Optimizing Go", - "- 3D Graphics in Go", - "- Mobile Games in Go", - )..., - ) - - // And just to get this out of the way, as you will probably - // note from the games I just showed, we aren't going to be - // talking about 3D games here or really performance intensive - // games, or games for non-desktop platforms, just because, - // while we haven't ignored these things I don't have - // any revolutionary breakthroughs to share about them right now. - - sslides[i+4].Append(show.Header("Topics")) - sslides[i+4].Append( - show.TxtSetFrom(Gnuolane44, .25, .35, 0, .07, - "- Why Go", - "- Design Philosophy", - "- Particles", - "- AI with Interfaces", - "- Level Building with Interfaces", - "- Other Examples", - )..., - ) - - // What we will talk about, is why Go is particularly useful for - // developing games, the philosophy behind our engine and development - // strategy, and then some interesting use cases for applying - // design patterns that Go makes easy with particle generation, - // artificial intelligence, and level construction. -} - -var ( - why = slideSetup{ - addWhy, - 3, - } -) - -func addWhy(i int, sslides []*static.Slide) { - sslides[i].Append(show.Title("Why Go")) - sslides[i+1].Append(show.Header("Why Go")) - sslides[i+1].Append( - show.TxtSetFrom(Gnuolane44, .25, .35, 0, .07, - "- Execution Speed", - "- Concurrency", - "- Fast Development", - "- Scales Well", - "- Multiplatform Support", - )..., - ) - - // So Go is particularly nice for building games one the one hand - // for its speed-- If you're used to building games with javascript - // or pygame, you'll have way more cpu cycles than you know how to - // deal with, especially if you use concurrency well on machines with - // multiple CPUs, which is going to be most of your audience. - // - // More importantly, Go is just as fast to develop with as those slower - // languages but it scales so much better. A little effort into decoupling - // your components with interfaces, and your code becomes far easier to read - // and increment on. - - sslides[i+2].Append(show.Header("Why Not Go")) - sslides[i+2].Append( - show.TxtSetFrom(Gnuolane44, .25, .35, 0, .07, - "- Execution Speed", - "- Difficult to use Graphics Cards", - "- Difficult to vectorize instructions", - "- C is Unavoidable", - )..., - ) - - // But what I've said so far mostly applies to game jam style games-- - // how do you make a quick and dirty game in a few days without your - // code falling all over itself. If you're interested in doing something - // with heavy performance requirements, Go isn't the language to use. - // Go's speed isn't good enough for AAA games because it doesn't have easy - // access to things like OpenGL, Vulkan, or SIMD CPU instructions. - // What Go can do with these things is call out to C to do the work for it, - // but every C call in Go has overhead, and that overhead adds up if you're - // calling out to it thousands of times per second. - // - // There's other practical issues if you want to develop in Go even if you - // don't have high performance requirements-- depending on your platform - // you may need to install audio dependencies, usb dependencies, and so on, - // and for all of Go's benefits in cross compilation these dependencies - // completely break the hope of your game working the same on multiple - // platforms without you going in and testing it manually. -} - -var ( - philo = slideSetup{ - addPhilo, - 7, - } -) - -func addPhilo(i int, sslides []*static.Slide) { - // Philosophy, engine discussion - sslides[i].Append(show.Title("Design Philosophy")) - sslides[i+1].Append(show.Header("Design Philosophy")) - sslides[i+1].Append( - show.TxtSetFrom(Gnuolane44, .25, .35, 0, .07, - "- No non-Go dependencies", - "- Ease / Terseness of API", - "- If it's useful and generic, put it in the engine", - )..., - ) - - // That brings us to our design philosophy in Oak. - // First, if we have a non-Go dependency, we also have an issue to - // replace that non-Go dependency ASAP. Right now we have just one. - // - // The motivation for having few dependencies isn't just so we can - // feel confident that all of our platforms are supported, but also - // making the engine easy to use. Most libraries in Go can be used - // with 'go get', and we want the same thing here-- a developer - // should be able to go get oak and immediately start working with it. - // - // After that, we want our API to be easy to use and small. Part of our - // motivation to start building Oak was that other game engines at the - // time took 500 lines to draw a cube or 400 lines to write Pong. Maybe - // at their core, those problems do take that many lines, but a lot of that - // code we can write for you (and also for us, so we don't have to keep - // re-writing it). - // - // In line with this, we follow a rule where if we have to rewrite something - // more than once for a game or for a package of the engine, that probably - // means that should be its own package and feature the engine provides. - // This does go against the go proverbs-- we do not follow the idea that - // a little copying is better than a little dependency, so long as we - // treat that dependency as part of the larger, engine dependency. - - sslides[i+2].Append(show.Header("Update Loops and Functions")) - sslides[i+2].Append( - show.Image("updateCode1.PNG", .27, .4), - show.Image("updateCode3.PNG", .57, .4), - ) - // - // Some game engines model their exposed API as a loop-- - // stick all your logic inside update() - // - // In larger projects, this leads directly to an explicit splitting up of that - // loop into at least two parts-- update all entities, then - // draw all entities. - // - // The combining of these elements into one loop causes - // a major problem-- tying the rate at which entities update themselves - // to the rate at which entities are drawn. This leads to inflexible - // engines, and in large projects you'll have to do something to work around - // this, or if you hard lock your draw rate modders will post funny videos - // of your physics breaking when they try to fix your frame rate. - // - // Oak handles this loop for you, and splits it into two loops, one for - // drawing elements and one for logical frame updating. - // - sslides[i+3].Append(show.Header("Update Loops and Functions")) - sslides[i+3].Append( - show.Image("updateCode2.PNG", .27, .4), - show.Image("updateCode3.PNG", .57, .4), - ) - // - // Another pattern used, in parallel with the Update Loop, - // is the Update Function. Give every entity in your game the - // Upate() function, and then your game logic is handled by calling Update() - // on everything. At a glance, this works very well in Go because your entities - // all fit into this single-function interface, but in games with a lot of - // entities you'll end up with a lot of entities that don't need to do - // anything on each frame. - // - // The engine needs to provide a way to handle game objects that don't - // need to be updated as well as those that do, and separating these into - // two groups explicitly makes the engine less extensible. Oak uses an - // event handler for this instead, where each entity that wants to use - // an update function binds that function to their entity id once. - // - sslides[i+4].Append(show.Header("Useful Packages")) - sslides[i+4].Append( - show.TxtSetFrom(Gnuolane44, .25, .35, 0, .07, - "- oak/alg/intgeom, oak/alg/floatgeom", - "- oak/alg", - "- oak/physics", - "- oak/render/particle", - )..., - ) - // - // These are some of the less obvious useful packages we've taken - // from games or sub-packages and built into their own package-- - // - // intgeom and floatgeom should be self explanatory-- we and every - // other Go package continually redefine X,Y and X,Y,Z points of - // integers and floats, and we needed to stop redoing that work. - // - sslides[i+5].Append(show.Header("oak/alg")) - sslides[i+5].Append(show.ImageAt("degToRad.PNG", .3, .5, mod.Scale(1.25, 1.25))) - sslides[i+5].Append(show.ImageAt("chooseX.PNG", .6, .5, mod.Scale(1.25, 1.25))) - // - // in alg, we store things like rounding and selection algorithms. - // We found that we really needed to pick a random element from - // a list of weighted floats a lot, so we split it off here. - // - sslides[i+6].Append(show.Header("oak/physics")) - sslides[i+6].Append(show.ImageAt("push.PNG", .3, .5, mod.Scale(1.25, 1.25))) - sslides[i+6].Append(show.ImageAt("attachable.PNG", .7, .5, mod.Scale(1.25, 1.25))) - // - // Physics was built to store some physics primitives for handling - // propagation of forces, mass, friction, but was mostly built so - // we could attach entities to each other and stop having to move - // every sub-component in an entity when we moved the entity. - // - // And lastly, particle, where we figured being able to generate - // a lot of small images or colors in patterns was something that could easily - // spice up most games. -} - -var ( - particles = slideSetup{ - addParticles, - 5, - } -) - -func addParticles(i int, sslides []*static.Slide) { - sslides[i].Append(show.Title("Particles")) - sslides[i].OnClick = func() { - go particle.NewColorGenerator( - particle.Size(span.NewConstant(4)), - particle.EndSize(span.NewConstant(7)), - particle.Angle(span.NewLinear(0.0, 359.0)), - particle.Pos(width/2, height/2), - particle.Speed(span.NewSpread(5.0, 2.0)), - particle.NewPerFrame(span.NewSpread(5.0, 5.0)), - particle.Color( - color.RGBA{0, 0, 0, 255}, color.RGBA{0, 0, 0, 0}, - color.RGBA{255, 255, 255, 255}, color.RGBA{0, 0, 0, 0}, - ), - ).Generate(0) - } - // - // Speaking of particles, that's our first example - // of applying some techniques Go provides for making this API something I - // would consider to be really special. - // - // A particle generator is something like what's showing on screen now-- - // a source of a bunch of colors or effects or images, and they're complex - // to implement only because of the vast number of options you can take in - // to a particle emitter. - sslides[i+1].Append(show.Header("Particles in Other Engines")) - sslides[i+1].Append( - show.ImageCaption("craftyParticle.PNG", .17, .3, 1.25, Libel28, "CraftyJS"), - show.ImageCaption("phaserParticle.PNG", .40, .3, 1.25, Libel28, "PhaserJS"), - ) - // - // For context, we'll look at how some other engines do their - // particle APIs. Before starting Oak we worked with CraftyJS, - // which has the nice feature that these giant blocks of settings - // can be stored and reused for new particles, but then you get - // giant settings blocks. - // - // Phaser uses the reverse approach-- you can't keep particle settings - // around but you don't need to set a bunch of settings you don't need. - // - // These examples aren't making the same particle emitter, by the way, - // they're just the first examples I found from the respective engine's - // documentation. - - sslides[i+2].Append(show.Header("Particle Generators in Oak")) - sslides[i+2].Append(show.Image("AndPt.PNG", .13, .59).Modify(mod.Scale(1.25, 1.25))) - sslides[i+2].Append(show.Image("colorGen.PNG", .13, .29).Modify(mod.Scale(1.25, 1.25))) - sslides[i+2].Append(show.Image("particleOpts.PNG", .53, .29).Modify(mod.Scale(1.25, 1.25))) - // - // We wanted to apply what crafty did with saving settings, but we wanted - // settings to not all be mandatory, so our functional pattern starts by - // setting a bunch of defaults, then applying all the options that are passed in. - // Because the Option type is an exported type, users can define their own settings, - // and one of the settings I like to define is the And helper, shown here. - // - sslides[i+3].Append(show.Header("Particle Generators in Oak")) - sslides[i+3].Append(show.Image("oakParticle.PNG", .27, .4).Modify(mod.Scale(1.25, 1.25))) - // - // This is what this code looks like in practice-- often - // particle effects will get thrown off to their own package in our games - // so we can use a shorter import for particle. - // - sslides[i+4].Append(show.Header("Aside: Filtering Audio with Functional Options")) - sslides[i+4].Append(show.Image("filter.PNG", .13, .29).Modify(mod.Scale(1.25, 1.25))) - sslides[i+4].Append(show.Image("audio.PNG", .53, .29).Modify(mod.Scale(1.25, 1.25))) - sslides[i+4].Append(show.Image("dataFilter.PNG", .13, .59).Modify(mod.Scale(1.25, 1.25))) - // - // On the implementation side, though, if you have multiple types of - // particle generators, it's really frustrating to have to define interfaces - // for them accepting a whole bunch of different kinds of settings or not. - // While we haven't refactored particles to use this approach yet, our - // audio library fixes this by defining all filters on audio as functions - // that define their own Apply function-- so the logic for whether or not - // a particle type supports a setting can be confined to the type of filter. -} - -var ( - ai = slideSetup{ - addAI, - 5, - } -) - -func addAI(i int, sslides []*static.Slide) { - sslides[i].Append(show.Title("Building AI with Interfaces")) - - sslides[i+1].Append(show.Header("When Your Interface is Massive")) - sslides[i+1].Append(show.ImageAt("agentAI.PNG", .4, .5)) - sslides[i+1].Append(show.ImageAt("agentCharacter.PNG", .7, .5)) - - // But now that you've stored all of your enemy types as themselves, - // if you've got a bunch of procedures that run on your AI for - // pathing, targeting, or attacking, you'll run into this issue - // where the interface that defines your AI needs to know a lot - // of different information for each of these different behaviors. - - sslides[i+2].Append(show.Header("Condensing Massive Interfaces")) - sslides[i+2].Append(show.ImageAt("agentEnemy.PNG", .5, .5)) - - // The solution to this is to implement this sort of interface, - // where you compose all of your entities with a struct that has - // a function to return itself (as a pointer). Define an interface - // of just that function and... - - sslides[i+3].Append(show.Header("Reusable AI")) - sslides[i+3].Append(show.ImageAt("doctorEntity.PNG", .39, .5, mod.Scale(1.25, 1.25))) - sslides[i+3].Append(show.ImageAt("doctorHasE.PNG", .15, .5, mod.Scale(1.25, 1.25))) - sslides[i+3].Append(show.ImageAt("doctorBounce.PNG", .75, .5, mod.Scale(1.25, 1.25))) - - // ... now you can store all of the things - // any AI entity needs in one embedded struct and run all of your - // entities on any AI procedure you have. - - sslides[i+4].Append(show.Header("Aside: Composition for Private Features")) - sslides[i+4].Append(show.ImageAt("phase.PNG", .3, .5)) - sslides[i+4].Append(show.ImageAt("phaseCollision.PNG", .7, .5)) -} - -var ( - levels = slideSetup{ - addLevels, - 8, - } -) - -func addLevels(i int, sslides []*static.Slide) { - sslides[i].Append(show.Title("Designing Levels with Interfaces")) - sslides[i+1].Append(show.Header("A Poor Approach")) - sslides[i+1].Append(show.ImageCaption("agentLevelGenerate.PNG", .3, .1, 1, Libel28, "Level Generation in Agent Blue")) - sslides[i+1].Append(show.ImageAt("agentRoom.PNG", .6, .5, mod.Scale(1.25, 1.25))) - // - // Our first approach to building levels didn't use interfaces. - // We're going to go through why this was a terrible idea. - // Agent Blue was the first game we started making in Go and so - // it also has all of our worst patterns in its code. - // ... - sslides[i+2].Append(show.Header("A Poor Approach")) - sslides[i+2].Append(show.ImageCaption("agentTutorial.png", .2, .4, 5, Libel28, "Agent Blue Tutorial Map")) - sslides[i+2].Append(show.ImageCaption("agentLevelSelect.PNG", .5, .3, 1.25, Libel28, "Agent Blue Level Select Room (demo)")) - // Level vs LevelSelect - sslides[i+3].Append(show.Header("A Poor Approach")) - sslides[i+3].Append(show.ImageAt("agentDoodad.PNG", .5, .5, mod.Scale(1.25, 1.25))) - // - // Doodads - // - sslides[i+4].Append(show.Header("Modular Tile Enumeration")) - sslides[i+4].Append(show.ImageAt("jeremyLevel.PNG", .4, .5)) - sslides[i+4].Append(show.ImageAt("jeremyTileTypes.PNG", .6, .5)) - // - // So we were restricted because our tiles had too limited functionality. - // In Jeremy the Clam I tried to adapt this out by giving tiles explicit - // types based on their value, and each tile built itself using a Place - // function. So where before we had a tile interface, now tiles are just - // integers, making shared functionality a lot easier. - // - sslides[i+5].Append(show.Header("Modular Tile Enumeration")) - sslides[i+5].Append(show.ImageAt("jeremyTilePlace.PNG", .5, .5)) - // - // However, the immediate problem caused from this was that we no longer - // could place multiple tiles in the same tile position. Before we could - // stack floor tiles below wall tiles or doodad tiles, and now we need - // tiles that are labeled as non-floors to place floors below them - // when they get inserted during the start of the level. - // - sslides[i+6].Append(show.Header("Level Interfaces")) - sslides[i+6].Append(show.ImageAt("doctorLevelPlace.PNG", .3, .5)) - sslides[i+6].Append(show.ImageAt("doctorLevel.PNG", .7, .5)) - // - // We addressed this in A Fantastic Doctor by moving entity creation - // out of levels themselves, but also by abstracting the concept of a - // level in the first place. In this case, all a level (or in this - // game, an Organ) needs to provide is a Place() function to initialize - // all of its components when it is entered. - // - // - // So while we didn't do this, that means that we can extend organ - // functionality by making organs with layers of tiles instead of - // just one 2d layer. - sslides[i+7].Append(show.Header("Level Files")) - sslides[i+7].Append(show.ImageCaption("jeremyFile.PNG", .2, .3, 1.0, Libel28, "A Jeremy Level File")) - sslides[i+7].Append(show.ImageCaption("doctorFile.png", .6, .3, 2.0, Libel28, "A Fantastic Doctor Level File")) -} - -var ( - conclusion = slideSetup{ - addConclusion, - 3, - } -) - -func addConclusion(i int, sslides []*static.Slide) { - sslides[i].Append(show.Header("Thanks To")) - sslides[i].Append( - show.TxtSetFrom(Gnuolane44, .25, .35, 0, .07, - "- Nate Fudenberg, John Ficklin", - "- Contributors on Github", - "- You, Audience", - )..., - ) - - // And I'll end by thanking the other people in Oakmound - // for working with me on our engine, those who've tried - // out the engine and raised issues or PRs, and all of you - // for listening. - sslides[i+1].Append(show.Header("Other GUI Programs")) - sslides[i+1].Append(show.ImageCaption("slide.PNG", .2, .4, 1.25, Libel28, "This Slideshow")) - - // As a final note, to demonstrate some kind of versatility, - // this slide show was written in Oak as well. - - sslides[i+2].Append(show.Title("Questions")) - - // ? -} diff --git a/examples/slide/show/fonts.go b/examples/slide/show/fonts.go deleted file mode 100644 index 67d10308..00000000 --- a/examples/slide/show/fonts.go +++ /dev/null @@ -1,60 +0,0 @@ -package show - -import ( - "image" - "image/color" - "path" - - "github.com/oakmound/oak/v4/render" -) - -func InitFonts() (err error) { - Express, err = (&render.FontGenerator{ - File: fpFilter("expressway rg.ttf"), - Color: image.NewUniform(color.RGBA{255, 255, 255, 255}), - }).Generate() - if err != nil { - return - } - Gnuolane, err = (&render.FontGenerator{ - File: fpFilter("gnuolane rg.ttf"), - Color: image.NewUniform(color.RGBA{255, 255, 255, 255}), - }).Generate() - if err != nil { - return - } - Libel, err = (&render.FontGenerator{ - File: fpFilter("libel-suit-rg.ttf"), - Color: image.NewUniform(color.RGBA{255, 255, 255, 255}), - }).Generate() - if err != nil { - return - } - return nil -} - -var ( - Express *render.Font - Gnuolane *render.Font - Libel *render.Font -) - -//FontSize sets size on a font -func FontSize(size float64) func(render.FontGenerator) render.FontGenerator { - return func(f render.FontGenerator) render.FontGenerator { - f.Size = size - return f - } -} - -//FontColor sets the color on a font -func FontColor(c color.Color) func(render.FontGenerator) render.FontGenerator { - return func(f render.FontGenerator) render.FontGenerator { - f.Color = image.NewUniform(c) - return f - } -} - -func fpFilter(file string) string { - return path.Join("assets", "font", file) -} diff --git a/examples/slide/show/helpers.go b/examples/slide/show/helpers.go deleted file mode 100644 index 33ebedb1..00000000 --- a/examples/slide/show/helpers.go +++ /dev/null @@ -1,168 +0,0 @@ -package show - -import ( - "fmt" - "path/filepath" - "strings" - - "github.com/oakmound/oak/v4/render/mod" - - "github.com/oakmound/oak/v4/render" -) - -var ( - width, height float64 -) - -// SetDims for the whole presentation global -func SetDims(w, h float64) { - width = w - height = h -} - -var ( - titleFont *render.Font -) - -// SetTitleFont on the presentation -func SetTitleFont(f *render.Font) { - if f == nil { - fmt.Println("title font nil") - } - titleFont = f -} - -// TxtSetAt creates text starting from a given location and advancing each text by an offset -func TxtSetAt(f *render.Font, xpos, ypos, xadv, yadv float64, txts ...string) []render.Renderable { - rs := make([]render.Renderable, len(txts)) - for i, txt := range txts { - rs[i] = TxtAt(f, txt, xpos, ypos) - xpos += xadv - ypos += yadv - } - return rs -} - -// TxtAt creates string on screen at a given location -func TxtAt(f *render.Font, txt string, xpos, ypos float64) render.Renderable { - return Pos(f.NewText(txt, 0, 0), xpos, ypos) -} - -// Title draws a string as the title of a slide -func Title(str string) render.Renderable { - return TxtAt(titleFont, str, .5, .4) -} - -// Header draws a header for the slide -func Header(str string) render.Renderable { - return TxtAt(titleFont, str, .5, .2) -} - -// TextSetFrom draws a series of text with offsets from top right not left -func TxtSetFrom(f *render.Font, xpos, ypos, xadv, yadv float64, txts ...string) []render.Renderable { - rs := make([]render.Renderable, len(txts)) - for i, txt := range txts { - rs[i] = TxtFrom(f, txt, xpos, ypos) - xpos += xadv - ypos += yadv - } - return rs -} - -// TxtFrom draws a new string starting from the right rather than the left -func TxtFrom(f *render.Font, txt string, xpos, ypos float64) render.Renderable { - return f.NewText(txt, width*xpos, height*ypos) -} - -// Pos sets the center x and y for a renderable -func Pos(r render.Renderable, xpos, ypos float64) render.Renderable { - XPos(r, xpos) - YPos(r, ypos) - return r -} - -// XPos sets the centered X pos of a renderable -func XPos(r render.Renderable, pos float64) render.Renderable { - w, _ := r.GetDims() - r.SetPos(width*pos-float64(w/2), r.Y()) - return r -} - -// YPos sets the centered Y pos of a renderable -func YPos(r render.Renderable, pos float64) render.Renderable { - _, h := r.GetDims() - r.SetPos(r.X(), height*pos-float64(h/2)) - return r -} - -// Image renders a static image at a location -func Image(file string, xpos, ypos float64) render.Modifiable { - s, err := render.LoadSprite(filepath.Join("assets", "images", "raw", file)) - if err != nil { - fmt.Println(err) - return nil - } - s.SetPos(width*xpos, height*ypos) - return s -} - -// ImageAt creates an image, centers it and applies modifications -func ImageAt(file string, xpos, ypos float64, mods ...mod.Mod) render.Modifiable { - m := Image(file, xpos, ypos) - m.Modify(mods...) - w, h := m.GetDims() - m.ShiftX(float64(-w / 2)) - m.ShiftY(float64(-h / 2)) - return m -} - -// ImageCaptionSize set the caption and its size -func ImageCaptionSize(file string, xpos, ypos float64, w, h float64, f *render.Font, cap string) render.Renderable { - r, err := render.LoadSprite(filepath.Join("assets", "images", "raw", file)) - if err != nil { - fmt.Println(err) - return nil - } - w2, h2 := r.GetDims() - w3 := float64(w2) / width - h3 := float64(h2) / height - wScale := w / w3 - hScale := h / h3 - if wScale > hScale { - wScale = hScale - } else { - hScale = wScale - } - r.Modify(mod.Scale(wScale, hScale)) - w4, h4 := r.GetDims() - r.SetPos(width*xpos, height*ypos) - r.ShiftX(float64(-w4 / 2)) - r.ShiftY(float64(-h4 / 2)) - - x := r.X() + float64(w4)/2 - y := r.Y() + float64(h4) + 42 - - caps := strings.Split(cap, "\n") - for i := 1; i < len(caps); i++ { - // remove whitespace - caps[i] = strings.TrimSpace(caps[i]) - } - s := TxtSetAt(f, float64(x)/width, float64(y)/height, 0, .04, caps...) - - return render.NewCompositeR(append(s, r)...) -} - -// ImageCaption creates caption text -func ImageCaption(file string, xpos, ypos float64, scale float64, f *render.Font, cap string) render.Renderable { - r := Image(file, xpos, ypos) - r.Modify(mod.Scale(scale, scale)) - w, h := r.GetDims() - - x := r.X() + float64(w)/2 - y := r.Y() + float64(h) + 28 - - s := f.NewText(cap, x, y) - s.Center() - - return render.NewCompositeR(r, s) -} diff --git a/examples/slide/show/slide.go b/examples/slide/show/slide.go deleted file mode 100644 index e0258bf5..00000000 --- a/examples/slide/show/slide.go +++ /dev/null @@ -1,142 +0,0 @@ -package show - -import ( - "fmt" - "image" - "image/color" - "strconv" - - oak "github.com/oakmound/oak/v4" - "github.com/oakmound/oak/v4/debugstream" - "github.com/oakmound/oak/v4/event" - "github.com/oakmound/oak/v4/key" - "github.com/oakmound/oak/v4/render" - "github.com/oakmound/oak/v4/scene" -) - -type Slide interface { - Init(*scene.Context) - Continue() bool - Prev() bool - Transition() scene.Transition -} - -func slideResult(sl Slide) *scene.Result { - return &scene.Result{ - Transition: sl.Transition(), - } -} - -var ( - skip bool - skipTo string -) - -func AddNumberShortcuts(max int) { - debugstream.AddCommand(debugstream.Command{Name: "slide", Operation: func(args []string) string { - if len(args) < 2 { - return "" - } - v := args[1] - i, err := strconv.Atoi(v) - if err != nil { - fmt.Println(err) - return "" - } - if i < 0 { - skipTo = "0" - } else if i <= max { - skipTo = v - } else { - skipTo = strconv.Itoa(max) - } - skip = true - return "" - }}) -} - -func Start(width, height int, slides ...Slide) { - for i, sl := range slides { - i := i - sl := sl - oak.AddScene("slide"+strconv.Itoa(i), scene.Scene{ - Start: func(ctx *scene.Context) { - - sl.Init(ctx) - event.GlobalBind(ctx, event.Enter, func(event.EnterPayload) event.Response { - cont := sl.Continue() && !skip - oak.SetLoadingRenderable(render.NewSprite(0, 0, oak.ScreenShot())) - if !cont { - ctx.Window.NextScene() - return event.ResponseUnbindThisBinding - } - return 0 - }) - - }, - End: func() (string, *scene.Result) { - fmt.Println("ending") - if skip { - skip = false - return "slide" + skipTo, slideResult(sl) - } - if sl.Prev() { - fmt.Println("Prev slide requested from", i) - if i > 0 { - return "slide" + strconv.Itoa(i-1), slideResult(sl) - } - return "slide0", slideResult(sl) - } - fmt.Println("new slide", strconv.Itoa(i+1)) - return "slide" + strconv.Itoa(i+1), slideResult(sl) - }, - }) - } - - reset := false - - var oldBackground image.Image - - oak.AddScene("slide"+strconv.Itoa(len(slides)), - scene.Scene{ - Start: func(ctx *scene.Context) { - oldBackground = ctx.Window.(*oak.Window).GetBackgroundImage() - oak.SetColorBackground(image.NewUniform(color.RGBA{0, 0, 0, 255})) - wbds := ctx.Window.Bounds() - render.Draw( - Express.NewText( - "Spacebar to restart show ...", - float64(wbds.X()/2), - float64(wbds.Y()-50), - ), - ) - event.GlobalBind(ctx, key.Down(key.Spacebar), func(key.Event) event.Response { - reset = true - return 0 - }) - - event.GlobalBind(ctx, event.Enter, func(event.EnterPayload) event.Response { - if !reset { - ctx.Window.NextScene() - return event.ResponseUnbindThisBinding - } - return 0 - }) - }, - End: func() (string, *scene.Result) { - oak.SetColorBackground(oldBackground) - reset = false - skip = false - return "slide0", nil - }, - }, - ) - oak.Init("slide0", func(c oak.Config) (oak.Config, error) { - c.Screen.Width = width - c.Screen.Height = height - c.FrameRate = 30 - c.DrawFrameRate = 30 - c.EnableDebugConsole = true - return c, nil - }) -} diff --git a/examples/slide/show/static/basicSlide.go b/examples/slide/show/static/basicSlide.go deleted file mode 100644 index 81728f45..00000000 --- a/examples/slide/show/static/basicSlide.go +++ /dev/null @@ -1,116 +0,0 @@ -package static - -import ( - "fmt" - "os" - - oak "github.com/oakmound/oak/v4" - "github.com/oakmound/oak/v4/event" - "github.com/oakmound/oak/v4/key" - "github.com/oakmound/oak/v4/mouse" - "github.com/oakmound/oak/v4/render" - "github.com/oakmound/oak/v4/scene" -) - -type Slide struct { - Rs *render.CompositeR - ContinueKey key.Code - PrevKey key.Code - transition scene.Transition - cont bool - prev bool - OnClick func() -} - -func (ss *Slide) Init(ctx *scene.Context) { - oak.SetFullScreen(true) - render.Draw(ss.Rs, 0) - - event.GlobalBind(ctx, key.Up(ss.ContinueKey), func(key.Event) event.Response { - - fmt.Println("continue key pressed") - ss.cont = true - return 0 - }) - - event.GlobalBind(ctx, key.Up(ss.PrevKey), func(key.Event) event.Response { - fmt.Println("prev key pressed") - ss.prev = true - return 0 - }) - - event.GlobalBind(ctx, key.Up(key.Escape), func(key.Event) event.Response { - os.Exit(0) - return 0 - }) - if ss.OnClick != nil { - event.GlobalBind(ctx, mouse.Press, func(*mouse.Event) event.Response { - ss.OnClick() - return 0 - }) - } -} - -func (ss *Slide) Continue() bool { - return !ss.cont && !ss.prev -} - -func (ss *Slide) Prev() bool { - ret := ss.prev - ss.prev = false - ss.cont = false - return ret -} - -func (ss *Slide) Append(rs ...render.Renderable) { - for _, r := range rs { - ss.Rs.Append(r) - } -} - -func (ss *Slide) Transition() scene.Transition { - return ss.transition -} - -func NewSlide(rs ...render.Renderable) *Slide { - return &Slide{ - Rs: render.NewCompositeR(rs...), - ContinueKey: key.RightArrow, - PrevKey: key.LeftArrow, - } -} - -func Transition(trans scene.Transition) SlideOption { - return func(s *Slide) *Slide { - s.transition = trans - return s - } -} - -func Background(r render.Modifiable) SlideOption { - return func(s *Slide) *Slide { - s.Rs.Prepend(r) - return s - } -} - -func ControlKeys(cont, prev key.Code) SlideOption { - return func(s *Slide) *Slide { - s.ContinueKey = cont - s.PrevKey = prev - return s - } -} - -type SlideOption func(*Slide) *Slide - -func NewSlideSet(n int, opts ...SlideOption) []*Slide { - slides := make([]*Slide, n) - for i := range slides { - slides[i] = NewSlide() - for _, opt := range opts { - slides[i] = opt(slides[i]) - } - } - return slides -} diff --git a/examples/sprite-demo/README.md b/examples/sprite/README.md similarity index 100% rename from examples/sprite-demo/README.md rename to examples/sprite/README.md diff --git a/examples/sprite-demo/assets/images/raw/gopher11.png b/examples/sprite/assets/images/raw/gopher11.png similarity index 100% rename from examples/sprite-demo/assets/images/raw/gopher11.png rename to examples/sprite/assets/images/raw/gopher11.png diff --git a/examples/sprite-demo/main.go b/examples/sprite/main.go similarity index 100% rename from examples/sprite-demo/main.go rename to examples/sprite/main.go diff --git a/examples/svg/assets/images/TestShapes.svg b/examples/svg/assets/images/TestShapes.svg deleted file mode 100644 index 26de7ec0..00000000 --- a/examples/svg/assets/images/TestShapes.svg +++ /dev/null @@ -1,37 +0,0 @@ - - Example triangle01- simple example of a 'path' - A path that draws a triangle - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/svg/go.mod b/examples/svg/go.mod deleted file mode 100644 index 530c3c91..00000000 --- a/examples/svg/go.mod +++ /dev/null @@ -1,32 +0,0 @@ -module github.com/oakmound/oak/examples/svg - -go 1.18 - -require ( - github.com/oakmound/oak/v4 v4.0.0-alpha.1 - github.com/srwiley/oksvg v0.0.0-20210320200257-875f767ac39a - github.com/srwiley/rasterx v0.0.0-20200120212402-85cb7272f5e9 -) - -require ( - dmitri.shuralyov.com/gpu/mtl v0.0.0-20201218220906-28db891af037 // indirect - github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc // indirect - github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 // indirect - github.com/disintegration/gift v1.2.1 // indirect - github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958 // indirect - github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect - github.com/jfreymuth/pulse v0.1.0 // indirect - github.com/oakmound/alsa v0.0.2 // indirect - github.com/oakmound/libudev v0.2.1 // indirect - github.com/oakmound/w32 v2.1.0+incompatible // indirect - github.com/oov/directsound-go v0.0.0-20141101201356-e53e59c700bf // indirect - golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd // indirect - golang.org/x/image v0.0.0-20220321031419-a8550c1d254a // indirect - golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 // indirect - golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d // indirect - golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect - golang.org/x/sys v0.0.0-20220403205710-6acee93ad0eb // indirect - golang.org/x/text v0.3.6 // indirect -) - -replace github.com/oakmound/oak/v4 => ../.. diff --git a/examples/svg/go.sum b/examples/svg/go.sum deleted file mode 100644 index 5f8cb361..00000000 --- a/examples/svg/go.sum +++ /dev/null @@ -1,69 +0,0 @@ -dmitri.shuralyov.com/gpu/mtl v0.0.0-20201218220906-28db891af037 h1:+PdD6GLKejR9DizMAKT5DpSAkKswvZrurk1/eEt9+pw= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20201218220906-28db891af037/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc h1:7D+Bh06CRPCJO3gr2F7h1sriovOZ8BMhca2Rg85c2nk= -github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 h1:O/r2Sj+8QcMF7V5IcmiE2sMFV2q3J47BEirxbXJAdzA= -github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046/go.mod h1:uw9h2sd4WWHOPdJ13MQpwK5qYWKYDumDqxWWIknEQ+k= -github.com/disintegration/gift v1.2.1 h1:Y005a1X4Z7Uc+0gLpSAsKhWi4qLtsdEcMIbbdvdZ6pc= -github.com/disintegration/gift v1.2.1/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958 h1:TL70PMkdPCt9cRhKTqsm+giRpgrd0IGEj763nNr2VFY= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20220320163800-277f93cfa958/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= -github.com/jfreymuth/pulse v0.1.0 h1:KN38/9hoF9PJvP5DpEVhMRKNuwnJUonc8c9ARorRXUA= -github.com/jfreymuth/pulse v0.1.0/go.mod h1:cpYspI6YljhkUf1WLXLLDmeaaPFc3CnGLjDZf9dZ4no= -github.com/oakmound/alsa v0.0.2 h1:JbOUckkJqVvhABth7qy2JgAjqsWuBPggyoYOk1L6eK0= -github.com/oakmound/alsa v0.0.2/go.mod h1:wx+ehwqFnNL7foTwxxu2bKQlaUmD2oXd4ka1UBSgWAo= -github.com/oakmound/libudev v0.2.1 h1:gaXuw7Pbt3RSRxbUakAjl0dSW6Wo3TZWpwS5aMq8+EA= -github.com/oakmound/libudev v0.2.1/go.mod h1:zYF5CkHY+UP6lzWbPR+XoVAscl/s+OncWA//qWjMLUs= -github.com/oakmound/w32 v2.1.0+incompatible h1:vIkC6eJVOaAnwTTOyiVCGh24GoryPRmcvWq3cekkG2U= -github.com/oakmound/w32 v2.1.0+incompatible/go.mod h1:lzloWlclSXIU4cDr67WF8qjFFDO8gHHBIk4Qqe90enQ= -github.com/oov/directsound-go v0.0.0-20141101201356-e53e59c700bf h1:od9gEl9UQ/QNHlgYlgsSaC5SZ+CGbvO2/PCIgserJc0= -github.com/oov/directsound-go v0.0.0-20141101201356-e53e59c700bf/go.mod h1:RBXkZ8n2vvtdJP6PO+TbU/N/DVuCDwUN53CU+C1pJOs= -github.com/srwiley/oksvg v0.0.0-20210320200257-875f767ac39a h1:Lhe6HPtH4ndWfV56fWc4/yQhOP3vEGlwl5nfPyBxUAg= -github.com/srwiley/oksvg v0.0.0-20210320200257-875f767ac39a/go.mod h1:afMbS0qvv1m5tfENCwnOdZGOF8RGR/FsZ7bvBxQGZG4= -github.com/srwiley/rasterx v0.0.0-20200120212402-85cb7272f5e9 h1:m59mIOBO4kfcNCEzJNy71UkeF4XIx2EVmL9KLwDQdmM= -github.com/srwiley/rasterx v0.0.0-20200120212402-85cb7272f5e9/go.mod h1:mvWM0+15UqyrFKqdRjY6LuAVJR0HOVhJlEgZ5JWtSWU= -github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= -golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd h1:zVFyTKZN/Q7mNRWSs1GOYnHM9NiFSJ54YVRsD0rNWT4= -golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20220321031419-a8550c1d254a h1:LnH9RNcpPv5Kzi15lXg42lYMPUf0x8CuPv1YnvBWZAg= -golang.org/x/image v0.0.0-20220321031419-a8550c1d254a/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 h1:ZDL7hDvJEQEcHVkoZawKmRUgbqn1pOIzb8EinBh5csU= -golang.org/x/mobile v0.0.0-20220325161704-447654d348e3/go.mod h1:pe2sM7Uk+2Su1y7u/6Z8KJ24D7lepUjFZbhFOrmDfuQ= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d h1:20cMwl2fHAzkJMEA+8J4JgqBQcQGzbisXo31MIeenXI= -golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220403205710-6acee93ad0eb h1:PVGECzEo9Y3uOidtkHGdd347NjLtITfJFO9BxFpmRoo= -golang.org/x/sys v0.0.0-20220403205710-6acee93ad0eb/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.1.8-0.20211022200916-316ba0b74098/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/examples/svg/main.go b/examples/svg/main.go deleted file mode 100644 index b55a284d..00000000 --- a/examples/svg/main.go +++ /dev/null @@ -1,55 +0,0 @@ -package main - -import ( - "bytes" - _ "embed" - "fmt" - "image" - - "github.com/oakmound/oak/v4" - "github.com/oakmound/oak/v4/render" - "github.com/oakmound/oak/v4/scene" - "github.com/srwiley/oksvg" - "github.com/srwiley/rasterx" -) - -//go:embed assets/images/TestShapes.svg -var testShapes []byte - -func main() { - oak.AddScene("svg", scene.Scene{ - Start: func(*scene.Context) { - // load svg - // svg from oksvg testdata - icon, err := oksvg.ReadIconStream(bytes.NewBuffer(testShapes)) - if err != nil { - fmt.Println(err) - } - // put it in the thing - - inputW, inputH := icon.ViewBox.W, icon.ViewBox.H - iconAspect := inputW / inputH - const width = 640 - const height = 480 - - buff := image.NewRGBA(image.Rect(0, 0, width, height)) - - viewAspect := float64(width) / float64(height) - outputW, outputH := width, height - if viewAspect > iconAspect { - outputW = int(float64(height) * iconAspect) - } else if viewAspect < iconAspect { - outputH = int(float64(width) / iconAspect) - } - scanner := rasterx.NewScannerGV(int(inputW), int(inputH), buff, image.Rect(0, 0, width, height)) - scanner.SetBounds(10000, 10000) - dasher := rasterx.NewDasher(width, height, scanner) - icon.SetTarget(0, 0, float64(outputW), float64(outputH)) - icon.Draw(dasher, 1) - - render.Draw(render.NewSprite(0, 0, buff)) - }, - }) - - oak.Init("svg") -} diff --git a/examples/text-demos/README.md b/examples/text-demos/README.md deleted file mode 100644 index 1b8e2514..00000000 --- a/examples/text-demos/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# Text Creation -Examples of drawing text and changing their text / content while on the screen. \ No newline at end of file diff --git a/examples/text-demos/color-changing-text-demo/README.md b/examples/text-demos/color-changing-text-demo/README.md deleted file mode 100644 index a79cecf3..00000000 --- a/examples/text-demos/color-changing-text-demo/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# Text Creation -Draw text and update some of it to change its color and display the rgb value diff --git a/examples/text-demos/color-changing-text-demo/main.go b/examples/text-demos/color-changing-text-demo/main.go deleted file mode 100644 index 84121b4e..00000000 --- a/examples/text-demos/color-changing-text-demo/main.go +++ /dev/null @@ -1,84 +0,0 @@ -package main - -import ( - "embed" - "image/color" - "path" - "strconv" - - "image" - - oak "github.com/oakmound/oak/v4" - "github.com/oakmound/oak/v4/alg/span" - "github.com/oakmound/oak/v4/render" - "github.com/oakmound/oak/v4/scene" -) - -var ( - font *render.Font - r, g, b float64 - diff = span.NewSpread(0.0, 10.0) - limit = span.NewLinear(0.0, 255.0) -) - -type floatStringer struct { - f *float64 -} - -func (fs floatStringer) String() string { - return strconv.Itoa(int(*fs.f)) -} - -func main() { - oak.AddScene("demo", - scene.Scene{Start: func(ctx *scene.Context) { - render.Draw(render.NewDrawFPS(0.25, nil, 10, 10)) - fg := render.FontGenerator{ - File: path.Join("assets", "font", "luxisbi.ttf"), - Color: image.NewUniform(color.RGBA{255, 0, 0, 255}), - FontOptions: render.FontOptions{ - Size: 50, - DPI: 72, - }, - } - r = 255 - font, _ = fg.Generate() - font.Unsafe = true - txts := []*render.Text{ - font.NewText("Rainbow", 200, 200), - font.NewStringerText(floatStringer{&r}, 200, 260), - font.NewStringerText(floatStringer{&g}, 320, 260), - font.NewStringerText(floatStringer{&b}, 440, 260), - } - for _, txt := range txts { - render.Draw(txt, 0) - } - font2, _ := font.RegenerateWith(func(fg render.FontGenerator) render.FontGenerator { - fg.Color = image.NewUniform(color.RGBA{255, 255, 255, 255}) - return fg - }) - render.Draw(font2.NewText("r", 160, 260), 0) - render.Draw(font2.NewText("g", 280, 260), 0) - render.Draw(font2.NewText("b", 400, 260), 0) - - ctx.DoEachFrame(func() { - r = limit.Clamp(r + diff.Poll()) - g = limit.Clamp(g + diff.Poll()) - b = limit.Clamp(b + diff.Poll()) - font.Drawer.Src = image.NewUniform( - color.RGBA{ - uint8(r), - uint8(g), - uint8(b), - 255, - }, - ) - }) - }, - }) - oak.SetFS(assets) - oak.Init("demo") -} - -//go:embed assets -var assets embed.FS diff --git a/examples/text-demos/continual-text-demo/README.md b/examples/text-demos/continual-text-demo/README.md deleted file mode 100644 index 3ad111e2..00000000 --- a/examples/text-demos/continual-text-demo/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# Text Creation -Continually draw text on screen with a random color \ No newline at end of file diff --git a/examples/text-demos/continual-text-demo/main.go b/examples/text-demos/continual-text-demo/main.go deleted file mode 100644 index 927f1bbf..00000000 --- a/examples/text-demos/continual-text-demo/main.go +++ /dev/null @@ -1,88 +0,0 @@ -package main - -import ( - "image/color" - "math/rand" - - "github.com/oakmound/oak/v4/alg/span" - "github.com/oakmound/oak/v4/dlog" - "github.com/oakmound/oak/v4/event" - - "image" - - oak "github.com/oakmound/oak/v4" - "github.com/oakmound/oak/v4/render" - "github.com/oakmound/oak/v4/scene" -) - -// ~60 fps draw rate with these examples in testing -const ( - strRangeTop = 128 - strlen = 250 - strSize = 6 -) - -var ( - font *render.Font - r, g, b float64 - diff = span.NewSpread(0.0, 10.0) - limit = span.NewLinear(0.0, 255.0) - strs []*render.Text -) - -func randomStr(chars int) string { - str := make([]rune, chars) - // ascii - for i := 0; i < chars; i++ { - str[i] = rune(rand.Intn(strRangeTop)) - } - return string(str) -} - -func main() { - oak.AddScene("demo", - scene.Scene{Start: func(ctx *scene.Context) { - render.Draw(render.NewDrawFPS(.25, nil, 10, 10)) - - r = 255 - fg := render.DefFontGenerator - fg.Color = image.NewUniform(color.RGBA{255, 0, 0, 255}) - fg.FontOptions = render.FontOptions{ - Size: strSize, - } - - var err error - font, err = fg.Generate() - dlog.ErrorCheck(err) - font.Unsafe = true - - for y := 0.0; y <= 480; y += strSize { - str := randomStr(strlen) - strs = append(strs, font.NewText(str, 0, y)) - render.Draw(strs[len(strs)-1], 0) - } - - event.GlobalBind(ctx, event.Enter, func(_ event.EnterPayload) event.Response { - r = limit.Clamp(r + diff.Poll()) - g = limit.Clamp(g + diff.Poll()) - b = limit.Clamp(b + diff.Poll()) - font.Drawer.Src = image.NewUniform( - color.RGBA{ - uint8(r), - uint8(g), - uint8(b), - 255, - }, - ) - for _, st := range strs { - st.SetString(randomStr(strlen)) - } - return 0 - }) - }, - }) - render.SetDrawStack( - render.NewDynamicHeap(), - ) - oak.Init("demo") -} diff --git a/examples/text/README.md b/examples/text/README.md new file mode 100644 index 00000000..e90d0d0c --- /dev/null +++ b/examples/text/README.md @@ -0,0 +1,3 @@ +# Text Creation + +Examples of drawing text, supporting multiple fonts, and changing text color / content while on the screen. diff --git a/examples/text-demos/color-changing-text-demo/assets/font/luxisbi.ttf b/examples/text/assets/font/luxisbi.ttf similarity index 100% rename from examples/text-demos/color-changing-text-demo/assets/font/luxisbi.ttf rename to examples/text/assets/font/luxisbi.ttf diff --git a/examples/fallback-font/go.mod b/examples/text/go.mod similarity index 91% rename from examples/fallback-font/go.mod rename to examples/text/go.mod index a3506b83..cfa040b4 100644 --- a/examples/fallback-font/go.mod +++ b/examples/text/go.mod @@ -1,4 +1,4 @@ -module github.com/oakmound/oak/examples/fallback-font +module github.com/oakmound/oak/examples/text-demo go 1.18 @@ -20,6 +20,7 @@ require ( github.com/oakmound/w32 v2.1.0+incompatible // indirect github.com/oov/directsound-go v0.0.0-20141101201356-e53e59c700bf // indirect golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd // indirect + golang.org/x/exp/shiny v0.0.0-20220428152302-39d4317da171 // indirect golang.org/x/image v0.0.0-20220321031419-a8550c1d254a // indirect golang.org/x/mobile v0.0.0-20220325161704-447654d348e3 // indirect golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect diff --git a/examples/fallback-font/go.sum b/examples/text/go.sum similarity index 96% rename from examples/fallback-font/go.sum rename to examples/text/go.sum index a0a089a6..56e16ddf 100644 --- a/examples/fallback-font/go.sum +++ b/examples/text/go.sum @@ -30,6 +30,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd h1:zVFyTKZN/Q7mNRWSs1GOYnHM9NiFSJ54YVRsD0rNWT4= golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= +golang.org/x/exp/shiny v0.0.0-20220428152302-39d4317da171 h1:z30zqzcMCfd0FKAu5UKufCveE9KnQoMY3uvRH5+pxkA= +golang.org/x/exp/shiny v0.0.0-20220428152302-39d4317da171/go.mod h1:VjAR7z0ngyATZTELrBSkxOOHhhlnVUxDye4mcjx5h/8= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20220321031419-a8550c1d254a h1:LnH9RNcpPv5Kzi15lXg42lYMPUf0x8CuPv1YnvBWZAg= diff --git a/examples/text/main.go b/examples/text/main.go new file mode 100644 index 00000000..64848756 --- /dev/null +++ b/examples/text/main.go @@ -0,0 +1,142 @@ +package main + +import ( + "embed" + "fmt" + "image/color" + "path" + "strconv" + + "image" + + findfont "github.com/flopp/go-findfont" + oak "github.com/oakmound/oak/v4" + "github.com/oakmound/oak/v4/alg/span" + "github.com/oakmound/oak/v4/render" + "github.com/oakmound/oak/v4/scene" +) + +//go:embed assets +var assets embed.FS + +type floatStringer struct { + f *float64 +} + +func (fs floatStringer) String() string { + return strconv.Itoa(int(*fs.f)) +} + +func main() { + oak.AddScene("demo", + scene.Scene{Start: func(ctx *scene.Context) { + render.Draw(render.NewDrawFPS(0.25, nil, 10, 10)) + drawFallbackFonts(ctx) + drawColorChangingText(ctx) + }, + }) + oak.SetFS(assets) + oak.Init("demo") +} + +func drawFallbackFonts(ctx *scene.Context) { + const fontHeight = 16 + + fg := render.DefFontGenerator + fg.Color = image.NewUniform(color.RGBA{255, 0, 0, 255}) + fg.FontOptions.Size = fontHeight + font, _ := fg.Generate() + + fallbackFonts := []string{ + "Arial.ttf", + "Yumin.ttf", + // TODO: support multi-color glyphs + "Seguiemj.ttf", + } + + for _, fontname := range fallbackFonts { + fontPath, err := findfont.Find(fontname) + if err != nil { + fmt.Println("Do you have ", fontname, "installed?") + continue + } + fg := render.FontGenerator{ + File: fontPath, + Color: image.NewUniform(color.RGBA{255, 0, 0, 255}), + FontOptions: render.FontOptions{ + Size: fontHeight, + }, + } + fallbackFont, err := fg.Generate() + if err != nil { + panic(err) + } + font.Fallbacks = append(font.Fallbacks, fallbackFont) + } + + strings := []string{ + "Latin-lower: abcdefghijklmnopqrstuvwxyz", + "Latin-upper: ABCDEFGHIJKLMNOPQRSTUVWXYZ", + "Greek-lower: αβγδεζηθικλμνχοπρσςτυφψω", + "Greek-upper: ΑΒΓΔΕΖΗΘΙΚΛΜΝΧΟΠΡΣΤΥΦΨΩ", + "Japanese-kana: あいえおうかきけこくはひへほふさしせそすまみめもむ", + "Kanji: 茂僕私華花日本英雄の時", + "Emoji: 😀😃😄😁😆😅😂🤣🐶🐱🐭🐹🐰🦊🐻🐼", + } + + y := 20.0 + for _, str := range strings { + render.Draw(font.NewText(str, 10, y), 0) + y += fontHeight + } +} + +func drawColorChangingText(ctx *scene.Context) { + var ( + r, g, b float64 + diff = span.NewSpread(0.0, 10.0) + limit = span.NewLinear(0.0, 255.0) + ) + + fg := render.FontGenerator{ + File: path.Join("assets", "font", "luxisbi.ttf"), + Color: image.NewUniform(color.RGBA{255, 0, 0, 255}), + FontOptions: render.FontOptions{ + Size: 50, + DPI: 72, + }, + } + r = 255 + font, _ := fg.Generate() + font.Unsafe = true + texts := []*render.Text{ + font.NewText("Color", 200, 200), + font.NewStringerText(floatStringer{&r}, 200, 260), + font.NewStringerText(floatStringer{&g}, 320, 260), + font.NewStringerText(floatStringer{&b}, 440, 260), + } + for _, txt := range texts { + render.Draw(txt, 0) + } + font2, _ := font.RegenerateWith(func(fg render.FontGenerator) render.FontGenerator { + fg.Color = image.NewUniform(color.RGBA{255, 255, 255, 255}) + return fg + }) + render.Draw(font2.NewText("r", 160, 260), 0) + render.Draw(font2.NewText("g", 280, 260), 0) + render.Draw(font2.NewText("b", 400, 260), 0) + + ctx.DoEachFrame(func() { + r = limit.Clamp(r + diff.Poll()) + g = limit.Clamp(g + diff.Poll()) + b = limit.Clamp(b + diff.Poll()) + font.Drawer.Src = image.NewUniform( + color.RGBA{ + uint8(r), + uint8(g), + uint8(b), + 255, + }, + ) + }) +} diff --git a/examples/zooming/assets/mona-lisa.jpg b/examples/zooming/assets/mona-lisa.jpg deleted file mode 100644 index a68ca83088a68bef49ab60dd4df207c17154adb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72551 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
      |G^$Jp+5 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%0A+-@j8hE& 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 PLwLG)j>QLzipTTc*L|?A diff --git a/examples/slide/assets/font/gnuolane rg.ttf b/examples/slide/assets/font/gnuolane rg.ttf deleted file mode 100644 index eb06ae90d92013c9ac137c1827434f7ab01fdc03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90148 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 z 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 diff --git a/examples/slide/assets/font/libel-suit-rg.ttf b/examples/slide/assets/font/libel-suit-rg.ttf deleted file mode 100644 index caf48fba133420f934cd8fe3fbc6dc8191e49682..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 149180 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%0D8iXLUHscD#)M9rwf3G?&jkz5=u z-Ej0Zjd;8!UgM#UY8b)o5@YFG9OKKpke%_bE)%+i3uPjLtcL4g;lK?D&l##q0Dbi8 z*2n8zvc81C)HhhmP~10?2BUpbGL0zE+eO_nb+lWOL~FRein?V|>X05$)I0JC&Bz=> zMOtGQkH(3LCUX+}J4#21Yeju?I^@Hn>~u|Opjj*3Mzg`B(1<)r6~gj9vSQ8))2)+y z5~V-oYo3;fceYRKYVN{EnWiSDQdKPSD=ApF|r55{XY9bn`4q{rvVHNP{ zKqZ9ra~@vA&(8<P0=YgnIgXGq|$dmVp_I@7M}$A zE{Hd)Yr6t{BP<%>S7cA|c)rKK==MY-=ofYEi{x(rcLM9J)iD!9zjVOD)W!^T4d4v0 zK6Y)4&&Rp1!iUeM;Y&MZad*t5>130adm+9f`#(@F#tzvRm}#pRJ9ad~V)AMu-ngoA zwBm#!qx6t`T11c2(btc%(^NhUseEcNm?fVApvDmeC?;=eOgb?`f2t}L^@DVEHPNP6 z6FwRi@kcZQTGe`x-|{mm?qIe)!7!BvEW41MgL)u33T}5y(!r9_)HO|r2??ffSs^;h zf*?kV-2%%K|2>%5g|MP9i4w>X(w%5MpB+>qc@6CgvocaMhD?NHBHIDB=3IdZNwNiy z)9#FiDgMmul`|}~rVmrV>e}vlerq>LkI_YaH>}@u&!+XaV{y^JwfD;jefq{5|2*Qk zTiBf`82>tb6+DuaGKgLcFAD;MbPAce+BZ(-5dsu{&5a_zBa`HUYC&1W=r`O#7T+pAyHC^~(Ad#F*y4dgdv7jwg}qkl_wvSFh6~{z?>)xBFne#NmM~bFQiAJV0PidYuHPRGq!YY`kSpw!!>v!Rn|EufA zH<%cr@}14F&x>eCUMY%ZOpx79pYz&IT68fH5lm6MXsGU}86_1dcY%sNNyWA)ZLKW@ zI;w&Pbo62joT6NSZah|AS#5ftP;GBCvS1#$ty-q#J6~3MwC`oyd=YP+j!%Q#JUMR`Tl~dj z9aqKLqve~VdV#K)Q^B41nqhZWH@@C8W9p22HEqY_QGUW~#_pN4p7k`V$KVer_yLYl z+bPG+Jz1S+&!RdnoHwg?c27s^l&+~W$JQCT1jar7H^Va_bGs2C0q+>}Q?_VM$JB~) zr%~vm(uqpKCLcC$qGc}XcMlLUI=yqnvd-@5-3_tYh6qCEv5RMQ*%D?3LQ_rzy=eDmV8 z%FW-tZgy=DOWc;1#he1mt8B6F$EF7CwAe=^L$PF%*7elPpFKNTyzD1XSzhgo&uVB` zFeg=0i!YgB@tfO;5dEK5HrCaZPpx^;S6fqG-W%K!`AMVY-Gd8ROo-1Z_iYgNIg+sSXQS{`-8jioH@Vr2t-FFYMY`sTm2o z4G}NoutdlTLR6&bAlXEYouc>fCC$yvZOv^SET2k}>7dqqva&Bc{(r1&zCp*xi`)h+ zNUJ+SOK~Ew8bcZqN3VQmbEiwzUUlUZ>MzHB5p7QQGuEA&KS~=_8&b9QqZB`9c1!cZ z`LlcG^i1z)p4Bpoh(rJb`kT>J&#LstVS>&30nz_22o;u^32bGiY^R`Ub*a~UO)r_u zlOXL3bex=b1i#=g0gXwPhpYdk^5}n*=H+VrPzKfw!TVz18}_rKcoL|ZoK|`j93JC6 z2~^MA5tM61><;QF%RT+DtS3Hn0}lnwb>f?YuO&8FPlRiq+$PBfT(HWi|+f)zdr=6vk?-TY%N4*Y#2iBy4ihsDe-kDf)_R zDQTa~gV%zj2@M~b0>F%r&9Nk(4?lbwVA zla61Y%3icM!B*hhz&Ar*{-&xB_~5HRC>p%Gn1ok)8%g?xA$_sPN4ujNcSl?0fhqC{ zf*E@FM)SC}LX!w^l8KU|CE<%!4|zGSuT8|N0~LPmmPz~-M3VycsdOg22XbKoFjP*2M?trdw9Y;~24@UM zOu9mfGr|~Jhy3|Z+eryPdq;I_{D0)V37B11b?1A|xpk+SZ{4Y;TXpA}R3)iO zRhp$Mm23@FvgARwODYet44%Nq#wIqS0fUJlm;ebR-6jy|@Vd?GCfyCDNxx3=Na%ED zaykQKAe{~&kc18iybwB|tM^-LpL6cHw{A&tzSr;T_dS!?Qq?*8?7jBdYp>zI*2+vI zMFynp)v;7oa?>h>^!D78WT%x2>9e`=tNJHi)jyo8I6rk~a{op_iV)z#cw8Ncl}|_ORKYK>B)n7@$}CXS`YY^vV_TX?AgAs(DSnq;twLm*4CrG^7plE2ha z!ojCUW3LQ79w6i6RBg3EkMN83pUgd>E*U>y_g+L_czs)Y62}y2{IWb;Xa0Uj!fU`GQ*HZ@T95K% zz#wn$jbUDGu@6X}D(i;x+*mioFhkN9z+HA{%#j#EQ)pcQ7P;;m)f)!_(SC71dh5T% z@ONYV_Ikmx-r08jEDhT8P5qYM<}OdR82;0nKB#nPc1#Q@9co)^`}P2-@tqT0B2dxP zunnmPL=~>QXcc+XTQchG0Zv8;JTKKB`4;6tt$R2PY>Rlk*c**J9qm{htV|Gpk6<^4 zwL<1X(x9d#!^umz1X(??5VDIYshfH3U1y5fkxF)=C)cxYc49u)HNWuW>ko9kftdUc z{G^MqnD7{(d+3wGoUUmdQ->!V4JAa~fOuT(`C8TUtT3ttq*2f_8xSPa3nEc{a$;`F#QfyEiw1FHr{r@7bZDim zea9mhwY7t-z8h~cn^0+bYTMk@j_Dn)^Tv=6y)-{Pir(Y2@Phc=J zIL%oE5PyxD+>aH!IkAX~G(C;C{R)pm0pKvR6SIl5QXn1|9JKCZvk%D7;2d@k(t5fv zL;qt9h6;rM#mF}y2`9$YPT-ZTQ(O6rc(Kf97`T-3Y6-7Dd5DHWIIQp##aJV<(4_+6ZZ&zlY>{0UN7>!K??nVyoPXQz-iu zpjgiG6Zp0FSZ}OlGk_A(xEOMy)JPH)yW@myM{qTW3mY|?J5r8x(noK?)lxMj1(XKd*f&H~j0AIwTcHTuRIO{lN;vlLpp<8HQJPV^*CB1y#a4@ac$W3% zhycE+mKwHW9aM9V#%Q$@4VjdFcX7B{u*5LOY>;3vy=0II(Wt4JKrD^$dHZLGw8?{B zDFE`=um>x}JRi+bfD0&gr*u$oO9E`H6IC)*>b(*W@wLgx)?!g#*yq=Q`07$-b@|fW zEfu3~U%vG3{b~^GGg&qGMOD9|9I1!nx_J3J@Dq9{K@&JO8aYp>O@UmH`r08}j6V!r z?=<=qEqbd|_7wg3VqJI4_bnoB0!53j>U3pXiEVDcpP?TKw&DcnVSN5!Nkem|4OUOk znmYRp*eL~|jrEKT52mPa?c<=jJsgzq#s=T9y^g~S3I*1H=0Szo2cfdWYK$yK z_j-02GIJeDkj=WaGB-OZ72mQXn0j$%@)wz4FkTY@AnyXVgUVBCEm&UaiBGC+rgi6x&Ptj@l}tutr@fB) z^RH`tz>Z_{DXP%Tsu^Ue(CsD8(q+ZFKzJc8qRs^>fOmFsI5kvpiDTCvI=E+-saIF&MN9JcprPxUJ-EYqf<5@pO?$AN0C;mn z_;@@9h+EONjqM;{;TMNDa&qz7UToQh5fXFU5AqEw9*&U>x^eeg-a;KtHq>FQHDBuT zaBybtRDK5b?vBSS>t{CEyPe*iS)HBnbJDT$TK8>_zi(a*!oUbu+q2AdM^=s>Id$Es zz2XCA^y= zB88Jjbgs*P!q{b_i<@-{p53~5`IlHHl`|nR*HOqhFJW@@B2*%4wQYc$vA)Sz+l=0= zV_ken=efhw!Q_{ePnS_--1(FC5 zq@#|Q31I#GGN!%$+d4nuHq@BnCl1Nj7ZitjSQ(u;YO+W& zY1_$6l9V_6e*@H$R3NH-`RB;bm8#~0R;5-Pq~j{(z1Rm-201F8!;SJ(m5Kh4;2Rg( zyUzBlwY|A09Na~Vrs0#|&C4O|&UL78? zER%d8<=`qnNu-%YTjezo>_GXU4YND3#jV{T)!16q*!isU@E01TJh+3&JF(su$U8wj z;w;^vc_*vp4wb^%4jlp{u_4H6lmX<2z+{}zh2YN-%97I%$Y#(o5LyGmdd87jS#JLl zHc^?De}@A7OP-;arxtxOWwKlvjYh>)>G6{5iA8g3F280 znWzE0LI216z&A_i7D!Hk^5bxLIGgS!Qx|U3V=ek&_408t>Gi(GrJ{9XtqCf=exC16 zKp$ea=w4Ds_O{wBeQYur$;5q3oTEG1Mc&)tmClYh6EdsxzkJeJEfupF`7~YmW=pfV z5vjNxPKVPR3o{ML#pOe~{yFWbqU%TJqX3NDxnPNq!=0Qk3t6Y7Cfyz@dOFnj!`0o$ zrnKqIkr+to>F~ytdb8fRC(XEL)t>Xl#f#<;W|DxKI%*Ul5~2m47&Oge`#58nGh^k9 zd{FyU{w{vs67qp=eK>~*WC^IsB;crzo=4n%E?PpQGfHAM1f~<9i(h73fIW@;BWQ7h zJFdmJbR|OQaG0cWBs8%o93TwKD=HNw{U}LafkJ?;(o@D;zswQ3?pAptOICqu=G3(8 zcGF{SY0kaW*kwG$c*@)u?{BDbTPw)Sj>$~4N}<}ZocVA#I4PHIdkxPqovP9iADi_F zd~8TTcUE3vA==>8h~|!2_4b)D4b7gQ_P`!PGlU|pI)}@N8Wch^9d{$mxV+?hhoD)H zMeStCFOr@aF=0S?FF-JDdL!8Jv}wvinuRvz0Rfcwskh~S`UBr8<(FwL@Qsz7ch*0( zX8%xXSCyW941f9i{A(Zc)gHW(ogbBtSe=G`)@s_+ES3>z;K_LZ>E`@v*Usc04{fbq z-nMhOK5Bn@`>ths++F*90Y2Qu*usbR!!Oe5OmdYJ<0t-6f(UM^gIo|m`)#oF)X%WH zdb?=4?B*Ob&JSbVXYMQI@zeaBIPinuV~t;sqJjofq;-Y)i^7PU6E1p4pa&>#K9<`7 zsRRB%(Ag!wasmNG*bT(=%-$j5MtZ$NU)7F6;+5cZNa*3D9_Fl-O_wXCr;N0)Qdkd(5~jdFh_m?q zcbx7o>?mia6V#^3P5p$|+UiUB-7`bo-6s5s}?B zqCiDMzY(S!EIll~KXtI5lxqLvAZ{o^9DHJ}7BAyPAE2!VUUbjgSZFR8?XH0yXT4fR ze!o|oJFu9%Z7Rw;ex>fd#-i*$)_ZyqJ>^wKSJ(XA?JN>qUG*pss3`g<#bGLexR{5g z#JN^*9{f9wkNJYp*EQGD;Lt7t45fZ7nqcwF3gF!Q|kkQI;XhALpu zk*cIztT?*0t^mi<^(OEV`m1G0Z*fT`RQLB(p^LPpLL^WpJlk-ESF{|+PBpv<*7X-E zUN5vt!T7`Lk4%i`CLC!H*V||g*K7JfzOPuykJ;ZXmP$pmb$qmr)C}JO-uQZv`GP4< zl&FV3t8GTY;HW6HIuiU@)cg#oCl3$Fg=_qEGzLJs2z03_anQYAX@m^ZJ=F3P*`}4s zTyd&6RTb|7Zu6iY-E_bR62eW7XzE|m(l75<@upXY-L5f*CT9+L_3~?5rVcf?HSw$G zoBk$+e8KB)GCA33DKj0^qr)!|%_)Flq71VSipgu3FY4CCXDJzg9y7V=}GgBeO3QQ^o=JLyiMn(m!A8_-#9 z;alh|+0)7Z5AQyfg{ITk{_ByvFIly3C)B%LSA~rMsch?h5GxY_(h7^@ZiLy zM4G2RNbfaIFOhYlm)yy5s9o=_+FfnyIvXY1jz(6mv}E~C68%T`l<&~Wp=y~mKk?TV z_s+&O3+BD)!Vw3JXH1RMkQN(noZut0WocclOZN?X%psT9~pVT*FnQ&C?y49J$%!Yqg=BI~{xH zo}GJk@0zGc3jtgeOU{ys`$ISFMPTTr_&1!}az=m=zw@(&V1LDSv*f<;X2~7r&XSC+ zO=h{-Uy!;^lA4?l19)i?cx@x|Y5;mBq-6Z&Vgz z{BHEYcZP~)EtXk}_+7pgT9VbUj!4v7Qiz>F88gYl;`QVTZdq7pb<@?@gq1ACI%oxa zpds|EM4)z@m-#jT4uo;Ii5kVCv_BH%z&&M7q9$*+-R{2qvB%aQv%m12wYBdo*PpVV zTIMa(F4l9Ly~#_y9zCo8jU(C(Xo>U?_PWCfosa3{DGjf?f;ugI3s&{Rc`Kht$R+?m zGKJu^D~ZN$M2Yl}3HzzIyuh?xO?Q%~pAPmXdGNu*rbEe3FF)UCQS$uqPp?4lBDT^K zCVo?t{oKi za!Fa$@s?C(YuIzRHl=qln=MUVI`ibMe$sK zb?xVTaDKT3N!2^Hy*qY#*?H>HTgCd72G9FW_KY>7rUu4_v&=^3`3C0#^TfkU_?bP# zu41y*7-FphPq_w!VhgQ_UST*Ncz7aG0rQZO>hipBIh`rJmNQBle z_${6``+~}E!AoqYpTjybtOH$vj$8y?BpU3{l_P|17xF#-?1>2tqbz6PZD)n?yLiW!9qjs6Z{C2drt< z^2!&zQa~n1J0hn)bPlLeNP_P8wi}BXsSWARd4$;8g{I%3veMIlDl;Yunds|GcM)Te z!ay%vVq?ul5yxElShIT8QULeX55wXyLBKkX4}T9VAyMY#zx>DxYmpAL=F9_a7NbZ1)QNM_9%XI5KD*KFVM3dW(x*>$;Kv=_kG;r? z3(O~Qd|v9dsv?P{6^j|~quTD(O&$V&VxHvM;X%sJjgJxTEsjl%PYHxSAsBx2XK6HS z^k>P@k`}gZ^h65RF9!Qn&aHjn3#}csC;zkCQrl4g|LrYpwLwL_)YQ6?`!EcFy0|OH z@Ih}EKB5Ca*nvywzr!!J+E&CyLU>6ah$O#$dUqkeYkE+ck5~5e^)7Bn zZ5g1obRmDHlFL_~EAmf&W>Q*arKfh6?Z1;hjb=;Jon1F1wv-l1UMXrG?zS*-$PswXa&wR`*S12Bw#{AAESnj$Q99 zmCL2M>=F6lrP;~yKTH;`yM1wnrGn}BHZkYhIKM^fF`!`(0w;t$OsHtcjrGd$Epj?l zCzd)i0L~-@PTk9L^Fc@r`Q~LjgtgWxZ1;$^&gDbJWVs@3-i_l#n#_0{E!fv!^m-A} zKM`p89*Fyvk2H0E|BXh_*O|u~$8K2mOROtx-CFCBf*b?%f|u*ml}Oqp8mq)#n80K- zAuR2!10-#Sgm3icrh7Ck>IYKgvUZP7Xk{<=H1^r1-}kd`=-am?tH&-i5`E$$cfV&H zEX^O;v3yz1Sfcmu>)Y*5*4N-hGsg#+W7dK+;M5%P2W3Q|ri_3QoCenB>3>%nhIK2TmNnb{V`8~w?h4;S~$3>ukG z|I4o`pZs$dn~)JM=Yq0n3?H)l5cmyff-25}M`XSr>3A<=Wy;k=1Da3@wd^m*gquFp zJ3jAW6KFYd>Cc?eAN;LTyYw@SJq-b8H)rkdL$9_fNLr~J6|$-5iiin2jS7`qCvKLu zln$;gCQDOgxg#pdS7Nrgln|S9KRpxW=hOB?CfyQmd`RlKdO_IfqnW;*k@3@gV_Wm# zcsTTR3B$_&KPLrU8{ybeK3vM(ejvAFB5No5>-}Pq+TYT!tj_;?_Afc;>ee=~l->Cw zA#W1{K}7^tf;)YM3Zyrgel|1Tm_9XXTjt)>PkjG0Ruyya9i1KP^h2X9jm683%zJcU zV$dGV)juDIgR0&9ZKpT%!_b|4vQG9M*?|Apr$4RHE|BG88=$lLDvztLvSL-Lm1Hpq z@E1kPxAW6M+7~AbOUTx|OO5=_ZkN&n1MEQ&UL1leT=RY;qI~+Bfu2h9f>ruQflS4k0{_qyjTdjRl1AT#40aX z1*sylm`sQiv(rty)TR}4zF>H#E8N_adCXgled${*?U_x_4!$PexOhkoL zh4p0^=T1dfO2{Fi*nPm2VBP$fv;zcK7*zF$O@lgLornrfDD>dHH>3_N7>SV1cR#XD zDTn$?U*EeV!XR6$|DW~u+Yj3xQ(B*~zlqK>E0Rn*Ub z?05dm*j4;d^RCgh_t`%NRftX4KZ$*HckPZb`Zkd%VGSw1ioSAIEN)%w>2xG>N$xpo zO~AqyYK^EkHYyGh&R)&sBpo|f!Yf$Fk0(cypt+>yS0gdI*N^Ete`IW~z&zIddAy(f z_!Wag=^bMtDQYbCgd=dE}s8j45FEK#Cml3hmglF&ytcG9w$Eee;; zcBHoNnqGo;+!c!7%l2Mht5vRfy@EUWl36eETJzAM`?~!;m+n8pe`n2U%+6)(5K*Kw zF;LA*p90=SVmkE@RHtnGI@a{-TI0oN<2TqDYp&HeZ4otzcRCk)B=t}75hU%U8?dxv z5?`#d++OAmHQzeW_6^8k>S)CvYAm*_TAaMgt45=9t4od4_OuK@6vTT8N_u81V%>e4 zO;cGfQ3PB(v$Lhr?858JjC2OlSS*w(Ld+-Ga zIu?40;l!ok-ny&K>de&CWCtbxc5;}S^~ivIJLl}|mExjYB8yX{y(g#qTB75NlUXl= z^>>EmifJhw`eWNq9$Xrpms?>XeXzK5B9)rh>6ZOURQ7!}QJP*DpQTbRGs4#(I`PK* z&2v;y`;_(Lwa!V-og{IJWOkVv0C=4AR795L*v(0tu{HYgx}7@$vU-X0dMz)h^rq3I zNbln!y;CHmQ4?az3`HSKT3WZHaLT;f=Ww1wZ2sF?@;b>P3+8c(Z9C7I+{^Y`@lN79 zZc>>hopLr+^j$f@O!7Frw_8%vyiu+^z*=pP47C$SP8>gWG?>NNk?tSn><#1C@=UW|x;GLXrmA>osu)fiF9*kFuIE80BZ zxJi()png}8xBm@|mUy!#=j^DFx7Kov?hr=Cig#M%l^_E*2vx0c(MFVdv3dE%?``;o z%2MmYhL1Wu`KhRG_bo%S@@pw zTL$Cr$wX+QGST{uk%gHSDHu9I#SZ6~D+=|u4N-@>ZGKymUj${K`wLGHju^=&X(FEF z!`y9>d_*FB`6Pdg5jyup9S{4W&Mk8yHFQL_nWvg%oBMdPY)h0%L5bEW5^Xd2;9~!O z)6Z7z2k$)YrC%bwN}Y; zwR~6gog?+!+;Hph3*^RZl3%<>1PX$|mnr11c3!JU+3&yHB2wHzt|n13NR*>Tj$VJ= zhMZUSj&q1_SK|$uTOc_LQOopm`Ja=waX9xb;Ej0=fxVYJ}Pxu$(xF#Os6M;#yWG)iKy_^_MFqX{y;t^}&E&sziF^+Z&Dx z=S>K#Va~`(sDv&&Q=`(C#B}H&+;9-`8O#bCgMhdb{nms%5%%1Id?<>hhHWP5+<}ni z7{r&o^kRPJL?)id_V%WGBe%x~2K#zaJ<)>nio7+1aW|Ll!-^!Kh3?GA|f$kf$t@}D2OfkY==7H=OdjGKO{2joEOK0cu6rh z(FEL>gk{Z4Rn!imVM>}&Qi&}9-O1TaxIIZs?+!e=V3BsJ(?Ws}AxSr1m^W=a?)oV| zB60TL)=UiI@yCx7kvMMmIaV+l@oUSU(%?h=w&lkq6v2G38=$Y$92~R?k}p9Ss4#h# zF{;C3kA~S?X~(5A4;h=tvI^rPLz2y#NR);PaXh`j`6{`YBvdag?zP3Xry1AHGRu)% z{#rMdY>ormy* z-Cyg5j8qMX<3{(q5~DaGJeZks1RN(oJgpW0s5$s+{RLK9s8>*6@!0;vL@ibA9~vEpu!6&mf6?M8*MFI?d%DSTHhO-)D>pX5}fO!p&pH|SZ&*&AYg z!HTPML8oYI#P6rQfM38xdP8g2FWD6I6Tjv6?Emi4^qonU5uci*_?=i1 zl9rceow{~zdbi<@>kpJb0uDi!T;;aUDYY8TL&4i|G>|oZ_Z|joc?e>4mWVt}m_S;^ zgSNQj(h#B-aN<-nyU;7cBLB?zt3n_Kn&K;tQ$_;~qlC+ zb}saW#HBZJPbfb;oDUsx#ARNX8z)+@efQkl?y+4n!^2y4Vt8P_D9@4YXys2)$ zvAfN+Q9|}9ntfWCWba7da4bv-if)O@~?d|C(Bc1}?Rr6?XIrIZn+vh!|vUgAs9 z(Shxi!QvQx(n4=Jxt$6MbeZ<4^Q+&SHxg}d3a5FV5rN~tLz zI~)khKBIpiJgbi7lLV42+N)E}jE6(i2~O)QY|aHedUx7)KX~f)JrCV*JEwzxur=$y z>wMtydl|dr{Ke(>@*QlI`m=m>T)&eN4~Rwu9^lMKk%${KF zzkH4F{tWN_s{8J*%DeX2`dfL|J?-#h^J(YvxKswT3WE3j_c$+J{!{SIGWS1qUgUwh z>lYcrZl^nhkKJ9X2b&sbB58^Ggt=seuxJ;1( zmVHW^wglU?MBD*+(X#8m?L2Y$M?=f#h;NWlRzBU$c@;ndSM>dyjF5dFtQ)d!=V__B zVTDd|JCE=XH<9-cy(U|qF=Oykit&Xu{(f!kv&o5U!8=~|4)iz)QD#fk17HK>=FQPp z;kVCkn;jk-bS5MHw5LsF`WKzQyP-5TQW+abWX4Bxsh%DZy@ZE<%X#zVf9melKXu*= zeebM)hB;qVHiGuBv#Gw({*icu>Z?5-c^LD<@b)*|F~6z2eZKx4#=P>`ZBwzx-M^19 z-WT2RzNq7!tG|))+_R!*GlWgM32R9?W~Rvwv>j<1YN>!0<-xYx%deuwpiCgCQRHHyIpHmG z>t!bTGO={$=(zJ0jR<#lO-CZc`^49L*}lAX`GL#-QRmBlmG8gygO9x|zW?^+xy$!b zJxb0F|Ap_LsQ-F1-L86;e}plf<{f;uPvgn4@2Wq--`x93?gLYqY30-Z$onc0@=m*5 zf79h(y8K5Wf)yKgg>Q;L54i$8WS8u6{r48_>Cnm#o(w(1uQ`*SN0IGpp)%~T-X zA|WcxT$^p*L_Q|T$Iw{D|Lef`)BgC>RMPRuA(C-LDLD_$+P1f7z;o7V+nhc)ZZt6N zj6bedt&I`SOVSuqRRXrkD>g^wM{Mg?0^@AI!&^Uy6pRcIet}97JA8{{vANBYPRm`d z)8~&jVePe^f&zx3WB@9VoMv|l4=2igK8zY}F-6j5+O(66X*@<~_<#6gR_za+@`ud+iK~s*X4aoD&qzg1XFJ%gCHFCAfBwWav0sh1%-U*ailY z+FJwIc){9R1L=WuDrqO|M7iA4Sl^Q-7BpamB9^!XsCwk~+30}zI_!G{b>|-jy6$?1 zAi^PV{n)gKkn=SsW0V;K|1~HJx%-^^ysh?P9n<5 zP~H{axL>ylua1a~aqZP+syBJt29s&^tPYkV`mgMltS5xQSFM!+N5Zb3c{M1?yUXOwYP%{Ze%qkU!^@n5<*1p-1Bj0q$0tVr!IuEGgVJrzFS`*enZJXc}*<(w5lIk7eoVk&#MZuj(;f-{%Gse3i zwkIupk*UWnbtilT7+CKX)Rg`3mxGwE!rm=IKF-Vjg|)T%Z+dtm)4V$~xu?<$@iMfx zo(<5R4Yu5hdP*cVk`=0@fk5Gx?tZ;4@XjnhuGETNr8g{a$JwIDKl8RJ7pK(aNkX{% zOZX>Z6>4LUMhmS$QE>nm&Jj-n)_*KBQ;@51A!(1Vom+e6+&i4>FMVE^$DhYv1m+>N z9oZ)epgt3ND9$FA{mL5lwV|@{d!jL%QoIG*9uXN4zIHekzDMx93uW5 zV3LqxbdT_Du>rfJTM#AC6%8-4-sTVri%1rNmR&*EQ_jD`vSM8^sdd&c3FErkg+)7E zSWL3(_L2JU+Y|NQ|L!kSK78#GI1&54HE{+*caN`-0aL=?+xfAaR~MhrEWD|!(-Bx_ zfS>I@;yox2-M!P`-oZ@T+`R5yxqB^rzCF1!&%3j=Y1YlDvM<2K21*UHI23U~*rW#f zdRSvrjGl;!8rgHXu|euXD{cvDG=<_A>lURdYy$aWlDNkbJ!H*{#7_mR+jUaqXC0vky`fkNE;6vjscNd{aWBC5B!|&#y{m>Wsph}n^Y#s-XItyPr}_B`@iunb=^7i+*_2) zr_M?Q5lO-{Ii@Pglw7vGZR^~ul-{sM?NKW43=MSocdg9l-DXUk4*?~Sw_Qv~%9#j< zHXk$u;=n-C-8}Gx%xRMMGxAotN6JAOz9s;{ekorwB;NRRI;~Vr9H5@OO+|;R&A@9{We+;mw;oJa6CH<>7h1yHXyWUg5&8=taL1Qhi-|7TG_=zD4cFt$)HI z-(KsjZPmbs47Dx@| z&UkoNWS8D>U9w4hH+A`p{gnBx)VQ$!nM)h-(R|T>@H)YATS*jL#qNZV{pK%TB+1wO zg^y@W6N5fbqoZS1rIl>fA7dfpTMdx7Bvs5dg= zxEb0**)+;ukC1oR8SeD;zsujVzH8Pg*a-WRtP@S1BP_@WUmI3kUbJB;8rr1)itZcK zccVt%O|fs!di2BIeB62t%2n-u!@sdUF$3j0cTlH6VKZ^8-*Fz& zNbv);-tuU+AD+%}ulqbbw2_sijGD4?j_>mERt|Q5Pr*pC$tFq#dOIe2x+0R4Jr;|l zX2SSYA|+h$2}u>nNc4^^gbWUO9U5*zxE0y#MS+zJKFza^U39PZaV8?OJ6#UqC0H zgJ(ZP%x;8S1ES(^W0=f#aY}>0@)GsDwJZrqsSyh0x5+)QU84CWSuZ~ZAv>%Qd&FA{ zIW8Jr8zb{PWuoJ~&V)u!OgP+2)ssvO+u6E5bxWeMcWP>9p*KA}(_h~Gzh(9m%adDn z=Hk`NSg}}$6$if(+E?DcWrzl?V?T1;Sl7ON?=S3|9sa;bd8YE-h2qgd^}S=&Y7sV} z=GGbee&+(0RIxVRi{{M@rg|bfqZ5axxWF=lqAVuILIlAU7X*dCwXuV^&I7%}nM8PE z+bzRWJ4V+Aa@CY`Vb>E+KC$$=zx<&a{>e{%==cjSZ28fD@oAKB!!K*la0`|Ll@aHq z!7F!{);)5I8SyoU=Z4|7g;w|Mnk4=oY5$=)LnlVwumKH8o-zf-2w zD?c!B)?zM~zva5A-KG8;^OeKB*`8v#)R#+08(S$E_xt_B#bh!8s<~|c(BaeBq1yDx zquGi1(PDaR;!vub>K+`*CGxfLKar-kQZDYR*=l~YH??o;pXUpOJTz1}$~jQZkd_`} zIq5_%D?c$|M3{xO3smE{*cG(tzGb*Lw!DOPpHy(vE7VHJ#jHGZjYg7lX zM4Qs?pA<6TXEwqiLKXSX7p}YU#v|qYc=feUPUI)@`KcSTQ@e|jAV%4-kyFk?2X`;! zm&S9oeD?TAerPxE|bJY;rv$ZA)ssCHlHWc2OuPs=K-&h|K8+3$t(kAmQ`j zt)-MkkJqX_&V@3O!^*D8r8hgTsZQnVJ@#KJ;kBM4_qOD+N!Box>ybYpCoJw1%mtm- z61EX$mOw-BqvXeF`Uae69L5+K&WvRdLKZ#C$#-bUHWX2m6o5;Kla-XvOLBb`DJC?d8x;L4IHQ3-4?=SwVwe8Y<+!_O*P$d9INE%2$w|Qp=XR5ILi` zDkw*aGyhUt6~tvH-Kp|N!Bv%1+-Qc77f4)8JUueVtokN1g{@=Ir(PW`^yAkgV>f62 z0eXeln-B60*Os#Xp21q}=B-z-o5hBD1fEX_E{jBR0y5}62y*m#YtFY+t^VGaoK##; zVRKTm$S@H$&LbNqDjC(qn*>#grdMG~2@R64Zv(5Xx3?f2C$I{R)L&L<*BR&tZh z*gwZyN2NCWFffIVL^lQuB+>pzTTxP&&AM2}Tp^**_7EbJr$?#NS1uQ0==63X<&}4; zY7vr&Y{@M`LW$gaCI%9Hy`@xPrYE~MKRnoTcI{xL0M&}Sg=iz$p`rMvLcR5UrwX0+ zH)IFM1+w%mNLg5PC;?4Z0VW*}0q9C^xC%94ky9aW)8`WaZ$}@tYFy z=}LNP|N3z_*VXmckU_3(YTd|$1AYUfy$F7Oh}t9dc-3zJ9Yl}21P^4bM~wy0>EWkT z>otD?v*zKahQi`9G2I#UdPalely8$_TDj)mskA~~OX?-Rr_LjvCk>QRVWm<+xkqwq zxgk-Rj28@W8}K&!k8d79o6Y9u3R`o%?^rwRTv(|;A_q+}<8$_Nm%iZ)s_Zp7(RtRL zwu)kllfk3<5Eq~8d}HNue1w%7dJwHMvZ@0ifFhiqEc#qS2hxHI6MA#ICh1@07gD#1 z&>7!7J(Mj^Jy|S|R3?x9@o)Ems)HXbCACFupXEy|J7dE&qJJn%#JR z#bKXCd&ryea9StIJdAGiWAH-8s#qXTkpz~*AyD<)%>_k}<1ZYa7*ds)&2eRd|ENDcP$gXvtVdlaR={`N1IW(H#` zJ^7`{kJtZ;{j;Aa&J4!&udn_d@@ew&8E4e_2W!SE)$-HXl<{xPz^%t*-MZ^cY-ngC zBw{%saO4KX#X=C}PcdLBrW5wb%$7phC46c3%H-{nCw3S6Vz-Cm(T-GcI_vzyrE`&y z9jEt{PMtbg*!%v~+h2cbGV(K@j85I~L$|DaXkX!mQ#TZMpWZPVao!6(m}8Y3!!$J9 zE_cZU6cjy`lTK3+E>bZtWvU(Pa-VGL5F&23wwETd<*|Rm2Ky43-tftAZzj<n2PoBt+=MUyjJh^tqhxUrE?AzP{8L%qc9n1|M zK_1)Pdf@jg={?-!Bk(Im?NHs$Fo&x(jgKX96%gj2oXt>nAeYRU09mKHqm0i*>SpS9 z)aQb)K)yqQtk!Ur&dy!YPO8yq=!BCd9w*&l@1)Id2kUF^TH3yEe&3eq%C_pZBDVQJ z0{BhYDR;X*CGmT?J|*qd&0Q!yk2f<|o67plS7XI5{;m-x<8NlXcQ*Mt-lrpquY*iu z(ISmYO8ps<+{C0C{tWSDZ17*iT|boajv2cu{+SmUS$uSVz}VN-4&&?yaFhDoLOAD8 z3^%aV!h&rtEG+;CwCC-4Wv|JuSVfMxtCw!*cWWKKT*n{Ecf^+lg3a&7i4!V1E+Wu` z%7vDB^tLch$ZIRDGAm;(pLiJ`y1hwu_2@?#IM$-t@7N z+O$5vvl}|nZg_aDHa0vYJ!wsAtd`ESJ!X<}m%QD+gwLF8;M#HsiBh1dRhsH<(%*tS zabmR`)eD%+*v@x}i4`ULE*fQG;qZu75g>s(k*r9&he=Kg2?w-}eOvNq~ zOW|<+P0nZ6ygl^$Bw=+uZk@0`1!up+K2ZS!N@FB+T!h_h$muv8gs3_?l$;|W)19p| zEG=^QvGlHr=JgKHnA6?r&wt>vqh^mxGx}WilR_vA>D9Gq~CW``OuK2}- zuJoMNN1_)w_ar1sO0tD|NA}ykC&4R(;dxdf>8IcS{-(-EgVTFT*WYxeG@h>z{`_*0 ze>N0Ey7}1fp!`Dl-qd?`YhM%ZS!6BuG*`XO8Sjs&dM$b)%X7Uyx;%ntQWe|v4sCdV znn8{oEZrQ5He&Ca#a-DH3qPJ8cQspqEGFuSJ5OT=JVD%IRL{@l-`yl`F|Kh7Z@4yb z3-4D~h+F8#kr63yB-&TmjjL^u8PrMwN;JSwhrtkbVn!5o?io8XRqcohWPlr)xSaEo zoT~znA?e%2xuLr51$f1iBEpYGBN-88LTc6WbfGYjs1)K+scod*R8wpTe`>E7vvM&? znvtm+He=hLyIw0U-RLCy`>V4{dys+h6;}w;#H6;>?}5GFR+$=Vs=b6mM#68y7T=i>TFcL2PcDb<$^@dIO;l zCx@LH%A}-BMS^)I5}i@09I_z)GlkAfT22DzuV&>u`|fo!!*{RS%kG3;u+O-Yk~W!w zi;#IBi`ef!(D)r$LIfPRGZ8u>gT!q|Asx@y8dgNnh*!dfKAB03C}!dbABt3YNdd07 zNp8y>-M?O#m>5z4^Np^an@`kVw2u`_UG+ByWXkITxs$~Ck=Kt~uYljAvI=og?l!Ec zu(%Vo=@l#|LCInDV!*@AjoqYaT-0E?#2502H#YL>FqJt(Ui~hd0qUoVOH795c;R!P zDTIhEnn23X9ftCXcj^sOf?LFvO05{&D!j^TA2nn1#|cVg?$)vYgt3=vwMxo~2xx{~ zCX8yTI*+eV3|-|RnugR+MU-nh$ZE2hAETaS+64o5%KX^@@wZD%y-Tbiv2tMxEVr`? z4jGXXJf;pvzd9EjETK&CfXM&;{`8adNPXc2*=^^u02-LLhl@bhx-w2^Sd~T<5e=M> zOiX!~-a*n=EiKj%GbO8xYLXKEjzBo3iSa8Tc4e1zvcH#SdtlvYRKx6Kx#8K>Q|2G4 z+y@NLt{aA3`@Wtak5PRcB7iZlu8dD&7A`)Cv%UeJq%u-y450;|6mCK#@h+8z)!v}w zY9i4QRXY;~w{st$dKI7v-cgx@eXxT+r$B3f_QRd+$r{voV&H}h?7aL1tq>*~vscq3 zGo*9rTsFgtDUP%pY85|R)CJ5%U*;rAB8E`O{_}&U>rb7o_>$(wMErD*q=Z8CAH48_ z-4T#6&K(Gz+F1cP`MQ_l1{Bw|8TLup%hR%$sE>V8#l@DmvLpTU5*Bgy{+`aLVCGN{ zBT{<98WwDgM>XzbMT$Fl>Rr4Gd>J=X(`sM&OCjdB6Esy6?1NKg5XG|H#@Qv_d+yc!b=rrh{ zXdXE?9u=s8K{??tOrK29u$5v$rNld)z32Al0jFL1YiEFxUWzqx_b4E%kSE)GSw*ev zp_F89ZX!tXAf57^jDF42BZ7 z1d@Vnp|ca0X(AHE>mgca>m6!;ZoS>LDR8Scm!&)JtKqL2oX5mH{8hApzY5BXX(lNv zKvoG@Rz<0QwYBm*-@ghTN;%6@NYt+>-*x4Rd^c(ZQBb~6<@>Zq;@AswD5XTUJc773 zq%iWuUH`RUqg2`@rh>`L{EHrm9Qcb+}QD~R6sO&Sqz1KKfa*n0Q zkde)3M1_i;uMuY<AXGM zn;kge2)GR^%fnTTpd&1Z7Z)?8EuzXJGKT!z>=po3dDwnL99oGk5p-$7ep0#3b^B<3 z`eH~tstMfn1#t|CgUCL%cXcL_m|5Ms?)~BZSZ1nFn99WLEwQZR(`I9#zS}}WlS{?= zmx@c1L!sNu-|Q*#w@Y8^%O<)U`(HU-iEN+#xqhSmnI%F0Yr=H}54?-(GMiv@k3VD& z0=frhMYIp0etX@cBA1t|d)R+?y8dz4d5yct=pUCv)54;#>{l}GfcQeB^Eo%7=$pW! z;KX~;@l?(6Nw2#+6R{}}&c5@D$ zgSrm<-;pp2K)Duq)o~U+#+v}Sg8Ea^o&Q3jka+ej>u+Aa^eu1tqCzo}(#HAc{Hae+ zim|8}lZm4$pG5(HI^pnGYey8ZIsLJveyThEgQqY3ZsQAjmoqf~s6AtUnZI~?mZF^l zRl8wF%o#x#>v8b(ENlePv-p~?Wr6f{ZG-O`E$f|s+G41n(TG9d=?jPjS6|>v%-FAE z*CMuf=cM-{)vUt~tx5o{si{IB_^dd>xdKFC9?T>Y;r=l7m~o4Vp&wTRuc0?~ak7an zG8%eA2R4SU*?LP!CVIPNTPlSJnpbco-a4Lb(iUCQM(C)ku<2X$ZDRL=5qzC=-GJ$LV|@Hz-_z%HSVN5%=oeO^<#pgY{HHE^+CT}{|SWh&;EiBrEIAU zDl$y&zFwks*vR-fO&)^eGRSs#)`qN0)epfM@N^F|R!c)P5L8Zs4Osx%zL%@En6_Va zcK`i%Uo21DeC$xEa^S!*6&-igKW0CYIYDCF&`{9Ep0vB@4L zp3#pwSu!}mwizfax?$nj#DzwOhq9nedZ@#Tlg|YZfx}T~loZf5(t|Q49-eH*{6?26mp|DsO?D$Q z@^q6{yRrQI8Zka1#}{}X*^b>vlw^b5IO>{;j+)QcZZ~4~V>dQ@RleQ$$$M7nA6psd z85R11v{vodT7wwh$XY2?5;m`g|_M^aj&oN)cpOF*M zK@S0SWT{E$n|ci?&ct1tkcr#Ywym=>lmUW;5`Bt4Yh@pkC=(FmQnJTmqY`L!k>)R+ zJOwiqs778W?j{UAmCpk=I=);T&zFzfc%$>saky$qxa#7l0iET}rRRsip{?adj%P_W z90#Aa`yj-2c}%c88*I$ctJs*&y!D>751b~rDGKlN_UG%@I~UkfIad#oQ_P<7$Ev+P zE4TXJ@vVl1DQ%cc_P;u=)MGV@kM}ATX48B-Ep#m^CaLF669`5NB~@xrC& zok6&M`ONm@iX4UN+C8saaB2TdzS}LG3pcR`qxPS%2R~AOt^K3**D#{-9mu|RZLmZ~15VZ^tu(zLHTU&@&pf-f z_AIjG``>5ST>YyI!+|_?v*8DsySJQ-#4i6}*j|`k+ogNN41k@D{$x z`#68fTila3vC}_n5IrQ#1O6MtfkAvWEIpRxC!xSkTwG#K3NC`(6NC>F7VrS#v@8d8 zOz=JUSwf*vEnn+iw5`uj$`q8JJvyABzJ?9BW?%}bPO=ZuK!3e z$2tlwLOw2|42bJdtlQGg&;zILJ@bpV?RY&*^@#o455E0h9LYWuETq9>82c3*#RwNn z0EtlwATc~@dPof7ha|RKtKoWh-^xs1-^|Ls+r2+L6w6K*K`q4W*;sa}Se(Le-TKR+ zY<0(Y{WJL;m2Bt}p9p0uJM#9*_>O8e^sg>G(VOY-bnIVrIun_mo=l?CsULJY`!l`1 z-72-`;3LgPl0;8pK+X9`zBn-s8_7os+O5CF`)ap}x78deO&A?fIc6-g;OPqcR_j9A zerx@Ihr922;RU%Mg~7ioY@o99UdBxd$4F1bHg+pp=N%e66A~YB?bb!LTeY&j7y%fr z_pYV3jvm>wR?a8KdqoO;udDa;(f|IsJp0>%Q)vyzV#mU3c9+=fd9|KY8fn2@rUfzHxNrdiP%YJHF}OYfhXEi&}qWKg@P$ zT-w-~v4|vEF#+*nNRS%kJWa>S^kAA&<&sh;9`8yq?!^_RO`Lp9h@Jn&Q?TY;QDI zdiv=S;5~rzOU^@$lGcI%JD3JpSjfNQ_-o}q>0!a}85{I__CGLpu|e-QGC$9vxCKID zgWBh`Btgl|x3Sgk8BzOR9}$=s^pppoCy(Km@l#^dL?UQK`g@)aU6XO*UHh;I>L{VdereKT)t63pP!#! zoL@|do*uyN9LsKB@n3~4QFe_W|8NXya)sg@nM3EB;P@W8_Sb;}2iA3VN$=luSK z{ql`YV+%yIPYQL~ttV>qm<)MLMD-VATkN)DWDJ)My|t7Tzd-1LAaFC z$QE&nHp!MC1STL)Oh!|a5HWQy>pezv2#<@t5wOp#$L|*YkqjPkWqae;Mfg9NktajI zs&sT0`e{uHay7w)57d}lLOrFGoHEZo@roJto3;|=Rrk17O4)Mj1jCJ-2zujEZW zVq{&?vhXK>6_cDYMc23yYg8^XUl#}y(J3RYQNtDdGMv;#F>bgz9@OKFjqGAyR8C$y z_T}3vPol>ATKw~Jn1l|w(C4wM(5c06k~*Nqc56iT)ao*ES&9a$#r^B21@rMj{RbMA zHRF^+z1}z=AN+BcrHguL9!IUf-(L|Q;0xb1Mzi5P!IAVx90^$k#D~2+5B*Gj3*)-@ zFCG!6Hvf2tD{ww)S1u&%+6SJ0etiYt+}d}R>rdHFEvxb9^7aYUSK5!SBvpLb6~{mN z{6{~!wz7ip`pe7pzp?w5ZIZ-63<_!puX9*`NK%^NYV&-xmYi&OlR?1FaZ7%A2 zQ~*^7+DbZs=YM?S?8-{B2l7w9`@#kvr1(HStMLj@QQDkJ&Z`_!Xn_JrkPPOKsTljd z*XpJ82(^VIb{wF>LLzBD`2M%tb^7#s*4G6c^9yxv-3BTnyv(;g!FqcIfz|Xa)_S#X zMFst8C~kajW_`x{=B`W}t?qXu4vbT@wvB;FJ_(Zlv1^_7a3${9L=$b{%f8-+FHAN`uRpZJil%;JKs<&pbexAypbcr)w!>|eU{ zC(AFquuPVRbhwAMD)Jm}KN{0Z3QE?DF1YIPOh8D6r?YF%1(YsIIc<(*8 zz5A&`llF% z|GO*jfX0bgKbL1hdaVk)E|k=w-xE94r5HjCn0w(ck6u31MTJ;4bFE_=WF6V{(MV6vgQVW z%xtH(*tgbS)QiaMJ$?ki)D2qq);j5y7N!oXf>RoHOpLHnm6e?3q;y-i3QvPIqx?6!IuJFfj0`qUip<_H))taO0f03RBS}8rKV$Mc=fsP51C$x4 z^~nu&j6Y&o57=JLMhiaDUgQCMu2bV<86tlmRt0+?wFAV;#qsLG2_=oLvbDN(WT>Z0 zQs?}fm6o`(&E+L==Sp911h9}IU_CdX>xIHYNPoX6jXO8$BAU7o+y^ekSDdH%VgVyq z=ES%lT(X%;DL-!NK}?mST-hy6aRuDs)q)7Q$epy^)CgC=Egu`7c+Uj?x3T@L)Cjxu ztEJ+XzEmvPkNYI8@nNZ2LCp#<87^XK>tVc~jbkirqYq4&O7quS; z!-E5Y2WzBIH0;MN8C&c}>*6KPeuRVk>Lbpu-)NCUWR6q5u4+@ z2~N3cy`t6$JSSv&7a5tGhZ{|Ub5*P~gUkps-|r$m0TI6Ko(v%+df^+A?+O!$2?K6# zIcysd&;7-Pa&`uZJUBA83HbR-`CVJop;#?BFKx&fk_pMWK8YN;%DNzr>r1=Zx&lxB zDUMM?L55ea4?H5Zu-@ZFh4hDj8CX);mg$d zU0{Bzwc~|0K27sJZ~U%w(Yh(!Y`u`LfdtG&Ip-J9r5&^uj_@MJ^9X>IpZ-Qmkw-4H{Fb7GBg6Dqu?yqFm5~b70f+jAysheH ztNeY^m`q@w9(YJIvc0JU=Wy7agTGH#{)F(t0DLX=agn_P!fPd$uOEl6K?60{jmEyA zr?wy+4mELePq%F+6W!UKte+wlr?kC{FXzU`O)@_BxSpF=G5+h@;wOs;cD{Grms+T5r|8fzIfS8Uyo1tP6)4b2d^4hmbIz8GIW2?{!!L!Z=kz0 z@CdAtuio!}+b48fg9eh-L`S}jYvd&)lsDr|-;!otTZJ<2La*ty+QQY}P(F}38a}}E zfI?J?J9_={p*_3jw|U#&>B~Xc|8I933hqCe&Eu3{?uSRu;#2z+*4w$H9gYh#ICTGs z#3PSdROpC@qZdgHq1|}sVQ+W3wef0akQ4g*B`LK((@&$4fkby-cVBN~r+Vawm@^`K z^_AdW$vmuERl_; zwH&^D{r?g)J&gS&nZN&^qN&QMuXijq^Qqxa`1C>NR_ojLe66$3j&~V8H62NIS;T+3 zI`6mQUE!|y{a^w@UEx<+F{>*c>+)p^?W&{KuXG2wma{DaVRyUtVfSkqKv3#5e-BK6 z=Gi)fYa5|P>+o1K))~EMrvI|umXn{ClQ%OxQ5nl+Qr!dH0~D2PoW0)Q+4~7|2Y7Ol z2p0UIl#RhHE49Qt5}@Vm34!)A#V#dq)Fm)d%6i!9>WZy%HC(?Uv^^X+huux*(A*L< zIrj%atO$`_<|rZtbSkmVE~rHTmEbV!R+R0&@>FVvWEL;yeH9O~9$!2_^KlUmH=I0i z>`-m@&aI1E7k4Z)1VnF>+1Mz9e4&vP9IN!0rB4KK?k9zDvXdGhGV)s^GNjvPL?f7jB& zc2CNiP4x9fy|X;M5nA10J@$i-K?`$tuGiK^xV4N-;%17=b?K`?8?MWhF3?4uJvKNf zO6B0#;8>1qjuz!oZcb0PG=7;{#BU1^oI+G8oA-k^eH6^aR>x-IN!PP{LEF7sF*t2`*VzVwH zTWivX?M(#^)%6RY)tN#vBFp(Ki-|| z&XI6L%bSfdr5#N{NEEnVu;}~P)y-%c?~HWDBcf49EhfYKI+1EJl`GQp+Fol%(?f?u zd>=Y;=*aTnt+lPSeS4M`n@_$^Q}qJ|&b{&{e2VP^P5-vZcG`m=?C$Qm-|Fm+bc;4( z;jHV%535A>rFO3&a!-(PT_a;}(+H5{tqbM5Hd0j)Q-3tCeymgWNL>S^uERclo@47{sD*V1!2au z+t1v*x^koqJNAh-;q&8%o8_i=#<{yM!;i13JwO_#dk-yA(&G4(9X}@Pf-^3Vh}0G7 z?2;5dIrUd$NMVJA?Q>fuD#d)8Q!lK*oZ9IT9v>KO!l@0PWJUoUB6Q+*nb;~5b9IQ| zygYU|cWvyTI>gI(f5Qf#L$o7L+wI@*vbTA+-g4uq6UVMw-Y83C^JMST_tdIGc(UXU zOMFoNo!7cO8-+5eRXpB#&g$&Eu5*s zbUa);h<5DZ%1mvdnwTb9=jRX(tVkq!4)FbT(N(Ej*iy5wGw${voZ=gPJ}BQ1{JDHX z{CUKIe55!d>uJUT&Jz;tTUFGlYQfiqR~P0R@bIX6mL;aY-PmG*`9EmCiCgj|W0Nl7 zE{exv_oHRtg`wH3yQFwLvQ7>(P7f&+*@+?tG2baueMZd5Nj=_HtpMm{MUUwlMRB!zW@7upE%c?Jaa$iIrll|zRrD?=bW3M z#8cj=w!E}dFIJJ^7~DbgU^6!Cg@`Tfu;Qe?i;Qj?oh#{dixJoRYwp1aAf6B&i7q!E z@o(gzTQtt&&6NfI_NW33WeFe4I@)Z&Cnw)B{9BJF-V#d(eJx7 zELYl)L`gH>sn84mg6SLY*dbWg6DkQat_J;zn!!4JEG#+FMBtTrn~iVVV_NC_3Xj(X z^PG8|^9RclbfYysmKDk$*y(!R+ZrEh`8)Dyv3FsLj&$g8G1}&^tyPf@yCc$$BZuq} z4tvC^)?BhYLRNU`Id!V=iHWf=;>2`p?wOjL6q^v6fVqa&>K7-*+*bd{zpeF8(xRqW z{aqX(H_JPHfR41c>5r8a*dV~ZM$XT{v)H^&SAxAOu!5-RSbSCOfuj%qEk$f*rid@^bMo(j+9uUqS2jXkKsRyhC_g210}_-{H)CM)Y#mhmgZmZpCvjdC)VmL{1J^~i`CvR+p4sW*ui;+EO0vwL0-(nO$xx@ z>1Ab8CQleYa>Ss4Wz}WXNqiwJCMqvvpYndp)NuON9LuMD!lypLF$va9b)|QWaJmZ> z)3oz?H2y?a#%d;8X*#9@!=o5tE>tb^^3Y@!=M@)WzrFJ~o2Ayq*&M5D3+!Xz9S`jt+b-W#@3P%hg5MdCS{xM3ahEQ+f}K z;A?KfOX=grjhj4f@}!9=tqns=lGeX`(JjkLyII@tewHQgFdW4loAUC~fAj}Tkc;kCbcSgJD`J|?C&$0LGaZS$~son$r2x=Ud% z<22#ORYnRytZ~O#LiHWvgw^1st6n|3rzgaRwzaZFWm{#4d2#ik<(cCMsl)qpod4(hbXH!^S26JCvAd_d zMrUOwUrysnmQi8ny-|l8KpieXT(?^9y%mUW^9SfH^(LD2W_~pH7eVfa<21qW@Zl^g zD~;U6zcum;odC~lw)~bljMMiLe~tAM+xMY<%vYO`W?AVMT3!gB%vcNjYC3g2^7E`M z`(>L(c0F3-Y}+>jX`d2`b8Y81(VYp!*||G&fjFCxPL2n4NatlbfO`C>RUhbbTTVST zmPfb77CsLPl;}^f*VI9Ywh9gBx3wpLn@~0W&0U=wd+Uz&j==d(X?5%+e=Ns7FRvXzt^La`~~!A(k+(H*;*#_zXyiq zr;|`NQ@xW)(Ao>na)>?Lj;57vh=$3p66f~<1yop=msi-Q5W7Ma7quPWU^%>PdD!l6 zBM<3s&$ikuY*#SZJD~(rinU!|=V-IYI;r}#&uzI2d*EH(!Ow=h(9a(Ce@*A%*r=%E7 zIJ)$Ut^3dQi_cHN*JTD2M}B0XZmkdJ{55?w+LK<0?a&q?M_9*X-B3SxpI&h=#|@HU zgT6X^tT=8OC!293=3KY&0@Z8q;K3sXj~G6TKBHACF0|4}M;gX0R$5~%Tpvh2fe$Qw zM$CW0w)T6IyGTU`=hsTig`MB?v!{pU{9aHC`poCw2IseHMOeS2J#XhlD?izux8>&) z@5FL4qqv$v!*n&f%(70dW8~YI)-ktC!Dv8qQal zCC`!tWucuV(cXj}Rx1zd-w(Oj)x)~bZMf?3e^j^ON&nlrwfS@!^g?Z8FrLtV54slJXw5d{isQaBr`Y$Zq zr4i(iNXN&r5w)I*Ilfue<`b9^K$Qw9UfZTP=AF)uz-j~kZ44b~zvJUC?ru?fT+Qf_ zP#UYTLrOz2=$#3^|EtBb*z^;l49GoUSh3Z6z1S`awmPmG_WrMl(XxY$jA>V4GSP(D zFtUK*GwkajtCZ~6I0vUWS*x32#tsKN#3=u$D2^i6$eyhgZFj=>Z7PhT;+OM*R z*b&2|xC$`1;FKbhv}d4=IBtz?WB-wSz3^*$CoKa z!G%&>8(uqRly`_^So>pJdG)VhSG4xgLUuA=U4#CV%thgqP3(OWGKupmA(+%=v(E+7 zjk4n)cIycCP;JD#sn!0;IK^?()^3FA<9xLS&lrY@Z0i{ps&btk(K;O!Dtqe@qDKjy zvC8Tnmq?$sD%3CZ;Tbq(4|{QhI>=@&dWJPzh~7HP(JdV-M0%#@bj#5=peQdn*KW-Z zOPuwn5$L}%&RL;2uR@%wy$;z`4sXiwjYgSj%(Tf1Pv|I1&5;+Z&Rq13UplbVynh49p|2|AL~I_P+r-qYSsE$Yv6I@xEndbSntJNg6FgrSh6+vklol7}^v>uO%2~c{V3pV3bbS~(szcri zKP&Y`=e(7r7loJ*3oY!&_?0ZZ;DY<8b920npNcx&z=6ZBxkHMtSndcdcIOz`*FB`u z()cc=JC(7v7P+^Na<>+(waDEnTN7vb871H@%Cr*skK zrp@EP5UITRff~*^;u@Q^%S=&3QJzx{EW*;KSh%&~aztBWK_%dwCd=QzbK!4XCcHBk zPu=5nc?-rIu<5*=l1HdKEhAFPgz7#0DR zEWfB*AT0NBGO<=(^2+4cMc-f_IHXZ_y)rrja~o3P*4pwentA$2*dM5akA$~BL-ayY ztwGUS^l~9T0Zq!kjR7m$|Gjr4v7G;O=^Sc3bckm_S-&Ee&e!?*dC57+xz?l!>yFg> zHvW+s&wL2r+wFB=$2*g(!y;SrLDuMV3Av8O`Xnqbh{8&8uF==BMjyl9m_=V4W5ZxK zEI?dwyoeVz44dCs*&u85&$}NJZdmpG?;{Y?lQsI*!tahLxVRY5#D24zk#bRjz79MG z8F%QWwP#>eMX5VKSLf&)X_hK5Va+C9_}qze4dN`{3$Lb$?}hP(5P$9Wri%yT#4KYO zx`bip`e5bfJ2VOdc^!SQXa{l@#1KCrs7yuXx%3_Cbu zIZYMvhfp3jw)!q1JD;z%!grbI#jIJYows>-Vn{s9kn;$Z8N-!qckf&UT4PCFnX9bb zo}xJkNqef(O_q-*?Rm(a=Bummyqi1QlhxSj2po(MvKz;_c7ycU?JVh0Qqq0U$39=W zQ!VXu2dZnXQ|ls^voyD~Lv@WobwygOeSGMT#)_}V{t;IBW`YB;!y0x!m1YiS+=ROlvvwP@MfHZOYvub4_%+-`embWLk7mt~NFRkPyVKo5};6Ulbu&7jQ7Tvo--;0gL_SMwjvURUnf6@1v_5W&U zzqh;Ti9J?&VbS6UYd97=I%;*LJlf0kO!+W}_G`oCJPqs~jr^3-UI8X?;2V3&J0)$& zI4Vz02r3_{cSY%L89g$hM~C%#vs+enT4MM8lAp;YM{N(wQBIsSjW9Y|c%$Dur;@$c z)C>+vR@f zr!%0RJWq5jFhO-2o)n31rKVdtV?T6xb_8}Z?WlIA%hWuUB6tpNpz=ww+A$_A1}AZ2 z8EJHGWUDU&-E>O3p6~$U)NSTD-KuZ8H^q7=o=Adx@oc zEN%-WgW5;8|GlE_Ft&=aBGY*9PU)-AkBV0C0J4#5-NY^N;)QalTe2|-ILyeK>pi?_ z();0ti;FBF>j!Jog|-d5qp;)+B}i}`i;qn z^w?fRhPFOCRSofa5@2vRSQwjsSo>?$<7JsBFZykg4(!e&=?D)W#si^bn;mS-hV8Es z6QiSgS;1NhdY%EjoC{l3nNj(2i2|amGLMUeq_D=-oG-1C> z9P%JJuhlFmL>UQEdXmQ47lrOwSXAibAnqz5XRZ%1cc;5DlaexB>D>x56B9EFbyHGS zVS0L@T$JyuB-FG1E&nnetITi^bAd`wr|?{S^F;4Rm5{DfU#}ZyHi0MPv1njOJ#t{R z>2zQ<23ccFOlVI6tdTQcg{2AaCn7%csQQJ(YYypL>l==W(l&Fbr4eoPk1W5w1TTzZ z4h=`CFTnu{j_?=2pfy|H8}$Om`+VI!c$jp5Wvw`h5a-;X zzLcMT3tp_3UTJJ>^jy4-$Cl@u+rSt(TF;z5X#&>O4jov{0Zk{m>!}HGQP%z>@iZbW z@8+l<8Cl|iG7HDf{QK%=HGilGVCX3f2#ZGG8FAM zh@*#=?GNjhFQ2qxMaMW=mLrFgVMAf6yEjb|VClsJ7h735N;~l`{@L#i$A~%(LJNyW zoha6`)fXr`;U0uBDs>1kEfj`t9W7YWHm|)D=R)M=Im4r!mD$AveI#1{26%;s=Y|&g#D|&v~NzWsUcfA)$ z#Q{C=6UFbg4p0i6afl9QM5MxDYN59ekP)HLsHM`xV4nf2v6i0cg#|JCmf6eMyO%4| zm6M#8mt#kQkZR<;GthZNCe8 zoet@RF!Jjt3dc}kXgrn0$-!l4f#NJKaYiEdLv^8Z9{qrEjqt)8 z!g02!4#$BUvPT)>ME+}ulS4a8u!sV!|6CNoQrVxmATK);+g8M21ws$g!xo(djg2a9 z`J4JeABHc~qhtM=-B!QqSif?@9o>qnxN#XzlEUt9oez`xqPnoCy1J;a`o^@Rq%`?V zDl9E6)QN>|cj4JTB_`wa*aU1InutWohF-VoC$V5L-|Lj71lyy8)gxo4%Ts5ds^Be1 z9!`rb93vdUte6hseu;fk5=ZrQjffDRFxu~+L$R7>)fVj0jIl&nZDftz zLK`VHEAk%RUe?bT*45LSy{1;xcH=) zoc=RX3e#gUv$A3mGU79m;*;T!iarG>lTV>fsaj>7mYbFuIxSaBA=f%ypz~?DxQ|7~ zI#ef?kax~01Z{P#lN{Wzq`cmF`6W3v2M#)EC*YlTa8g0PqP~3- z6OvP^i;5~Lijvcky7kUXPe@G5r@H-%24(cL*|U01hU$fBcyTf@X>xi}X+ql2l$6|P zOV@0CeTljdC%cbf3hROl)mk?oAKHHvyS+KEr6zZXmn|-F0#*NtpE#YB8!OBDkI+vx zm+#oo_rd+mxI?SFmS)tECs9|xS|BOy%t=Y^nzitx5Np-()bw1HE3B1hbHIa1b=qX} zL)m(r*3ju-DVz>yE2#SICR=o7a$H7oOl7{Sx)Lr)YJ7Z3cYA59ezJTLUXf4AOncB( zTI%W+>yT|^A4rOgkB)l`$qd<}l)an@10Iw~MU40TdmcoohIo*re_@r^|UQ)WFOLpy4x%mKFDmcZ+iuV4RV#T=TODuj-SfTlq@?uP^yK99Ytj-D(uSv`rXoKq4wf<(J;3X| z!Rv6R!@H$-$?LP*dA%+SRB4@Y9UF~CJws>MK$kejK}XVbE$T{auc;MO1)G87OL1QB z>XDsYSXJn%s4Ob#Um2Scm+HVS&#A?^Gm`UN+a%>@|0pGy7HiLaF(t)ezbQE(0eimj z>|K33_8RPoG?%E`aefoVh@CmchP~p9Eo@v*=oNZ1t`O~z?2@fCP8C7RiC+F<4DxbR zX$05pM%7^~XPETx`zqXQGhyg#x8I|}95%F-UEYF`9Bd+3Qdm-4DwJJXW8nI0 zYm40i=~tE-9NZx%UZ%@NxH#AsJ8xE1Fb9&QQ@p58pTY6z12emq=A@?PlyMh6l_U`r1vyX-K89L%$C-c*~CFND+KZ}DTl5$s$C_I~%U+8SiEy_E4^Ee!li+Y`k zdB^SOGgheE4;SQ{C@!#(1J3)wE5X1$R-9ubOoq(sV`GdBV;g8Hu(5~r9wnz0`8r&U z136J<-J{{CUF=O5?m#*!6t;0FEpf`}^f=52n_|XESE#~S6*~8`Z6j4264~G8OqEZl zhF7JA`Y$+pm%n4QMc+uT|ck< zb~)*E+SrV4Ir#6^@_FTZC6JKjYCQpUAFNgKClUGc2J&aHy6JG=J_ave!@HCG>5B## zmb)B11oZ2a(e>!qVZQ-~!V6nrVH|@(_Bb5u9n?f4d-_?o7*v#tyhm2F463S-We~}U zsgg0t39*th{fFo()Qb*{IhyxSlaIC@8w2)F?H#Aj$s-I_R8~0?>y!F*d%h_>)tQ%_ zJ7e;gv9n_07F?fNp4NEw4-R`?UT(pR^rFE9Q)UmDaEKfNKT@yqN>7HF>&65_;2XgxzooU7&>&Q$^7z%^T*A<7N1iyrl&5R zH(SRz$2qTcVxv)M53pCI?8}@bd&0pBz_=Uy!o|^;R1!BnJfa?jPY2E`?cA_Pv=3Rm zGP>cGbm{Nsp|ZzB^(?Lu18+Y+xr1wf^pzLu1w)1$7(0FX*wKxR^M>q}qm=(Ju1;^A zJ#X#2+2d*s9H_Z}#04FR zw{-B}qCS0!^smNmobGl{-#ETu+*Q-u?rB$z8@7C0LBY7?!y1OKkid%J&v^!oA3X3a z6LGeBTD6qFQQh?b{WCH0GiboxL*dM2gv;x@L2QBBfw@p-{@W$5rGDrnXR>PRwY-C zycs-5Mm6MQ-`-itiElLtu-*oVg9jwZ$w^VR(f4$-La*o%ur^4V*}f_GLCO?WIeKx#|QMaLth-LVk9*Msn^TsA=hpnuiGbh|C#cpCD*gIQAM8iVjbTkHX zq9Yf{ie=1?%8&?Zc#LHs9m~&Kd674rtCKfBK3-~OeE<0VecX624_k93CUjLZ$(aSv zYmikp@#>k_{og`$lPhg8iY>Dsqr9=@I@&&c+NhDRSgD<&m(_h#2#KFhYuQ9S`twhQHb3zdZs4Fw61qaY@H(#I~#2AN65~sHsCqT8cMkzMi&EP z`rgF;I?CRm$Yl>ov9&?)t?fF-z9trH4mA28QHz*9hTXA5MM5SfG8(J1JNg7MG3WXeSauRFZ-`tthE7gJ=Ln>+!=jh)$Z)*m z@gKy1#Twu2W@d6sOh>oERZ=YU-LFq^Wl5zA$E0Ux;`q692|S^-UX{YPfMXZ(d4<2f zBA*=5m`6svdQL^5Ui}z*^y*m0)0u+H=w-c6-L%j;`pKlBo}JEynS?kVmm6UL7o zIoMNP)~B=}uXjmKNhUU?!_gkGm?uMT9Oqb}X0hEG-R`e;*&ZL&vT}Iu;r#A!r=-s+ ziuPlh+Lf!?sU7aZ9I-(Ww7Zrx+96Gaj2_2rbCK@~{wpqgPJ0${((%T`>vbm4;eb7xMUSnI{Yq_V!ng}FKDsUhD{tTa@{AsY>q zaj4D5TMG+ei${5g+zZ~MHr}^K4l6g&F;dD>ZwCm&+rzLV$qqxc$1cHKXn0HnX6?|F zIjD!xb@7<#AoF+hwBR6pqkE}n2j|9{FQmU<-mDpuC)SL)Kr0v0v!>l9v06pyvgISw z7NO_&6?|p9FBLr)D{okhh45*ZGI?aP-NV4;rNPpy7jtW24CPi!7E5V^j{ty>?@KAP=Jh_GjJsu?BtYWa|tiPAka}rFAHB zT6){0k}VlS1Q?9w00Bk}*5JI7Ib$Ou68jGwo0n0VlbldoJIGm<5Ec>PuF5LS=$?XE ztAzOCo+afy>`@8b%pbd_FIt{GzWAm?mlh-ykEtlS3`ZL!rWB3nF?L{b%D-+&AHK0Z zDYehY+MfCSdPbveVW5NO^l;20EK+|6){A@^j-QNk;CESRGsJ2i60oL5_9n;g7_s9x z2+nxITBP4!^m-!w`?EFe>xnSmZb}ii9Wmkrh`z-*yi7a8oE5Yb8?U*UD+JNtL~>&2Y@4o81yes;g!i6gxEIpz2(r@%WRv3I}h-ud~xi!xmW zSx2%8T$x2Vm@_tgax*e=(+VoGhE8>6WH_e|&8jF!8&Q&zTU6}KDJjWu78m8_l*l+< zOR0_xdl7?Gkx!>NWE@Y%e0cbE15yOWV*L2#P`1>`_&;GL6yLsCK1Ao)9X84*7deF5sI_B(GHP_bs z`Oh#v){PiE&r9DR22aC_HL${;D|Pl+JP!jE8qb4V1)RgrExC#q)kkHT4AXo}Q`Xi| z7S<_aYLd1H%mmw?#dZ`NdrHQzQ*wG(53S3detOc=PZ#Xmc>_k9HlDp&U$1W%fA*EL z$2C?fwe!zKp>+mrqW?<|ra@5o+Yce8{lM#ARx~uinW*q45u4W zn4VXt)C-|p%SW!2x{+&X$TeA4WaSzzho5^nlxsLFfg9PPUvA}IOlbF5$(-meG7+nE zySza*ioIZ-_9`#ex_ngms9{5~Csk!X45#P6S0`Qr>Y3={A3ZQiuLy z-HKXu;wYUgeI0HUI$kq5r`UUVOS=%3j>QFa>RthzJOj#yRt)W^kG$gAR#p#m(#M81 zha1)P{}YYyDwxfV&4^|FoCG9Hms#CludqjwOJqHU*aS{r4$j7dD z66ZK9!N+NtyKkRz=-~azf zch~kf7tQN&tIl?-KyjUKlM!ID)}PL?%ZPDpc4T!SQQMvtQTp z7g3k1$}ueQHFcSMlPrA0I;U1(Nt4$*nDtH8s!G=*D#9KX7KTOL9jjYfDrP-3Hnh)9 z%f`CJ6i13x=^R$2LqE9fKieU*#Ee=vvY$KxADdD){4IC2B+L z@2}7LT1w4V;aHi6)|AGD5bg{6s0AH`ut@yA%zVX|m=0^ zdqkw^8&#oM0-x@Cs<+yudg?4S3!gaseU)vJ;VbULy4NzSQ`v{#FkORFcnZ}YRlL4j z_0n5aZ@m+7Y{udh#G}U`yd81~tDmU;_!LPTtslKqWtb8pufaWc;d>%J zlkt%_?!z;WAbgcd(bwU-AMQ`bx5(kyxYzo=6W<##uT>7Y-Ks?5G{f-xdsHmmkc`#K zL%PgCnnj;ik={p;Rq<-P-h%b?63<%1cN;!e;UgZ+4OlDb$Mc^B3%uO&eO#AtDSU=f zxvsZSzLfV=r{7Y&q-@lS z=y$vV8Mo@sdzYxODA&;}TjV?QT=M;#kLiwUQVvoE)+Y{<+_GA&>tX*F|rs zBNI{QuY!(}N0QFY---A;i`S(NOFcUG`V15E-|}bm zTFVdAt1U-S_g$=Wd3cTwb}BZ2dMI{)>oKA4RP_H#buWAtqE1(}`~ziU)zJ%m---IQ zEmVGzS5ki4VB>v}e^dB(sg^n|c2y0Vx4s>;F{$TbYaPGE?xgOQV?@G-@2MD##+i~R z`yAwVPka~SJCAii@?Yx2t*EoscZt|4?M3Q{{N8G_VmD&D9lvkFuC67R<@f{Ac>?L} zgYZPyv*@rKz3z9A=56@g)$)k`7p}btnH0qNH-2LE=c>f~3wHb^KA+=vDZke8F)hFB z^jquo)_iQ$JESjpLG0-jq~ZI}cOm#i>ewF4V~pP1hy}n8HNwmPw89m*$tbD zIr|HIKEbB}pPTWy8=oU8rp4g zr0zhzZ^ZMT#yWO+){ns%JyFjq@cA+nK8^6SmNTsX!nvqN3`_l$dpa<$0>MULGl4*Wy+y1xYkTZ9-~av4_ki8GHk^4ji_hegPg)W@-5ed1Hh4D zul!wXPJWZWMNaDYcEtZ0;uAUf9lsd|WOm^<`TG%kF2&!t5A^}I+48v=sa$xoB41~t z9<;_Mzsog?&s-)K_lVwN<0wzjRejm=C7zjr5vCNg7Qg*BWJG__^&rBQ&cc_aY^!j; z8H?+P(@aF2m9|f0+nrHe?l*u<&Ag&)G{8#)|if?(= zHQ@Wf_}-0Y2wzG5d{yn%ZAIZC4AdZaC-*S&!zYQPBH_5Z@ zXrGv8xc3CEqb`^Q_%tB=d)({9_l=bA&9FSbm5=?XV|YH}0tbMHT*Ap>3+55ryAr>N zjHE-Ji)Zm$@?7qlj^D6xw2}I<3Gx0I*N)&L`5^Fv`W5|8%eLXBmfO3yo_b;V zPVuzMNj;SGwSP-qwYM1)TYRD4tu|yL+PeJ%ZROMs-%fCBuhzd=e!}I?A+K+z&)6Nj zlq?_J7iG|w-^r+#-S{a`Vgvp0-d>{m5F93-t6P@q9%ws~;3q|cM^jWWcC5_SiKuf3 z%Ww2^T794k$u%IqAH?|KFOkn*BAzGFe*XaN9qNzy6WW6wc;9b{8iS83vjBXNur$9zy_tGj$_~~+HntN*b-YBfF*+ZRpM*#6vFkp#190`V4z*+w;Tt$h(m~e zK~n&XVmwidCyMbzX^AI_@kD8fCyMbnurPbHa_G^-se;f4voy+sr^l(FAf6@YA`T(? ziFda=f$IT=4y-Qv@yEosi9aPuZA?@@BmRQ;OX9DH|3%$DBK}rTYq<_TSTKSpH6c+m zpLHT-l8GK(A3+?&D>V#{XLu5EHm@*mHS<&Nk~HhxynZk7KH~kv$B74tPZ60j`Y6M% zO39+u-2i->@x06M2gE<}N)sjjK|CvHsF8_fn03Y^GMpqSG}R0bBo3B%jF;EPNNi>- zv4%K~IG$KboIspNoJ5>VoI;#RoJO2ZoI#vPoJE{XtRv1L&Lz$x&L=J)u44)}5H}Jx z5jPXBC2k>ZBW@?|B;G*WMZA~V?IAMf%>iC-AbvzVLHr%@V`3xm6tFw&?jSHh(A-B9 zE9h>d&O2fIM}a{>*uJ2PIE3gY1_WWtN6|Z$dX;A+Re45IH*?|#0KI+MBy}#5>E3d;WUpDPV*?? zG!Hq=qr`GON;u7l`DyAHo_;oC77KoSy#e&8n z=A&vlemw{jwwz9@pAH#>AtNZ9Ih)t(i1YcB`FzTJK4m_ivW0B6g>1HkY_^4LwuNlA zg>1HkY_^4Lww3Z*DZiESTPeSl@>?mtmGWCDzm4+SD8G&J+bF+{^4loCjq=+le;wto zqx^N0zmD?PQT{s0Uq|`tD8HTZ+bO@D^4lrDo$}i$zn${iDZhjAJ1D<{@;fNMgYr8l zzk~8SD1SZMk?YxxT+enSNG=VMOM}SUJt{~p4U$WPo2FayC^)!DKeh89FgXGd6xim;F4JzT%Ao~4+!lgkaTpHxaWl+7&uyARR zTpA>o2FayCa%qrU8YGtn$)!PZX^>nRRKle}C0rULmj=nDL2_x3TpA>o2FayCa%oTt zmj=nDL2_wO3x@>Br9mxR5!7P)LCw4+mj=nDL2_x3TpA>c2Fap9E&LfIe+ISiXOR3E z)XX1xi9xidkKy`j{8iX8NVW`;ErVpspcb|ak}ZQ|%b*sv43aH_WXmAgGDx-zk}ZQ| z%OE|*AlWiVwhWRjgJjE~5w;AHErVpspb@qV8ez+z5w;8(VauRl4v;N_M%Xe)whS6! z%OKe@Xju2imO&$I88pl>vSrW+TLz7=WzYy)292;~&1Whz zw9aQ#9Z^z#M(0VG={dvnoMC#-Fg<6Oo--I96`98bjUx6S7Dx<6MhVWCBH|$8aN)ToIXHBqA`YScuHnv7`F#GG%UMorYH$%sZxMl@M}eYI6E$k0MorYHi5fLgqb6$9M2(uLQ8P7arbf-wsF@lyQ=?{T)J%<NH zG-YBb6HA#`%EVG8mNK!F$;I{KI*-5RL%u=hLtYRqCeYb(6o}pja0J7nh@**Ph-fkK zD;Nw2?gE0ffZ!J3Rw7zVgs&r_#YA`qaVHV=7FSSjfd`296CWU=#l-an;zLBVn7Hx? z5xozD(fa@%BBI4a7%c+uSt5EL2p=IHBfdmLi;3&65Yb{H{3`KvB3evbLGJ^Ib_DoS z;=9D35r08M?*qT0_W?xj1BezAh!#`lON$8%BSsKyMDPi&ClZs1U=>^$K}7EZVYHY) z^ge)SFM!~GAoEsQOoZXn0(TQ(M+n0U1>R3Yi;3`)M6{R)KSgBzX!JF3j|7dMC*w#bHkvof$$XKR3dAjw4S)mdMK?Y!e~8#%spv6 z5uQVwOGN95EAxqHJrPFh2}EB5xRJPtxS4n@k)PdV=^n;>W~B;whkvfiwWc5?!=J7cEgnLLS2vsUa@$U4f&Cl6x-kU4fDtE?T0C zmgu4-x@d_m@m=w&)Et-iuD~5cNx4gWSKxl)0ix6*m-w#02Z;^DhlpZ{E?S~Xd{>0U z5?!=Jml8{K(GoF3!mwDPi|DqS)T z02JGF(KcN&4uG)Ori-@el5qfpnFF*aZMtZiF7a$} zom$g2U9?RXZPO*5Eq?V9S-WVPF50Gxw&|j6x@em&+NR5hZMtZiF50Gxw&@bj7T3i# zU9?RXZPP{DbkR0lv`rUn(?#2KiDwIWu}v3k(`CdqU9?RXZPP{Dbctt+>tdTO@oa%C z7uu$aw&|j6x@em&@oXU@wkczYf?}I4+NMi9TZF|nUEVr%Rbt&Px_&_cOOw~*~eDZr^J?hv}GS{*~eDZC;d=d7hCqxmVLBkA8px3 zTlUeGeY9mCZP_RNP{Vr%Rbt&kGAZiE&FK8KH9R6w(O%V`)JEPwyHkbvQPS<+DBXV(UyI*Wgl(X zM_cyMmVInheY9mCZP`a#_R*Gov}GS{*+*OU(UyI*WglBuA8px3TlPtx6weh~_R*Go zv}GS{*+*OU(UyI*Wgl(XM_cyMmVLBkA8px3TlUeGeY9mCZP`a#_R*Gov}GS{*+*OU z(UyI*Wgl(XC%shdqb>Vr%Rbt&kGAZiE&FK8KH9R6w(O%V`)JEP+Om(f?4vFFXv;p@ zvX8dxqb>Vr%Rbt&kGAZiE&FK8KH9R6w(O%V`)JEP+Om(f?4vFFXv;p@vX8dxqb>Vr z%Rbt&kGAZiE&FK8KH9R6w(O%V`)JEP+Om(f%uzM0B@kQYs2WggnWJhzv1N{`X^yI4 zm4nnJj(Ta1dI3eAqh3If=ct$Fs25hqi2N?bzl&V4i}Jgq$DwyoewXw(^e%G6ZQzRC zn2*Lh0ub{EK+GfP+fZA8&=J?6qafxHu)0II#ZPYWlUw}c7C*VgPj2y(Tm0k}Ke@$E zZt;^_{Nxrtxy4Uz@snHpZpPK-&z^HUqTH0Btis+YHb)1GLQmZ8JdI4A3?Mw9No*GeFx6 z&^80K%>ZpPK-&z^HUqTH0Btis+YHb)1GLQmZ8JdI4A3?Mw9No*GeFx6&^80K%>ZpP zK-&z^HUqTH0Btis+YHb)1GLQmZ8JdI4A3?Mw9No*GeFx6&^80K%>ZpPK-&z^HUqTH z0Btis+YHb)1GLQmZ8JdI4A3?Mw9No*GeFx6&^80K%>ZpPK&uSUDg(5~0PQhAdkoMX z1GL8gZ7@LV3()!kw7vkXFF@-H(E0+jz5uN+KkH8O0<^vWtuH|9 z3()!kw7vkXFF@-H(E0+jz5uN+KkH8O0<^vWtuH|93()!kw7vkX zFF@-H(E0+jz5uN+KkH8O0<^vWtuH|93()!kw7vkXFF@-H(E0+j zz5uN+KkH8O0<^vWtuH|9+YgI7s2>1B9s)iOd_-0m0b2x(4fqr+ z^dL~i*`A{OQ+O7_c$T1yv%Q8E{BdAV5G}Z%i#UYnCk6!3f{E11Cq`g!GU(p;EOF!0pB2g zLYY$%mJv}P)}8?|(hDq*du3b{=oU$HucQs*pMo-~`4Mt^H&A?=kC599K=ExpqHpsN zavs;|+kAwa-;EWh;@g~1@hvX^WhCST?pg!i~ayOnmC3yg*c6f z^oWFx0&FSh;q?*38X{J3;reWbnR{T!2XJKJDy{l)NgX25$5L-)21TGW-D%E4XmIiIV>yo)rWu3dR!Sh>1k3;KKE4 zh6fS{OFZC1xjshXH(0?1tYH`{xDX!CFjjCOJb~ef3{PTsGQ(3C#tJUTOk)@;xDcMf zFjjCOJd0th;6k{LVXWXncrL?O!G-XAhOvSR;dM;m2I5BICgNt|wZtvNZN%-wox~f6 zyNLISMZmHIWd!2{x$y+K@r3z^GAD??BYsS5B%T7EB!`?Nhn$3c9mEykkdx$)ljM+- znGcQ3heqZ@BlDq=`OwIGXkqctbNUa;GbtAQIq}Gkpx{+EpQtL)) z-AJt)sdXc@Zp7>o^up|tplIDlts9MK-AJuZQR`FG`V{niT%Uq=Kp<2=ncPczQb zjPo?(JOlnes?UJ=1!a`-3~IZej7y(EZ9l48D1*H*7#5ip%Cu0XMP%?YCOiR?Ad)~x z0wHMi_xj?kJK(x6)SPBr9VtR|E0MX_G(dGit<^s{?0%0jY zSPBr90)(XiVJSdZ3J{h8M2ieWIRarRK-3u^(;#&QVOR@ z;AB2HnGa6pgOm9n>qrqZ^TEk{a55j9%m*j)!O47ZG9R4G2PgBv$$W4!ADqkwC-cF{ zd~h-!WQFQMlSh5?sBa#1#BmzXH;+2zQAfO8hLq${$2{toM;-I1V;*(PqmFshF^@Xt zQO7*$m`5G+sAC>=%%hHZ)G?2G$y!;Yhv~=pL@f;l=hYA~V~em8HMv0gn7|PXk0OpH zV)PH!F}4hx!tgXAX3B5{W9GoE#BIduh?pnB^&P~WM2s!t3dWX!VnGE8W6MCy69FG2 zicJ+r9}|eNW#A)3%o8Duc_JWua^TZMjF%#ec_JXjmVp>s24ZX(h_Pkh%fwfR7+b~_ zj4cCSCt_?FVa(V9F+T#tJQ46+;?IbfC&CrX69F+#1jLLj5Hq$w%-EU&>0<)Jh!I5e z7jOmhL_lGW0_kG{F}?>JLBu=}!k8xlV#XFYiDAqWAU9OZV31kk@+KiOkBZC5b!mIsj2iaapeOdW`YpLOb`&Ww7`Ebd{$8Um_W?Z z0%I8#ZY+>KCNPOuO&mzXOc1VniL5_nEW^}P`k43?v$R0W(gG(CF%yI^bHGeycnWbU zk+n|xn2=%JlRhTGn56|W$E1&m@Eqb?B4&bcWj=8MaUF33aU*dP5i>!Myq3tEmp&%0 zuqI0%6X6?(EDJC^>}HzXOtYJ5 zb~DXxa+;f*=4SfcOuw7ycQgHNa+;f3xXEd5>f$DEyUE*b>g6VHyUE*b^0u42?WVqN z>gy(NyUE*b^0u42?Pfl>nGbH}gPZvn0_7)AegfquP<{gCCs2L@yjym=KIP|Aem>>rQ+__>?`2)OSEZt+-K)Bz-0wwO41`_a3V2(> zuYqCig^kD+ygdiR+jGEEas^|04F>NyA-sq2>|s267|$NYvxo8QVLW>n&mP9Jhww+6%5?HG3(!my&xaxtEfA*|O}V08i znDPTm`2nW<08@T|DL=rJA7IK4Fy#lB@&ioy0jB%_Q+|LcKfsjZtpcQ{fltAD9|`j* z4SWjb>v%=-r-4st;8Pm-lmmezM%W@jLMA7 z8Ap07@9}WYvYxwpzTETUUaHq^y$@lX*Dv=UFjXMOovrR%Shr^;UL9_U_)} zdLQcjNlsc$ZO*=&&z-r><<3JmC?+F!YVHHMZ{>cKmz}pD?}5BC`5E~m^VjCTP!L{_ zQ?RSxaKXo}B-c#WcGnAqwS{{MKQHnY?JoMFcx>^nOB^NDCCf_gDS5M`$(`XI?Oy9X zTe_(9=F-EZpY%!VGqTSueVY4v`|j%dLBITdbNW5eudytxY*E?WWuNvR)c^T%NBPY1 zBjuk~46ImHaiHQ%Wk%)Qm9JGcRk^BWR~@K&r#iQKU-btA90QgNcx&MBfe#G)yJvyt zfalXerGw@T+BWFnLGKOv`{2sKw+uc$_%}l`hAbGeYsirypA2;jEgL$0=(R&182bLu ze|n3&*LolI{(V@#w{6l=eUo@SB}49{PFS4 zwfVL4YWLOtd_v@ei4(4!@XUnICT^T~V$z~XZ%r<{W9>*mxwT6bcOV~%&u+BwJO z=FD9)_l`7#UCumSTbnIvL)M= zJi6p3OPZD@EnU8J+tLF|Ut8L^EPUCJWpkEoT()P~JIlVfH0ILEOJ`ns+oc~b&tAS{ z`QhbFE0(ReW5xTI)n0bwvM(;5bNTU=-B#YQ^7AV)uNZR0x+`9|qG{EfRU1~lzdC>Q z=GAYmiCi;z&4x9veXHBIHh$}S-#W3@zP57hWo!4YJ#%I4l^d^YT$j6U$hytz_N;4K zU%7t6`Ulp(w;_B(>4wQ0Zr*Ts!~0jcuByH2hO6GY>hBwiHjdl4b7RBC*EW89b>!7W zS1-DH%hg9V!)A8?fUOs|IYPa-H?03^c!~H z@ZpU~H;%q>^Nj~@{K<`9?JC-}VAnmn-nl8|rkOY0a?|mfesgo>%{SlN_#N+eW`5_| z@9h0f(=DTKS$E6cTOGG?bxn@x&9aJ<<4N&Xe9Jmp%Ewlb;>TI5_&? z@q>*|*`LaNYWPztpStI%j}L_(Dmpah(4B{#e>(T+-B17InVe_teCEirJ)hlhSRKCY zIoES@p4;>?&R5SY)@ zH0(KWxw2!Iv0PQIuEOhLH$d9?axD6Em@;i0g>ZUoq?h%#YnkiIMw4#z$t4WV!ZzQ6Rd6I{} z@uy4Op89&A>i=uDa@~(sgZ`EE7da7q7me{VAc8;tlJ?s!(OCerf>!xlz)6 z@mD3TO;=Z|HEOk5f;zEQU7=P$HX9|lTCGy+aP)V!szGQm-nXvBZ;K$c64$1w_4sQY zLQ~bH_$&pk$1nAWqYAQp`Okyc>(pe0UQ36&Tkn-S-RIof{*14an#r_Yi4;gGvpYQT z;_h#k>Zr*IYFm%^)GT6`@rVqUn#DfUoy+u%B2)#vKr;pl`fsjBeY*(%MOJD5zqe*oP+H_VJqQanMl~N z9eb8IVDmBHi8$;Cg7I|h5R;6%Q&k%FS?-420Wz@9Oi%2Amx(>1v$2OE&W;CPI9`&_`-o8TKVC$Nt5YD64AJ!GWj|gYeGn5H(bJ)i5<&jZh=iDAc<# zc-OW@jZ@>H*#tEab!W1gf_$5Xyq}?Fs#$oSwoc7abJaXGA71b!*p<0neNWx5wu8NX zsP0yus-5Z3iSQg5g?)lb!1V7s5F(idcIGb8Ze6PT=)M{!Z|nZpN9<#DQdj6oU8Sq_ z06kE9^dLQ0579%lR}TYMA5>525qc!HZyl}2=&`y62P*#qeEy00y&kV?^#nZ;C$mr1 zQ}k3lO;6V|^i1qbK3mu6IeM<1r|0Vh>IeD~?3Z7!7pX>dN-x$+^isV{U#geu6{g2sp7sBQy^B6lC)BUhZ}oTdE&5ihq`Y0sei2B!fKA6=%4C$u%hBU z{WJAl{d4^b{l2kQuljHLzxChsKlDHKzw}wmfhp`EEr%9|n+OwWY{qV) zjKf5m7!!*l#^N#Gm1wY!rAaZVCe5UqZl*hS3h!ZhnqDT;WSMNt`{ZCwB^UDy`4|gz znL<-!icN`en^M!q^fmoVndxuJO@*m6Ri@euFawPTJ#r_nQaIgXnEPWF9t;m`BZH=6mLG^MrZQ95hdvL*{AojCs}^HqV(O=KJQT z`GI-f{Ls8$UNpzdOXg+tzn@lz;Uyhc&tQMBSJgInN!P2#)N9x^>_zpwdBq$zubS7) z>*fvfBlD*Dv3bk9ZGK{YYThyLn)l4l%+Jj)%=_k-<^%I9^K0{8>Spty`N;gn{MMW> zzcU{j%xRn7n?`d=-J^D^fcleq5W5fVQ4gtG)t%}t^?max4vjo*J~MwXpPN6LFU+6J z8S|xSGJm$MU$vrd-+on&D_1XDxBTig%a^W-yrO>b+SRM#)+}ASV)c^6OINL1x_0Rj z+c4|0t={^M9JXlf(hW-^>-l9Hw))c5tCn7FtGB)#BbKaQSHD=FXfkGOq-zN z(zamC82CO{)LV&*xwOL{;bRxouMJ-gh^$$+V&#&hkt_IRs|lrSMJQ!8R?1dbs@H_l zup*>-P1~bP%{a5-vY7E5o)L3-hd&}~>ld$Iw={AkzhY`T{1mgY!yl2gmRc*VuZh-O ztE{^wb`XqN)!~oGiI(^(eua%%b!phrRhQZ(g_KzxQf88+%xZqcPFlWx)ur`o*I%)+ ze*L=G)gAweoN7IHt@Yfg9Uc|4w!_gbsfT2w}&I=SgGH{FUOp=qIGO)3(|!8Rrd{j_X~Yjg}$pp z-@`)Rqe9=Kt?vP$-vA^G8<>%;q7a>L85?-8xv75`snSNGgT zb;WnJk}TVD97tj)Ds;uhX=<&6cC|`uFu~r{$^;j1zK9eG)!LG65yuLaOaf1R=?tTp z_Fw6h(=urvm^}9H=@W11@7#M^Tu(u`Ucl?h zMYqc9Rpp|4(Vg5mh`#9nVRKRzfH-+grR+}1#yGa39IljApp~++QYkOa?Dl%Mqs^YO z#Mdh)D`lT$i(Q zcXuPnPDcB^L1(Yijk4k0es>SAV5FZ32fTk7(^4*FKgG)?rk@gS98;e9^iF3-DZSE# z`cqgbiIwy_gDABYVZ5bkoxMRc!Dz`_*f4;Wy1ol8NpPw4=k+=-0q(cuL9Vr=YojR5~P`rRzqiT#*mg;<`7#^Gl>$KuGq z0hJVrLUN}M)qZ@bTujO9lbcXa?Z}YYG98wyA2wn^KsP7fV*Ql~-1$ z%qy$b_sZ&&d1cjRURgD*S5~LYv7w9W!1J`Ssfv-tfq@s zR@1_B7~f%hhw-`1J%{lf#&=YQdyeXC&tZIr@%e0fjyg7;!}t#4JB;rzzRUP7(fA*N6%;bKHK-%zR&gp_Ag-jd>8cs z)(<%Tfa9sLT;qI%EQhho{)I}v%IB@B&YKfnkp6*I(l_P3Eqzaso9a2^o+Ohuj^630hRGM zp~^QX9V|1CC$S59^E{ zFn+-Ct9oLe@dL&WIR1d~1I7;+KVW=SeKeJb-Fvd zgILP$clXB^N!#81ZF(I&n8sV?m>=Bh#r(`*_n?T@EU%2r9D(DzoM~>Mja;F#~r8yWNBKBz%=jUz%{#z;zup za6x5*fXV`aD$`DNbrL3|Yr9z)qvHG16czJXnMxLnosyF(?H}&#Wp?B{UCGHldHXFn zCyu}JmYmGDa^#epnPaa#v@GiiW=Fo55yOhp-^McumP>=dHr^C_yWRZ(erJqdM&di6 zW}pA<@z1P$hTqmUw1$DJ5?h+~_=bUR%Q4=3{J+HQ$3H0v8e<*foy1nWPFlvrm*_1# zZOvGadY8$%{Od*q-^KC|_1!%B508I3zHZFwE$PLa-XJP8+Z5W3M%XmX^@rMtE9)YC z?N&p0IdQ((+BSzb8u%=3^zRIQDZaI3ZRYZMp*4jTShXYMBxw0Xq1(c2Z5KttHru9n zv>}q`ZXKQ1r-E=R6zQ;$7sh<^>gSETmCp?urr6lP(n>RDibdiUn@w}1w4=5-k0q8& zQKtPeX+GL$nDAy8nPO_A(ZY&JdsD<+Anrmd*TQ$5=7e5oHZ7rTG&;>@Q5d!vnj$$L z!LwAb(GV%i7ir5!98ICOiXv%S@XKtEQk%X>JLGXrc|bo!sugYtV zT2Y*|*RMB5$#$)IR?Kv)`$h4Jy?&*!eoZar@>oA5*I%_q+H7#6F`AtXgdX`~wm?0L zPWDGx`Z0qaLZ3q=jQNemh#DEm@`tD|!7k)2To&`_2HK}fa1>~_iAdJq{~A`GF4ap4 zIMTFJ7E&At?b4BsZ(F8wbIR66S|YsO5VMwVhGH7cH)WyWe6t1kf1Nz3AQJQGZ9!(Jatv$*R zebXLI68(dXEU3JTbPE}_%#zT*paW7A3&%F+#+zTO&BC$GbK}hewfUBP8KBDu8kLWqXNA&lIkLY>CN7S~>WqEvxHqv^sWd^8i zi+Ujf6*l#1$riXRW$Gx)GwkW+T6TZGS}$fBbAqj!!>ISgQkHy1O_Xn!3AAEa~k-Im{4;# zT=-wAh{>SP8I~;5Tpq&K(vxkoq-=;JY(mQvEt(Z8R~iozreWqDB+eOcG<}+%8H{4! z0nw`CNel<%K81$Dec>5TU@^kQ^U?|Y#J!3paPoC9kasd-N> ziwuT?Y1XYZ0;6gz%al<7oKfw1qhv1Q?n)l>B8)vrd3qkwWo(Ua55H&@Hz%D~5> zc%MB8;?lI}PXBC(aValh9+W6+bqw|8W@%K?PvZc7FkVJApDeG8m!)=m=~FtZwpc90 zJ5L$)ZLw4sqKBwihB%hb0i!G>Q38G-(?ty!XP27G!l@|XkSHH(7#f)W<4%p^{pD6% zdr@Qjn(m{#(R^997IXPy_0Bih$B>c{C$&!T=PC2#BF8Zfc?}_-QHK*x3OI+SO2Wfg z{O~2~moano)2BogIv?5MBFH*rEks_;I&O(^p8jZ4JBoFr^<(=;(`sNo0izT1sePo& zl?^a*h{$bckt@4lxnw_+U0khnOwWA*M|_#B^-&?l{fcB#28`-jUn~;C5v{ zVR;2Y*B0-MwZ9@kYTuR|Y41snRPWegd91omf>iBEj#TeTj#R(4#rtE`0}`ZaUvi{6 zkQ}KV+7IYkcKN}}FNjP>7-u)`$G05%Tpb?l|9cfrIr`r*n$@HH-H|ro|A4KFR!UnS zVI})z@@n!DJ|6x0L@L8eZT#i>!?c&qr{q%B|M9g)rytEentGI8!G~ogq4tXZqqZ{s zPp%nSZFE-u{t6yozi*6;c5QTyr2l08f{(1Ne7}XKIH=%hy}6QY;gi}c89VdFL@K-R VP=EYak^CF(F0}`#c3P{|{txLK#YO-C diff --git a/examples/slide/assets/images/raw/AndPt.PNG b/examples/slide/assets/images/raw/AndPt.PNG deleted file mode 100644 index 50376e46cf4fd91e56b26ec3179ee890122873a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7754 zcmb7p2T)Vrx9$l=5JW(lbOEJECv-vwk&g6UrFW^JMg^rsPUIii2 zdv7oP?w$YK-<>ya=FOR$mAz-3z1G>~>~DWxq?U#f5djSW002bF&lR)*0JMbp568cQ zxx4=;$io|qq z$_lc&{^r}6Wy#CP$)0mwW|oi0=Pw^Wh*V&%@EVMYAjMo1nCq`4jWBqm|LEBxeT5*! z=zpqDTk5nEb>;M)H#*9R452gn1>3#m?Av@`kSpd zfOQXJyaAkt81o0f=fjv`5Q!zme8zs%jxjQLGB63|YyPi$n`zqD)Ip|$p+g*30{PcQ zp_ulF9C+K;qn6!i#n)qT?Psp3N0yUs411wURb~9}o4NfLuG2aPPkx1_CJVt^kG|#C z#w|-vdS4lA=ZXfQujr26OH^4Lvll4SVr?N%!bPj6Nr<^!iz6jkOeRZ0)s#zJ;&xV^ zhG~nmXDHrt-b-< z@ybKyVOYrk;rp?kHFu zrIyaMqhh6tNHsGAKQ3*Sd zcBgj&b%zLV@pSCWn=uQ=m!BVf%~1&vA70*+QLjOrD=Lh&p}7Pg-=0S||8Vbk18<`9 zw%)%G$SX1Pp<+lZy9zoRDtOwqoH6P|Ix{s@aNclE{fXv`ulWs2DLv*Gqa{N#z!d=bO5&72OtJ zfrt!D0$%*s13qrH)&7Vjj8ZtNj4z<3*BPpD)!ziE&L-kcrQ3@U6CPaM{#F}BziGbG zw(r_?r6B|MJ~}eB&rGF_G-Da{(FuHKXGM3IukI^^ZXv}K$049sX!gI8WF z2%bAg0q<-PP8>a&^TeaW6u;oJ&JK6fQttBqgJ`Bsoh*QC_w-I>tnUTOee{WGS+q?* z-)u`rewUlh1RsAcXHz5ZnqKo@DGg#Us8g69s=t*=?066?k0;~-0)p&l2+RGgSWrz| zmR5F}_LIZr$e%7hEJH`ImMA_Kdd@aUTH>9OSo+))VR12w=O&s3!*S2Tg|}9dK9qRe z1n17jDnRvrlsOYIZBsacw#LqyvNUcI6Lzv^6S{vsXzA%SjBrQ?0Xp-$o;Zdx{YUC+ z3|L$ln%-A|>OYus|CCu5G6H+&4(#nNTCEx?ce)=D>r#v%CrRXmI3sHwe*W^nw+$$n zR!zShz*~1*y9$}507(_&k&9%FN{proK1`ORMVV}jV ze0ny{anXat^_6sNNmFvbSiW&TA`6}|`6TTX?JrbBlG9C%n$csf5$B+o@Ce_^$Bv1I zx3z+r^=>8CJhS~4w|UKi3K!1hOGj1lo)Y_(3i$@Jc1{6-`mOLd9ml3dhy|IYd}HDE zEC7qu1cPpBv`(vdNJm}~R*^{!Et&Yn^1UY-;QJWZ83Ou*2d^wxOZjw-sK8TmS*pSd z`)xQY6L8j&A0FcHO;E@YuFJ$sKZM(X`%Of5&?0%2rm9w@Dh# z681JodaycE-C;W@*i(5W*PmjCbbUu$(@~PZ@prMP2knPyIyPcbsp>?4F-hSXM!cLe z%Fpq?JS?A_!ph94ra+-w}tzR{-DOZ~0_2>|8Ap~PNg=4dWHhu+sjz^f@;3f!m|o@=7g z6I^ODPiz#!5Z)#5wY#J;zSI%oP2C7KSdZ&*rOo!s?lx*m*luy!wwr877MB>)fVl?x zM!O}rk@cr@jQOHI+U*QM|%Xa#`B(t0b!0SiDmF*NI{Mkm^77MNW3N@;`a*iYx zaVC0_HvJ1Fw%_pc6s}asQSwatoNY#vpeQhb{TOv9lI^(o)Gb-^sAYMk%*i6<2L<>v?WrC&Hd zf1gYh-!%Bp(O$>mKr#@|NJurtq#130^8C%X{oB@iqQ^g+E*eCF-H;1GinLx*D6*Q%fQM{GmiMMD zLJeFLY0obj3dvfBlV@^>&*gZb6on=89mb=2YM#;5+)azrh1ZGEh%ztc(#koTwWpkS zAXj)I;7Qe!^!d8X$%dR8ud;>GIzGgA1?m^qE*eGf(mG4zIeAXmX^lvHmQQK)YX;hZ za3N>yfv>7C%}d1)v+q^M6zE9TEf1NS()AttlU=+zZbROyB^Xjd16vmT9N|BOBFgKLsO~ zX~grc{>mr3dHbxi^B0930`799h4Wm)EHpQP422w}#eLKG^*Cp?s)y{gNz+HMmG_lp zstPGS+R}ADEZoXCv&o<}SQqS=isGi#wMLmg3?+?Est9(Es5YyC55Q1v1|7m-)_e6S zPP)kJR8)5GkZ-b_+ikJiQ@WRrp$%bTJj;Vp{+V&tKv_53%a|GVjgMKX;y5@6UuT3g8(C=`sOpF0Bmc-)B;-Lyprd zW#!d#n_ll`f5{VAyDf6_qT#19pP+es0`IqCR@O!6J&9~TEfWiBYt_Qwv0AWiNS<_` z(s(vJ^H;HF;%abY5yx(oUdAM};3khJ`XD*(rk6_QBzo!r14*g3+MktA?`*tgf4JL+ zp+b6=ki2r>6QLL6{^S{?vU!q{{2!(r7)6LKeJQrhFTa zO}e#d>M=QOMY_M#7u7T%7cZo4c1`Pl`x@0#4>i)vm>f1)+Lm9g?Rw|L)XM=ooc{qDY|E)G%%N1PO`3XQb9Wo+fkx+pzp6$|&JAnb4TS1>! zA2*$Ts>$590~6Q3EaKuJN)68;dK~PYl^T5*3HuElP0ukSGiVCg4=-?`Qq1enjTsMb@z%7PK45{NCkOmX$%e$va1l;iDTS-ddaPIL;hu6 z9eVc5HL_!0fVnk@Xj_F@YXOk2pYI-EW!if{elT!wub8mQ;ykbp zFX(mKh$+j;8kXrkRv}e&_qliOy!e+F4=c{*EW(SnS#@V)iiTbL&xpsAenZUpi}qn= zKE8(c9QYP(-|~zzGAP34SHH>k2~_8sd3}LsJxGxESv$Lcnq8bjIoUOP2}-r6%jWJ- zyOUWuDrrKT`M0$3ksQz zL0xY>6#%&EbV3HxLi9E2*bU4sTBTOn25}8CTl8Rg{aMa~uls`_8F-LdL{e{u4=5=U zk8~9@UB;a0ZkUz7m>!+`%8ERZ7cOFH^Hk_kZWj9eYl+0W{C#k)tTkG24=R$=&O^eY zlhlEX;^ut4bKKFFvima|v)GYp>ikZHKdDTF z3ErWYHPf7$?gr7&{HaZrO@c7FRwmUIwTGriy;`>UO{uW4F^8rfc!P@WGO)KMe_v=m zbX1u+#^=D=zVYS3qCA;iPG5#F*&vu!dYnoUbRNr0{JasYFxuL=55Mv z=ah2d#SMEk`}i~IZlI^Ig>;$fB3pak*soS*TL`^_&|THbNYWTiDj75BvbHQ7;jj;v z*PX{UsJ$I3*MS+Cwett-O%N#qN6*ClhN@lMOG7uiWjkMjs7>*qjm4=)wQS(SJq_U; z{(-0Q_lxcZx+98xu$Jn;owhB=8_1(F{xm(1{&h@u_o+-G$_^eC)mOf*}gF%a`XL@7sL1%aK+t+E|uJxL^W<`l-A#GJ)5_sifTB z+?HP=vre}+Cnu)XpZa+7AC3F&O{6ySW=Qu}e1^&s8>&055|{qD&K>$TG?7G=(rx>q zIy%)ZUP@;sTg2=6c}GKE7nlcRr!m1VD~%|CP8Eye+FzU`hU}yn1l#QA0Gq!TZ5v~TuZmNbvRG}XiYOh_OyUvp*k&6tRfJ}y!1Xdf-Her7Usn*-9f&7ebb! z1G-bPK+ox?=J9$(((>mt+sec)XfZN+vsnPZV$3#Z!Q;}|A5&j*UBt)tP#rxEQ!<(~ z(}_^Vo|4g=N*Ab!6u(pp+Dk0o+N8s}`r*H=V%W{8Sy!p^zuAp{AZ-29_O_7g(Z8Gq zu%!PVt|XLCN*A(xn6+m0jYHdW#4FvmD$x}PZf)UMD+*fz4yxx&_Ure`8ixaGJq0D$?HrKSHrA;_yhQcHK2=>Xz0Z8c2) zO1dJt$u}Eh#WtY5zI6KD(X3>Thd6o{~D96phYc*B+p1MX9#6 zFDQ7zV;V>-+a{BBgl@P5dr}OjG>51lRG`-9bHmy&p9`N>gtid658m-QZwW7naFT-pEU5JEE#9n8d6Som}`u zI7`PYV@dhlivCssEaANWT;RF0o!LJm;+!{ zPTrZ^{WI0n!cr;Nax~e~+c|ky%lcu66v&M}UpMR{JV+;}NULX&bXFG%*YV4kG6qpr z9QF#gkXY7)HccU3g?jOgjWypl?iMbI)Y+h1YCLkrspqLJ05epp4G=pZ+=;$DmxHF3 z67JQM!>Bycml^ng`2!{#Lvp(x%P$!;8Y8%i7&AUC#-v1c)-Q+kNn_Xu_lxFiO_(j; z$Wx7i1LJ7Nk!R-R_~p}W{_z|3HZL{Uoe#W z+Xd_2vq3x&_0MIbJ6KM;!C_1>XvMp_|4&E3fKa|I(LDQ;%9!2+C=_g*?&lOF1CypI zGrzle^4~817e2MU3!g8H0RY;;pnvhK?PCNUjZdO%zuYT*jUaRj61XFt|N!Oos`L@Ueo=;i7Y zqC0xsqp3`aV|wZk%fX5kZ~ImwloJEy=+l6LXJRyy zF!HiX(za}hpjQPH{k9U#+a$hgGQE)#_5r$1U!o|Q#N~NOiE*a$o3c z;0!5Y;lfa_l`JW-Zsj8)wj0BrsR`g%yr7v;F7^on-@x`t%A>u2duxO*&yh$YMgWF> zy_%n8zYiO7X@1++VoB1oM+Q;6rw|8V>3}yIxAm#l!w!0)(8(U?hrW2OqUqy^L zo(&J4%b=8V89SpKYX=@1+%4Z%QN^V2w6z#2^X={Xa#O5+7gnxL(_T|@SZ-CTT+l|a@Kjx_kapn^BupT5hibRe%|HV^# zu);4A_c5!k{6`^LhhPueV@9ojs)7w6-A3SiaRjci{!-iR)b@yG&)3;a$aXO-c_8K8 zI0&<(3SdARc4;7Dn$`RpL=43+;Xm>xG1WLr0mF>*gPF?MD!kI##JyE_INHON;NhZx zzy7~zFn@8-yJ5`Nz#r#7_0kXjQedv}Y;k`%EkE-r8jPZ%^QfJ;`*qSt=Vj{-G<(>i zd2rFB<=N~t27AmAp%X=dY!)t_MqpUiKi-K6x|g@r4KNlpBw-bLiLjAHV&ch(&fna z1@2I8EHz3cH@pjC`~Sbo5|&_d!XCb>%ad5D*%YrPI%FAXyH-_86vFoqEEdtuwsZ zj)l7n8v3)Wg=s4j3zLMlaW{6FQ3X-&m#jPbSX+cl?AFxwU+!>b_<;!uc|6ul84BMJ zW1trkW)P^Jl7GfbA2n67d<~ot2;V9`Q;M5Cd65>hIT6R;dxLmlP_Aw6sh-Ii?raks zr91=|qxTTwT)nP3d`nqI2cXNBuf)kL4t>gfVbqB|M@R;<$3)t zMQ_RKpZD-*{m&fy>vZ3r9kjqExe?AkP+M?w2NUBg1CoW8QR+bcI7}}M;}T@Y;6V_e zsm%N9F9wDUp|A-&REmB@=%<8Z-1j1($oJ)g?hTx_YmY7;#j^W?(W7^$4sW0Zdx&F0J znjc|a9%#;_WWeO~LgubM^6vu+YDF9lM(o(2f4aPG3?pHU$34UUN%+?{)tA^Rlen6O zxZu6z-wfN+9o9j;g0i2@F@>dpB@7n%A5y0=KA*Wf7N*8c5&YljwyQe|{he3Fe*iTUaozv` diff --git a/examples/slide/assets/images/raw/agent.PNG b/examples/slide/assets/images/raw/agent.PNG deleted file mode 100644 index a80932aee41d20cd8554464f499611c9756a9293..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72001 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

32=v*WxZK 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�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