diff options
author | Kevin Chabowski <kevin@kch42.de> | 2013-08-19 13:43:04 +0200 |
---|---|---|
committer | Kevin Chabowski <kevin@kch42.de> | 2013-08-19 13:43:04 +0200 |
commit | eb4e07103adf990f664417198db5b8792f1f8449 (patch) | |
tree | 423c76204f6f132789f5ece68c24d31038aabe85 /region_wrapper.go | |
parent | 8b483f66d1600498e5f27219ec6432f1149185ab (diff) | |
download | biomed-eb4e07103adf990f664417198db5b8792f1f8449.tar.gz biomed-eb4e07103adf990f664417198db5b8792f1f8449.tar.bz2 biomed-eb4e07103adf990f664417198db5b8792f1f8449.zip |
biomed now runs on windows.
Also fixed some spelling mistakes and updated the README
Diffstat (limited to 'region_wrapper.go')
-rw-r--r-- | region_wrapper.go | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/region_wrapper.go b/region_wrapper.go index 1139de5..a56f8dd 100644 --- a/region_wrapper.go +++ b/region_wrapper.go @@ -17,7 +17,7 @@ type RegionWrapper struct { Biotiles map[XZPos]*gdk.Pixmap bioCache map[XZPos][]mcmap.Biome - redraw chan<- bool + redraw func() guicbs GUICallbacks toolsEnabled bool @@ -118,9 +118,7 @@ func (rw *RegionWrapper) tileUpdater() { rw.Maptiles[pos], rw.Biotiles[pos], rw.bioCache[pos] = renderTile(chunk) chunk.MarkUnused() - gdk.ThreadsLeave() - rw.redraw <- true - gdk.ThreadsEnter() + rw.redraw() } } } @@ -158,14 +156,12 @@ func (rw *RegionWrapper) flushTiles() { return } - gdk.ThreadsEnter() for _, mt := range rw.Maptiles { mt.Unref() } for _, bt := range rw.Biotiles { bt.Unref() } - gdk.ThreadsLeave() rw.Maptiles = make(map[XZPos]*gdk.Pixmap) rw.Biotiles = make(map[XZPos]*gdk.Pixmap) @@ -173,9 +169,7 @@ func (rw *RegionWrapper) flushTiles() { } func (rw *RegionWrapper) Save() { - gdk.ThreadsLeave() rw.flushTiles() - gdk.ThreadsEnter() if err := rw.region.Flush(); err != nil { rw.guicbs.reportFail(fmt.Sprintf("Error while flushing cache: %s", err)) @@ -204,7 +198,9 @@ func (rw *RegionWrapper) UseTool(x, z int) { rw.guicbs.setBusy(false) rw.toolsEnabled = true - rw.redraw <- true + gdk.ThreadsEnter() + rw.redraw() + gdk.ThreadsLeave() }() } else { rw.tool.Do(rw.bio, rw, x, z) @@ -348,7 +344,7 @@ func (rw *RegionWrapper) UpdateTiles() { rw.tileUpdates <- true } -func NewRegionWrapper(redraw chan<- bool, guicbs GUICallbacks) *RegionWrapper { +func NewRegionWrapper(redraw func(), guicbs GUICallbacks) *RegionWrapper { rw := &RegionWrapper{ redraw: redraw, tileUpdates: make(chan bool), |