本文整理汇总了C++中CPUTAssetLibraryDX11::CompileShaderFromFile方法的典型用法代码示例。如果您正苦于以下问题:C++ CPUTAssetLibraryDX11::CompileShaderFromFile方法的具体用法?C++ CPUTAssetLibraryDX11::CompileShaderFromFile怎么用?C++ CPUTAssetLibraryDX11::CompileShaderFromFile使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CPUTAssetLibraryDX11
的用法示例。
在下文中一共展示了CPUTAssetLibraryDX11::CompileShaderFromFile方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ASSERT
CPUTPixelShaderDX11 *CPUTPixelShaderDX11::CreatePixelShader(
const cString &name,
ID3D11Device *pD3dDevice,
const cString &shaderMain,
const cString &shaderProfile
)
{
ID3DBlob *pCompiledBlob = NULL;
ID3D11PixelShader *pNewPixelShader = NULL;
CPUTAssetLibraryDX11 *pAssetLibrary = (CPUTAssetLibraryDX11*)CPUTAssetLibrary::GetAssetLibrary();
CPUTResult result = pAssetLibrary->CompileShaderFromFile(name, shaderMain, shaderProfile, &pCompiledBlob);
ASSERT( CPUTSUCCESS(result), _L("Error compiling pixel shader:\n\n") );
// Create the pixel shader
// TODO: Move to pixel shader class
HRESULT hr = pD3dDevice->CreatePixelShader( pCompiledBlob->GetBufferPointer(), pCompiledBlob->GetBufferSize(), NULL, &pNewPixelShader );
ASSERT( SUCCEEDED(result), _L("Error compiling pixel shader:\n\n") );
// cString DebugName = _L("CPUTAssetLibraryDX11::GetPixelShader ")+name;
// CPUTSetDebugName(pNewPixelShader, DebugName);
CPUTPixelShaderDX11 *pNewCPUTPixelShader = new CPUTPixelShaderDX11( pNewPixelShader, pCompiledBlob );
// add shader to library
pAssetLibrary->AddPixelShader(name + shaderMain + shaderProfile, pNewCPUTPixelShader);
// pNewCPUTPixelShader->Release(); // We've added it to the library, so release our reference
// return the shader (and blob)
return pNewCPUTPixelShader;
}
示例2: ASSERT
CPUTDomainShaderDX11 *CPUTDomainShaderDX11::CreateDomainShader(
const cString &name,
const cString &shaderMain,
const cString &shaderProfile,
CPUT_SHADER_MACRO *pShaderMacros
)
{
ID3DBlob *pCompiledBlob = NULL;
ID3D11DomainShader *pNewDomainShader = NULL;
CPUTAssetLibraryDX11 *pAssetLibrary = (CPUTAssetLibraryDX11*)CPUTAssetLibrary::GetAssetLibrary();
CPUTResult result = pAssetLibrary->CompileShaderFromFile(name, shaderMain, shaderProfile, &pCompiledBlob, pShaderMacros);
ASSERT( CPUTSUCCESS(result), _L("Error compiling Domain shader:\n\n") );
UNREFERENCED_PARAMETER(result);
// Create the Domain shader
ID3D11Device *pD3dDevice = CPUT_DX11::GetDevice();
HRESULT hr = pD3dDevice->CreateDomainShader( pCompiledBlob->GetBufferPointer(), pCompiledBlob->GetBufferSize(), NULL, &pNewDomainShader );
ASSERT( SUCCEEDED(hr), _L("Error creating Domain shader:\n\n") );
UNREFERENCED_PARAMETER(hr);
// cString DebugName = _L("CPUTAssetLibraryDX11::GetDomainShader ")+name;
// CPUTSetDebugName(pNewDomainShader, DebugName);
CPUTDomainShaderDX11 *pNewCPUTDomainShader = new CPUTDomainShaderDX11( pNewDomainShader, pCompiledBlob );
// add shader to library
pAssetLibrary->AddDomainShader(name, _L(""), shaderMain + shaderProfile, pNewCPUTDomainShader, pShaderMacros);
// return the shader (and blob)
return pNewCPUTDomainShader;
}
示例3: ASSERT
CPUTGeometryShaderDX11 *CPUTGeometryShaderDX11::Create(
const std::string &name,
const std::string &shaderMain,
const std::string &shaderProfile,
CPUT_SHADER_MACRO *pShaderMacros
)
{
ID3DBlob *pCompiledBlob = NULL;
ID3D11GeometryShader *pNewGeometryShader = NULL;
CPUTAssetLibraryDX11 *pAssetLibrary = (CPUTAssetLibraryDX11*)CPUTAssetLibrary::GetAssetLibrary();
CPUTResult result = pAssetLibrary->CompileShaderFromFile(name, shaderMain, shaderProfile, &pCompiledBlob, pShaderMacros );
ASSERT( CPUTSUCCESS(result), "Error compiling Geometry shader:\n\n" );
UNREFERENCED_PARAMETER(result);
// Create the Geometry shader
ID3D11Device *pD3dDevice = CPUT_DX11::GetDevice();
HRESULT hr = pD3dDevice->CreateGeometryShader( pCompiledBlob->GetBufferPointer(), pCompiledBlob->GetBufferSize(), NULL, &pNewGeometryShader );
ASSERT( SUCCEEDED(hr), "Error creating Geometry shader:\n\n" );
UNREFERENCED_PARAMETER(hr);
// std::string DebugName = "CPUTAssetLibraryDX11::GetGeometryShader "+name;
// CPUTSetDebugName(pNewGeometryShader, DebugName);
CPUTGeometryShaderDX11 *pNewCPUTGeometryShader = new CPUTGeometryShaderDX11( pNewGeometryShader, pCompiledBlob );
// add shader to library
pAssetLibrary->AddGeometryShader(name, "", shaderMain + shaderProfile, pNewCPUTGeometryShader);
// pNewCPUTGeometryShader->Release(); // We've added it to the library, so release our reference
// return the shader (and blob)
return pNewCPUTGeometryShader;
}
示例4: ASSERT
CPUTComputeShaderDX11 *CPUTComputeShaderDX11::CreateComputeShader(
const cString &name,
ID3D11Device *pD3dDevice,
const cString &shaderMain,
const cString &shaderProfile
)
{
ID3DBlob *pCompiledBlob = NULL;
ID3D11ComputeShader *pNewComputeShader = NULL;
CPUTAssetLibraryDX11 *pAssetLibrary = (CPUTAssetLibraryDX11*)CPUTAssetLibrary::GetAssetLibrary();
CPUTResult result = pAssetLibrary->CompileShaderFromFile(name, shaderMain, shaderProfile, &pCompiledBlob);
ASSERT( CPUTSUCCESS(result), _L("Error compiling compute shader:\n\n") );
// Create the compute shader
// TODO: Move to compute shader class
HRESULT hr = pD3dDevice->CreateComputeShader( pCompiledBlob->GetBufferPointer(), pCompiledBlob->GetBufferSize(), NULL, &pNewComputeShader );
ASSERT( SUCCEEDED(result), _L("Error compiling compute shader:\n\n") );
// cString DebugName = _L("CPUTAssetLibraryDX11::GetComputeShader ")+name;
// CPUTSetDebugName(pNewComputeShader, DebugName);
CPUTComputeShaderDX11 *pNewCPUTComputeShader = new CPUTComputeShaderDX11( pNewComputeShader, pCompiledBlob );
// add shader to library
pAssetLibrary->AddComputeShader(name + shaderMain + shaderProfile, pNewCPUTComputeShader);
// return the shader
return pNewCPUTComputeShader;
}