Ebitengine - A dead simple 2D game engine for Go
Go to file
Hajime Hoshi d2312f1450 shareable: Lock before BeginFrame
This make package shareable more consistent. The mutex is lock
after EndFrame and before BeginFrame, and the similar rule will be
applied at launching (BeginFrame unlocks the lock in any cases).

Instead, package ebiten queues image operations if BeginFrame and
doesn't create provisional non-shared images. This should improve
performance at launching since this reduces the number of draw
calls, especifally for creating new images.

Updates #879.
Updates #921.
2019-08-25 18:12:04 +09:00
audio Add jsutil package for new API of Go 1.13 2019-06-15 00:49:57 +09:00
cmd/ebitenmobile cmd/ebitenmobile: Use GOROOT/bin/go instead of go 2019-08-24 01:06:16 +09:00
docs docs: Remove unused contents 2019-03-22 03:23:48 +09:00
ebitenutil graphics: Use 1x1 image for empty images 2019-07-30 23:11:06 +09:00
examples graphics: Bug fix: wrong for loops in TestImageMipmap* 2019-07-30 19:19:30 +09:00
inpututil inpututil: Package inpututil is no longer experimental 2018-05-14 01:32:55 +09:00
internal shareable: Lock before BeginFrame 2019-08-25 18:12:04 +09:00
mobile Fix documentations 2019-08-18 18:33:51 +09:00
text Make go vet a little happier on macOS 2019-07-22 20:16:22 +09:00
vector graphics: Fix wrong comments 2019-07-31 01:58:54 +09:00
.gitignore Clean up .gitignore 2018-05-30 03:13:01 +09:00
.travis.yml Add xvfb service to .travis.yml explicitly (#910) 2019-08-08 19:53:45 +09:00
AUTHORS Add Acid147 to AUTHORS 2019-05-26 18:07:45 +09:00
colorm_test.go affine: Bug fix: ColorM.Apply was wrong when alpha is 0 2018-02-27 12:16:16 +09:00
colorm.go affine: Misspelling 2018-10-13 00:07:48 +09:00
CONTRIBUTING.md Add CONTRIBUTING.md 2019-02-08 16:23:48 -10:00
copy_test.go graphics: Move functions to the package ebiten 2019-06-26 22:23:09 +09:00
copy.go graphics: Move functions to the package ebiten 2019-06-26 22:23:09 +09:00
debug_ebitendebug.go Add 'ebitendebug' build tag 2018-06-25 23:59:32 +09:00
debug_notebitendebug.go Add 'ebitendebug' build tag 2018-06-25 23:59:32 +09:00
doc.go Fix comments 2019-01-19 02:30:06 +09:00
export_test.go graphics: Use 'negative' mipmap when enlarging a too small image 2019-07-30 23:03:55 +09:00
gamepad.go input: Move MouseButton and GamepadButton to driver package 2019-03-30 23:19:52 +09:00
generate.go gofmt -s 2016-05-14 00:25:11 +09:00
genkeys.go uidriver: Move input implementation to uidrivers 2019-04-07 19:16:00 +09:00
geom_test.go affine: Add TestGeoMEquals 2019-06-09 06:56:25 +09:00
geom.go affine: Add Skew function to GeoM 2018-08-01 14:15:30 +09:00
go.mod Add ebitenmobile command 2019-08-18 03:03:01 +09:00
go.sum Add ebitenmobile command 2019-08-18 03:03:01 +09:00
goversion.go Force to use Go 1.12 or later 2019-05-01 17:43:38 +09:00
graphics.go graphics: Move const definitions to driver package 2019-06-26 01:05:13 +09:00
image_test.go graphics: More precise enlarging 2019-07-31 22:02:39 +09:00
image.go shareable: Lock before BeginFrame 2019-08-25 18:12:04 +09:00
imagedumper_desktop.go graphics: Unify dumping logic 2019-07-20 01:46:33 +09:00
imagedumper_notdesktop.go Remove dependency on internal/png on mobiles and browsers 2018-11-14 00:37:51 +09:00
imageparts.go graphics: Experimental: (*image.Image).SubImage 2018-10-28 02:19:14 +09:00
input.go Move driver getters to graphicsdriver/uidriver packages 2019-08-01 00:40:59 +09:00
keys.go input: Move Key to driver package 2019-03-30 23:39:56 +09:00
LICENSE Adjust LICENSE file 2017-01-30 18:57:49 +09:00
mipmap_test.go graphics: Use 'negative' mipmap when enlarging a too small image 2019-07-30 23:03:55 +09:00
mipmap.go graphics: Remove 'resetRestoringState' 2019-08-25 02:18:51 +09:00
mousebuttons.go input: Move MouseButton and GamepadButton to driver package 2019-03-30 23:19:52 +09:00
README.md Fix documentations 2019-08-18 18:33:51 +09:00
run.go Refactoring: isRunning -> isImageAvailable 2019-08-25 00:14:37 +09:00
uicontext.go shareable: Lock before BeginFrame 2019-08-25 18:12:04 +09:00
vertex.go graphics: Move the vertices backend to ebiten package 2019-06-22 00:02:22 +09:00

Ebiten

Build Status GoDoc Go Report Card

A dead simple 2D game library in Go

Ebiten is an open-source game library, with which you can develop 2D games with simple API for multi platforms in the Go programming language.

flappy

Platforms

  • Windows (No Cgo!)
  • macOS
  • Linux
  • FreeBSD
  • Android
  • iOS
  • Web browsers (Chrome, Firefox, Safari and Edge)

Note: Gamepad and keyboard are not available on Android/iOS.

For installation on desktops, see the installation instruction.

Features

  • 2D Graphics (Geometry/Color matrix transformation, Various composition modes, Offscreen rendering, Fullscreen, Text rendering, Automatic batches, Automatic texture atlas)
  • Input (Mouse, Keyboard, Gamepads, Touches)
  • Audio (Ogg/Vorbis, MP3, WAV, PCM)

Packages

Community

Slack

#ebiten channel in Gophers Slack

License

Ebiten is licensed under Apache license version 2.0. See LICENSE file.