mirror of
				https://github.com/glfw/glfw.git
				synced 2025-10-31 20:52:38 +00:00 
			
		
		
		
	Replaced outdated Lite readme with quick rework of 2.7 version.
This commit is contained in:
		
							parent
							
								
									9e4137c0a9
								
							
						
					
					
						commit
						3f0221ccc0
					
				
							
								
								
									
										639
									
								
								readme.html
									
									
									
									
									
								
							
							
						
						
									
										639
									
								
								readme.html
									
									
									
									
									
								
							| @ -1,122 +1,113 @@ | |||||||
| <?xml version="1.0" encoding="UTF-8"?> | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> | ||||||
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | <html> | ||||||
| <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |  | ||||||
| 
 |  | ||||||
| <head> | <head> | ||||||
|  |   <meta http-equiv="content-type" content="text/html; charset=UTF-8"> | ||||||
|   <title>GLFW Readme File</title> |   <title>GLFW Readme File</title> | ||||||
|   <style type="text/css"> |  | ||||||
|     table { margin-left: 2em; border-style: solid; border-width: thin; } |  | ||||||
|     tr.header { font-weight: bold; } |  | ||||||
|     td { padding: 0.2em; border-style: solid; border-width: thin; } |  | ||||||
|     pre { margin-left: 2em; } |  | ||||||
|   </style> |  | ||||||
| </head> | </head> | ||||||
| 
 | 
 | ||||||
| <body> | <body> | ||||||
| 
 | 
 | ||||||
| <h1>GLFW 2.7 <i>Lite</i></h1> | <h1>GLFW 3.0 source distribution</h1> | ||||||
| 
 | 
 | ||||||
| <ol> | <ol> | ||||||
|   <li><a href="#sec1">Introduction</a></li> |  <li><a href="#intro">Introduction</a></li> | ||||||
|   <li><a href="#sec2">Compiling GLFW and the example programs</a></li> |  <li><a href="#compiling">Compiling GLFW and the example programs</a></li> | ||||||
|   <li><a href="#sec3">Installing GLFW</a></li> |  <li><a href="#installing">Installing GLFW</a></li> | ||||||
|   <li><a href="#sec4">Using GLFW</a></li> |  <li><a href="#using">Using GLFW</a></li> | ||||||
|   <li><a href="#sec9">Frequently Asked Questions</a></li> |  <li><a href="#changelog">Version history</a></li> | ||||||
|   <li><a href="#sec5">Version history</a></li> |  <li><a href="#structure">Directory structure of the GLFW distribution</a></li> | ||||||
|   <li><a href="#sec6">Directory structure of the GLFW distribution</a></li> |  <li><a href="#contact">Contacting the project</a></li> | ||||||
|   <li><a href="#sec7">Contacting the project</a></li> |  <li><a href="#credits">Acknowledgements</a></li> | ||||||
|   <li><a href="#sec8">Acknowledgements</a></li> |  | ||||||
| </ol> | </ol> | ||||||
| 
 | 
 | ||||||
| <a name="sec1"> | <a name="intro"> | ||||||
| <h2>1. Introduction</h2> | <h2>1. Introduction</h2> | ||||||
| 
 | 
 | ||||||
| <p>Welcome to version 2.7 <i>Lite</i> of the GLFW OpenGL framework.  GLFW is | <p>Welcome to version 3.0 of the GLFW library.  GLFW is a free, open source, | ||||||
| a free, open source, portable framework for OpenGL application development.  In | portable library for OpenGL application development.  It provides a powerful | ||||||
| short, it is a library that constitutes a powerful API for handling operating | API for handling operating system specific tasks, such as opening an OpenGL | ||||||
| system specific tasks, such as opening an OpenGL window, reading keyboard and | window, reading keyboard, mouse, joystick and time input, and more.</p> | ||||||
| mouse input, and more.</p> |  | ||||||
| 
 | 
 | ||||||
| <p><em>Please note</em> that this is the <i>Lite</i> version of GLFW, which | <p>This is an <em>experimental</em> series intended to allow the new API to | ||||||
| means that some areas of functionality present in 2.x mainline versions of GLFW | settle.</p> | ||||||
| have been removed.</p> |  | ||||||
| 
 | 
 | ||||||
| <a name="sec2"> | <p><strong>Note</strong> that the threading and image loading APIs from the 2.x | ||||||
|  | series have been removed.</p> | ||||||
|  | 
 | ||||||
|  | <a name="compiling"> | ||||||
| <h2>2. Compiling GLFW and the example programs</h2> | <h2>2. Compiling GLFW and the example programs</h2> | ||||||
| 
 | 
 | ||||||
| <p>To compile GLFW and the accompanying example programs, you will need the <a | <p>To compile GLFW and the accompanying example programs, you will need the | ||||||
| href="http://www.cmake.org/">CMake</a> build system.</p> | <a href="http://www.cmake.org/">CMake</a> build system.</p> | ||||||
| 
 | 
 | ||||||
| <a name="sec3"> | <a name="installing"> | ||||||
| <h2>3. Installing GLFW</h2> | <h2>3. Installing GLFW</h2> | ||||||
| 
 | 
 | ||||||
| <p>A rudimentary installation target is provided for all supported platforms | <p>A rudimentary installation target is provided for all supported platforms | ||||||
| via the CMake build system.</p> | via the CMake build system.</p> | ||||||
| 
 | 
 | ||||||
| <p>For Unix-like platforms, the command is:</p> | <a name="using"> | ||||||
| 
 |  | ||||||
| <p class="pre"><pre>$ make install</pre></p> |  | ||||||
| 
 |  | ||||||
| <p>Note that you may need to run this command as root or via |  | ||||||
| <code>sudo(1)</code> in order to install GLFW into the various system |  | ||||||
| directories.</p> |  | ||||||
| 
 |  | ||||||
| <p>For Visual C++ and other integrated development environments, an installation |  | ||||||
| target should appear in the by CMake generated project files.</p> |  | ||||||
| 
 |  | ||||||
| <a name="sec4"> |  | ||||||
| <h2>4. Using GLFW</h2> | <h2>4. Using GLFW</h2> | ||||||
| 
 | 
 | ||||||
| <p>There are two aspects to using GLFW: | <p>There are two aspects to using GLFW:</p> | ||||||
| 
 | 
 | ||||||
| <p> |  | ||||||
| <ol> | <ol> | ||||||
|   <li>How the GLFW API works</li> |   <li>How does the GLFW API work</li> | ||||||
|   <li>How to compile programs that use GLFW</li> |   <li>How to compile programs that use GLFW</li> | ||||||
| </ol> | </ol> | ||||||
| 
 | 
 | ||||||
| <p>The first point is covered in the <a href="docs/UsersGuide.pdf">GLFW | <p>The first point is covered in the | ||||||
| Users Guide</a> and the <a href="docs/Reference.pdf">GLFW Reference | <a href="docs/GLFWUsersGuide30.pdf">GLFW Users Guide</a> and the | ||||||
| Manual</a>, and we suggest that you read at least the Users Guide, since | <a href="docs/GLFWReference30.pdf">GLFW Reference Manual</a>, and we suggest | ||||||
| it's a good introduction to the GLFW API.</p> | that you read at least the Users Guide, since it's a good introduction to the | ||||||
|  | GLFW API.</p> | ||||||
| 
 | 
 | ||||||
| <p>Designing and compiling programs that use GLFW is not very difficult. | <p>Designing and compiling programs that use GLFW is not very difficult. | ||||||
| A few rules for successfully designing GLFW-based programs are presented | A few rules for successfully designing GLFW-based programs are presented | ||||||
| in the following sections.</p> | in the following sections.</p> | ||||||
| 
 | 
 | ||||||
| <h3>4.1 Include <code>GL/glfw.h</code></h3> | <h3>4.1 Include the GLFW header file</h3> | ||||||
| 
 | 
 | ||||||
| <p>In your program, you should include <code>GL/glfw.h</code> like this:</p> | <p>In the files of your program where you use OpenGL or GLFW, you should | ||||||
|  | include the <code>GL/glfw.h</code> header file, i.e.:</p> | ||||||
| 
 | 
 | ||||||
| <p><pre>#include <GL/glfw.h></pre></p> | <blockquote><code>#include <GL/glfw.h></code></blockquote> | ||||||
| 
 | 
 | ||||||
| <p>This include file defines all the necessary constants, types and prototypes | <p>This defines all the constants, types and function prototypes of the GLFW | ||||||
| that are used to interact with the GLFW API.  It also includes | API.  It also includes the <code>gl.h</code> and </code>GL/glu.h</code> header | ||||||
| <code>GL/gl.h</code> and <code>GL/glu.h</code>, and - <em>it defines all the | files, and - this is very important - <em>it defines all the necessary | ||||||
| necessary constants and types that are necessary for OpenGL to work on | constants and types that are necessary for the OpenGL headers to work on | ||||||
| different platforms</em>.</p> | different platforms</em>.</p> | ||||||
| 
 | 
 | ||||||
| <p>For instance, under Windows you are normally required to include | <p>For example, under Microsoft Windows you are normally required to include | ||||||
| <code>windows.h</code> before you include <code>GL/gl.h</code>.  If you write | <code>windows.h</code> before you include <code>GL/gl.h</code>.  This would | ||||||
| such a program, it would not compile under e.g. Linux since | however make your code dependent on the Windows platform, or at least require | ||||||
| <code>windows.h</code> does not exist under Linux.  <code>GL/glfw.h</code> | your program to check which platform it is being compiled on. | ||||||
| takes care of these things for you. Note however that it does not actually | 
 | ||||||
| include <code>windows.h</code>, it merely mimics the parts of it that are | The GLFW header file takes care of this for you, not by including | ||||||
| needed for <code>GL/gl.h</code> and <code>GL/glu.h</code> (this way we do not | <code>windows.h</code>, but rather by itself duplicating the necessary parts of | ||||||
| get the thousands of constants, types and prototypes that could otherwise | it.  This way, the namespace won't be cluttered by the entire Windows API.</p> | ||||||
| possibly interfere with our own declarations).</p> |  | ||||||
| 
 | 
 | ||||||
| <p>In other words: | <p>In other words: | ||||||
| <ul> | <ul> | ||||||
|   <li>Do <em>not</em> include <code>GL/gl.h</code> or <code>GL/glu.h</code> |   <li>Do <em>not</em> include <code>GL/gl.h</code> or <code>GL/glu.h</code> | ||||||
|       (GLFW does it for you)</li> |       yourself, as GLFW does this for you</li> | ||||||
|   <li>Do <em>not</em> include <code>windows.h</code> unless you need |   <li>Do <em>not</em> include <code>windows.h</code> unless you actually need | ||||||
|       to write Win32-specific code</li> |       direct access to the Windows API</li> | ||||||
|   <li>If you <em>do</em> need to include <code>windows.h</code>, do it |   <li>If you <em>do</em> need to include <code>windows.h</code>, do it | ||||||
|       <em>before</em> including <code>GL/glfw.h</code>.</li> |       <em>before</em> including <code>GL/glfw.h</code> and the GLFW header will | ||||||
|  |       detect this.</p> | ||||||
| </ul> | </ul> | ||||||
| 
 | 
 | ||||||
| <h3>4.2 Link with the correct libraries</h3> | <p>Also note that if you are using an OpenGL extension loading library such as | ||||||
|  | <a href="http://glew.sourceforge.net/">GLEW</a>, you should include the GLEW | ||||||
|  | header <em>before</em> the GLFW one.  The GLEW header defines macros that | ||||||
|  | disable any <code>gl.h</code> that the GLFW header includes and GLEW will work | ||||||
|  | as expected.</p> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | <h3>4.2 Link with the right libraries</h3> | ||||||
| 
 | 
 | ||||||
| <h4>4.2.1 Windows static library</h4> | <h4>4.2.1 Windows static library</h4> | ||||||
| 
 | 
 | ||||||
| @ -125,15 +116,15 @@ link with some system libraries that GLFW uses.</p> | |||||||
| 
 | 
 | ||||||
| <p>When linking a program under Windows that uses the static version of GLFW, | <p>When linking a program under Windows that uses the static version of GLFW, | ||||||
| you must also link with the following libraries: <code>opengl32</code>, | you must also link with the following libraries: <code>opengl32</code>, | ||||||
| <code>user32</code> and <code>kernel32</code>.  Some of these libraries may be | <code>user32</code> and <code>kernel32</code>. Some of these libraries may be | ||||||
| linked with by default by your compiler. In the table below you can see the | linked with by default by your compiler. In the table below you can see the | ||||||
| minimum required link options for each supported Windows compiler (you may want | minimum required link options for each supported Windows compiler (you may want | ||||||
| to add other libraries as well, such as <code>glu32</code>):</p> | to add other libraries as well, such as <code>glu32</code>):</p> | ||||||
| 
 | 
 | ||||||
| <table> | <table border=1> | ||||||
|   <tr class="header"> |   <tr> | ||||||
|     <td>Compiler</td> |     <td><b>Compiler</b></td> | ||||||
|     <td>Link options</td> |     <td><b>Link options</b></td> | ||||||
|   </tr> |   </tr> | ||||||
|   <tr> |   <tr> | ||||||
|     <td>Borland C++ Builder</td> |     <td>Borland C++ Builder</td> | ||||||
| @ -159,22 +150,18 @@ to add other libraries as well, such as <code>glu32</code>):</p> | |||||||
|     <td>OpenWatcom</td> |     <td>OpenWatcom</td> | ||||||
|     <td><code>glfw.lib opengl32.lib user32.lib</code></td> |     <td><code>glfw.lib opengl32.lib user32.lib</code></td> | ||||||
|   </tr> |   </tr> | ||||||
|   <tr> |  | ||||||
|     <td>Pelles C</td> |  | ||||||
|     <td><code>glfw.lib opengl32.lib user32.lib kernel32.lib</code></td> |  | ||||||
|   </tr> |  | ||||||
| </table> | </table> | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| <h4>4.2.2 Windows DLL</h4> | <h4>4.2.2 Windows DLL</h4> | ||||||
| 
 | 
 | ||||||
| <p>To compile a program that uses the DLL version of GLFW, you need to define | <p>To compile a program that uses the DLL version of GLFW, you need to | ||||||
| the <code>GLFW_DLL</code> constant. This can either be done with a compiler switch, | define the <code>GLFW_DLL</code> constant. This can either be done with a | ||||||
| typically by adding <code>-DGLFW_DLL</code> to the list of compiler options. You can | compiler switch, typically by adding <code>-DGLFW_DLL</code> to the list of | ||||||
| also do it by adding the following line to all your source files that include | compiler options. You can also do it by adding the following line to all your | ||||||
| <code>glfw.h</code>, <em>before</em> including it:</p> | source files <b>before</b> including the GLFW header file:</p> | ||||||
| 
 | 
 | ||||||
| <p><pre>#define GLFW_DLL</pre></p> | <blockquote><code>#define GLFW_DLL</code></blockquote> | ||||||
| 
 | 
 | ||||||
| <p>When linking a program under Windows that uses the DLL version of GLFW, | <p>When linking a program under Windows that uses the DLL version of GLFW, | ||||||
| the only library you need to link with for GLFW to work is <code>glfwdll</code>. | the only library you need to link with for GLFW to work is <code>glfwdll</code>. | ||||||
| @ -182,10 +169,10 @@ In the table below you can see the minimum required link options for each | |||||||
| supported Windows compiler (you may want to add other libraries as well, | supported Windows compiler (you may want to add other libraries as well, | ||||||
| such as <code>opengl32</code> and <code>glu32</code>):</p> | such as <code>opengl32</code> and <code>glu32</code>):</p> | ||||||
| 
 | 
 | ||||||
| <table> | <table border=1> | ||||||
|   <tr class="header"> |   <tr> | ||||||
|     <td>Compiler</td> |     <td><b>Compiler</b></td> | ||||||
|     <td>Link options</td> |     <td><b>Link options</b></td> | ||||||
|   </tr> |   </tr> | ||||||
|   <tr> |   <tr> | ||||||
|     <td>Borland C++ Builder</td> |     <td>Borland C++ Builder</td> | ||||||
| @ -211,120 +198,164 @@ such as <code>opengl32</code> and <code>glu32</code>):</p> | |||||||
|     <td>OpenWatcom</td> |     <td>OpenWatcom</td> | ||||||
|     <td><code>glfwdll.lib</code></td> |     <td><code>glfwdll.lib</code></td> | ||||||
|   </tr> |   </tr> | ||||||
|   <tr> |  | ||||||
|     <td>Pelles C</td> |  | ||||||
|     <td><code>glfwdll.lib</code></td> |  | ||||||
|   </tr> |  | ||||||
| </table> | </table> | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| <h4>4.2.3 Unix static library</h4> | <h4>4.2.3 Unix static library</h4> | ||||||
| 
 | 
 | ||||||
| <p>GLFW now supports | <p>GLFW supports | ||||||
| <a href="http://pkgconfig.freedesktop.org/wiki/">pkgconfig</a>, | <a href="http://pkgconfig.freedesktop.org/wiki/">pkg-config</a>, | ||||||
| and a libglfw.pc file is generated and installed when you install the library. | and a <code>libglfw.pc</code> file is generated and installed when you install | ||||||
| For systems that do not provide pkgconfig, you should look in this file for the | the library.  For systems that do not provide pkg-config, you should look in | ||||||
| proper compile and link flags for your system, as determined by compile.sh at | this file for the proper compile and link flags for your system, as determined | ||||||
| compile time.</p> | by compile.sh at compile time.</p> | ||||||
| 
 | 
 | ||||||
| <p>A typical compile and link command line may look like this (using GCC):</p> | <p>A typical compile and link command-line may look like this:</p> | ||||||
| 
 | 
 | ||||||
| <p><pre>gcc `pkg-config --cflags libglfw` -o myprog myprog.c `pkg-config --libs libglfw`</pre></p> | <blockquote><code>cc `pkg-config --cflags libglfw` -o myprog myprog.c `pkg-config --libs libglfw`</code></blockquote> | ||||||
|  | 
 | ||||||
|  | <p>If you use GLU functions in your program you should also add | ||||||
|  | <code>-lGLU</code> to your link flags.</p> | ||||||
| 
 | 
 | ||||||
| <p>If you use GLU functions in your program then you should also add the |  | ||||||
| <code>-lGLU</code> flag. |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| <h4>4.2.5 Mac OS X static library</h4> | <h4>4.2.5 Mac OS X static library</h4> | ||||||
| 
 | 
 | ||||||
| <p>When compiling and linking a program under Mac OS X that uses GLFW, you | <p>When compiling and linking a program under Mac OS X that uses GLFW, you | ||||||
| must also link with the following frameworks: <code>Carbon.framework</code>, | must also link with Cocoa and OpenGL frameworks. | ||||||
| <code>AGL.framework</code> and <code>OpenGL.framework</code>. |  | ||||||
| 
 | 
 | ||||||
| <p>If you are using Xcode, you simply add the GLFW library | <p>If you are using Xcode, you simply add the GLFW library <code>libglfw.a</code> and | ||||||
| <code>libglfw.a</code> and these frameworks to your project. If, however, you | these frameworks to your project. If, however, you are building your program | ||||||
| are building your program from the command line, there are two methods for | from the command-line, there are two methods for correctly linking your GLFW | ||||||
| correctly linking your GLFW program.</p> | program.</p> | ||||||
| 
 | 
 | ||||||
| <p>GLFW now supports <a | <p>GLFW supports | ||||||
| href="http://pkgconfig.freedesktop.org/wiki/">pkgconfig</a>, and a pkgconfig | <a href="http://pkgconfig.freedesktop.org/wiki/">pkg-config</a>, and a | ||||||
| file named libglfw.pc is generated and installed when you install the library. | libglfw.pc file is generated and installed when you install the library. You | ||||||
| You can find pkgconfig in most packaging systems, such as <a | can find pkg-config in most packaging systems, such as | ||||||
| href="http://www.finkproject.org/">Fink</a> and <a | <a href="http://www.finkproject.org/">Fink</a> and | ||||||
| href="http://darwinports.opendarwin.org/">DarwinPorts</a>, so if you have one | <a href="http://www.macports.org/">MacPorts</a>, so if you have one of them | ||||||
| of them installed, simply install pkgconfig.  Once you have pkgconfig available, | installed, simply install pkg-config. Once you have pkg-config available, the | ||||||
| the command line for compiling and linking your program is:</p> | command-line for compiling and linking your program is:</p> | ||||||
| 
 | 
 | ||||||
| <p><pre>gcc `pkg-config --cflags libglfw` -o myprog myprog.c `pkg-config --libs libglfw`</pre></p> | <blockquote><code>cc `pkg-config --cflags libglfw` -o myprog myprog.c `pkg-config --libs libglfw`</code></blockquote> | ||||||
| 
 | 
 | ||||||
| <p>If you do not wish to use pkgconfig, you will need to add the required | <p>If you do not wish to use pkg-config, you will need to add the required | ||||||
| frameworks and libraries to your command line using the <code>-l</code> and | frameworks and libraries to your command-line using the <code>-l</code> and | ||||||
| <code>-framework</code> switches, i.e.:</p> | <code>-framework</code> switches, i.e.:</p> | ||||||
| 
 | 
 | ||||||
| <p><pre>gcc -o myprog myprog.c -lglfw -framework Carbon -framework AGL -framework OpenGL</pre></p> | <blockquote><code>cc -o myprog myprog.c -lglfw -framework Cocoa -framework OpenGL</code></blockquote> | ||||||
| 
 | 
 | ||||||
| <p>Note that you do not add the .framework extension to a framework when adding | <p>Note that you do not add the .framework extension to a framework when adding | ||||||
| it from the command line.</p> | it from the command-line.</p> | ||||||
| 
 | 
 | ||||||
| <p>These frameworks contain all GL and GLU functions, so there is no need to | <p>These frameworks contain all OpenGL and GLU functions, so there is no need to | ||||||
| add additional libraries or frameworks when using GLU functionality. Also note | add additional libraries or frameworks when using GLU functionality. Also note | ||||||
| that even though your machine may have Unix-style GL libraries, they are for | that even though your machine may have Unix-style OpenGL libraries, they are for | ||||||
| use with the X Window System, and will <em>not</em> work with the Mac OS X | use with the X Window System, and will <em>not</em> work with the Mac OS X native | ||||||
| native version of GLFW.</p> | version of GLFW.</p> | ||||||
| 
 | 
 | ||||||
| <a name="#sec9" /> | <a name="changelog"> | ||||||
| <h2>9. Frequently Asked Questions</h2> |  | ||||||
| 
 |  | ||||||
| <a name="sec5" /> |  | ||||||
| <h2>5. Version history</h2> | <h2>5. Version history</h2> | ||||||
| 
 | 
 | ||||||
| <h3>2.7 <i>Lite</i></h3> | <h3>v3.0</h3> | ||||||
| <ul> | <ul> | ||||||
|   <li>Removed all threading support</li> |   <li>Replaced ad hoc build system with CMake</li> | ||||||
|   <li>Removed all image and texture loading support</li> |   <li>Removed threading API</li> | ||||||
|   <li>Removed all build files not related to CMake</li> |   <li>Removed image loading API</li> | ||||||
|   <li>Removed D, Delphi and Lua bindings</li> |  | ||||||
|   <li>Imported CMake work from pre-3.0 branch</li> |  | ||||||
| </ul> | </ul> | ||||||
| 
 | 
 | ||||||
| <h3>2.7</h3> | <h3>v2.7</h3> | ||||||
| <ul> | <ul> | ||||||
|   <li>Added <code>GLFW_OPENGL_VERSION_MAJOR</code>, |   <li>Added <code>GLFW_OPENGL_VERSION_MAJOR</code> and <code>GLFW_OPENGL_VERSION_MINOR</code> | ||||||
|       <code>GLFW_OPENGL_VERSION_MINOR</code> and |       hints for versioned context creation</li> | ||||||
|       <code>GLFW_OPENGL_FORWARD_COMPAT</code> hints for versioned context |   <li>Added <code>GLFW_OPENGL_FORWARD_COMPAT</code> hint for forward compatible context creation</li> | ||||||
|       creation support</li> |   <li>Added <code>GLFW_OPENGL_DEBUG_CONTEXT</code> hint for debug context creation</li> | ||||||
|   <li>Added <code>GLFW_NO_GLU</code> macro for disabling the inclusion of the |   <li>Added <code>GLFW_OPENL_PROFILE</code> hint for context creation using profiles</li> | ||||||
|   GLU header</li> |   <li>Added <code>GLFW_NO_GLU</code> macro for disabling the inclusion of the GLU header by the GLFW header</li> | ||||||
|   <li>Added the proper DEF file to the Visual C++ DLL project file</li> |   <li>Added platform-independent pixel format selection (not used on Mac OS X)</li> | ||||||
|   <li>Added a rudimentary joystick API testing example</li> |   <li>Added support and symbols for several additional keys, including Windows/Command keys, Pause, Caps Lock and Menu</li> | ||||||
|  |   <li>Added conservative value clamping to <code>glfwOpenWindowHint</code></li> | ||||||
|  |   <li>Added a number of test programs mostly useful to developers of GLFW</li> | ||||||
|  |   <li>Added error messages and graceful failure to example programs</li> | ||||||
|  |   <li>Added Cocoa port for Mac OS X 10.5 Leopard and later</li> | ||||||
|  |   <li>Added vsync to all relevant example programs</li> | ||||||
|  |   <li>Added a rudimentary OpenGL 3.2+ core profile example program</li> | ||||||
|  |   <li>Updated Pascal (formerly Delphi) bindings to support more compilers</li> | ||||||
|  |   <li>Clarified and expanded the User's Guide and Reference Manual</li> | ||||||
|  |   <li>Fixed a number of compiler warnings in the example programs</li> | ||||||
|  |   <li>OpenGL version is now only parsed once, at window creation time</li> | ||||||
|  |   <li>Changed <code>glfwSwapBuffers</code> to call <code>glfwPollEvents</code> <em>after</em> buffer swap</li> | ||||||
|   <li>Changed all comments in public header file to plain C style</li> |   <li>Changed all comments in public header file to plain C style</li> | ||||||
|   <li>Removed all deprecated platforms</li> |   <li>Removed the <code>keytest</code> example program, as it was superseded by the <code>events</code> test</li> | ||||||
|   <li>[X11] Added <code>x11-distro-install</code> install target, intended for packagers</li> |   <li>Removed deprecated AmigaOS and DOS ports</li> | ||||||
|   <li>[X11] Removed support for GLX version 1.3 and below</li> |   <li>Removed all FPS counters from example programs</li> | ||||||
|  |   <li>Removed all unmaintained language bindings</li> | ||||||
|  |   <li>Removed support for Pelles C</li> | ||||||
|  |   <li>Removed broken Microsoft Visual C++ 6.0 build path</li> | ||||||
|  |   <li>[X11] Added <code>x11-dist-install</code> install target, intended for packagers of GLFW</li> | ||||||
|  |   <li>[X11] Added <code>x11-dist-clean</code> build target, intended for developers of GLFW</li> | ||||||
|  |   <li>[X11] Added support for <code>GLX_SGIX_fbconfig</code></li> | ||||||
|  |   <li>[X11] Added support for user-specified compilation flags via <code>CFLAGS</code></li> | ||||||
|  |   <li>[X11] Added documentation of configuration macros</li> | ||||||
|  |   <li>[X11] Implemented support for <code>GLFW_SYSTEM_KEYS</code></li> | ||||||
|  |   <li>[X11] Improved configuration and makefile creation logic</li> | ||||||
|  |   <li>[X11] Removed support for GLX version 1.2 and below</li> | ||||||
|  |   <li>[X11] Removed unnecessary calls to XSync</li> | ||||||
|  |   <li>[X11] Removed use of legacy window style atoms</li> | ||||||
|  |   <li>[X11] Bugfix: Repeated keys would sometimes leak through despite key repeat being disabled</li> | ||||||
|  |   <li>[X11] Bugfix: Fullscreen window resizing would cause color buffer clearing without taking framebuffer objects into account</li> | ||||||
|  |   <li>[X11] Bugfix: AltGr was not reported as right Alt</li> | ||||||
|  |   <li>[X11] Bugfix: Window colormap was not freed</li> | ||||||
|  |   <li>[X11] Bugfix: Close callback was called for <code>glfwCloseWindow</code></li> | ||||||
|   <li>[X11] Bugfix: Misspelt struct member in XF86VidMode code path</li> |   <li>[X11] Bugfix: Misspelt struct member in XF86VidMode code path</li> | ||||||
|   <li>[MacOSX] Bugfix: Key repeat events were ignored on 10.5 Leopard</li> |   <li>[X11] Bugfix: Window decorations would not appear using certain versions of Compiz on Intel hardware</li> | ||||||
|  |   <li>[X11] Bugfix: Numeric keypad key symbols would change depending on Num Lock state</li> | ||||||
|  |   <li>[X11] Bugfix: Hidden cursor position snapped back when halfway from window center to edge</li> | ||||||
|  |   <li>[X11] Bugfix: Not properly verifying that the window was mapped before making certain calls caused a <code>BadMatch</code> error</li> | ||||||
|  |   <li>[X11] Bugfix: The response to <code>_NET_WM_PING</code> events was malformed</li> | ||||||
|  |   <li>[X11] Bugfix: Hidden cursor mode interfered with other applications when GLFW window was unfocused</li> | ||||||
|  |   <li>[X11] Bugfix: The invisible cursor objects used for hidden cursor mode were not freed</li> | ||||||
|  |   <li>[X11] Bugfix: EWMH-compliant window managers were incorrectly detected</li> | ||||||
|  |   <li>[X11] Bugfix: The EWMH code path for fullscreen windows did not present the window using <code>_NET_ACTIVE_WINDOW</code></li> | ||||||
|  |   <li>[X11] Bugfix: The EWMH code path for fullscreen windows did not send a <code>_NET_WM_STATE</code> client message</li> | ||||||
|  |   <li>[Carbon] Added Universal Binary build targets for all examples</li> | ||||||
|  |   <li>[Carbon] Renamed MacOSX port to Carbon</li> | ||||||
|  |   <li>[Carbon] Removed support for 10.2 Jaguar</li> | ||||||
|  |   <li>[Carbon] Deprecated Carbon port</li> | ||||||
|  |   <li>[Carbon] Bugfix: Using the Dock or menu Quit command did not call the close callback</li> | ||||||
|  |   <li>[Carbon] Bugfix: Key repeat events were not caught on 10.5 Leopard</li> | ||||||
|  |   <li>[Carbon] Bugfix: Certain keys were not reported</li> | ||||||
|  |   <li>[Carbon] Bugfix: Missing <code>-m32</code> flag caused build failure on 10.6 Snow Leopard</li> | ||||||
|  |   <li>[Carbon] Bugfix: Missing <code>-mmacosx-version-min</code> flag caused build failure on 10.5 Leopard</li> | ||||||
|  |   <li>[Carbon] Bugfix: <code>glfwOpenWindow</code> did not call <code>glClear</code></li> | ||||||
|  |   <li>[Win32] Added Visual C++ project files for all examples and test programs</li> | ||||||
|  |   <li>[Win32] Removed iterative context re-creation attempts for FSAA sample count</li> | ||||||
|  |   <li>[Win32] Bugfix: The Visual C++ GLFW DLL project file did not use the correct DEF file</li> | ||||||
|  |   <li>[Win32] Bugfix: WGL extensions were not detected and/or used correctly</li> | ||||||
|   <li>[Win32] Bugfix: Improper use of wParam for <code>WM_SYSCOMMAND</code></li> |   <li>[Win32] Bugfix: Improper use of wParam for <code>WM_SYSCOMMAND</code></li> | ||||||
|   <li>[Win32] Bugfix: Derivatives of stream.c not cleaned up by compile.bat</li> |   <li>[Win32] Bugfix: Derivatives of stream.c were not cleaned up by compile.bat</li> | ||||||
|   <li>[Win32] Bugfix: Pointer for <code>GetExtensionsStringARB</code> was not initialized</li> |   <li>[Win32] Bugfix: Pointer for <code>GetExtensionsStringARB</code> was not initialized</li> | ||||||
|   <li>[Win32] Bugfix: Updated API version in makefiles</li> |   <li>[Win32] Bugfix: Makefiles contained the wrong GLFW API version</li> | ||||||
|  |   <li>[Win32] Bugfix: Numeric keypad key symbols would change depending on Num Lock state</li> | ||||||
|  |   <li>[Win32] Bugfix: <code>DllMain</code> performed a number of forbidden actions (by calling <code>glfwTerminate</code>)</li> | ||||||
| </ul> | </ul> | ||||||
| 
 | 
 | ||||||
| <h3>2.6</h3> | <h3>v2.6</h3> | ||||||
| <ul> | <ul> | ||||||
|   <li>Added <code>GLFW_FSAA_SAMPLES</code> multi-sampling hint</li> |   <li>Added <code>GLFW_FSAA_SAMPLES</code> multisampling hint</li> | ||||||
|   <li>Added <code>GLFW_WINDOW_NO_RESIZE</code> hint for non-resizable windows</li> |   <li>Added <code>GLFW_WINDOW_NO_RESIZE</code> hint for non-resizable windows</li> | ||||||
|   <li>Added install targets for all Unix-like build targets</li> |   <li>Added install targets for all Unix-like build targets</li> | ||||||
|   <li>Added <code>glfwReadMemoryImage</code> function for creating a |   <li>Added <code>glfwReadMemoryImage</code> function for creating a <code>GLFWImage</code> object from an image file in a memory buffer</li> | ||||||
|       <code>GLFWImage</code> object from an image file in a memory buffer</li> |   <li>Added <code>glfwLoadMemoryTexture2D</code> function for decoding an image file in a memory buffer into a texture</li> | ||||||
|   <li>Added <code>glfwLoadMemoryTexture2D</code> function for decoding an image |   <li>Added <code>glfwLoadTextureImage2D</code> function for loading a <code>GLFWImage</code> object into a texture</li> | ||||||
|       file in a memory buffer into a texture</li> |  | ||||||
|   <li>Added <code>glfwLoadTextureImage2D</code> function for loading a |  | ||||||
|       <code>GLFWImage</code> object into a texture</li> |  | ||||||
|   <li>Added cross-compilation support for MinGW under a Unix-like host</li> |   <li>Added cross-compilation support for MinGW under a Unix-like host</li> | ||||||
|   <li>D bindings updated and all examples ported to modern D</li> |   <li>D bindings updated and all examples ported to modern D</li> | ||||||
|   <li>Delphi bindings updated to reflect API additions</li> |   <li>Delphi bindings updated to reflect API additions</li> | ||||||
|   <li>Bugfix: The interaction between key repeat and window focus code caused duplicate presses</li> |   <li>Bugfix: The interaction between key repeat and window focus code caused duplicate presses</li> | ||||||
|   <li>Bugfix: The mouse position was not properly updated when re-enabling the mouse cursor</li> |   <li>Bugfix: The mouse position was not properly updated when re-enabling the mouse cursor</li> | ||||||
|   <li>[Win32] Added pkgconfig file generation for Cygwin</li> |   <li>[Win32] Added pkg-config file generation for Cygwin</li> | ||||||
|   <li>[Win32] Added version number to window class name</li> |   <li>[Win32] Added version number to window class name</li> | ||||||
|   <li>[Win32] Added optional loading of user provided window icon resource</li> |   <li>[Win32] Added optional loading of user provided window icon resource</li> | ||||||
|   <li>[Win32] Bugfix: Very small sleep periods were forced to higher value</li> |   <li>[Win32] Bugfix: Very small sleep periods were forced to higher value</li> | ||||||
| @ -335,32 +366,29 @@ native version of GLFW.</p> | |||||||
|   <li>[X11] Added building of shared library</li> |   <li>[X11] Added building of shared library</li> | ||||||
|   <li>[X11] Added <a href="http://tronche.com/gui/x/icccm/">ICCCM</a> WM fullscreen hints</li> |   <li>[X11] Added <a href="http://tronche.com/gui/x/icccm/">ICCCM</a> WM fullscreen hints</li> | ||||||
|   <li>[X11] Added support for the <code>_NET_WM_PING</code> protocol</li> |   <li>[X11] Added support for the <code>_NET_WM_PING</code> protocol</li> | ||||||
|   <li>[X11] Added pkgconfig file generation</li> |   <li>[X11] Added pkg-config file generation</li> | ||||||
|   <li>[X11] Added setting of WM size hints</li> |   <li>[X11] Added setting of WM size hints</li> | ||||||
|   <li>[X11] Bugfix: Removed assembly RDTSC timing code</li> |   <li>[X11] Bugfix: Removed assembly RDTSC timing code</li> | ||||||
|   <li>[X11] Bugfix: Window re-opening now works properly (including fullscreen windows)</li> |   <li>[X11] Bugfix: Window re-opening now works properly (including fullscreen windows)</li> | ||||||
|   <li>[X11] Bugfix: Potential crash bug in video mode matching code</li> |   <li>[X11] Bugfix: Potential crash bug in video mode matching code</li> | ||||||
|   <li>[X11] Bugfix: Static buffers imposed an invisible limit on reported video mode count</li> |   <li>[X11] Bugfix: Static buffers imposed an invisible limit on reported video mode count</li> | ||||||
|   <li>[X11] Bugfix: Interaction with certain window managers when setting input |   <li>[X11] Bugfix: Interaction with certain window managers when setting input focus would cause termination with a BadMatch error</li> | ||||||
|       focus would cause termination with a BadMatch error</li> |  | ||||||
|   <li>[X11] Bugfix: Keypad keys did not trigger the character callback</li> |   <li>[X11] Bugfix: Keypad keys did not trigger the character callback</li> | ||||||
|   <li>[MacOSX] Added pkgconfig file generation</li> |   <li>[MacOSX] Added pkg-config file generation</li> | ||||||
|   <li>[MacOSX] Added building of shared library</li> |   <li>[MacOSX] Added building of shared library</li> | ||||||
|   <li>[MacOSX] Added building of Universal Binary libraries</li> |   <li>[MacOSX] Added building of Universal Binary libraries</li> | ||||||
|   <li>[MacOSX] Replaced fullscreen code path with CGL version</li> |   <li>[MacOSX] Replaced fullscreen code path with CGL version</li> | ||||||
|   <li>[MacOSX] Bugfix: Binaries without bundles or resource forks now interact |   <li>[MacOSX] Bugfix: Binaries without bundles or resource forks now interact properly with the WM</li> | ||||||
|       properly with the WM</li> |  | ||||||
|   <li>[MacOSX] Bugfix: Replaced Carbon event time source with <code>gettimeofday</code></li> |   <li>[MacOSX] Bugfix: Replaced Carbon event time source with <code>gettimeofday</code></li> | ||||||
|   <li>[MacOSX] Bugfix: Added code to minimize the dreaded OpenGL application startup jump</li> |   <li>[MacOSX] Bugfix: Added code to minimize the dreaded OpenGL application startup jump</li> | ||||||
|   <li>[MacOSX] Bugfix: Fixed broken implementation of |   <li>[MacOSX] Bugfix: Fixed broken implementation of <code>glfwSetMousePos</code> for windowed mode</li> | ||||||
|       <code>glfwSetMousePos</code> for windowed mode</li> |  | ||||||
|   <li>[MacOSX] Bugfix: Fixed broken implementation of hidden cursor</li> |   <li>[MacOSX] Bugfix: Fixed broken implementation of hidden cursor</li> | ||||||
|   <li>[MacOSX] Bugfix: Capturing all displays and not just the main one</li> |   <li>[MacOSX] Bugfix: Capturing all displays and not just the main one</li> | ||||||
|   <li>[AmigaOS] Obsoleted platform due to lack of maintainer and community interest</li> |   <li>[AmigaOS] Obsoleted platform due to lack of maintainer and community interest</li> | ||||||
|   <li>[DOS] Obsoleted platform due to lack of maintainer and community interest</li> |   <li>[DOS] Obsoleted platform due to lack of maintainer and community interest</li> | ||||||
| </ul> | </ul> | ||||||
| 
 | 
 | ||||||
| <h3>2.5</h3> | <h3>v2.5</h3> | ||||||
| <ul> | <ul> | ||||||
|  <li>Added the function glfwWaitEvents</li> |  <li>Added the function glfwWaitEvents</li> | ||||||
|  <li>Added window close callback, which enables a program to prevent a user |  <li>Added window close callback, which enables a program to prevent a user | ||||||
| @ -395,7 +423,7 @@ native version of GLFW.</p> | |||||||
|      timing on Centrino systems)</li> |      timing on Centrino systems)</li> | ||||||
| </ul> | </ul> | ||||||
| 
 | 
 | ||||||
| <h3>2.4.2</h3> | <h3>v2.4.2</h3> | ||||||
| <ul> | <ul> | ||||||
|  <li>Preliminary native Mac OS X support (via the Carbon interface)</li> |  <li>Preliminary native Mac OS X support (via the Carbon interface)</li> | ||||||
|  <li>Preliminary DOS support (DJGPP + Mesa)</li> |  <li>Preliminary DOS support (DJGPP + Mesa)</li> | ||||||
| @ -403,7 +431,7 @@ native version of GLFW.</p> | |||||||
|      GLFW license), so now GLFW is OSI Certified</li> |      GLFW license), so now GLFW is OSI Certified</li> | ||||||
|  <li>Rewrote the GLFW documentation in LaTeX, meaning several improvements |  <li>Rewrote the GLFW documentation in LaTeX, meaning several improvements | ||||||
|      (both visual and practical)</li> |      (both visual and practical)</li> | ||||||
|  <li>Added the <b>support</b> folder to the distribution, which includes |  <li>Added the <code>support</code> folder to the distribution, which includes | ||||||
|      support for various languages</li> |      support for various languages</li> | ||||||
|  <li>[Win32] Added OpenWatcom compiler support (thanks Sebastian |  <li>[Win32] Added OpenWatcom compiler support (thanks Sebastian | ||||||
|      Schuberth!)</li> |      Schuberth!)</li> | ||||||
| @ -421,7 +449,7 @@ native version of GLFW.</p> | |||||||
|  <li>[X11] Hopefully more robust configuration script (compile.sh)</li> |  <li>[X11] Hopefully more robust configuration script (compile.sh)</li> | ||||||
|  <li>[X11] Bugfix: When mouse cursor is hidden, mouse sensitivity is no |  <li>[X11] Bugfix: When mouse cursor is hidden, mouse sensitivity is no | ||||||
|      longer degraded</li> |      longer degraded</li> | ||||||
|  <li>[X11] Bugfix: Source files EOL was PC style (CR/LF) in 2.4.1 (blame |  <li>[X11] Bugfix: Source files EOL was PC style (CR/LF) in v2.4.1 (blame | ||||||
|      my WinCVS configuration)</li> |      my WinCVS configuration)</li> | ||||||
|  <li>[X11] Bugfix: When a GLFW window is closed, input focus is properly |  <li>[X11] Bugfix: When a GLFW window is closed, input focus is properly | ||||||
|      released</li> |      released</li> | ||||||
| @ -436,7 +464,7 @@ native version of GLFW.</p> | |||||||
|      all parameters (except for GLFW_ACCELERATED)</li> |      all parameters (except for GLFW_ACCELERATED)</li> | ||||||
| </ul> | </ul> | ||||||
| 
 | 
 | ||||||
| <h3>2.4.1</h3> | <h3>v2.4.1</h3> | ||||||
| <ul> | <ul> | ||||||
|  <li>Added AmigaOS support (preliminary)</li> |  <li>Added AmigaOS support (preliminary)</li> | ||||||
|  <li>GLFW for the X Window System now works under Mac OS X</li> |  <li>GLFW for the X Window System now works under Mac OS X</li> | ||||||
| @ -446,7 +474,7 @@ native version of GLFW.</p> | |||||||
|  <li>[X11] Bugfix: GLFW should now compile with Kylix</li> |  <li>[X11] Bugfix: GLFW should now compile with Kylix</li> | ||||||
| </ul> | </ul> | ||||||
| 
 | 
 | ||||||
| <h3>2.4</h3> | <h3>v2.4</h3> | ||||||
| <ul> | <ul> | ||||||
|  <li>Major source code rearrangement - much code is now shared between |  <li>Major source code rearrangement - much code is now shared between | ||||||
|      different platforms, and it should be easier to port GLFW to new |      different platforms, and it should be easier to port GLFW to new | ||||||
| @ -454,10 +482,10 @@ native version of GLFW.</p> | |||||||
|  <li>Added a Unicode keyboard text input interface (CharCallback)</li> |  <li>Added a Unicode keyboard text input interface (CharCallback)</li> | ||||||
|  <li>Keyboard key input is now slightly more internationalized: GLFW now |  <li>Keyboard key input is now slightly more internationalized: GLFW now | ||||||
|      uses 8-bit ISO-8859-1 encoding for keys representing printable |      uses 8-bit ISO-8859-1 encoding for keys representing printable | ||||||
|      characters (e.g. "Ö", "§", etc.), as |      characters (e.g. "Ö", "§", etc), as | ||||||
|      opposed to the previous 7-bit US-ASCII encoding</li> |      opposed to the previous 7-bit US-ASCII encoding</li> | ||||||
|  <li>Added more key constants (F13-F25, keypad '=')</li> |  <li>Added more key constants (F13-F25, keypad '=')</li> | ||||||
|  <li>Added an enable/disable switch for automatic event polling from |  <li>Added an enable/disable swicth for automatic event polling from | ||||||
|      glfwSwapBuffers</li> |      glfwSwapBuffers</li> | ||||||
|  <li>[X11] Added support for sysctl for querying the number of processors |  <li>[X11] Added support for sysctl for querying the number of processors | ||||||
|      in the system (if POSIX sysconf is not supported)</li> |      in the system (if POSIX sysconf is not supported)</li> | ||||||
| @ -471,7 +499,7 @@ native version of GLFW.</p> | |||||||
|      compilers (e.g. .NET) - Thanks Tim Little!</li> |      compilers (e.g. .NET) - Thanks Tim Little!</li> | ||||||
| </ul> | </ul> | ||||||
| 
 | 
 | ||||||
| <h3>2.3.2</h3> | <h3>v2.3.2</h3> | ||||||
| <ul> | <ul> | ||||||
|  <li>Removed the silly limitation of 100 threads (the thread information |  <li>Removed the silly limitation of 100 threads (the thread information | ||||||
|      is now kept in a linked list)</li> |      is now kept in a linked list)</li> | ||||||
| @ -483,7 +511,7 @@ native version of GLFW.</p> | |||||||
|      and 'make x11-gcc' should now really force GCC)</li> |      and 'make x11-gcc' should now really force GCC)</li> | ||||||
| </ul> | </ul> | ||||||
| 
 | 
 | ||||||
| <h3>2.3.1</h3> | <h3>v2.3.1</h3> | ||||||
| <ul> | <ul> | ||||||
|  <li>[X11] A minimalist configuration script was added that solves the |  <li>[X11] A minimalist configuration script was added that solves the | ||||||
|      issue with glXGetProcAddressARB, and unifies all Unix/X11 Makefiles |      issue with glXGetProcAddressARB, and unifies all Unix/X11 Makefiles | ||||||
| @ -491,7 +519,7 @@ native version of GLFW.</p> | |||||||
|      examples)</li> |      examples)</li> | ||||||
| </ul> | </ul> | ||||||
| 
 | 
 | ||||||
| <h3>2.3</h3> | <h3>v2.3</h3> | ||||||
| <ul> | <ul> | ||||||
|  <li>Added OpenGL stereo rendering support</li> |  <li>Added OpenGL stereo rendering support</li> | ||||||
|  <li>Added a function for parsing the OpenGL version string |  <li>Added a function for parsing the OpenGL version string | ||||||
| @ -499,7 +527,7 @@ native version of GLFW.</p> | |||||||
|  <li>[x86] Bugfix: Hopefully the CPU core clock dependent timer RDTSC will |  <li>[x86] Bugfix: Hopefully the CPU core clock dependent timer RDTSC will | ||||||
|      never be used on CPUs with variable core frequencies anymore</li> |      never be used on CPUs with variable core frequencies anymore</li> | ||||||
|  <li>[X11] Bugfix: GLFW could create stereo rendering capable windows, |  <li>[X11] Bugfix: GLFW could create stereo rendering capable windows, | ||||||
|      even if it was not requested (GLFW 2.2.x did not support selection |      even if it was not requested (GLFW v2.2.x did not support selection | ||||||
|      of stereo rendering)</li> |      of stereo rendering)</li> | ||||||
|  <li>[X11] Bugfix: glfwGetProcAddress returned NULL on most systems (even |  <li>[X11] Bugfix: glfwGetProcAddress returned NULL on most systems (even | ||||||
|      on those that supported glXGetProcAddressARB). Now GLFW assumes that |      on those that supported glXGetProcAddressARB). Now GLFW assumes that | ||||||
| @ -508,7 +536,7 @@ native version of GLFW.</p> | |||||||
|      know if you have any related problems).</li> |      know if you have any related problems).</li> | ||||||
| </ul> | </ul> | ||||||
| 
 | 
 | ||||||
| <h3>2.2.3</h3> | <h3>v2.2.3</h3> | ||||||
| <ul> | <ul> | ||||||
|  <li>Bugfix: Checking for GL_SGIS_generate_mipmap is more robust</li> |  <li>Bugfix: Checking for GL_SGIS_generate_mipmap is more robust</li> | ||||||
|  <li>Bugfix: glfwLoadTexture2D will now fail if no window is opened</li> |  <li>Bugfix: glfwLoadTexture2D will now fail if no window is opened</li> | ||||||
| @ -521,7 +549,7 @@ native version of GLFW.</p> | |||||||
|      pong3d should work on 16-bit displays).</li> |      pong3d should work on 16-bit displays).</li> | ||||||
| </ul> | </ul> | ||||||
| 
 | 
 | ||||||
| <h3>2.2.2</h3> | <h3>v2.2.2</h3> | ||||||
| <ul> | <ul> | ||||||
|  <li>[Win32] Bugfix: Windows did not always get focus (this was a tough |  <li>[Win32] Bugfix: Windows did not always get focus (this was a tough | ||||||
|      one!)</li> |      one!)</li> | ||||||
| @ -530,12 +558,12 @@ native version of GLFW.</p> | |||||||
|  <li>[X11] Bugfix: Linux joystick Y axis positions were reversed</li> |  <li>[X11] Bugfix: Linux joystick Y axis positions were reversed</li> | ||||||
| </ul> | </ul> | ||||||
| 
 | 
 | ||||||
| <h3>2.2.1</h3> | <h3>v2.2.1</h3> | ||||||
| <ul> | <ul> | ||||||
|  <li>[X11] Added joystick support for Linux</li> |  <li>[X11] Added joystick support for Linux</li> | ||||||
| </ul> | </ul> | ||||||
| 
 | 
 | ||||||
| <h3>2.2</h3> | <h3>v2.2</h3> | ||||||
| <ul> | <ul> | ||||||
|  <li>Added joystick support (only supported under Windows so far)</li> |  <li>Added joystick support (only supported under Windows so far)</li> | ||||||
|  <li>Added joystick controls to pong3d.c (only 3 more lines of code)</li> |  <li>Added joystick controls to pong3d.c (only 3 more lines of code)</li> | ||||||
| @ -563,7 +591,7 @@ native version of GLFW.</p> | |||||||
|      segmentation faults if no X server is available</li> |      segmentation faults if no X server is available</li> | ||||||
| </ul> | </ul> | ||||||
| 
 | 
 | ||||||
| <h3>2.1</h3> | <h3>v2.1</h3> | ||||||
| <ul> | <ul> | ||||||
|  <li>Added image and texture loading capabilities (support for the TGA |  <li>Added image and texture loading capabilities (support for the TGA | ||||||
|      file format at the moment)</li> |      file format at the moment)</li> | ||||||
| @ -606,7 +634,7 @@ native version of GLFW.</p> | |||||||
|  <li>[XFree86] Bugfix: Undesired video mode changes are now prevented</li> |  <li>[XFree86] Bugfix: Undesired video mode changes are now prevented</li> | ||||||
| </ul> | </ul> | ||||||
| 
 | 
 | ||||||
| <h3>2.0.3</h3> | <h3>v2.0.3</h3> | ||||||
| <ul> | <ul> | ||||||
|  <li>Added precise CPU cycle based timing support (RDTSC) for x86 |  <li>Added precise CPU cycle based timing support (RDTSC) for x86 | ||||||
|      CPUs (under both Windows and Unix)</li> |      CPUs (under both Windows and Unix)</li> | ||||||
| @ -615,7 +643,7 @@ native version of GLFW.</p> | |||||||
|      supported flag for CC, so it was removed from the CFLAGS list)</li> |      supported flag for CC, so it was removed from the CFLAGS list)</li> | ||||||
| </ul> | </ul> | ||||||
| 
 | 
 | ||||||
| <h3>2.0.2</h3> | <h3>v2.0.2</h3> | ||||||
| <ul> | <ul> | ||||||
|  <li>Added a makefile option for building for X11 with 'cc' rather than |  <li>Added a makefile option for building for X11 with 'cc' rather than | ||||||
|      'gcc' (useful for IRIX users for instance).</li> |      'gcc' (useful for IRIX users for instance).</li> | ||||||
| @ -628,7 +656,7 @@ native version of GLFW.</p> | |||||||
|      versions of GLFW would not compile under IRIX).</li> |      versions of GLFW would not compile under IRIX).</li> | ||||||
| </ul> | </ul> | ||||||
| 
 | 
 | ||||||
| <h3>2.0.1</h3> | <h3>v2.0.1</h3> | ||||||
| <ul> | <ul> | ||||||
|  <li>glfwTerminate() will now be called automatically upon normal program |  <li>glfwTerminate() will now be called automatically upon normal program | ||||||
|      termination (using atexit())</li> |      termination (using atexit())</li> | ||||||
| @ -636,12 +664,12 @@ native version of GLFW.</p> | |||||||
|      focus.</li> |      focus.</li> | ||||||
|  <li>[Win32] Bugfix: Top level Makefile did not work under Windows |  <li>[Win32] Bugfix: Top level Makefile did not work under Windows | ||||||
|      9x.</li> |      9x.</li> | ||||||
|  <li>[Win32] Bugfix: NULL declaration in glfw.h was not MSVC 7.x |  <li>[Win32] Bugfix: NULL declaratoin in glfw.h was not MSVC 7.x | ||||||
|      compatible.</li> |      compatible.</li> | ||||||
|  <li>[X11] Bugfix: GLFW would not build with C++ (e.g. g++).</li> |  <li>[X11] Bugfix: GLFW would not build with C++ (e.g. g++).</li> | ||||||
| </ul> | </ul> | ||||||
| 
 | 
 | ||||||
| <h3>2.0</h3> | <h3>v2.0</h3> | ||||||
| <ul> | <ul> | ||||||
|  <li>GLFW is no longer a single source file, but an entire link library.</li> |  <li>GLFW is no longer a single source file, but an entire link library.</li> | ||||||
|  <li>Added multi threading support.</li> |  <li>Added multi threading support.</li> | ||||||
| @ -651,170 +679,189 @@ native version of GLFW.</p> | |||||||
|  <li>Some bugfixes.</li> |  <li>Some bugfixes.</li> | ||||||
| </ul> | </ul> | ||||||
| 
 | 
 | ||||||
| <h3>1.0.2</h3> | <h3>v1.0.2</h3> | ||||||
| <ul> | <ul> | ||||||
|  <li>Improved fullscreen functionality.</li> |  <li>Improved fullscreen functionality.</li> | ||||||
|  <li>Added fullscreen support for X11.</li> |  <li>Added fullscreen support for X11.</li> | ||||||
| </ul> | </ul> | ||||||
| 
 | 
 | ||||||
| <h3>1.0.1</h3> | <h3>v1.0.1</h3> | ||||||
| <ul> | <ul> | ||||||
|  <li>Added support for the X Window System.</li> |  <li>Added support for the X Window System.</li> | ||||||
|  <li>Fixed bugs.</li> |  <li>Fixed bugs.</li> | ||||||
| </ul> | </ul> | ||||||
| 
 | 
 | ||||||
| <h3>1.0.0</h3> | <h3>v1.0.0</h3> | ||||||
| <ul> | <ul> | ||||||
|  <li>First release.</li> |  <li>First release.</li> | ||||||
|  <li>Only supported Windows.</li> |  <li>Only supported Windows.</li> | ||||||
| </ul> | </ul> | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| <a name="sec6"> | <a name="structure"> | ||||||
| <h2>6. Directory structure of the GLFW distribution</h2> | <h2>6. Directory structure of the GLFW distribution</h2> | ||||||
| 
 | 
 | ||||||
| <p>Here is an overview of the directory structure of the GLFW distribution: | <p>Here is an overview of the directory structure of the GLFW distribution: | ||||||
| 
 | 
 | ||||||
| <table> | <p> | ||||||
|   <tr class="header"> | <table border=0 cellspacing=0> | ||||||
|     <td>Directory</td> | <tr valign="top"><td width=100><code>docs</code></td><td> </td><td>GLFW manuals in PDF format</td></tr> | ||||||
|     <td>Contents</td> | <tr valign="top"><td><code>examples</code></td><td> </td><td>Several example programs in C</td></tr> | ||||||
|   </tr> | <tr valign="top"><td><code>include</code></td><td> </td><td> </td></tr> | ||||||
|   <tr> | <tr valign="top"><td><code>   GL</code></td><td> </td><td>Here is the GLFW C/C++ include file</td></tr> | ||||||
|     <td><code>docs</code></td> | <tr valign="top"><td><code>lib</code></td><td> </td><td>The source code for GLFW</td></tr> | ||||||
|     <td>GLFW manuals in PDF format</td> | <tr valign="top"><td><code>   cocoa</code></td><td> </td><td>Mac OS X/Cocoa specific implementation</td></tr> | ||||||
|   </tr> | <tr valign="top"><td><code>   win32</code></td><td> </td><td>Windows specific implementation</td></tr> | ||||||
|   <tr> | <tr valign="top"><td><code>   x11</code></td><td> </td><td>Unix/X11 specific implementation</td></tr> | ||||||
|     <td><code>examples</code></td> | <tr valign="top"><td><code>support</code></td><td> </td><td> </td></tr> | ||||||
|     <td>Several example programs in C</td> | <tr valign="top"><td><code>   d</code></td><td> </td><td>D support</td></tr> | ||||||
|   </tr> | <tr valign="top"><td><code>   msvc90</code></td><td> </td><td>Project files for Visual C++ 9.0</td></tr> | ||||||
|   <tr> | <tr valign="top"><td><code>   pascal</code></td><td> </td><td>Pascal support</td></tr> | ||||||
|     <td><code>include/GL</code></td> | <tr valign="top"><td><code>tests</code></td><td> </td><td>Several test programs in C</td></tr> | ||||||
|     <td>The GLFW C/C++ header file</td> |  | ||||||
|   </tr> |  | ||||||
|   <tr> |  | ||||||
|     <td><code>lib</code></td> |  | ||||||
|     <td>The source code for GLFW</td> |  | ||||||
|   </tr> |  | ||||||
|   <tr> |  | ||||||
|     <td><code>lib/macosx</code> |  | ||||||
|     <td>Mac OS X-specific code</td> |  | ||||||
|   </tr> |  | ||||||
|   <tr> |  | ||||||
|     <td><code>lib/win32</code> |  | ||||||
|     <td>Windows-specific code</td> |  | ||||||
|   </tr> |  | ||||||
|   <tr> |  | ||||||
|     <td><code>lib/x11</code></td> |  | ||||||
|     <td>Unix/X11-specific code</td> |  | ||||||
|   </tr> |  | ||||||
| </table> | </table> | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| <a name="sec7"> | <a name="contact"> | ||||||
| <h2>7. Contacting the project</h2> | <h2>7. Contacting the project</h2> | ||||||
| 
 | 
 | ||||||
| <p>The official GLFW web site can be found here: <a | <p>The official website for GLFW is <a href="http://www.glfw.org/">glfw.org</a>. | ||||||
| href="http://glfw.sourceforge.net/">http://glfw.sourceforge.net/</a>. It | It contains the latest version of GLFW, news and other information that is | ||||||
| contains the latest version of GLFW, news and other information that is useful | useful for OpenGL development.</p> | ||||||
| for OpenGL development.</p> |  | ||||||
| 
 | 
 | ||||||
| <p>If you have questions related to the use of GLFW, we have a <a | <p>If you have questions related to the use of GLFW, we have a | ||||||
| href="https://sourceforge.net/forum/forum.php?forum_id=247562">user's web | <a href="https://sourceforge.net/forum/forum.php?forum_id=247562">user's web forum</a>, | ||||||
| forum</a>, and a <a | and a | ||||||
| href="https://lists.sourceforge.net/lists/listinfo/glfw-user">user's mailing | <a href="https://lists.sourceforge.net/lists/listinfo/glfw-user">user's mailing list</a> | ||||||
| list</a> on SF.net, and the IRC channel <code>#glfw</code> on <a | on SF.net, and the registered IRC channel <code>#glfw</code> on | ||||||
| href="http://freenode.net/">Freenode</a>.</p> | <a href="http://freenode.net/">Freenode</a>.</p> | ||||||
| 
 | 
 | ||||||
| <p>If you have a bug to report or a feature you'd like to request, please file | <p>If you have a bug to report, a patch to submit or a feature you'd like to | ||||||
| it in the <a href="http://sourceforge.net/tracker/?group_id=72569">SF.net | request, please file it in one of the | ||||||
| trackers</a>.</p> | <a href="http://sourceforge.net/tracker/?group_id=72569">GLFW trackers</a> on SF.net.</p> | ||||||
| 
 | 
 | ||||||
| Finally, if you're interested in helping out with the development of GLFW or | Finally, if you're interested in helping out with the development of | ||||||
| porting it to your favorite platform, we have a <a | GLFW or porting it to your favorite platform, we have a | ||||||
| href="https://lists.stacken.kth.se/mailman/listinfo/glfw-dev">developer's | <a href="https://lists.stacken.kth.se/mailman/listinfo/glfw-dev">developer's mailing list</a>, | ||||||
| mailing list</a>, or you could join us on <code>#glfw</code>. | or you could join us on <code>#glfw</code>. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| <a name="sec8"> | <a name="credits"> | ||||||
| <h2>8. Acknowledgements</h2> | <h2>8. Acknowledgements</h2> | ||||||
| 
 | 
 | ||||||
| <p>GLFW would not be what it is today without the help from: | <p>GLFW exists because people around the world donated their time and lent | ||||||
|  | their skills.  Special thanks go out to:</p> | ||||||
|  | 
 | ||||||
| <ul> | <ul> | ||||||
| 
 | 
 | ||||||
|   <li>Marcus Geelnard, the original author and long-time maintainer of GLFW, |   <li>Bobyshev Alexander and Martins Mozeiko, for the original proposal of | ||||||
|   without whose brilliant work none of this would have happened.</li><br> |   an FSAA hint and their work on the Win32 implementation of FSAA</li> | ||||||
| 
 |  | ||||||
|   <li>Robin Leffmann, for his work on Mac OS X and other platforms, and his |  | ||||||
|   invaluable support.</li><br> |  | ||||||
| 
 | 
 | ||||||
|   <li>Keith Bauer, for his invaluable help with porting and maintaining GLFW on |   <li>Keith Bauer, for his invaluable help with porting and maintaining GLFW on | ||||||
|   Mac OS X, and for his many ideas.</li><br> |   Mac OS X, and for his many ideas</li> | ||||||
| 
 | 
 | ||||||
|   <li>Ozzy @ <a href="http://www.orkysquad.org">Orkysquad</a>, |   <li>Jarrod Davis, for the Delphi port of GLFW</li> | ||||||
|   for his dedication to GLFW, for debugging my source, and for his | 
 | ||||||
|   valuable experience with game development.</li><br> |   <li>Olivier Delannoy, for the initial implementation of FSAA support on | ||||||
|  |   X11, cross-compiling support for MinGW and general extreme usefulness</li> | ||||||
|  | 
 | ||||||
|  |   <li>Paul R. Deppe, who helped with Cygwin support, and made an | ||||||
|  |   adaption of <a href="http://plib.sourceforge.net/">PLIB</a> | ||||||
|  |   so that it can use GLFW (instead of GLUT)</li> | ||||||
|  | 
 | ||||||
|  |   <li>Jonathan Dummer, for submitting a patch fixing an input bug on Win32 and | ||||||
|  |   adding logic for the GLFW_ICON resource</li> | ||||||
|  | 
 | ||||||
|  |   <li>Gerald Franz, who made GLFW compile under IRIX, and supplied patches | ||||||
|  |   for the X11 keyboard translation routine</li> | ||||||
|  | 
 | ||||||
|  |   <li>Marcus Geelnard, the original author and long-time maintainer of GLFW, | ||||||
|  |   without whose brilliant work none of this would have happened</li> | ||||||
|  | 
 | ||||||
|  |   <li>Stefan Gustavson, for quick and thorough testing of GLFW on many and | ||||||
|  |   varied operating systems and hardware configurations</li> | ||||||
|  | 
 | ||||||
|  |   <li>Sylvain Hellegouarch, for support, bug reports and testing</li> | ||||||
|  | 
 | ||||||
|  |   <li>Alex Holkner, for writing the code from which the Compiz/Intel fix was | ||||||
|  |   stolen</li> | ||||||
|  | 
 | ||||||
|  |   <li>Toni Jovanoski, for helping with the MASM32 port of GLFW, and | ||||||
|  |   supplying the example program and fixed OpenGL and GLU bindings for | ||||||
|  |   MASM32</li> | ||||||
|  | 
 | ||||||
|  |   <li>Cameron King, for reporting a hidden cursor mouse bug on X11</li> | ||||||
|  | 
 | ||||||
|  |   <li>Peter Knut, for his many and detailed reports of difficult to find input | ||||||
|  |   bugs</li> | ||||||
|  | 
 | ||||||
|  |   <li>Robin Leffmann, for his work on Mac OS X and other platforms, and his | ||||||
|  |   invaluable support</li> | ||||||
|  | 
 | ||||||
|  |   <li>Glenn Lewis, for helping out with support for the D programming | ||||||
|  |   language</li> | ||||||
|  | 
 | ||||||
|  |   <li>Tristam MacDonald, for his bug reports and feedback on the Cocoa port</li> | ||||||
|  | 
 | ||||||
|  |   <li>David Medlock, for doing the initial Lua port</li> | ||||||
|  | 
 | ||||||
|  |   <li>Kenneth Miller, for his many and detailed bug reports on Win32</li> | ||||||
| 
 | 
 | ||||||
|   <li>Jeff Molofee, the author of the excellent OpenGL tutorials at <a |   <li>Jeff Molofee, the author of the excellent OpenGL tutorials at <a | ||||||
|   href="http://nehe.gamedev.net/">NeHe Productions</a>. |   href="http://nehe.gamedev.net/">NeHe Productions</a>. | ||||||
|   Much of the Windows code of GLFW was originally based on Jeff's |   Much of the Windows code of GLFW was originally based on Jeff's | ||||||
|   code.</li><br> |   code</li> | ||||||
| 
 | 
 | ||||||
|   <li>Douglas C. Schmidt and Irfan Pyarali, for their excellent article <a |   <li>Douglas C. Schmidt and Irfan Pyarali, for their excellent article | ||||||
|   href="http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">Strategies for |   <a href="http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">Strategies for Implementing POSIX Condition Variables on Win32</a></li> | ||||||
|   Implementing POSIX Condition Variables on Win32</a>, which was the basis for |  | ||||||
|   the Win32 condition variable implementation in GLFW.</li><br> |  | ||||||
| 
 | 
 | ||||||
|   <li>Bobyshev Alexander and Martins Mozeiko, for the original proposal of |   <li>Sebastian Schuberth, for the OpenWatcom makefiles</li> | ||||||
|   an FSAA hint and their work on the Win32 implementation of FSAA.</li><br> |  | ||||||
| 
 | 
 | ||||||
|   <li>Gerald Franz, who made GLFW compile under IRIX, and supplied patches |   <li>Matt Sealey, for helping with the MorphOS port</li> | ||||||
|   for the X11 keyboard translation routine.</li><br> | 
 | ||||||
|  |   <li>Steve Sexton, for reporting an input bug in the Carbon port</li> | ||||||
|  | 
 | ||||||
|  |   <li>Dmitri Shuralyov, for support, bug reports and testing</li> | ||||||
|  | 
 | ||||||
|  |   <li>Daniel Skorupski, for reporting a bug in the Win32 DEF file</li> | ||||||
| 
 | 
 | ||||||
|   <li>Bradley Smith, for his updates of the D support and his ports of the |   <li>Bradley Smith, for his updates of the D support and his ports of the | ||||||
|   remaining examples to the D language.</li><br> |   remaining examples to the D language</li> | ||||||
| 
 | 
 | ||||||
|   <li>Olivier Delannoy, for the initial implementation of FSAA support on |   <li>Julian Squires, for submitting a patch for a bug in the key repeat logic on X11</li> | ||||||
|   X11, cross-compiling support for MinGW and general extreme usefulness.</li> |  | ||||||
| 
 | 
 | ||||||
|   <li>Glenn Lewis, for helping out with support for the D programming |   <li>Johannes Stein, for maintaining the Pascal bindings</li> | ||||||
|   language.</li><br> |  | ||||||
| 
 | 
 | ||||||
|   <li>David Medlock, for doing the initial Lua port.</li><br> |   <li>Samuli Tuomola, for support, bug reports and testing</li> | ||||||
| 
 | 
 | ||||||
|   <li>Frank Wille, for helping me with the AmigaOS port and making GLFW |   <li>Frank Wille, for helping with the AmigaOS port and making GLFW | ||||||
|   compile under IRIX 5.3.</li><br> |   compile under IRIX 5.3</li> | ||||||
| 
 | 
 | ||||||
|   <li>Matt Sealey, for helping me with the MorphOS port.</li><br /> |   <li>Santi Zupancic, for support, bug reports and testing</li> | ||||||
| 
 | 
 | ||||||
|   <li>Paul R. Deppe, who helped me with Cygwin support, and made an |   <li>Lasse Öörni, for submitting patches for the input code of the Win32 and X11 ports</li> | ||||||
|   adaption of <a href="http://plib.sourceforge.net/">PLIB</a> |  | ||||||
|   so that it can use GLFW (instead of GLUT).</li><br /> |  | ||||||
| 
 | 
 | ||||||
|   <li>Jarrod Davis, for the Delphi port of GLFW.</li><br /> |   <li>Дмитри Малышев, for the idea of a GLFW_NO_GLU macro</li> | ||||||
| 
 | 
 | ||||||
|   <li>Toni Jovanoski, for helping me with the MASM32 port of GLFW, and |   <li>blanco, for submitting a patch for a deprecation bug in the Cocoa port</li> | ||||||
|   supplying the example program and fixed OpenGL and GLU bindings for |  | ||||||
|   MASM32.</li><br /> |  | ||||||
| 
 | 
 | ||||||
|   <li>Sebastian Schuberth, for the OpenWatcom makefiles.</li><br /> |   <li>heromyth, for reporting a bug in the D bindings</li> | ||||||
| 
 | 
 | ||||||
|   <li>Dmitri Shuralyov, Samuli Tuomola, Santi Zupancic, Sylvain |   <li>Ozzy @ <a href="http://www.orkysquad.org">Orkysquad</a>, | ||||||
|   Hellegouarch, and many others for support, bug reports and |   for his dedication to GLFW, for debugging my source, and for his | ||||||
|   testing.</li><br /> |   valuable experience with game development</li> | ||||||
| 
 | 
 | ||||||
|   <li>Дмитри Малышев, for the idea of a GLFW_NO_GLU macro.</li><br /> |   <li>Peoro, for reporting a bug in the <code>_NET_WM_PING</code> response</li> | ||||||
|  | 
 | ||||||
|  |   <li>TTK-Bandit, for submitting a number of input patches adding many missing | ||||||
|  |   keys to the Win32 and X11 ports</li> | ||||||
|  | 
 | ||||||
|  |   <li>All the unmentioned and anonymous contributors in the GLFW community, for | ||||||
|  |   bug reports, patches, feedback and encouragement</li> | ||||||
| 
 | 
 | ||||||
|   <li><a href="http://www.opengl.org/">OpenGL.org</a>, and all the people on |   <li><a href="http://www.opengl.org/">OpenGL.org</a>, and all the people on | ||||||
|   the discussion forums there that have provided help during the development of |   the discussion forums there that have provided help during the development of | ||||||
|   GLFW.</li><br /> |   GLFW</li> | ||||||
| 
 | 
 | ||||||
|   <li>The <a href="http://msdn.microsoft.com/library/">MSDN Online Library</a>, |  | ||||||
|   which was used extensively for Windows development.</li><br /> |  | ||||||
| 
 |  | ||||||
|   <li>All the feedback from the GLFW community - thank you!</li><br /> |  | ||||||
| 
 |  | ||||||
|   <li>Everyone we forgot to thank - thank you!</li><br /> |  | ||||||
| </ul> | </ul> | ||||||
| 
 | 
 | ||||||
| </body> | </body> | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user