<HTML> <HEAD> <TITLE>cgD3D10SetDevice</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>cgD3D10SetDevice</B> - set the D3D device </P> <H1><A NAME="SYNOPSIS"><A NAME="2">SYNOPSIS </A></A></H1> <PRE> #include <Cg/cgD3D10.h> HRESULT cgD3D10SetDevice( CGcontext context, ID3D10Device * device ); </PRE> <H1><A NAME="PARAMETERS"><A NAME="3">PARAMETERS </A></A></H1> <DL> <DT><STRONG>context </STRONG></DT> <DD> <P> The context in which to set the current device. </P> <DT><STRONG>device </STRONG></DT> <DD> <P> Pointer to an <B>ID3D10Device</B> interface that the expanded interface will use for any D3D-specific routine it may call. This parameter can be <B>NULL</B> to free all D3D resources used by the expanded interface and remove its reference to the D3D device. </P> </DD></DL> <H1><A NAME="RETURN_VALUES"><A NAME="4">RETURN VALUES </A></A></H1> <P> Returns <B>D3D_OK</B> if the function succeeds. </P> <P> Returns the D3D failure code if the function fails due to a D3D call. </P> <H1><A NAME="DESCRIPTION"><A NAME="5">DESCRIPTION </A></A></H1> <P> <B>cgD3D10SetDevice</B> informs the expanded interface of the new D3D device. This will destroy any D3D resources for programs previously loaded with <A HREF="cgD3D10LoadProgram.html">cgD3D10LoadProgram</A> and use the new D3D device to recreate them. The expanded interface will increment the reference count to the D3D device, so this function must eventually be called with <B>NULL</B> to release that reference so D3D can be properly shut down. </P> <P> If <B>device</B> is <B>NULL</B>, all D3D resources for programs previously loaded with <A HREF="cgD3D10LoadProgram.html">cgD3D10LoadProgram</A> are destroyed. However, these programs are still considered managed by the expanded interface, so if a new D3D device is set later these programs will be recreated using the new D3D device. </P> <P> If a new device is being set, all D3D resources for programs previously loaded with <A HREF="cgD3D10LoadProgram.html">cgD3D10LoadProgram</A> are rebuilt using the new device. All shadowed parameters for these programs are maintained across D3D device changes except texture parameters. Since textures in D3D are bound to a particular D3D device, these resources cannot be saved across device changes. When these textures are recreated for the new D3D device, they must be re-bound to the sampler parameter. </P> <P> Note that calling <B>cgD3D10SetDevice(NULL)</B> does not destroy any core runtime resources (<B>CGprograms</B>, <B>CGparameters</B>, etc.) used by the expanded interface. These must be destroyed seperately using <A HREF="cgDestroyProgram.html">cgDestroyProgram</A> and <A HREF="cgDestroyContext.html">cgDestroyContext</A>. </P> <H1><A NAME="EXAMPLES"><A NAME="6">EXAMPLES </A></A></H1> <PRE> // pDev is an ID3D10Device interface initialized elsewhere ... cgD3D10SetDevice(pDev); </PRE> <H1><A NAME="ERRORS"><A NAME="7">ERRORS </A></A></H1> <P> <B>cgD3D10Failed</B> is generated if a D3D function returns an error. </P> <H1><A NAME="HISTORY"><A NAME="8">HISTORY </A></A></H1> <P> <B>cgD3D10SetDevice</B> was introduced in Cg 2.1. </P> <H1><A NAME="SEE_ALSO"><A NAME="9">SEE ALSO </A></A></H1> <P> <A HREF="cgD3D10GetDevice.html">cgD3D10GetDevice</A>, <A HREF="cgDestroyProgram.html">cgDestroyProgram</A>, <A HREF="cgDestroyContext.html">cgDestroyContext</A>, <A HREF="cgD3D10LoadProgram.html">cgD3D10LoadProgram</A> </P> </BLOCKQUOTE> </BODY>