<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>AllegroGL: OpenGL Extensions</title> <link href="alleggl.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.2 --> <div class="tabs"> <ul> <li><a href="main.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> </ul> </div> <h1>OpenGL Extensions</h1>Management of the OpenGL extensions mechanism. <a href="#_details">More...</a><h2>OpenGL Extensions Management Functions</h2> <ul> <li>#define <a class="el" href="group__extensions.html#gc45f9222ac965c8d0d756f513cebf0d1">AGL_DEFINE_PROC_TYPE</a> <dl class="el"><dd class="mdescRight">OpenGL extensions handlers helper. <a href="#gc45f9222ac965c8d0d756f513cebf0d1"></a><br></dl></ul> <h2>Functions</h2> <ul> <li>int <a class="el" href="group__extensions.html#g7351f56ea1c4f4665193fc3bf547ff0a">allegro_gl_is_extension_supported</a> (AL_CONST char *extension) <dl class="el"><dd class="mdescRight">This function is an helper to determine whether an OpenGL extension is available or not. <a href="#g7351f56ea1c4f4665193fc3bf547ff0a"></a><br></dl><li>void * <a class="el" href="group__extensions.html#ga0c2cd7c4b4a94e8801af42a58356cc4">allegro_gl_get_proc_address</a> (AL_CONST char *name) <dl class="el"><dd class="mdescRight">Helper to get the address of an OpenGL symbol. <a href="#ga0c2cd7c4b4a94e8801af42a58356cc4"></a><br></dl></ul> <h2>Variables</h2> <ul> <li>AGL_EXTENSION_LIST_GL <a class="el" href="group__extensions.html#g7492f6f6acc608789210560ee63e5436">allegro_gl_extensions_GL</a> <dl class="el"><dd class="mdescRight">List of OpenGL extensions supported by AllegroGL. <a href="#g7492f6f6acc608789210560ee63e5436"></a><br></dl><li><a class="el" href="structAGL__EXT.html">AGL_EXT</a> * <a class="el" href="group__extensions.html#g2d6ebb26eec58470e4242b750656268b">agl_extension_table</a> = NULL <dl class="el"><dd class="mdescRight">List of WGL extensions supported by AllegroGL. <a href="#g2d6ebb26eec58470e4242b750656268b"></a><br></dl></ul> <hr><a name="_details"></a><h2>Detailed Description</h2> Management of the OpenGL extensions mechanism. <p> AllegroGL provides two ways to access OpenGL extensions: It's native extension library and some versatile portable routines.<p> If you want to get more control on extensions or if you want to use an extension that is not supported by AllegroGL then you can use the routines : <a class="el" href="group__extensions.html#g7351f56ea1c4f4665193fc3bf547ff0a" title="This function is an helper to determine whether an OpenGL extension is available...">allegro_gl_is_extension_supported()</a> and <a class="el" href="group__extensions.html#ga0c2cd7c4b4a94e8801af42a58356cc4" title="Helper to get the address of an OpenGL symbol.">allegro_gl_get_proc_address()</a>. They provide a way to determine if an extension is available and to get its address. These routines are available on every platforms that AllegroGL supports <hr><h2>Define Documentation</h2> <a class="anchor" name="gc45f9222ac965c8d0d756f513cebf0d1"></a><!-- doxytag: member="alleggl.h::AGL_DEFINE_PROC_TYPE" ref="gc45f9222ac965c8d0d756f513cebf0d1" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define AGL_DEFINE_PROC_TYPE </td> </tr> </table> </div> <div class="memdoc"> <p> OpenGL extensions handlers helper. <p> Defines a function pointer type. This macro is almost equivalent to a <b>typedef</b>. It is intended to hide some platform-specific machinery in order to keep code portable.<p> <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__extensions.html#ga0c2cd7c4b4a94e8801af42a58356cc4" title="Helper to get the address of an OpenGL symbol.">allegro_gl_get_proc_address()</a> </dd></dl> <p> Definition at line <a class="el" href="alleggl_8h-source.html#l00755">755</a> of file <a class="el" href="alleggl_8h-source.html">alleggl.h</a>. </div> </div><p> <hr><h2>Function Documentation</h2> <a class="anchor" name="g7351f56ea1c4f4665193fc3bf547ff0a"></a><!-- doxytag: member="glext.c::allegro_gl_is_extension_supported" ref="g7351f56ea1c4f4665193fc3bf547ff0a" args="(AL_CONST char *extension)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int allegro_gl_is_extension_supported </td> <td>(</td> <td class="paramtype">AL_CONST char * </td> <td class="paramname"> <em>extension</em> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> This function is an helper to determine whether an OpenGL extension is available or not. <p> <b>Example:</b> <pre> int packedpixels = allegro_gl_is_extension_supported("GL_EXT_packed_pixels"); </pre> If <code>packedpixels</code> is TRUE then you can safely use the constants related to the packed pixels extension.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>extension</em> </td><td>The name of the extension that is needed </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>TRUE if the extension is available FALSE otherwise. </dd></dl> <p> Definition at line <a class="el" href="glext_8c-source.html#l00306">306</a> of file <a class="el" href="glext_8c-source.html">glext.c</a>. <p> Referenced by <a class="el" href="alleggl_8c-source.html#l01131">allegro_gl_set_blender_mode()</a>. </div> </div><p> <a class="anchor" name="ga0c2cd7c4b4a94e8801af42a58356cc4"></a><!-- doxytag: member="glext.c::allegro_gl_get_proc_address" ref="ga0c2cd7c4b4a94e8801af42a58356cc4" args="(AL_CONST char *name)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void* allegro_gl_get_proc_address </td> <td>(</td> <td class="paramtype">AL_CONST char * </td> <td class="paramname"> <em>name</em> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Helper to get the address of an OpenGL symbol. <p> <b>Example:</b> How to get the function <code>glMultiTexCoord3fARB</code> that comes with ARB's Multitexture extension : <pre> // define the type of the function AGL_DEFINE_PROC_TYPE(void, MULTI_TEX_FUNC, (GLenum, GLfloat, GLfloat, GLfloat)); // declare the function pointer MULTI_TEX_FUNC glMultiTexCoord3fARB; // get the address of the function glMultiTexCoord3fARB = (MULTI_TEX_FUNC) allegro_gl_get_proc_address( "glMultiTexCoord3fARB"); </pre><p> If <code>glMultiTexCoord3fARB</code> is not <code>NULL</code> then it can be used as if it has been defined in the OpenGL core library. Note that the use of the AGL_DEFINE_PROC_TYPE macro is mandatory if you want your program to be portable.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>The name of the symbol you want to link to. </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to the symbol if available or NULL otherwise. </dd></dl> <p> Definition at line <a class="el" href="glext_8c-source.html#l00372">372</a> of file <a class="el" href="glext_8c-source.html">glext.c</a>. </div> </div><p> <hr><h2>Variable Documentation</h2> <a class="anchor" name="g7492f6f6acc608789210560ee63e5436"></a><!-- doxytag: member="glext.c::allegro_gl_extensions_GL" ref="g7492f6f6acc608789210560ee63e5436" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">struct AGL_EXTENSION_LIST_GL <a class="el" href="group__extensions.html#g7492f6f6acc608789210560ee63e5436">allegro_gl_extensions_GL</a> </td> </tr> </table> </div> <div class="memdoc"> <p> List of OpenGL extensions supported by AllegroGL. <p> Each entry of this structure is an int which is either set to 1, if the corresponding extension is available on the host system, or 0 otherwise.<p> Extension names use only the base name. For example, GL_ARB_multitexture should be refered to by: <pre> allegro_gl_extensions_GL.ARB_multitexture </pre><p> <dl class="see" compact><dt><b>See also:</b></dt><dd>allegro_gl_extensions_GLX allegro_gl_extensions_WGL </dd></dl> <p> Definition at line <a class="el" href="glext_8c-source.html#l00055">55</a> of file <a class="el" href="glext_8c-source.html">glext.c</a>. <p> Referenced by <a class="el" href="texture_8c-source.html#l00596">__allegro_gl_munge_bitmap()</a>, <a class="el" href="texture_8c-source.html#l01165">allegro_gl_make_texture_ex()</a>, <a class="el" href="videovtb_8c-source.html#l00148">allegro_gl_make_video_bitmap_helper0()</a>, <a class="el" href="videovtb_8c-source.html#l00048">allegro_gl_make_video_bitmap_helper1()</a>, <a class="el" href="glvtable_8c-source.html#l00519">allegro_gl_screen_blit_from_memory()</a>, <a class="el" href="glvtable_8c-source.html#l00602">allegro_gl_screen_blit_to_memory()</a>, <a class="el" href="gui_8c-source.html#l00538">allegro_gl_set_mouse_sprite()</a>, <a class="el" href="glvtable_8c-source.html#l01278">do_masked_blit_screen()</a>, <a class="el" href="texture_8c-source.html#l00897">do_texture_upload()</a>, and <a class="el" href="videovtb_8c-source.html#l00510">update_texture_memory()</a>. </div> </div><p> <a class="anchor" name="g2d6ebb26eec58470e4242b750656268b"></a><!-- doxytag: member="glext.c::agl_extension_table" ref="g2d6ebb26eec58470e4242b750656268b" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structAGL__EXT.html">AGL_EXT</a>* <a class="el" href="group__extensions.html#g2d6ebb26eec58470e4242b750656268b">agl_extension_table</a> = NULL </td> </tr> </table> </div> <div class="memdoc"> <p> List of WGL extensions supported by AllegroGL. <p> <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__extensions.html#g7492f6f6acc608789210560ee63e5436" title="List of OpenGL extensions supported by AllegroGL.">allegro_gl_extensions_GL</a> allegro_gl_extensions_GLX </dd></dl> <p> Definition at line <a class="el" href="glext_8c-source.html#l00082">82</a> of file <a class="el" href="glext_8c-source.html">glext.c</a>. </div> </div><p> <hr size="1"><address style="text-align: right;"><small>Generated on Mon Nov 12 11:05:32 2007 for AllegroGL by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address> </body> </html>