<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Kipotz1986's Blog</title>
	<atom:link href="http://kipotz1986.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://kipotz1986.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Thu, 07 May 2009 04:02:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='kipotz1986.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Kipotz1986's Blog</title>
		<link>http://kipotz1986.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://kipotz1986.wordpress.com/osd.xml" title="Kipotz1986&#039;s Blog" />
	<atom:link rel='hub' href='http://kipotz1986.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Basic to basic in Open GL 3D Programing : Day 2 &gt; OpenGL Extensions</title>
		<link>http://kipotz1986.wordpress.com/2009/05/07/basic-to-basic-in-open-gl-3d-programing-day-2-opengl-extensions/</link>
		<comments>http://kipotz1986.wordpress.com/2009/05/07/basic-to-basic-in-open-gl-3d-programing-day-2-opengl-extensions/#comments</comments>
		<pubDate>Thu, 07 May 2009 04:02:40 +0000</pubDate>
		<dc:creator>kipotz1986</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://kipotz1986.wordpress.com/?p=9</guid>
		<description><![CDATA[Extension Registry The OpenGL Extension Registry is maintained by SGI and contains the technical specifications of all known OpenGL extensions. The registry also contains guidelines for creating new extensions and has example C/C++ header files containing function entry points and token enums. The extension registry can be intimidating with over 350 extensions plotting the development [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kipotz1986.wordpress.com&amp;blog=7651345&amp;post=9&amp;subd=kipotz1986&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2><span class="mw-headline"> Extension Registry </span></h2>
<p>The OpenGL Extension Registry is maintained by SGI and contains the technical specifications of all known OpenGL extensions. The registry also contains guidelines for creating new extensions and has example C/C++ header files containing function entry points and token enums.</p>
<p>The extension registry can be intimidating with over 350 extensions plotting the development of the OpenGL API for more than a decade. However, most of the extensions have either been folded into the OpenGL core API or have been rendered obsolete by newer core functionality.</p>
<p><a name="Extension_Types"></a></p>
<h2><span class="mw-headline"> Extension Types </span></h2>
<p>Some extensions start with GL_EXT, others with GL_NV, GL_ATI, GL_ARB, GL_MTX, GL_APPLE, GL_SGI. EXT means it is multi-vendor. It is developed by multiple vendors and other companies can include it in there drivers as well. Below follows a table with frequently found extension prefixes.</p>
<p>Regardless of the vendor prefix, vendor-specific OpenGL extensions may be implemented an/or licensed by multiple hardware vendors to ensure compatibility.</p>
<table border="1" cellpadding="5">
<tbody>
<tr>
<th> Extension Prefix</th>
<th> Extension Vendor</th>
</tr>
<tr>
<td>ARB</td>
<td>OpenGL® ARB approved extensions.</td>
</tr>
<tr>
<td>NV</td>
<td>NVIDIA Corporation.</td>
</tr>
<tr>
<td>NVX</td>
<td>NVIDIA Corporation. Experimental extension.<sup>1</sup></td>
</tr>
<tr>
<td>ATI</td>
<td>ATI Technologies, Inc.</td>
</tr>
<tr>
<td>3DLABS</td>
<td>3DLABS, Inc.</td>
</tr>
<tr>
<td>SUN</td>
<td>Sun Microsystems, Inc.</td>
</tr>
<tr>
<td>SGI</td>
<td>Silicon Graphics, Inc.</td>
</tr>
<tr>
<td>SGIX</td>
<td>Silicon Graphics, Inc. Experimental extension.<sup>1</sup></td>
</tr>
<tr>
<td>SGIS</td>
<td>Silicon Graphics, Inc. Experimental extension.<sup>1</sup></td>
</tr>
<tr>
<td>INTEL</td>
<td>Intel Corporation.</td>
</tr>
<tr>
<td>3DFX</td>
<td>3dfx Interactive.</td>
</tr>
<tr>
<td>IBM</td>
<td>International Business Machines Corporation, or simply IBM.</td>
</tr>
<tr>
<td>MESA</td>
<td>The Mesa 3D Graphics Library.</td>
</tr>
<tr>
<td>GREMEDY</td>
<td>Graphic Remedy, Ltd.</td>
</tr>
<tr>
<td>OML</td>
<td>Khronos Group, Inc. API: <a class="external text" title="http://www.khronos.org/openml/" rel="nofollow" href="http://www.khronos.org/openml/">OpenML®</a></td>
</tr>
<tr>
<td>OES</td>
<td>Khronos Group, Inc. API: <a class="external text" title="http://www.khronos.org/opengles/" rel="nofollow" href="http://www.khronos.org/opengles/">OpenGL® ES</a></td>
</tr>
<tr>
<td>PGI</td>
<td>Portland Group Inc.</td>
</tr>
<tr>
<td>I3D</td>
<td>Intense3D, now 3DLABS Inc.</td>
</tr>
<tr>
<td>INGR</td>
<td>Intergraph Corporation.</td>
</tr>
<tr>
<td>MTX</td>
<td>Matrox Electronic Systems Ltd.</td>
</tr>
<tr>
<th> Extension Prefix</th>
<th> Extension Platform</th>
</tr>
<tr>
<td>WGL_EXT, WGL_ARB, WGL_ATI, WGL_NV</td>
<td>Microsoft Corporation. WGL = <strong>W</strong>indows Open<strong>GL</strong></td>
</tr>
<tr>
<td>GLX_EXT, GLX_ARB, GLX_ATI, GLX_NV</td>
<td>Linux platforms.</td>
</tr>
<tr>
<td>AGL</td>
<td>Apple Inc. AGL = <strong>A</strong>pple Open<strong>GL</strong></td>
</tr>
</tbody>
</table>
<p><sup>1</sup>, Experimental extensions should not be used in a production environment as they are subject to removal from implementation.</p>
<p><a name="ARB_Approval"></a></p>
<h3><span class="mw-headline"> ARB Approval </span></h3>
<p>Proprietary extensions which prove their worth can become ARB approved (such as GL_ARB_multitexture) and shortly after become core. Most likely, an extension is already of type EXT, then becomes ARB, then core. In some cases, but not many, a proprietary extension becomes ARB, then core. Often, the original extension&#8217;s developer allows other companies to also code it into their drivers without royalty requirements.</p>
<p>When a proprietary extension becomes an ARB approved core extension, the vendor will rarely – if ever – remove it from their extension implementation. This is done to ensure backwards compatibility with software which implements older extensions.</p>
<p>In some rare occasions, there is a difference between extension and the core function, for example the case of GLSL in OpenGL 2.0 and the older extensions, and the case for environment textures. Many of the extensions in the OpenGL Extension Registry (<a class="external text" title="http://www.opengl.org/registry/" rel="nofollow" href="http://www.opengl.org/registry/">OpenGL Extension Registry</a>) are deprecated, make sure deprecated extensions are not used.</p>
<p><a name="Extension_Development"></a></p>
<h3><span class="mw-headline"> Extension Development </span></h3>
<p>Anyone may develop extensions for the OpenGL® API; the community gives feedback. An example case would be the GL_GREMEDY_string_marker extension, which was initially a private extension, is now included in the OpenGL Extension Registry.</p>
<p><a name="Specific_Extension_Usage"></a></p>
<h2><span class="mw-headline"> Specific Extension Usage </span></h2>
<p><a name="Vertex_submission_extensions"></a></p>
<h3><span class="mw-headline"> Vertex submission extensions </span></h3>
<ul>
<li> <a title="GL ARB vertex buffer object" href="http://www.opengl.org/wiki/GL_ARB_vertex_buffer_object">GL_ARB_vertex_buffer_object</a> Core in GL 1.5, also known as VBO</li>
<li> <a class="new" title="GL NV vertex array range (not yet written)" href="http://www.opengl.org/wiki_132/index.php?title=GL_NV_vertex_array_range&amp;action=edit&amp;redlink=1">GL_NV_vertex_array_range</a> VBO replaced this</li>
<li> <a class="new" title="GL EXT compiled vertex array (not yet written)" href="http://www.opengl.org/wiki_132/index.php?title=GL_EXT_compiled_vertex_array&amp;action=edit&amp;redlink=1">GL_EXT_compiled_vertex_array</a> VBO replaced this</li>
</ul>
<p><a name="Texturing_related_extensions"></a></p>
<h3><span class="mw-headline"> Texturing related extensions </span></h3>
<ul>
<li> <a title="GL ARB multitexture" href="http://www.opengl.org/wiki/GL_ARB_multitexture">GL_ARB_multitexture</a> Core in GL 1.2.1</li>
<li> <a class="new" title="GL ARB texture env combine (not yet written)" href="http://www.opengl.org/wiki_132/index.php?title=GL_ARB_texture_env_combine&amp;action=edit&amp;redlink=1">GL_ARB_texture_env_combine</a> Core in GL 1.3</li>
<li> <a class="new" title="GL ARB texture compression (not yet written)" href="http://www.opengl.org/wiki_132/index.php?title=GL_ARB_texture_compression&amp;action=edit&amp;redlink=1">GL_ARB_texture_compression</a> Core in GL 1.3</li>
<li> <a title="Floating point and mipmapping and filtering" href="http://www.opengl.org/wiki/Floating_point_and_mipmapping_and_filtering">Floating point and mipmapping and filtering</a> Core in GL 3.0</li>
<li> <a title="GL EXT texture integer" href="http://www.opengl.org/wiki/GL_EXT_texture_integer">GL_EXT_texture_integer</a> Core in GL 3.0</li>
</ul>
<p><a name="Programmability_extensions"></a></p>
<h3><span class="mw-headline"> Programmability extensions </span></h3>
<ul>
<li> <a class="new" title="GL ARB vertex program (not yet written)" href="http://www.opengl.org/wiki_132/index.php?title=GL_ARB_vertex_program&amp;action=edit&amp;redlink=1">GL_ARB_vertex_program</a></li>
<li> <a class="new" title="GL ARB fragment program (not yet written)" href="http://www.opengl.org/wiki_132/index.php?title=GL_ARB_fragment_program&amp;action=edit&amp;redlink=1">GL_ARB_fragment_program</a></li>
</ul>
<p><a name="Framebuffer_related_extensions"></a></p>
<h3><span class="mw-headline"> Framebuffer related extensions </span></h3>
<ul>
<li> <a class="new" title="GL ARB draw buffers (not yet written)" href="http://www.opengl.org/wiki_132/index.php?title=GL_ARB_draw_buffers&amp;action=edit&amp;redlink=1">GL_ARB_draw_buffers</a> Core in GL 2.0</li>
<li> <a title="GL EXT framebuffer object" href="http://www.opengl.org/wiki/GL_EXT_framebuffer_object">GL_EXT_framebuffer_object</a></li>
<li> <a title="GL EXT framebuffer object More about FBOs" href="http://www.opengl.org/wiki/GL_EXT_framebuffer_object_More_about_FBOs">GL_EXT_framebuffer_object More about FBOs</a></li>
<li> <a title="GL EXT framebuffer multisample" href="http://www.opengl.org/wiki/GL_EXT_framebuffer_multisample">GL_EXT_framebuffer_multisample</a></li>
</ul>
<p><a name="External_Links"></a></p>
<h2><span class="mw-headline"> External Links </span></h2>
<ul>
<li> <a class="external text" title="http://www.opengl.org/registry/" rel="nofollow" href="http://www.opengl.org/registry/">OpenGL Extension Registry</a></li>
</ul>
<p><a name="Extensions_of_Interest_for_the_GL_2_Programmer"></a></p>
<h2><span class="mw-headline"> Extensions of Interest for the GL 2 Programmer </span></h2>
<p>Extensions that you might need if you are targeting systems with GL 2.0 or GL 2.1<br />
Perhaps you are new to GL programming and you find the large list at <a class="external free" title="http://www.opengl.org/registry" rel="nofollow" href="http://www.opengl.org/registry">http://www.opengl.org/registry</a> much too long to sift through.</p>
<p>GL_ARB_texture_rectangle<br />
GL_ARB_color_buffer_float<br />
GL_ARB_half_float_pixel<br />
GL_ARB_texture_float<br />
WGL_EXT_extensions_string (and the WGL extensions you can get with this extension)<br />
GL_EXT_texture_filter_anisotropic<br />
GL_NV_fence<br />
GL_EXT_packed_depth_stencil<br />
GL_NV_texture_compression_vtc<br />
GL_EXT_texture_compression_s3tc<br />
GL_NV_vertex_program (Many versions. GL_NV_vertex_program2, GL_NV_vertex_program3)<br />
GL_NV_fragment_program (Many versions. GL_NV_fragment_program2, GL_NV_fragment_program3)<br />
GL_GREMEDY_string_marker, GL_GREMEDY_frame_terminator (Special. Available in GLintercept which is a debugging tool)<br />
GL_EXT_framebuffer_object<br />
GL_EXT_framebuffer_blit<br />
GL_EXT_framebuffer_multisample<br />
GL_NV_framebuffer_multisample_coverage<br />
GL_EXT_timer_query<br />
GL_EXT_gpu_program_parameters<br />
GL_NV_gpu_program4<br />
GL_EXT_geometry_shader4<br />
GL_EXT_gpu_shader4<br />
GL_EXT_draw_instanced<br />
GL_EXT_packed_float<br />
GL_EXT_texture_array<br />
GL_EXT_texture_buffer_object<br />
GL_EXT_texture_compression_latc<br />
GL_EXT_texture_compression_rgtc<br />
GL_EXT_texture_shared_exponent<br />
GL_NV_depth_buffer_float<br />
GL_EXT_framebuffer_sRGB<br />
WGL_EXT_framebuffer_sRGB<br />
GL_NV_parameter_buffer_object<br />
GL_EXT_draw_buffers2<br />
GL_EXT_bindable_uniform<br />
GL_EXT_texture_integer<br />
GL_NV_conditional_render<br />
GL_EXT_transform_feedback</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kipotz1986.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kipotz1986.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kipotz1986.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kipotz1986.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kipotz1986.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kipotz1986.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kipotz1986.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kipotz1986.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kipotz1986.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kipotz1986.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kipotz1986.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kipotz1986.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kipotz1986.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kipotz1986.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kipotz1986.wordpress.com&amp;blog=7651345&amp;post=9&amp;subd=kipotz1986&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kipotz1986.wordpress.com/2009/05/07/basic-to-basic-in-open-gl-3d-programing-day-2-opengl-extensions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6af61351897a6940bbdbd64041a5790b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kipotz1986</media:title>
		</media:content>
	</item>
		<item>
		<title>Basic to basic in Open GL 3D Programing : Day 1 &gt; Introduction to OpenGL</title>
		<link>http://kipotz1986.wordpress.com/2009/05/07/basic-to-basic-in-open-gl-3d-programing-day-1-introduction-to-opengl/</link>
		<comments>http://kipotz1986.wordpress.com/2009/05/07/basic-to-basic-in-open-gl-3d-programing-day-1-introduction-to-opengl/#comments</comments>
		<pubDate>Thu, 07 May 2009 03:42:06 +0000</pubDate>
		<dc:creator>kipotz1986</dc:creator>
				<category><![CDATA[Computer Graphics]]></category>

		<guid isPermaLink="false">http://kipotz1986.wordpress.com/?p=3</guid>
		<description><![CDATA[Windows If you are running Windows 98/Me/NT/2000/XP/2003/Vista, the OpenGL library has already been installed on your system. Remember that GL is a system component on Windows. DO NOT modify or copy OpenGL32.dll from one OS to another. The filename is OpenGL32.dll and is either in WINDOWS\SYSTEM, WINNT\SYSTEM32 or WINDOWS\SYSTEM32. This also means that you do [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kipotz1986.wordpress.com&amp;blog=7651345&amp;post=3&amp;subd=kipotz1986&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.opengl.org"><br />
</a><img class="alignnone size-medium wp-image-5" title="opengl" src="http://kipotz1986.files.wordpress.com/2009/05/opengl.jpg?w=300&#038;h=154" alt="opengl" width="300" height="154" /></p>
<h2><span class="mw-headline">Windows </span></h2>
<p>If you are running Windows 98/Me/NT/2000/XP/2003/Vista, the OpenGL library has already been installed on your system.</p>
<p>Remember that GL is a system component on Windows. DO NOT modify or copy OpenGL32.dll from one OS to another. The filename is <code>OpenGL32.dll</code> and is either in <code>WINDOWS\SYSTEM</code>, <code>WINNT\SYSTEM32</code> or <code>WINDOWS\SYSTEM32</code>. This also means that you do not have to ship a copy of the library with your application since it will already be available on the system.</p>
<p>The standard Windows <code>OpenGL32.dll</code> library alone will not provide you with hardware acceleration for OpenGL. In order to get hardware acceleration, you will need to install the latest drivers for your graphics card. The second reason to install new drivers is to have the latest version of GL on your system (the max version supported by your GPU):</p>
<ul>
<li> <a class="external text" title="http://www.3dlabs.com" rel="nofollow" href="http://www.3dlabs.com/">3Dlabs</a></li>
<li> <a class="external text" title="http://www.ati.com" rel="nofollow" href="http://www.ati.com/">ATI</a></li>
<li> <a class="external text" title="http://www.intel.com" rel="nofollow" href="http://www.intel.com/">Intel</a></li>
<li> <a class="external text" title="http://www.nvidia.com" rel="nofollow" href="http://www.nvidia.com/">NVidia</a></li>
</ul>
<p>Some sites also distribute beta versions of graphics drivers, which may give you access to bug fixes or new functionality before an official driver release from the manufacturer:</p>
<ul>
<li> <a class="external text" title="http://www.3dchipset.com" rel="nofollow" href="http://www.3dchipset.com/">3DChipset</a></li>
<li> <a class="external text" title="http://www.guru3d.com" rel="nofollow" href="http://www.guru3d.com/">Guru3D</a></li>
</ul>
<p>GLU is also included in the system folder as <code>glu32.dll</code> This is also a system component. Updated DLL should be placed in your program&#8217;s folder. You can get a GLU&#8217;s source code from <a class="external text" title="http://www.mesa3d.org" rel="nofollow" href="http://www.mesa3d.org/">MESA3D</a>. You can get precompiled lib from <a class="external text" title="http://www.geocities.com/vmelkon/glu.html" rel="nofollow" href="http://www.geocities.com/vmelkon/glu.html">vmelkon&#8217;s GLU</a>; The current version is 1.3.</p>
<p>Other libraries like GLUT, freeGLUT, QT, etc are not part of the OS. These should be downloaded from the net. <a class="external text" title="http://www.opengl.org/resources/libraries/" rel="nofollow" href="http://www.opengl.org/resources/libraries/">GLUT and OpenGL Utility Libraries</a></p>
<p>Windows 98, Me, 2000 support OpenGL version 1.1 as a software rasterizer implemented in <code>OpenGL32.dll</code>. There is no support for hardware acceleration therefore installing drivers is necessary. Windows XP supports OpenGL version 1.1 as a Direct3D wrapper in <code>OpenGL32.dll</code>. Since performance will be lousy, installing drivers is a good idea. On Windows 2003, you aren&#8217;t suppose to use it as a desktop machine, but it is similar to Win 2000/XP. Windows Vista supports OpenGL version 1.4 as a Direct3D wrapper. <em>Always</em> install drivers. Once again, by installing the latest version of the video driver, you can get hw acceleration, you avoid the Direct3D wrapper, you get the maximum version of GL supported by your GPU.</p>
<p><a name="64_bits_Windows_versions"></a></p>
<h3><span class="mw-headline"> 64 bits Windows versions </span></h3>
<p>If you are running the 64 bit version of Windows Vista or perhaps you are running Windows XP x64, you might be wondering if there is a <code>OpenGL64.dll</code> file. The answer is no, there isn&#8217;t. On both of these Operating Systems, <code>Windows\System32</code> contains all the 64 bit DLLs. It contains the <code>OpenGL32.dll</code> which is actually a 64 bit dll.</p>
<p>For 32 bit programs, Windows detects the exe as a 32 bit program and instead of using System32 files, it uses Windows\SysWOW64 which actually contains the 32 bit DLLs. WOW means <strong>W</strong>indows <strong>O</strong>n <strong>W</strong>indows which is a backwards-compatibility layer.</p>
<p>To find your Windows&#8217; System32 directory, go to: Start, Run&#8230; and type in <code>%WINDIR%\System32</code>. The system will redirect you to the default System32 directory automatically; this is also true for the 32 bits versions of Windows.</p>
<p><a name="Linux"></a></p>
<h2><span class="mw-headline"> Linux </span></h2>
<p>Graphics on Linux is almost exclusively implemented using the X windows system. Supporting OpenGL on Linux involves using GLX extensions to the X Server. There is a standard Application Binary Interface defined for OpenGL on Linux that gives application compatability for OpenGL for a range of drivers. In addition the Direct Rendering Infrastucture (DRI) is a driver framework that allows drivers to be written and interoperate within a standard framework to easily support hardware acceleration, the DRI is included in of XFree86 4.0 but may need a card specific driver to be configured after installation. These days, XFree86 has been rejected in favor of XOrg due to the change in the license of XFree86, so many developers left Xfree86 and joined the XOrg group. Popular Linux distros come with XOrg now. Developers</p>
<p>Vendors have different approaches to drivers on Linux, some support Open Source efforts using the DRI, and others support closed source frameworks but all methods support the standard ABI that will allow correctly written OpenGL applications to run on Linux.</p>
<ul>
<li> <a class="external text" title="http://www.nvidia.com/object/unix.html" rel="nofollow" href="http://www.nvidia.com/object/unix.html">Nvidia</a></li>
<li> <a class="external text" title="http://www.faqs.org/docs/Linux-mini/Nvidia-OpenGL-Configuration.html" rel="nofollow" href="http://www.faqs.org/docs/Linux-mini/Nvidia-OpenGL-Configuration.html">Nvidia HOWTO (old)</a></li>
<li> <a class="external text" title="https://support.ati.com/ics/support/KBAnswer.asp?questionID=3380" rel="nofollow" href="https://support.ati.com/ics/support/KBAnswer.asp?questionID=3380">ATI</a></li>
</ul>
<p>For more information on developing OpenGL applications on Linux, see <a title="Platform specifics: Linux" href="http://www.opengl.org/wiki/Platform_specifics:_Linux">Platform specifics: Linux</a></p>
<p>Linux comes with Mesa libraries, which implements the OpenGL API as a software rasterizer. Most Linux distros don&#8217;t come with hardware acceleration. Some Linux distributions may include support for hardware acceleration. Also, some GPUs have Open Source drivers developed by the community even though a close source driver may be available from the manufacturer.</p>
<p><a name="Mac_OS_X"></a></p>
<h2><span class="mw-headline"> Mac OS X </span></h2>
<p>Every version of Mac OS X has shipped with OpenGL runtime libraries pre-installed. Users who want to run OpenGL applications do not need to install or configure anything.</p>
<p>Unlike other platforms, where the Operating System and OpenGL implementations are often updated separately, OpenGL updates are usually included as part of Mac OS X system updates. To obtain the latest OpenGL on Mac OS X, users should upgrade to the latest OS release, which can be found at <a class="external text" title="http://www.apple.com/macosx/" rel="nofollow" href="http://www.apple.com/macosx/">Apple.com</a>.</p>
<p>For developers, a default installation of Mac OS X does not include any OpenGL headers, nor does it include other necessary development tools. These are installed by a separate developer tools package <a class="external text" title="http://developer.apple.com/tools/download/" rel="nofollow" href="http://developer.apple.com/tools/download/">called X Code</a>. This installer includes the OpenGL headers, compilers (gcc), debuggers (gdb), Apple&#8217;s Xcode IDE, and a number of performance tools useful for OpenGL application development.</p>
<p>For more information on developing OpenGL applications on Mac OS X, see <a title="Platform specifics: Mac OS X" href="http://www.opengl.org/wiki/Platform_specifics:_Mac_OS_X">Platform specifics: Mac OS X</a>.</p>
<p><a name="OpenGL_2.0.2B_and_extensions"></a></p>
<h2><span class="mw-headline"> OpenGL 2.0+ and extensions </span></h2>
<p>If you will be programming for Windows, typically compilers comes with a standard OpenGL 1.1 <code>.h</code> and <code>.lib</code>.<br />
For Linux and others, you might want to borrow the same idea (getting function pointers for the GL functions)<br />
To access higher OpenGL functions, you would have to get the function pointers.<br />
For example, in C or C++, this is what you would do<br />
<strong>PS : The info here applies also to GL 3.0</strong></p>
<p>Download <code>glext.h</code> and <code>wglext.h</code> from <a class="external text" title="http://www.opengl.org/registry/" rel="nofollow" href="http://www.opengl.org/registry/">The Extensions Registry</a></p>
<p>Put it in your compiler&#8217;s GL folder.</p>
<pre>include &lt;GL/gl.h&gt;
include &lt;GL/glext.h&gt;
include &lt;GL/wglext.h&gt;

extern PFNGLACTIVETEXTUREPROC glActiveTexture;  //Put this in a .h so that you can include the header in all your other .cpp
PFNGLACTIVETEXTUREPROC glActiveTexture;    //Declare your function pointer in a .cpp file</pre>
<p>Once you create a GL context, you can use wglGetProcAddress to get a pointer to the function.</p>
<pre>glActiveTexture = (PFNGLACTIVETEXTUREPROC) wglGetProcAddress("glActiveTexture");</pre>
<p>This would be tedious if you had to do this for all the functions and it&#8217;s is even more work if you want to detect a certain OpenGL API version, then load all the core functions. Then, detect if a certain extension is present, then load all the functions.</p>
<p>There exists a few libraries out there that will get the function pointers for you. All you have to do is create an OpenGL rendering context and call the library&#8217;s init function. The recent version of GLee doesn&#8217;t require a call to its init function.</p>
<p>Examples are :</p>
<ul>
<li><a class="external text" title="http://glew.sourceforge.net" rel="nofollow" href="http://glew.sourceforge.net/">GLEW &#8211; The GL Extension Wrangler Library</a></li>
<li><a class="external text" title="http://elf-stone.com/glee.php" rel="nofollow" href="http://elf-stone.com/glee.php">GLEE &#8211; GL Easy Extension library</a></li>
</ul>
<p>GLEW is used like this :<br />
Step 1. Just before including gl.h, include glew.h<br />
Step 2. Just after creating your GL context and making it current, call</p>
<pre> GLenum err=glewInit();
 if(err!=GLEW_OK)
 {
 //problem: glewInit failed, something is seriously wrong
 sprintf(ErrorMessage, "Error: %s\n", glewGetErrorString(err));
 return -1;
 }</pre>
<p><a name="OpenGL_3.0"></a></p>
<h2><span class="mw-headline"> OpenGL 3.0 </span></h2>
<p>Whenever a major version of GL comes out, for example when GL 2.0 was going to come out, there is a whole lot of discussion about old programs that will no longer run, that you would have to cancel your million dollar project and start using Direct3D.<br />
So GL 3.0 adds a deprecation model and the specification hints at functions and tokens that you should no longer use for your newer projects.<br />
This has been interpreted to mean that your program will no longer work by a few posters on the <a class="external free" title="http://www.opengl.org" rel="nofollow" href="http://www.opengl.org/">http://www.opengl.org</a> forums.</p>
<p>All that GL 3.0 brings to the table is a new way to create a context. You can use it to make a GL 3.0 context.<br />
Old programs that obviously create a standard context are not effected by this. They will continue to run.<br />
<strong>GL 3.0 doesn&#8217;t mean that old programs won&#8217;t run anymore</strong>.</p>
<p><a name="How_to_make_your_first_OpenGL_Program"></a></p>
<h2><span class="mw-headline"> How to make your first OpenGL Program </span></h2>
<p>The first thing to do is chose a programming language. It could be C++, C++ Managed, Visual Basic, Visual Basic .NET, Pascal, Perl, Java, Ada, x86 assembly, etc.</p>
<p>The second thing is to chose a compiler. It could be MS Visual C++, DevC++, Delphi, Masm, etc. Remember that OpenGL is an API, so as long as you have the language bindings for your compiler, you can do OpenGL programming.</p>
<p>Typically, a compiler comes with the binding files. For example, if you have a C++ compiler, it will come with <code>gl.h</code> and <code>opengl32.lib</code>. It may even come with <code>glu.h</code> and <code>glu32.lib</code>, <code>glut.h</code> and <code>glut32.lib</code>.</p>
<p>If you don&#8217;t have your binding files, you will need to figure out where to download them from. Microsoft releases their Windows Platform SDK which contains these files and most likely you don&#8217;t need it because your compiler came with the files.</p>
<p>You might want to use SDL, GLUT, freeGLUT, or some other wrapper that takes care of creating a GL window for you and destroying for you. It makes it easier for someone who just wants to learn the OpenGL API syntax.</p>
<p>Assuming you know how to program in your language of choice, now all you need is to learn OpenGL. There are many online tutorials. Just search for <code>opengl+tutorial</code> in your favorite search engine.</p>
<p><a name="OpenGL_Viewers"></a></p>
<h2><span class="mw-headline"> OpenGL Viewers</span></h2>
<p>These are programs that you install and run, and they give you information specific to the OpenGL API your system implements, like the version offered by your system, the vendor, the renderer, the extension list, supported viewport size, line size, point size, plus many other details. Some might include a benchmark. Some are standalone benchmarks.</p>
<ul>
<li> <a class="external text" title="http://www.geocities.com/vmelkon/files/GLinfo2.zip" rel="nofollow" href="http://www.geocities.com/vmelkon/files/GLinfo2.zip">GLInfo2 (Windows)</a></li>
<li> <a class="external text" title="http://www.ozone3d.net/gpu_caps_viewer/" rel="nofollow" href="http://www.ozone3d.net/gpu_caps_viewer/">GPU Caps Viewer (Windows XP, Vista 32)</a></li>
<li> <a class="external text" title="http://www.realtech-vr.com/glview/index.html" rel="nofollow" href="http://www.realtech-vr.com/glview/index.html">OpenGL Extension Viewer (Windows, Windows x64 and MacOS X)</a></li>
<li> <a class="external text" title="http://www.glbenchmark.com/index.jsp" rel="nofollow" href="http://www.glbenchmark.com/index.jsp">OpenGL ES benchmark tool (Linux, Symbian, Windows Mobile)</a></li>
<li> <a class="external text" title="http://www.devbump.com/story.php?title=Fur_Rendering_Benchmark_-_A_Small_and_Handy_OpenGL_Utility" rel="nofollow" href="http://www.devbump.com/story.php?title=Fur_Rendering_Benchmark_-_A_Small_and_Handy_OpenGL_Utility">Fur rendering benchmark (Windows)</a></li>
<li> <a class="external text" title="http://www.futuremark.com/download/" rel="nofollow" href="http://www.futuremark.com/download/">Futuremark&#8217;s GL ES benchmark</a></li>
</ul>
<p><a name="External_Links"></a></p>
<h2><span class="mw-headline"> External Links </span></h2>
<ul>
<li> <strong>Tutorials</strong>
<ul>
<li> <a class="external text" title="http://nehe.gamedev.net" rel="nofollow" href="http://nehe.gamedev.net/">NeHe</a>, OpenGL Tutorials</li>
<li> <a class="external text" title="http://www.xmission.com/~nate/opengl.html" rel="nofollow" href="http://www.xmission.com/%7Enate/opengl.html">GLUT</a>, Tutorials</li>
<li> <a class="external text" title="http://www.delphi3d.net" rel="nofollow" href="http://www.delphi3d.net/">Delphi3D.net</a>, Delphi programming and OpenGL</li>
<li> <a class="external text" title="http://www.lighthouse3d.com" rel="nofollow" href="http://www.lighthouse3d.com/">lighthouse3d.com</a>, GL 2.0, GLSL, tutorials</li>
</ul>
</li>
<li> <strong>Implementations</strong>
<ul>
<li> <a class="external text" title="http://www.mesa3d.org" rel="nofollow" href="http://www.mesa3d.org/">The Mesa 3D Graphics Library</a>, a software renderer based on the OpenGL API.</li>
</ul>
</li>
<li> <strong>Engines</strong>
<ul>
<li> <a class="external text" title="http://www.ogre3d.org" rel="nofollow" href="http://www.ogre3d.org/">Ogre 3D engine</a></li>
<li> <a class="external text" title="http://www.geocities.com/SiliconValley/Bay/6525" rel="nofollow" href="http://www.geocities.com/SiliconValley/Bay/6525">3DS loader, keyframes</a></li>
</ul>
</li>
<li> <strong>Demos</strong>
<ul>
<li> <a class="external text" title="http://www.sulaco.co.za/" rel="nofollow" href="http://www.sulaco.co.za/">Delphi OpenGL Demos</a></li>
<li> <a class="external text" title="http://www.humus.name/" rel="nofollow" href="http://www.humus.name/">Humus.name</a> many demos, advanced</li>
<li> <a class="external text" title="http://www.flipcode.com" rel="nofollow" href="http://www.flipcode.com/">Flipcode</a> many demos</li>
<li> <a class="external text" title="http://local.wasp.uwa.edu.au/~pbourke/" rel="nofollow" href="http://local.wasp.uwa.edu.au/%7Epbourke/">Paul Bourke</a> many demos and explanations, advanced</li>
</ul>
</li>
<li> <strong>Theory and General Graphics Programming</strong>
<ul>
<li> <a class="external text" title="http://www.magic-software.com" rel="nofollow" href="http://www.magic-software.com/">Magic Software</a> algorithms, intersection test</li>
<li> <a class="external text" title="http://freespace.virgin.net/hugo.elias/graphics/x_posure.htm" rel="nofollow" href="http://freespace.virgin.net/hugo.elias/graphics/x_posure.htm">Light Exposure Theory</a></li>
<li> <a class="external text" title="http://scriptionary.com/" rel="nofollow" href="http://scriptionary.com/">Scriptionary.com</a> Graphics Programming related both OpenGL and Direct3D</li>
</ul>
</li>
<li> <strong>Image Loader</strong>
<ul>
<li> <a class="external free" title="http://openil.sourceforge.net" rel="nofollow" href="http://openil.sourceforge.net/">http://openil.sourceforge.net</a>, DevIL, formally called OpenIL, Image Library, supports many many formats</li>
<li> <a class="external free" title="http://gpwiki.org/index.php/SDL:Tutorials:Using_SDL_with_OpenGL" rel="nofollow" href="http://gpwiki.org/index.php/SDL:Tutorials:Using_SDL_with_OpenGL">http://gpwiki.org/index.php/SDL:Tutorials:Using_SDL_with_OpenGL</a> SDL and GL</li>
<li> <a class="external free" title="http://lonesock.net/soil.html" rel="nofollow" href="http://lonesock.net/soil.html">http://lonesock.net/soil.html</a> SOIL, Simple OpenGL Image Library</li>
<li> GLaux, do not use GLaux. It is 15 years old and considered deprecated</li>
</ul>
</li>
<li> <strong>Sound Loader</strong>
<ul>
<li> <a class="external free" title="http://connect.creativelabs.com/openal/default.aspx" rel="nofollow" href="http://connect.creativelabs.com/openal/default.aspx">http://connect.creativelabs.com/openal/default.aspx</a>, OpenAL, Audio Library, sort of like OpenGL, but for audio</li>
<li> <a class="external free" title="http://un4seen.com" rel="nofollow" href="http://un4seen.com/">http://un4seen.com</a> BASS audio library</li>
<li> <a class="external free" title="http://www.fmod.org" rel="nofollow" href="http://www.fmod.org/">http://www.fmod.org</a> FMOD audio librray</li>
</ul>
</li>
<li> <strong>Language Bindings</strong>
<ul>
<li> <a class="external text" title="http://graphcomp.com/opengl/" rel="nofollow" href="http://graphcomp.com/opengl/">POGL</a> Perl</li>
</ul>
</li>
<li> <strong>Other</strong>
<ul>
<li> <a class="external text" title="http://www.3dcafe.com/" rel="nofollow" href="http://www.3dcafe.com/">3D models</a></li>
<li> <a class="external free" title="http://www.opengl.org/sdk/docs/tutorials/TyphoonLabs/" rel="nofollow" href="http://www.opengl.org/sdk/docs/tutorials/TyphoonLabs/">http://www.opengl.org/sdk/docs/tutorials/TyphoonLabs/</a></li>
<li> <a class="external free" title="http://www.opengl.org/sdk/tools/ShaderDesigner/" rel="nofollow" href="http://www.opengl.org/sdk/tools/ShaderDesigner/">http://www.opengl.org/sdk/tools/ShaderDesigner/</a></li>
<li> <a class="external free" title="http://lumina.sourceforge.net/Tutorials/Armature.html" rel="nofollow" href="http://lumina.sourceforge.net/Tutorials/Armature.html">http://lumina.sourceforge.net/Tutorials/Armature.html</a></li>
<li> <a class="external free" title="http://www.opencsg.org" rel="nofollow" href="http://www.opencsg.org/">http://www.opencsg.org</a>, Constructive Solid Geometry, boolean operations with geometry</li>
<li> <a class="external free" title="http://www.gamedev.net/community/forums/showfaq.asp?forum_id=25#q11a" rel="nofollow" href="http://www.gamedev.net/community/forums/showfaq.asp?forum_id=25#q11a">http://www.gamedev.net/community/forums/showfaq.asp?forum_id=25#q11a</a>, The Gamedev FAQ</li>
<li> <a class="external free" title="http://gpwiki.org" rel="nofollow" href="http://gpwiki.org/">http://gpwiki.org</a> Another Wiki about Game Programming, also has GL code snippets and other APIs</li>
</ul>
</li>
</ul>
<p><a name="Documentation"></a></p>
<h2><span class="mw-headline"> Documentation </span></h2>
<ul>
<li> <a class="external text" title="http://www.opengl.org/documentation/specs/" rel="nofollow" href="http://www.opengl.org/documentation/specs/">The GL spec page</a></li>
<li> <a class="external text" title="http://www.opengl.org/documentation/glsl/" rel="nofollow" href="http://www.opengl.org/documentation/glsl/">The GLSL spec page</a></li>
<li> <a class="external text" title="http://www.opengl.org/registry/" rel="nofollow" href="http://www.opengl.org/registry/">The extension registry</a></li>
<li> <a class="external text" title="http://graphcomp.com/opengl/apis.html" rel="nofollow" href="http://graphcomp.com/opengl/apis.html">OpenGL Quick Reference</a></li>
<li> <a title="Getting started/XML Toolchain and Man Pages" href="http://www.opengl.org/wiki/Getting_started/XML_Toolchain_and_Man_Pages">XML Toolchain and Man Pages</a></li>
<li> <a title="Getting started/Viewing XHTML and MathML" href="http://www.opengl.org/wiki/Getting_started/Viewing_XHTML_and_MathML">Viewing XHTML and MathML</a></li>
</ul>
<p><a name="SDK"></a></p>
<h2><span class="mw-headline"> SDK </span></h2>
<ul>
<li> <a class="external text" title="http://www.opengl.org/sdk/" rel="nofollow" href="http://www.opengl.org/sdk/">OpenGL SDK projects and OpenGL man pages</a></li>
<li> <a class="external text" title="http://developer.nvidia.com" rel="nofollow" href="http://developer.nvidia.com/">nVidia&#8217;s SDK, examples and many pdf</a></li>
<li> <a class="external text" title="http://ati.amd.com/developer/index.html" rel="nofollow" href="http://ati.amd.com/developer/index.html">AMD/ATI&#8217;s examples and many pdf</a></li>
</ul><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kipotz1986.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kipotz1986.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kipotz1986.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kipotz1986.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kipotz1986.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kipotz1986.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kipotz1986.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kipotz1986.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kipotz1986.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kipotz1986.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kipotz1986.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kipotz1986.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kipotz1986.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kipotz1986.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kipotz1986.wordpress.com&amp;blog=7651345&amp;post=3&amp;subd=kipotz1986&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kipotz1986.wordpress.com/2009/05/07/basic-to-basic-in-open-gl-3d-programing-day-1-introduction-to-opengl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6af61351897a6940bbdbd64041a5790b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kipotz1986</media:title>
		</media:content>

		<media:content url="http://kipotz1986.files.wordpress.com/2009/05/opengl.jpg?w=300" medium="image">
			<media:title type="html">opengl</media:title>
		</media:content>
	</item>
		<item>
		<title>Hello world!</title>
		<link>http://kipotz1986.wordpress.com/2009/05/07/hello-world/</link>
		<comments>http://kipotz1986.wordpress.com/2009/05/07/hello-world/#comments</comments>
		<pubDate>Thu, 07 May 2009 01:44:02 +0000</pubDate>
		<dc:creator>kipotz1986</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kipotz1986.wordpress.com&amp;blog=7651345&amp;post=1&amp;subd=kipotz1986&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Welcome to <a href="http://wordpress.com/">WordPress.com</a>. This is your first post. Edit or delete it and start blogging!</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kipotz1986.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kipotz1986.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kipotz1986.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kipotz1986.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kipotz1986.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kipotz1986.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kipotz1986.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kipotz1986.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kipotz1986.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kipotz1986.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kipotz1986.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kipotz1986.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kipotz1986.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kipotz1986.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kipotz1986.wordpress.com&amp;blog=7651345&amp;post=1&amp;subd=kipotz1986&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://kipotz1986.wordpress.com/2009/05/07/hello-world/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6af61351897a6940bbdbd64041a5790b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kipotz1986</media:title>
		</media:content>
	</item>
	</channel>
</rss>
