<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.sarg.dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=2001%3A1C01%3A70D%3AF600%3A64E8%3A5875%3AF44F%3A5E5F</id>
	<title>Vero - Wikipedia - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.sarg.dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=2001%3A1C01%3A70D%3AF600%3A64E8%3A5875%3AF44F%3A5E5F"/>
	<link rel="alternate" type="text/html" href="https://wiki.sarg.dev/index.php/Special:Contributions/2001:1C01:70D:F600:64E8:5875:F44F:5E5F"/>
	<updated>2026-08-14T10:16:42Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wiki.sarg.dev/index.php?title=OpenGL_Utility_Toolkit&amp;diff=8201</id>
		<title>OpenGL Utility Toolkit</title>
		<link rel="alternate" type="text/html" href="https://wiki.sarg.dev/index.php?title=OpenGL_Utility_Toolkit&amp;diff=8201"/>
		<updated>2025-10-19T03:35:42Z</updated>

		<summary type="html">&lt;p&gt;2001:1C01:70D:F600:64E8:5875:F44F:5E5F: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Multiple issues|&lt;br /&gt;
{{primary sources|date=September 2011}}&lt;br /&gt;
{{more footnotes|date=September 2011}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox software&lt;br /&gt;
| name                   = OpenGL Utility Toolkit&lt;br /&gt;
| logo                   = &lt;br /&gt;
| logo caption           = &lt;br /&gt;
| screenshot             = Fenetre glut.png&lt;br /&gt;
| caption                = &lt;br /&gt;
| collapsible            = &lt;br /&gt;
| author                 = &lt;br /&gt;
| developer              = [[Mark Kilgard]]&lt;br /&gt;
| released               = &amp;lt;!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} --&amp;gt;&lt;br /&gt;
| discontinued           = &lt;br /&gt;
| latest release version = &lt;br /&gt;
| latest release date    = &amp;lt;!-- {{release date and age|YYYY|MM|DD}}&amp;lt;ref&amp;gt;{{cite web|title=|url=|date=|accessdate=}}&amp;lt;/ref&amp;gt;  --&amp;gt;&lt;br /&gt;
| latest preview version = &lt;br /&gt;
| latest preview date    = &amp;lt;!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} --&amp;gt;&lt;br /&gt;
| programming language   = &lt;br /&gt;
| operating system       = [[Cross-platform]]&lt;br /&gt;
| platform               = [[Cross-platform]]&lt;br /&gt;
| size                   = &lt;br /&gt;
| language               = &lt;br /&gt;
| genre                  = [[Application programming interface|API]]&lt;br /&gt;
| license                = &lt;br /&gt;
| website                = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;OpenGL Utility Toolkit&#039;&#039;&#039; (&#039;&#039;&#039;GLUT&#039;&#039;&#039;) is an outdated [[library (computing)|library]] of utilities for [[OpenGL]] programs, which primarily perform system-level [[input/output|I/O]] with the host [[operating system]]. Functions performed include window definition, window control, and monitoring of [[Computer keyboard|keyboard]] and [[Computer mouse|mouse]] input. Routines for drawing a number of geometric primitives (both in solid and wireframe mode) are also provided, including [[cube (geometry)|cubes]], [[sphere]]s and the [[Utah teapot]]. GLUT also has some limited support for creating pop-up menus.&lt;br /&gt;
&lt;br /&gt;
GLUT was written by [[Mark Kilgard|Mark J. Kilgard]], author of &#039;&#039;OpenGL Programming for the X Window System&#039;&#039; and &#039;&#039;The Cg Tutorial: The Definitive Guide to Programmable Real-Time Graphics&#039;&#039;, while he was working for [[Silicon Graphics]] Inc.&lt;br /&gt;
&lt;br /&gt;
The two aims of GLUT are to allow the creation of rather portable code between operating systems (GLUT is [[cross-platform]]) and to make learning OpenGL easier. Getting started with OpenGL programming while using GLUT often takes only a few lines of code and does not require knowledge of operating system–specific windowing [[application programming interface|APIs]].&lt;br /&gt;
&lt;br /&gt;
All GLUT functions start with the &amp;lt;code&amp;gt;glut&amp;lt;/code&amp;gt; prefix (for example, &amp;lt;code&amp;gt;glutPostRedisplay&amp;lt;/code&amp;gt; marks the current window as needing to be redrawn).&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
The original GLUT library by Mark Kilgard supports the [[X Window System]] ([[GLX]]) and was ported to [[Microsoft Windows]] ([[WGL (software)|WGL]]) by [[Nate Robins]]. Additionally, [[macOS]] ships with a GLUT framework that supports its own NSGL/[[Core OpenGL|CGL]].&lt;br /&gt;
&lt;br /&gt;
Kilgard&#039;s GLUT library is no longer maintained, and its license did not permit the redistribution of modified versions of the library. This spurred the need for [[free software]] or [[Open-source software|open source]] reimplementations of the API from scratch. The first such library was [[FreeGLUT]], which aims to be a reasonably close reproduction, though introducing a small number of new functions to deal with GLUT&#039;s limitations. OpenGLUT, a [[fork (software)|fork]] of FreeGLUT, adds a number of new features to the original API, but work on it ceased in May 2005.&lt;br /&gt;
&lt;br /&gt;
Mark Kilgard has a GitHub repository for GLUT.&amp;lt;ref&amp;gt;{{Cite web|url = https://github.com/markkilgard/glut|title = Glut|website = [[GitHub]]|date = 21 November 2021|access-date = 13 October 2014|archive-date = 11 June 2018|archive-url = https://web.archive.org/web/20180611001101/https://github.com/markkilgard/glut|url-status = live}}&amp;lt;/ref&amp;gt;  The glut.h header file contains the following license:&amp;lt;ref&amp;gt;{{Cite web|url = https://github.com/markkilgard/glut/blob/master/include/GL/glut.h|title = Glut|website = [[GitHub]]|date = 21 November 2021|access-date = 13 October 2014|archive-date = 3 August 2022|archive-url = https://web.archive.org/web/20220803003718/https://github.com/markkilgard/glut/blob/master/include/GL/glut.h|url-status = live}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998, 2000, 2006, 2010. */&lt;br /&gt;
 &lt;br /&gt;
 /* This program is freely distributable without licensing fees  and is&lt;br /&gt;
   provided without guarantee or warrantee expressed or  implied. This&lt;br /&gt;
   program is -not- in the public domain. */&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
Some of GLUT&#039;s original design decisions made it hard for programmers to perform desired tasks. This led many to create non-canon patches and extensions to GLUT.[http://www.mathies.com/glfaq/GLToolkitFAQ.html#II] Some [[free software]] or [[Open-source software|open source]] reimplementations also include fixes.&lt;br /&gt;
&lt;br /&gt;
Some of the more notable limitations of the original GLUT library include:&lt;br /&gt;
* The library requires programmers to call &amp;lt;code&amp;gt;glutMainLoop()&amp;lt;/code&amp;gt;, a function which never returns. This makes it hard for programmers to integrate GLUT into a program or library which wishes to have control of its own event loop. A common patch to fix this is to introduce a new function, called &amp;lt;code&amp;gt;glutCheckLoop()&amp;lt;/code&amp;gt; (macOS) or &amp;lt;code&amp;gt;glutMainLoopEvent()&amp;lt;/code&amp;gt; (FreeGLUT/OpenGLUT), which runs only a single iteration of the GLUT event loop. Another common workaround is to run GLUT&#039;s event loop in a separate [[thread (computing)|thread]], although this may vary by operating system, and also may introduce [[synchronization (computer science)|synchronization]] issues or other problems: for example, the macOS GLUT implementation requires that &amp;lt;code&amp;gt;glutMainLoop()&amp;lt;/code&amp;gt; be run in the main thread.&lt;br /&gt;
* The fact that &amp;lt;code&amp;gt;glutMainLoop()&amp;lt;/code&amp;gt; never returns also means that a GLUT program cannot exit the event loop. [[FreeGLUT]] fixes this by introducing a new function, &amp;lt;code&amp;gt;glutLeaveMainLoop()&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The library terminates the process when the window is closed; for some applications this may not be desired. Thus, many implementations include an extra callback, such as &amp;lt;code&amp;gt;glutWMCloseFunc()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Since it is no longer maintained (essentially replaced by the [[Open-source software|open source]] [[FreeGLUT]]) the above design issues are still not resolved in the original GLUT.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[EGL (API)|EGL]] is an interface between [[OpenGL ES]] or [[OpenVG]] and a [[windowing system]].&lt;br /&gt;
* [[FreeGLUT]] is intended to be a full replacement for GLUT, and has only a few differences.&lt;br /&gt;
* [[GLFW]]&lt;br /&gt;
* [[Simple DirectMedia Layer]] (SDL)&lt;br /&gt;
* [[OpenGL User Interface Library]] (GLUI)&lt;br /&gt;
* [[OpenGL Utility Library]] (GLU)&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [https://www.opengl.org/resources/libraries/glut/ GLUT - The OpenGL Utility Toolkit] {{Webarchive|url=https://web.archive.org/web/20180118221325/https://www.opengl.org/resources/libraries/glut/ |date=2018-01-18 }}&lt;br /&gt;
* [https://www.opengl.org/documentation/specs/glut/spec3/spec3.html The OpenGL Utility Toolkit (GLUT) Programming Interface API Version 3] (official documentation)&lt;br /&gt;
* [https://www.opengl.org/resources/libraries/glut/glut_downloads.php The OpenGL Utility Toolkit (GLUT) downloads] (source and pre-compiled libraries)&lt;br /&gt;
&lt;br /&gt;
[[Category:OpenGL]]&lt;/div&gt;</summary>
		<author><name>2001:1C01:70D:F600:64E8:5875:F44F:5E5F</name></author>
	</entry>
</feed>