x-backend #2

Merged
sashakoshka merged 34 commits from x-backend into main 2022-11-14 21:40:25 -07:00
Showing only changes of commit c865f7146a - Show all commits

View File

@ -150,14 +150,13 @@ func (backend *Backend) handleXEvent (event xgb.Event) {
backend.metrics.windowHeight = newHeight
if sizeChanged {
// compress events
configureEvent =
backend.compressConfigureNotify(configureEvent)
// resize and rebind canvas
// TODO: remove draw functions from reallocate canvas,
// and only reallocate when drawing and the window
// dimensions have changed
backend.reallocateCanvas()
// notify application of resize
backend.application.SetSize(backend.calculateBufferSize())
backend.channel <- stone.EventResize { }
}
}
@ -204,6 +203,16 @@ func (backend *Backend) calculateWindowSize () (x, y int) {
return
}
func (backend *Backend) calculateBufferSize () (width, height int) {
width =
(backend.metrics.windowWidth - backend.metrics.padding * 2) /
backend.metrics.cellWidth
height =
(backend.metrics.windowHeight - backend.metrics.padding * 2) /
backend.metrics.cellHeight
return
}
func (backend *Backend) reallocateCanvas () {
backend.drawLock.Lock()
defer backend.drawLock.Unlock()