|
|
|
@ -15,27 +15,27 @@ specific compiler of your chosen development environment. The compilation |
|
|
|
|
and linking process should be explained in your C programming material and in |
|
|
|
|
the documentation for your development environment. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@section build_include Including the GLFW header file |
|
|
|
|
|
|
|
|
|
In the source files of your application where you use OpenGL or GLFW, you should |
|
|
|
|
include the GLFW header file, i.e.: |
|
|
|
|
You should include the GLFW header in the source files where you use OpenGL or |
|
|
|
|
GLFW. |
|
|
|
|
|
|
|
|
|
@code |
|
|
|
|
#include <GLFW/glfw3.h> |
|
|
|
|
@endcode |
|
|
|
|
|
|
|
|
|
The GLFW header declares the GLFW API and by default also includes the OpenGL |
|
|
|
|
header of your development environment, which in turn defines all the constants, |
|
|
|
|
types and function prototypes of the OpenGL API. |
|
|
|
|
This header declares the GLFW API and by default also includes the OpenGL header |
|
|
|
|
from your development environment. See below for how to control this. |
|
|
|
|
|
|
|
|
|
The GLFW header also defines any platform-specific macros needed by your OpenGL |
|
|
|
|
header, so it can be included without needing any window system headers. |
|
|
|
|
|
|
|
|
|
The GLFW header also defines everything necessary for your OpenGL header to |
|
|
|
|
function. For example, under Windows you are normally required to include |
|
|
|
|
`windows.h` before the OpenGL header, which would pollute your code namespace |
|
|
|
|
with the entire Win32 API. |
|
|
|
|
For example, under Windows you are normally required to include `windows.h` |
|
|
|
|
before the OpenGL header, which would bring in the whole Win32 API. The GLFW |
|
|
|
|
header duplicates the small number of macros needed. |
|
|
|
|
|
|
|
|
|
Instead, the GLFW header takes care of this for you, not by including |
|
|
|
|
`windows.h`, but by duplicating only the very few necessary parts of it. It |
|
|
|
|
does this only when needed, so if `windows.h` _is_ included, the GLFW header |
|
|
|
|
It does this only when needed, so if `windows.h` _is_ included, the GLFW header |
|
|
|
|
does not try to redefine those symbols. The reverse is not true, i.e. |
|
|
|
|
`windows.h` cannot cope if any of its symbols have already been defined. |
|
|
|
|
|
|
|
|
@ -49,8 +49,21 @@ In other words: |
|
|
|
|
|
|
|
|
|
If you are using an OpenGL extension loading library such as |
|
|
|
|
[glad](https://github.com/Dav1dde/glad), the extension loader header should |
|
|
|
|
either be included _before_ the GLFW one, or the @ref GLFW_INCLUDE_NONE macro |
|
|
|
|
(described below) should be defined. |
|
|
|
|
be included _before_ the GLFW one. |
|
|
|
|
|
|
|
|
|
@code |
|
|
|
|
#include <glad/glad.h> |
|
|
|
|
#include <GLFW/glfw3.h> |
|
|
|
|
@endcode |
|
|
|
|
|
|
|
|
|
Alternatively the @ref GLFW_INCLUDE_NONE macro (described below) can be used to |
|
|
|
|
prevent the GLFW header from including the OpenGL header. |
|
|
|
|
|
|
|
|
|
@code |
|
|
|
|
#define GLFW_INCLUDE_NONE |
|
|
|
|
#include <GLFW/glfw3.h> |
|
|
|
|
#include <glad/glad.h> |
|
|
|
|
@endcode |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@subsection build_macros GLFW header option macros |
|
|
|
|