| package glfw3 | |
| //#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 { | |
| C.glfwInit() | |
| return fetchError() | |
| } | |
| // 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() error { | |
| err := fetchError() | |
| flushErrors() | |
| C.glfwTerminate() | |
| return err | |
| } | |
| // 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 ( | |
| maj C.int | |
| min C.int | |
| rev C.int | |
| ) | |
| 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()) | |
| } |