<HTML> <HEAD> <TITLE>cgGLGetLatestProfile</TITLE> <STYLE TYPE="text/css" MEDIA=screen> <!-- BODY { font-family: Arial,Helvetica; } BLOCKQUOTE { margin: 10pt; } H1,A { color: #336699; } /*** Top menu style ****/ .mmenuon { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #ff6600; font-size: 10pt; } .mmenuoff { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #ffffff; font-size: 10pt; } .cpyright { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #ffffff; font-size: xx-small; } .cpyrightText { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #ffffff; font-size: xx-small; } .sections { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 11pt; } .dsections { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 12pt; } .slink { font-family: Arial,Helvetica; font-weight: normal; text-decoration: none; color: #336699; font-size: 9pt; } .slink2 { font-family: Arial,Helvetica; text-decoration: none; color: #336699; } .maintitle { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 18pt; } .dblArrow { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: small; } .menuSec { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: small; } .newstext { font-family: Arial,Helvetica; font-size: small; } .linkmenu { font-family: Arial,Helvetica; color: #000000; font-weight: bold; text-decoration: none; } P { font-family: Arial,Helvetica; } PRE { font-family: monospace; white-space: pre; font-color: #333333; font-weight: 100; background-color: #eeeeee; padding: 5px; width: 90%; border-style: solid; border-width: 2px; border-color: #bebebe; } .quote { font-family: Times; text-decoration: none; color: #000000; font-size: 9pt; font-style: italic; } .smstd { font-family: Arial,Helvetica; color: #000000; font-size: x-small; } .std { font-family: Arial,Helvetica; color: #000000; } .meerkatTitle { font-family: sans-serif; font-size: x-small; color: black; } .meerkatDescription { font-family: sans-serif; font-size: 10pt; color: black } .meerkatCategory { font-family: sans-serif; font-size: 9pt; font-weight: bold; font-style: italic; color: brown; } .meerkatChannel { font-family: sans-serif; font-size: 9pt; font-style: italic; color: brown; } .meerkatDate { font-family: sans-serif; font-size: xx-small; color: #336699; } .tocTitle { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #333333; font-size: 10pt; } .toc-item { font-family: Arial,Helvetica; font-weight: bold; color: #336699; font-size: 10pt; text-decoration: underline; } .perlVersion { font-family: Arial,Helvetica; font-weight: bold; color: #336699; font-size: 10pt; text-decoration: none; } .docTitle { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #000000; font-size: 10pt; } .dotDot { font-family: Arial,Helvetica; font-weight: bold; color: #000000; font-size: 9pt; } .docSec { font-family: Arial,Helvetica; font-weight: normal; color: #333333; font-size: 9pt; } .docVersion { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 10pt; } .docSecs-on { font-family: Arial,Helvetica; font-weight: normal; text-decoration: none; color: #ff0000; font-size: 10pt; } .docSecs-off { font-family: Arial,Helvetica; font-weight: normal; text-decoration: none; color: #333333; font-size: 10pt; } h3 { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: small; } h2 { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: medium; } h1 { font-family: Verdana,Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: large; } DL { font-family: Arial,Helvetica; font-weight: normal; text-decoration: none; color: #333333; font-size: 10pt; } UL > LI > A { font-family: Arial,Helvetica; font-weight: bold; color: #336699; font-size: 10pt; } .moduleInfo { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #333333; font-size: 11pt; } .moduleInfoSec { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 10pt; } .moduleInfoVal { font-family: Arial,Helvetica; font-weight: normal; text-decoration: underline; color: #000000; font-size: 10pt; } .cpanNavTitle { font-family: Arial,Helvetica; font-weight: bold; color: #ffffff; font-size: 10pt; } .cpanNavLetter { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #333333; font-size: 9pt; } .cpanCat { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 9pt; } --> </STYLE> </HEAD> <BODY> <object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e"> </object> <BLOCKQUOTE> <H1><A NAME="NAME"><A NAME="1">NAME </A></A></H1> <P> <B>cgGLGetLatestProfile</B> - get the latest profile for a profile class </P> <H1><A NAME="SYNOPSIS"><A NAME="2">SYNOPSIS </A></A></H1> <PRE> #include <Cg/cgGL.h> CGprofile cgGLGetLatestProfile( CGGLenum profileClass ); </PRE> <H1><A NAME="PARAMETERS"><A NAME="3">PARAMETERS </A></A></H1> <DL> <DT><STRONG>profileClass </STRONG></DT> <DD> <P> The class of profile that will be returned. Must be one of the following : </P> <UL> <LI> <B>CG_GL_VERTEX</B> </LI> <LI> <B>CG_GL_GEOMETRY</B> </LI> <LI> <B>CG_GL_FRAGMENT</B> </LI> <LI> <B>CG_GL_TESSELLATION_CONTROL</B> </LI> <LI> <B>CG_GL_TESSELLATION_EVALUATION</B> </LI> </UL> </DD></DL> <H1><A NAME="RETURN_VALUES"><A NAME="4">RETURN VALUES </A></A></H1> <P> Returns a profile enumerant for the latest profile of the given class. </P> <P> Returns <B>CG_PROFILE_UNKNOWN</B> if no appropriate profile is available or an error occurs. </P> <H1><A NAME="DESCRIPTION"><A NAME="5">DESCRIPTION </A></A></H1> <P> <B>cgGLGetLatestProfile</B> returns the best available profile of a given class. The OpenGL extensions are checked to determine the best profile which is supported by the current GPU, driver, and cgGL library combination. </P> <P> <B>profileClass</B> may be one of the following enumerants : </P> <UL> <LI> <B>CG_GL_VERTEX</B> </LI> <P> The latest available vertex profile will be returned. </P> <LI> <B>CG_GL_GEOMETRY</B> </LI> <P> The latest available geometry profile will be returned. </P> <LI> <B>CG_GL_FRAGMENT</B> </LI> <P> The latest available fragment profile will be returned. </P> <LI> <B>CG_GL_TESSELLATION_CONTROL</B> </LI> <P> The latest available tessellation control profile will be returned. </P> <LI> <B>CG_GL_TESSELLATION_EVALUATION</B> </LI> <P> The latest available tessellation evaluation profile will be returned. </P> </UL> <P> <B>cgGLGetLatestProfile</B> can be used in conjuction with <A HREF="cgCreateProgram.html">cgCreateProgram</A> to ensure that more optimal profiles are used as they are made available, even though they might not have been available at compile time or with a different version of the runtime. </P> <P> Starting in Cg 2.2, certain environment variables can <I>override</I> the value returned by <B>cgGLGetLatestProfile</B>: </P> <P> If <B>cgGLGetLatestProfile</B> is called with <B>profileClass</B> being <B>CG_GL_VERTEX</B> and an environment variable named <CODE>CGGL_LATEST_VERTEX_PROFILE</CODE> is set in the application's environment to a string that <A HREF="cgGetProfile.html">cgGetProfile</A> translates to a valid profile (meaning not <CODE>CG_PROFILE_UNKNOWN</CODE>), the <B>CGprofile</B> value returned by <A HREF="cgGetProfile.html">cgGetProfile</A> is returned by <B>cgGLGetLatestProfile</B>. </P> <P> If <B>cgGLGetLatestProfile</B> is called with <B>profileClass</B> being <B>CG_GL_GEOMETRY</B> and an environment variable named <CODE>CGGL_LATEST_GEOMETRY_PROFILE</CODE> is set in the application's environment to a string that <A HREF="cgGetProfile.html">cgGetProfile</A> translates to a valid profile (meaning not <CODE>CG_PROFILE_UNKNOWN</CODE>), the <B>CGprofile</B> value returned by <A HREF="cgGetProfile.html">cgGetProfile</A> is returned by <B>cgGLGetLatestProfile</B>. </P> <P> If <B>cgGLGetLatestProfile</B> is called with <B>profileClass</B> being <B>CG_GL_FRAGMENT</B> and an environment variable named <CODE>CGGL_LATEST_FRAGMENT_PROFILE</CODE> is set in the application's environment to a string that <A HREF="cgGetProfile.html">cgGetProfile</A> translates to a valid profile (meaning not <CODE>CG_PROFILE_UNKNOWN</CODE>), the <B>CGprofile</B> value returned by <A HREF="cgGetProfile.html">cgGetProfile</A> is returned by <B>cgGLGetLatestProfile</B>. </P> <P> If <B>cgGLGetLatestProfile</B> is called with <B>profileClass</B> being <B>CG_GL_TESSELLATION_CONTROL</B> and an environment variable named <CODE>CGGL_LATEST_TESSELLATION_CONTROL_PROFILE</CODE> is set in the application's environment to a string that <A HREF="cgGetProfile.html">cgGetProfile</A> translates to a valid profile (meaning not <CODE>CG_PROFILE_UNKNOWN</CODE>), the <B>CGprofile</B> value returned by <A HREF="cgGetProfile.html">cgGetProfile</A> is returned by <B>cgGLGetLatestProfile</B>. </P> <P> If <B>cgGLGetLatestProfile</B> is called with <B>profileClass</B> being <B>CG_GL_TESSELLATION_EVALUATION</B> and an environment variable named <CODE>CGGL_LATEST_TESSELLATION_EVALUATION_PROFILE</CODE> is set in the application's environment to a string that <A HREF="cgGetProfile.html">cgGetProfile</A> translates to a valid profile (meaning not <CODE>CG_PROFILE_UNKNOWN</CODE>), the <B>CGprofile</B> value returned by <A HREF="cgGetProfile.html">cgGetProfile</A> is returned by <B>cgGLGetLatestProfile</B>. </P> <H1><A NAME="EXAMPLES"><A NAME="6">EXAMPLES </A></A></H1> <PRE> /* Output information about available profiles */ printf("vertex profile: %s\n", cgGetProfileString(cgGLGetLatestProfile(CG_GL_VERTEX))); printf("geometry profile: %s\n", cgGetProfileString(cgGLGetLatestProfile(CG_GL_GEOMETRY))); printf("fragment profile: %s\n", cgGetProfileString(cgGLGetLatestProfile(CG_GL_FRAGMENT))); printf("tessellation control profile: %s\n", cgGetProfileString(cgGLGetLatestProfile(CG_GL_TESSELLATION_CONTROL))); printf("tessellation evalutation profile: %s\n", cgGetProfileString(cgGLGetLatestProfile(CG_GL_TESSELLATION_EVALUATION))); </PRE> <H1><A NAME="ERRORS"><A NAME="7">ERRORS </A></A></H1> <P> <B>CG_INVALID_ENUMERANT_ERROR</B> is generated if <B>profileClass</B> is not <B>CG_GL_VERTEX</B>, <B>CG_GL_GEOMETRY</B>, <B>CG_GL_FRAGMENT</B>, <B>CG_GL_TESSELLATION_CONTROL</B>, or <B>CG_GL_TESSELLATION_EVALUATION</B>. </P> <H1><A NAME="HISTORY"><A NAME="8">HISTORY </A></A></H1> <P> <B>cgGLGetLatestProfile</B> was introduced in Cg 1.1. </P> <P> <B>CG_GL_GEOMETRY</B> support was introduced in Cg 2.0. </P> <P> <B>CG_GL_TESSELLATION_CONTROL</B> and <B>CG_GL_TESSELLATION_EVALUATION</B> support was introduced in Cg 3.0. </P> <H1><A NAME="SEE_ALSO"><A NAME="9">SEE ALSO </A></A></H1> <P> <A HREF="cgGLSetOptimalOptions.html">cgGLSetOptimalOptions</A>, <A HREF="cgCreateProgram.html">cgCreateProgram</A> </P> </BLOCKQUOTE> </BODY>