blob: 187837a54558d43e8a61386d55de49bc964df135 [file] [log] [blame]
package glfw
//#include "glfw/include/GLFW/glfw3.h"
import "C"
const (
VersionMajor = C.GLFW_VERSION_MAJOR // This is incremented when the API is changed in non-compatible ways.
VersionMinor = C.GLFW_VERSION_MINOR // This is incremented when features are added to the API but it remains backward-compatible.
VersionRevision = C.GLFW_VERSION_REVISION // This is incremented when a bug fix release is made that does not contain any API changes.
// Init initializes the GLFW library. Before most GLFW functions can be used,
// GLFW must be initialized, and before a program terminates GLFW should be
// terminated in order to free any resources allocated during or after
// initialization.
// If this function fails, it calls Terminate before returning. If it succeeds,
// you should call Terminate before the program exits.
// Additional calls to this function after successful initialization but before
// termination will succeed but will do nothing.
// This function may take several seconds to complete on some systems, while on
// other systems it may take only a fraction of a second to complete.
// On Mac OS X, this function will change the current directory of the
// application to the Contents/Resources subdirectory of the application's
// bundle, if present.
// This function may only be called from the main thread.
func Init() error {
return acceptError(APIUnavailable)
// Terminate destroys all remaining windows, frees any allocated resources and
// sets the library to an uninitialized state. Once this is called, you must
// again call Init successfully before you will be able to use most GLFW
// functions.
// If GLFW has been successfully initialized, this function should be called
// before the program exits. If initialization fails, there is no need to call
// this function, as it is called by Init before it returns failure.
// This function may only be called from the main thread.
func Terminate() {
// GetVersion retrieves the major, minor and revision numbers of the GLFW
// library. It is intended for when you are using GLFW as a shared library and
// want to ensure that you are using the minimum required version.
// This function may be called before Init.
func GetVersion() (major, minor, revision int) {
var (
C.glfwGetVersion(&maj, &min, &rev)
return int(maj), int(min), int(rev)
// GetVersionString returns a static string generated at compile-time according
// to which configuration macros were defined. This is intended for use when
// submitting bug reports, to allow developers to see which code paths are
// enabled in a binary.
// This function may be called before Init.
func GetVersionString() string {
return C.GoString(C.glfwGetVersionString())