Cg Direct3D9 Runtime API cgD3D9LoadProgram(3)
NAME
cgD3D9LoadProgram - create a D3D shader and enable the
expanded interface routines
SYNOPSIS
#include
HRESULT cgD3D9LoadProgram( CGprogram program,
CGbool paramShadowing,
DWORD assemFlags );
PARAMETERS
program A program whose compiled output is used to create
the D3D shader.
paramShadowing
Indicates if parameter shadowing is desired for
program.
assemFlags
The flags to pass to D3DXAssembleShader. See the D3D
documentation for a list of valid flags.
RETURN VALUES
Returns D3DOK if the function succeeds or program has
already been loaded.
Returns the D3D failure code if the function fails due to a
D3D call.
DESCRIPTION
cgD3D9LoadProgram creates a D3D shader for a program and
enables use of expanded interface routines for that program.
cgD3D9LoadProgram assembles the compiled Cg output for
program using D3DXAssembleShader and then creates a D3D
shader using IDirect3Device9::::::::CreateVertexShader or
IDirect3Device9::::::::CreatePixelShader depending on the
program's profile.
Parameter shadowing is enabled or disabled for the program
with paramShadowing. This behavior can be changed after
creating the program by calling
cgD3D9EnableParameterShadowing.
The D3D shader handle is not returned. If the shader handle
is desired by the application, the expanded interface should
not be used for that program.
EXAMPLES
Cg Toolkit 2.1 Last change: 1
Cg Direct3D9 Runtime API cgD3D9LoadProgram(3)
/ vertexProg is a CGprogram using a vertex profile
/ pixelProg is a CGprogram using a pixel profile
...
HRESULT hr1 = cgD3D9LoadProgram(vertexProg, TRUE, D3DXASMDEBUG);
HRESULT hr2 = cgD3D9LoadProgram(pixelProg, TRUE, 0);
ERORS
cgD3D9Failed is generated if a D3D function returns an
error.
CGD3D9ERINVALIDPROFILE is returned if program's profile is
not a supported D3D profile.
CGD3D9ERNODEVICE is returned if a required D3D device is
NUL. This usually occurs when an expanded interface
routine is called but a D3D device has not been set with
cgD3D9SetDevice.
HISTORY
cgD3D9LoadProgram was introduced in Cg 1.1.
SEE ALSO
cgD3D9EnableParameterShadowing,
cgD3D9ValidateVertexDeclaration, cgD3D9SetDevice
Cg Toolkit 2.1 Last change: 2
|