<HTML> <HEAD> <TITLE>cgGetParameterValue</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>cgGetParameterValue</B> - get the value of any numeric parameter </P> <H1><A NAME="SYNOPSIS"><A NAME="2">SYNOPSIS </A></A></H1> <PRE> #include <Cg/cg.h> /* TYPE is int, float, or double */ int cgGetParameterValue{ifd}{rc}( CGparameter param, int nelements, TYPE * v ); </PRE> <H1><A NAME="PARAMETERS"><A NAME="3">PARAMETERS </A></A></H1> <DL> <DT><STRONG>param </STRONG></DT> <DD> <P> The program parameter whose value will be retrieved. </P> <DT><STRONG>nelements </STRONG></DT> <DD> <P> The number of elements in array <B>v</B>. </P> <DT><STRONG>v </STRONG></DT> <DD> <P> Destination buffer to which the parameter values will be written. </P> </DD></DL> <H1><A NAME="RETURN_VALUES"><A NAME="4">RETURN VALUES </A></A></H1> <P> Returns the total number of values written to <B>v</B>. </P> <H1><A NAME="DESCRIPTION"><A NAME="5">DESCRIPTION </A></A></H1> <P> The <B>cgGetParameterValue</B> functions allow the application to get the value(s) from any numeric parameter or parameter array. The value(s) are returned in <B>v</B>. </P> <P> The given parameter must be a scalar, vector, matrix, or a (possibly multidimensional) array of scalars, vectors, or matrices. </P> <P> There are versions of each function that return <B>int</B>, <B>float</B> or <B>double</B> values signified by <B>i</B>, <B>f</B> or <B>d</B> in the function name. </P> <P> There are versions of each function that will cause any matrices referenced by <B>param</B> to be copied in either row-major or column-major order, as signified by the <B>r</B> or <B>c</B> in the function name. </P> <P> For example, <A HREF="cgGetParameterValueic.html">cgGetParameterValueic</A> retrieves the values of the given parameter using the supplied array of integer data, and copies matrix data in column-major order. </P> <P> The size of <B>v</B> is passed as <B>nelements</B>. If <B>v</B> is smaller than the total number of values in the given source parameter, <B>CG_NOT_ENOUGH_DATA_ERROR</B> is generated. </P> <P> The total number of values in a parameter, <B>ntotal</B>, may be computed as follow: </P> <PRE> int nrows = cgGetParameterRows(param); int ncols = cgGetParameterColumns(param); int asize = cgGetArrayTotalSize(param); int ntotal = nrows*ncols; if (asize > 0) ntotal *= asize; </PRE><P> <B>Note:</B> Previous releases of Cg allowed you to store more values in a parameter than indicated by the parameter's type. For example, one could use <A HREF="cgGLSetParameter4f.html">cgGLSetParameter4f</A> to store four values into a parameter of type <B>CG_FLOAT</B> (not <B>CG_FLOAT4</B>). All four values could later be retrieved using a get call which requested more than one value. However, this feature conflicts with the GLSL approach and also leads to issues with parameters mapped into BUFFERS. Therefore, beginning with Cg 2.0 any components beyond the number indicated by the parameter type are ignored. </P> <H1><A NAME="EXAMPLES"><A NAME="6">EXAMPLES </A></A></H1> <P> <I>to-be-written</I> </P> <H1><A NAME="ERRORS"><A NAME="7">ERRORS </A></A></H1> <P> <B>CG_INVALID_PARAM_HANDLE_ERROR</B> is generated if <B>param</B> is not a valid parameter. </P> <P> <B>CG_INVALID_POINTER_ERROR</B> is generated if <B>v</B> is <B>NULL</B>. </P> <P> <B>CG_NOT_ENOUGH_DATA_ERROR</B> is generated if <B>nelements</B> is less than the total size of <B>param</B>. </P> <P> <B>CG_NON_NUMERIC_PARAMETER_ERROR</B> is generated if <B>param</B> is of a non-numeric type. </P> <H1><A NAME="HISTORY"><A NAME="8">HISTORY </A></A></H1> <P> The <B>cgGetParameterValue</B> functions were introduced in Cg 1.4. </P> <H1><A NAME="SEE_ALSO"><A NAME="9">SEE ALSO </A></A></H1> <P> <A HREF="cgGetParameterRows.html">cgGetParameterRows</A>, <A HREF="cgGetParameterColumns.html">cgGetParameterColumns</A>, <A HREF="cgGetArrayTotalSize.html">cgGetArrayTotalSize</A>, <A HREF="cgGetParameterDefaultValue.html">cgGetParameterDefaultValue</A>, <A HREF="cgSetParameterValue.html">cgSetParameterValue</A>, <A HREF="cgGetParameterValuedc.html">cgGetParameterValuedc</A>, <A HREF="cgGetParameterValuedr.html">cgGetParameterValuedr</A>, <A HREF="cgGetParameterValuefc.html">cgGetParameterValuefc</A>, <A HREF="cgGetParameterValuefr.html">cgGetParameterValuefr</A>, <A HREF="cgGetParameterValueic.html">cgGetParameterValueic</A>, <A HREF="cgGetParameterValueir.html">cgGetParameterValueir</A> </P> </BLOCKQUOTE> </BODY>