Sophie

Sophie

distrib > Mandriva > cooker > i586 > by-pkgid > b70c0f154c89d61ccc233b855bfed06f > files > 599

cg-3.0.0018-0.1.i586.rpm

<HTML>

<HEAD>
<TITLE>cgGetDependentProgramArrayStateAssignmentParameter</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>cgGetDependentProgramArrayStateAssignmentParameter</B> - get one of the parameters
that a state assignment's value depends on


</P>

<H1><A NAME="SYNOPSIS"><A NAME="2">SYNOPSIS

</A></A></H1>
<PRE>  #include &lt;Cg/cg.h&gt;

  CGparameter cgGetDependentProgramArrayStateAssignmentParameter( CGstateassignment sa,
                                                                  int index );
</PRE>
<H1><A NAME="PARAMETERS"><A NAME="3">PARAMETERS

</A></A></H1>
<DL>
<DT><STRONG>sa

</STRONG></DT>
<DD>

<P>
The state assignment handle.


</P>
<DT><STRONG>index

</STRONG></DT>
<DD>

<P>
The index of the parameter to return.


</P>
</DD></DL>

<H1><A NAME="RETURN_VALUES"><A NAME="4">RETURN VALUES

</A></A></H1>
<P>
Returns a handle to the selected dependent parameter on success.


</P>
<P>
Returns <B>NULL</B> if <B>sa</B> is not a program state assignment or an error occurs.


</P>

<H1><A NAME="DESCRIPTION"><A NAME="5">DESCRIPTION

</A></A></H1>
<P>
State assignments in CgFX files may include references to an array indexed
by an effect parameter (or expression) on the right hand side of the state assignment 
that is used for computing the state assignment's value. Usually this array holds
the compile statements of shader programs and by changing the index of the shader array,
it's possible to switch to a different program or profile on-the-fly.


</P>
<P>
Each compile statement in the array can depend on one or more effect parameters which 
are passed to the program in its parameter list. It is sometimes necessary for the 
application to query what those parameters are so values can be properly set to them.


</P>
<P>
<B>cgGetDependentProgramArrayStateAssignmentParameter</B> returns one of these parameters,
as indicated by the given index.


</P>

<H1><A NAME="EXAMPLES"><A NAME="6">EXAMPLES

</A></A></H1>
<P>
/* In CgFX file */


</P>
<PRE>  vertexshader Torus[4] =
  {
    compile vp40   C8E6v_torus( LightPosition, EyePosition, ModelViewProj, 
                                float2( OuterRadius, InnerRadius ) ),
    
    compile vp30   C8E6v_torus( LightPosition, EyePosition, ModelViewProj, 
                                float2( OuterRadius, InnerRadius ) ),
    
    compile arbvp1 C8E6v_torus( LightPosition, EyePosition, ModelViewProj, 
                                float2( OuterRadius, InnerRadius ) ),
    
    compile vp20   C8E6v_torus( LightPosition, EyePosition, ModelViewProj, 
                                float2( OuterRadius, InnerRadius ) )
  };

  pixelshader SpecSurf[4] =
  {
    compile fp40   C8E4f_specSurf( Ambient, float4(DiffuseMaterial  * LightColor, 1), 
                                   float4(SpecularMaterial * LightColor, 1),
                                   normalMap, normalizeCube, normalizeCube ),
                                   
    compile fp30   C8E4f_specSurf( Ambient, float4(DiffuseMaterial  * LightColor, 1), 
                                   float4(SpecularMaterial * LightColor, 1),
                                   normalMap, normalizeCube, normalizeCube ),
                                   
    compile arbfp1 C8E4f_specSurf( Ambient, float4(DiffuseMaterial  * LightColor, 1), 
                                   float4(SpecularMaterial * LightColor, 1),
                                   normalMap, normalizeCube, normalizeCube ),
                                   
    compile fp20   C8E4f_specSurf( Ambient, float4(DiffuseMaterial  * LightColor, 1), 
                                   float4(SpecularMaterial * LightColor, 1),
                                   normalMap, normalizeCube, normalizeCube )
  };

  int select = 0;

  technique bumpdemo
  {
      pass
      {
          VertexProgram   = (Torus[select]);
          FragmentProgram = (SpecSurf[select]);
      }
  }
</PRE><P>
/* In application */


</P>
<PRE>  int numParameters = cgGetNumDependentProgramArrayStateAssignmentParameters(stateAssignment);
  for(int i = 0; i &lt; numParameters; ++i) {
      CGparameter param = cgGetDependentProgramArrayStateAssignmentParameter(stateAssignment, i);

      /* Set value for 'param' */
  }
</PRE><P>
In the above example, assuming select = 0 and stateAssignment is for VertexProgram, the list of 
parameters returned from <B>cgGetDependentProgramArrayStateAssignmentParameter</B> would be: 
LightPosition, EyePosition, ModelViewProj, OuterRadius, InnerRadius.


</P>
<P>
If stateAssignment was for FragmentProgram, then the list of parameters returned from
<B>cgGetDependentProgramArrayStateAssignmentParameter</B> would be: Ambient, DiffuseMaterial,
LightColor, SpecularMaterial, LightColor, normalMap, normalizeCube, normalizeCube.


</P>

<H1><A NAME="ERRORS"><A NAME="7">ERRORS

</A></A></H1>
<P>
<B>CG_INVALID_STATE_ASSIGNMENT_HANDLE_ERROR</B> is generated if <B>sa</B> is not a valid state assignment.


</P>
<P>
<B>CG_OUT_OF_ARRAY_BOUNDS_ERROR</B> is generated if <B>index</B> is less than zero
or greater than or equal to the number of dependent parameters, as returned by 
<A HREF="cgGetNumDependentProgramArrayStateAssignmentParameters.html">cgGetNumDependentProgramArrayStateAssignmentParameters</A>.


</P>

<H1><A NAME="HISTORY"><A NAME="8">HISTORY

</A></A></H1>
<P>
<B>cgGetDependentProgramArrayStateAssignmentParameter</B> was introduced in Cg 3.0.


</P>

<H1><A NAME="SEE_ALSO"><A NAME="9">SEE ALSO

</A></A></H1>
<P>
<A HREF="cgGetNumDependentProgramArrayStateAssignmentParameters.html">cgGetNumDependentProgramArrayStateAssignmentParameters</A>

</P>

</BLOCKQUOTE>



</BODY>