aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md121
1 files changed, 92 insertions, 29 deletions
diff --git a/README.md b/README.md
index 1124622..81c40d3 100644
--- a/README.md
+++ b/README.md
@@ -1,46 +1,34 @@
-Go Bindings for GLFW 3
-======================
+# Go Bindings for GLFW 3.1
-* This wrapper is now announced stable. There will be no API change until next major revision.
-* API breaking changes are in *devel* branch.
-* See [here](http://godoc.org/github.com/go-gl/glfw3) for documentation.
+* **ATTENTION:** As of GLFW 3.1 we break API. See Changelog below.
+* See [here](http://godoc.org/github.com/go-gl/glfw/v3.1/glfw) for documentation.
* You can help by submitting examples to [go-gl/examples](http://github.com/go-gl/examples).
-Remarks
-=======
+## Installation
-* Mingw64 users should rename ***glfw3dll.a*** to ***libglfw3dll.a***.
-* In Windows and Linux, if you compile GLFW yourself, use <code>-DBUILD_SHARED_LIBS=on</code> with cmake in order to build the dynamic libraries.
-* Some functions -which are marked in the documentation- can be called only from the main thread. Click [here](https://code.google.com/p/go-wiki/wiki/LockOSThread) for how.
-* In OS X, you can install Go and GLFW via [Homebrew](http://brew.sh/).
+* Installation is easy, just `go get github.com/go-gl/glfw/v3.1/glfw` and be done (*GLFW sources are included so you don't have to build GLFW on your own*)!
+* Go 1.4 is required on Windows (otherwise you must use MinGW v4.8.1 exactly, see [Go issue 8811](https://code.google.com/p/go/issues/detail?id=8811)).
-```
-$ brew install go
-$ brew tap homebrew/versions
-$ brew install --build-bottle --static glfw3
-$ go get github.com/go-gl/glfw3
-```
-
-Example
-=======
+## Usage
```go
package main
import (
- "fmt"
- glfw "github.com/go-gl/glfw3"
+ "runtime"
+ "github.com/go-gl/glfw/v3.1/glfw"
)
-func errorCallback(err glfw.ErrorCode, desc string) {
- fmt.Printf("%v: %v\n", err, desc)
+func init() {
+ // This is needed to arrange that main() runs on main thread.
+ // See documentation for functions that are only allowed to be called from the main thread.
+ runtime.LockOSThread()
}
func main() {
- glfw.SetErrorCallback(errorCallback)
-
- if !glfw.Init() {
- panic("Can't init glfw!")
+ err := glfw.Init()
+ if err != nil {
+ panic(err)
}
defer glfw.Terminate()
@@ -52,9 +40,84 @@ func main() {
window.MakeContextCurrent()
for !window.ShouldClose() {
- //Do OpenGL stuff
+ // Do OpenGL stuff
window.SwapBuffers()
glfw.PollEvents()
}
}
```
+
+## Changelog
+
+* Easy `go get` installation. GLFW source code is now included in-repo and compiled in so you don't have to build GLFW on your own and distribute shared libraries. The revision of GLFW C library used is listed in [GLFW_C_REVISION.txt](GLFW_C_REVISION.txt) file.
+* The error callback is now set internally. Functions return an error with corresponding code and description (do a type assertion to glfw3.Error for accessing the variables) if the error is recoverable. If not a panic will occur.
+
+### GLFW 3.1 Specfic Changes
+* Added type `Cursor`.
+* Added function `Window.SetDropCallback`.
+* Added function `Window.SetCharModsCallback`.
+* Added function `PostEmptyEvent`.
+* Added function `CreateCursor`.
+* Added function `CreateStandardCursor`.
+* Added function `Cursor.Destroy`.
+* Added function `Window.SetCursor`.
+* Added function `Window.GetFrameSize`.
+* Added window hint `Floating`.
+* Added window hint `AutoIconify`.
+* Added window hint `ContextReleaseBehavior`.
+* Added window hint `DoubleBuffer`.
+* Added hint value `AnyReleaseBehavior`.
+* Added hint value `ReleaseBehaviorFlush`.
+* Added hint value `ReleaseBehaviorNone`.
+* Added hint value `DontCare`.
+
+### API changes
+* `Window.Iconfiy` Returns an error.
+* `Window.Restore` Returns an error.
+* `Init` Returns an error instead of `bool`.
+* `GetJoystickAxes` No longer returns an error.
+* `GetJoystickButtons` No longer returns an error.
+* `GetJoystickName` No longer returns an error.
+* `GetMonitors` No longer returns an error.
+* `GetPrimaryMonitor` No longer returns an error.
+* `Monitor.GetGammaRamp` No longer returns an error.
+* `Monitor.GetVideoMode` No longer returns an error.
+* `Monitor.GetVideoModes` No longer returns an error.
+* `GetCurrentContext` No longer returns an error.
+* `Window.SetCharCallback` Accepts `rune` instead of `uint`.
+* Added type `Error`.
+* Removed `SetErrorCallback`.
+* Removed error code `NotInitialized`.
+* Removed error code `NoCurrentContext`.
+* Removed error code `InvalidEnum`.
+* Removed error code `InvalidValue`.
+* Removed error code `OutOfMemory`.
+* Removed error code `PlatformError`.
+* Removed `KeyBracket`.
+* Renamed `Window.SetCharacterCallback` to `Window.SetCharCallback`.
+* Renamed `Window.GetCursorPosition` to `GetCursorPos`.
+* Renamed `Window.SetCursorPosition` to `SetCursorPos`.
+* Renamed `CursorPositionCallback` to `CursorPosCallback`.
+* Renamed `Window.SetCursorPositionCallback` to `SetCursorPosCallback`.
+* Renamed `VideoMode` to `VidMode`.
+* Renamed `Monitor.GetPosition` to `Monitor.GetPos`.
+* Renamed `Window.GetPosition` to `Window.GetPos`.
+* Renamed `Window.SetPosition` to `Window.SetPos`.
+* Renamed `Window.GetAttribute` to `Window.GetAttrib`.
+* Renamed `Window.SetPositionCallback` to `Window.SetPosCallback`.
+* Renamed `PositionCallback` to `PosCallback`.
+* Ranamed `Cursor` to `CursorMode`.
+* Renamed `StickyKeys` to `StickyKeysMode`.
+* Renamed `StickyMouseButtons` to `StickyMouseButtonsMode`.
+* Renamed `ApiUnavailable` to `APIUnavailable`.
+* Renamed `ClientApi` to `ClientAPI`.
+* Renamed `OpenglForwardCompatible` to `OpenGLForwardCompatible`.
+* Renamed `OpenglDebugContext` to `OpenGLDebugContext`.
+* Renamed `OpenglProfile` to `OpenGLProfile`.
+* Renamed `SrgbCapable` to `SRGBCapable`.
+* Renamed `OpenglApi` to `OpenGLAPI`.
+* Renamed `OpenglEsApi` to `OpenGLESAPI`.
+* Renamed `OpenglAnyProfile` to `OpenGLAnyProfile`.
+* Renamed `OpenglCoreProfile` to `OpenGLCoreProfile`.
+* Renamed `OpenglCompatProfile` to `OpenGLCompatProfile`.
+* Renamed `KeyKp...` to `KeyKP...`.