Cg Toolkit Cg 3.1 Toolkit Documentation
Cg / Runtime / CgD3D10 / cgD3D10SetDevice

Name

cgD3D10SetDevice - set the D3D device

Synopsis

#include <Cg/cgD3D10.h>

HRESULT cgD3D10SetDevice( CGcontext context,
                          ID3D10Device * device );

Parameters

context
The context in which to set the current device.
device
Pointer to an ID3D10Device interface that the expanded interface will use for any D3D-specific routine it may call. This parameter can be NULL to free all D3D resources used by the expanded interface and remove its reference to the D3D device.

Return Values

Returns D3D_OK if the function succeeds.

Returns the D3D failure code if the function fails due to a D3D call.

Description

cgD3D10SetDevice informs the expanded interface of the new D3D device. This will destroy any D3D resources for programs previously loaded with cgD3D10LoadProgram 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 NULL to release that reference so D3D can be properly shut down.

If device is NULL, all D3D resources for programs previously loaded with cgD3D10LoadProgram 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.

If a new device is being set, all D3D resources for programs previously loaded with cgD3D10LoadProgram 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.

Note that calling cgD3D10SetDevice(NULL) does not destroy any core runtime resources (CGprograms, CGparameters, etc.) used by the expanded interface. These must be destroyed seperately using cgDestroyProgram and cgDestroyContext.

Examples

// pDev is an ID3D10Device interface initialized elsewhere
...
cgD3D10SetDevice(pDev);

Errors

cgD3D10Failed is generated if a D3D function returns an error.

History

cgD3D10SetDevice was introduced in Cg 2.1.

See Also

cgD3D10GetDevice, cgDestroyProgram, cgDestroyContext, cgD3D10LoadProgram


Cg Toolkit | Cg Toolkit | Download | Release Archive | Profiles | Reference | Books | Discussions |


Cg Runtime CgD3D10

cgD3D10BindProgram
cgD3D10CreateBufferFromObject
cgD3D10CreateBuffer
cgD3D10GetBufferByIndex
cgD3D10GetBufferObject
cgD3D10GetCompiledProgram
cgD3D10GetDevice
cgD3D10GetIASignatureByPass
cgD3D10GetLastError
cgD3D10GetLatestGeometryProfile
cgD3D10GetLatestPixelProfile
cgD3D10GetLatestVertexProfile
cgD3D10GetManageTextureParameters
cgD3D10GetOptimalOptions
cgD3D10GetProgramErrors
cgD3D10IsProfileSupported
cgD3D10IsProgramLoaded
cgD3D10LoadProgram
cgD3D10RegisterStates
cgD3D10SetDevice
cgD3D10SetManageTextureParameters
cgD3D10SetSamplerStateParameter
cgD3D10SetTextureParameter
cgD3D10SetTextureSamplerStateParameter
cgD3D10TranslateCGerror
cgD3D10TranslateHRESULT
cgD3D10TypeToSize
cgD3D10UnbindProgram
cgD3D10UnloadProgram