ShaderUtil.IsGraphicsAPISupported
Declaration
public static bool IsGraphicsAPISupported(Shader shader, ref Rendering.PassIdentifier passIdentifier, Rendering.GraphicsDeviceType graphicsAPI);Параметры
| Параметр | Описание |
|---|---|
| шейдер | Шейдер, к которому относится пропуск. |
| passIdentifier | Идентификатор прохода в шейдере. |
| graphicsAPI | Графика API для проверки. |
Возвращаемое значение
логическое Если графика API поддерживается, возвращает true. В противном случае возвращает false.
Описание
Проверяет, поддерживает ли данный проход шейдера предоставленную графику API.
Используйте этот метод, чтобы проверить, имеет ли проход шейдера #pragma exclude_renderers или #pragma only_renderers, который исключает graphicsAPI.
ComputeShader FindComputeShader() { return (ComputeShader)AssetDatabase.LoadAssetAtPath("Assets/Shaders/ShaderName.compute", typeof(ComputeShader)); }
public void CheckComputeShaderSupportsD3D11() { // Get a compute shader object to check var shader = FindComputeShader(); // Check whether it supports D3D11 bool supports = ShaderUtil.IsGraphicsAPISupported(shader, GraphicsDeviceType.Direct3D11); // Log the result Debug.Log("Compute shader supports D3D11: " + supports); }
Declaration
public static bool IsGraphicsAPISupported(ComputeShader shader, Rendering.GraphicsDeviceType graphicsAPI);Параметры
| Параметр | Описание |
|---|---|
| шейдер | Проверяемый шейдер. |
| graphicsAPI | Графика API для проверки. |
Возвращаемое значение
логическое Если графика API поддерживается, возвращает true. В противном случае возвращает false.
Описание
Проверяет, поддерживает ли данный вычислительный шейдер предоставленную графику API.
Используйте этот метод, чтобы проверить, имеет ли вычислительный шейдер #pragma exclude_renderers или #pragma only_renderers, который исключает graphicsAPI.
public void CheckShaderPassSupportsD3D11()
{
// Get a shader object to check
var shader = Shader.Find("Custom/ShaderName");
// Check whether the first pass of the first subshader supports D3D11
bool supports = ShaderUtil.IsGraphicsAPISupported(shader, new PassIdentifier(0, 0), GraphicsDeviceType.Direct3D11);
// Log the result
Debug.Log("Shader pass supports D3D11: " + supports);
}