build: only build d3d11 stuff for windows
This commit is contained in:
parent
7f01c9aad3
commit
9cdf646681
|
@ -20,9 +20,6 @@ runtime-opengl = ["gl", "librashader/gl"]
|
||||||
runtime-d3d11 = ["windows", "librashader/d3d11"]
|
runtime-d3d11 = ["windows", "librashader/d3d11"]
|
||||||
runtime-vulkan = ["ash", "librashader/vk"]
|
runtime-vulkan = ["ash", "librashader/vk"]
|
||||||
|
|
||||||
# Do not enable, for docs.rs build only.
|
|
||||||
docsrs = []
|
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
librashader = { path = "../librashader", version = "0.1.0-beta.7", features = ["internal"] }
|
librashader = { path = "../librashader", version = "0.1.0-beta.7", features = ["internal"] }
|
||||||
thiserror = "1.0.37"
|
thiserror = "1.0.37"
|
||||||
|
@ -31,7 +28,7 @@ gl = { version = "0.14.0", optional = true }
|
||||||
rustc-hash = "1.1.0"
|
rustc-hash = "1.1.0"
|
||||||
ash = { version = "0.37.2+1.3.238", optional = true }
|
ash = { version = "0.37.2+1.3.238", optional = true }
|
||||||
|
|
||||||
[dependencies.windows]
|
[target.'cfg(windows)'.dependencies.windows]
|
||||||
version = "0.44.0"
|
version = "0.44.0"
|
||||||
features = [
|
features = [
|
||||||
"Win32_Graphics_Direct3D11",
|
"Win32_Graphics_Direct3D11",
|
||||||
|
@ -42,4 +39,4 @@ optional = true
|
||||||
cbindgen = { git = "https://github.com/eqrion/cbindgen" }
|
cbindgen = { git = "https://github.com/eqrion/cbindgen" }
|
||||||
|
|
||||||
[package.metadata.docs.rs]
|
[package.metadata.docs.rs]
|
||||||
features = ["docsrs"]
|
targets = ["x86_64-pc-windows-msvc", "x86_64-unknown-linux-gnu"]
|
||||||
|
|
|
@ -11,15 +11,18 @@ pub type libra_error_t = Option<NonNull<LibrashaderError>>;
|
||||||
|
|
||||||
/// A handle to a OpenGL filter chain.
|
/// A handle to a OpenGL filter chain.
|
||||||
#[cfg(feature = "runtime-opengl")]
|
#[cfg(feature = "runtime-opengl")]
|
||||||
|
#[doc(cfg(feature = "runtime-opengl"))]
|
||||||
pub type libra_gl_filter_chain_t = Option<NonNull<librashader::runtime::gl::capi::FilterChainGL>>;
|
pub type libra_gl_filter_chain_t = Option<NonNull<librashader::runtime::gl::capi::FilterChainGL>>;
|
||||||
|
|
||||||
/// A handle to a Direct3D11 filter chain.
|
/// A handle to a Direct3D11 filter chain.
|
||||||
#[cfg(all(feature = "runtime-d3d11"))]
|
#[cfg(all(target_os = "windows", feature = "runtime-d3d11"))]
|
||||||
|
#[doc(cfg(all(target_os = "windows", feature = "runtime-d3d11")))]
|
||||||
pub type libra_d3d11_filter_chain_t =
|
pub type libra_d3d11_filter_chain_t =
|
||||||
Option<NonNull<librashader::runtime::d3d11::capi::FilterChainD3D11>>;
|
Option<NonNull<librashader::runtime::d3d11::capi::FilterChainD3D11>>;
|
||||||
|
|
||||||
/// A handle to a Vulkan filter chain.
|
/// A handle to a Vulkan filter chain.
|
||||||
#[cfg(feature = "runtime-vulkan")]
|
#[cfg(feature = "runtime-vulkan")]
|
||||||
|
#[doc(cfg(feature = "runtime-vulkan"))]
|
||||||
pub type libra_vk_filter_chain_t =
|
pub type libra_vk_filter_chain_t =
|
||||||
Option<NonNull<librashader::runtime::vk::capi::FilterChainVulkan>>;
|
Option<NonNull<librashader::runtime::vk::capi::FilterChainVulkan>>;
|
||||||
|
|
||||||
|
|
|
@ -26,15 +26,15 @@ pub enum LibrashaderError {
|
||||||
#[error("The provided parameter name was invalid.")]
|
#[error("The provided parameter name was invalid.")]
|
||||||
UnknownShaderParameter(*const c_char),
|
UnknownShaderParameter(*const c_char),
|
||||||
#[cfg(feature = "runtime-opengl")]
|
#[cfg(feature = "runtime-opengl")]
|
||||||
|
#[doc(cfg(feature = "runtime-opengl"))]
|
||||||
#[error("There was an error in the OpenGL filter chain.")]
|
#[error("There was an error in the OpenGL filter chain.")]
|
||||||
OpenGlFilterError(#[from] librashader::runtime::gl::error::FilterChainError),
|
OpenGlFilterError(#[from] librashader::runtime::gl::error::FilterChainError),
|
||||||
#[cfg(any(
|
#[cfg(all(target_os = "windows", feature = "runtime-d3d11"))]
|
||||||
feature = "docsrs",
|
#[doc(cfg(all(target_os = "windows", feature = "runtime-d3d11")))]
|
||||||
all(target_os = "windows", feature = "runtime-d3d11")
|
|
||||||
))]
|
|
||||||
#[error("There was an error in the D3D11 filter chain.")]
|
#[error("There was an error in the D3D11 filter chain.")]
|
||||||
D3D11FilterError(#[from] librashader::runtime::d3d11::error::FilterChainError),
|
D3D11FilterError(#[from] librashader::runtime::d3d11::error::FilterChainError),
|
||||||
#[cfg(feature = "runtime-vulkan")]
|
#[cfg(feature = "runtime-vulkan")]
|
||||||
|
#[doc(cfg(feature = "runtime-vulkan"))]
|
||||||
#[error("There was an error in the Vulkan filter chain.")]
|
#[error("There was an error in the Vulkan filter chain.")]
|
||||||
VulkanFilterError(#[from] librashader::runtime::vk::error::FilterChainError),
|
VulkanFilterError(#[from] librashader::runtime::vk::error::FilterChainError),
|
||||||
}
|
}
|
||||||
|
@ -181,10 +181,7 @@ impl LibrashaderError {
|
||||||
LibrashaderError::UnknownShaderParameter(_) => LIBRA_ERRNO::SHADER_PARAMETER_ERROR,
|
LibrashaderError::UnknownShaderParameter(_) => LIBRA_ERRNO::SHADER_PARAMETER_ERROR,
|
||||||
#[cfg(feature = "runtime-opengl")]
|
#[cfg(feature = "runtime-opengl")]
|
||||||
LibrashaderError::OpenGlFilterError(_) => LIBRA_ERRNO::RUNTIME_ERROR,
|
LibrashaderError::OpenGlFilterError(_) => LIBRA_ERRNO::RUNTIME_ERROR,
|
||||||
#[cfg(any(
|
#[cfg(all(target_os = "windows", feature = "runtime-d3d11"))]
|
||||||
feature = "docsrs",
|
|
||||||
all(target_os = "windows", feature = "runtime-d3d11")
|
|
||||||
))]
|
|
||||||
LibrashaderError::D3D11FilterError(_) => LIBRA_ERRNO::RUNTIME_ERROR,
|
LibrashaderError::D3D11FilterError(_) => LIBRA_ERRNO::RUNTIME_ERROR,
|
||||||
#[cfg(feature = "runtime-vulkan")]
|
#[cfg(feature = "runtime-vulkan")]
|
||||||
LibrashaderError::VulkanFilterError(_) => LIBRA_ERRNO::RUNTIME_ERROR,
|
LibrashaderError::VulkanFilterError(_) => LIBRA_ERRNO::RUNTIME_ERROR,
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
#![feature(doc_cfg)]
|
||||||
//! The C API for [librashader](https://docs.rs/librashader/).
|
//! The C API for [librashader](https://docs.rs/librashader/).
|
||||||
//!
|
//!
|
||||||
//! The librashader C API is designed to be loaded dynamically via `librashader_ld.h`, but static usage is also
|
//! The librashader C API is designed to be loaded dynamically via `librashader_ld.h`, but static usage is also
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
//! librashader runtime C APIs
|
//! librashader runtime C APIs
|
||||||
|
#[doc(cfg(feature = "runtime-opengl"))]
|
||||||
#[cfg(feature = "runtime-opengl")]
|
#[cfg(feature = "runtime-opengl")]
|
||||||
pub mod gl;
|
pub mod gl;
|
||||||
|
|
||||||
#[cfg(any(
|
#[doc(cfg(all(target_os = "windows", feature = "runtime-d3d11")))]
|
||||||
feature = "docsrs",
|
#[cfg(all(target_os = "windows", feature = "runtime-d3d11"))]
|
||||||
all(target_os = "windows", feature = "runtime-d3d11")
|
|
||||||
))]
|
|
||||||
pub mod d3d11;
|
pub mod d3d11;
|
||||||
|
|
||||||
|
#[doc(cfg(feature = "runtime-vulkan"))]
|
||||||
#[cfg(feature = "runtime-vulkan")]
|
#[cfg(feature = "runtime-vulkan")]
|
||||||
pub mod vk;
|
pub mod vk;
|
||||||
|
|
|
@ -24,7 +24,7 @@ ash = { version = "0.37.1+1.3.235", optional = true }
|
||||||
|
|
||||||
num-traits = "0.2.15"
|
num-traits = "0.2.15"
|
||||||
|
|
||||||
[dependencies.windows]
|
[target.'cfg(windows)'.dependencies.windows]
|
||||||
optional = true
|
optional = true
|
||||||
version = "0.44.0"
|
version = "0.44.0"
|
||||||
features = [
|
features = [
|
||||||
|
|
|
@ -9,11 +9,11 @@ pub mod gl;
|
||||||
pub mod vk;
|
pub mod vk;
|
||||||
|
|
||||||
/// DXGI common conversions.
|
/// DXGI common conversions.
|
||||||
#[cfg(feature = "dxgi")]
|
#[cfg(all(target_os = "windows", feature = "dxgi"))]
|
||||||
pub mod dxgi;
|
pub mod dxgi;
|
||||||
|
|
||||||
/// Direct3D 11 common conversions.
|
/// Direct3D 11 common conversions.
|
||||||
#[cfg(feature = "d3d11")]
|
#[cfg(all(target_os = "windows", feature = "d3d11"))]
|
||||||
pub mod d3d11;
|
pub mod d3d11;
|
||||||
|
|
||||||
mod viewport;
|
mod viewport;
|
||||||
|
|
|
@ -23,7 +23,7 @@ spirv_cross = "0.23.1"
|
||||||
rustc-hash = "1.1.0"
|
rustc-hash = "1.1.0"
|
||||||
bytemuck = "1.12.3"
|
bytemuck = "1.12.3"
|
||||||
|
|
||||||
[dependencies.windows]
|
[target.'cfg(windows)'.dependencies.windows]
|
||||||
version = "0.44.0"
|
version = "0.44.0"
|
||||||
features = [
|
features = [
|
||||||
"Win32_Foundation",
|
"Win32_Foundation",
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
#![cfg(target_os = "windows")]
|
||||||
//! librashader Direct3D 11 runtime
|
//! librashader Direct3D 11 runtime
|
||||||
//!
|
//!
|
||||||
//! This crate should not be used directly.
|
//! This crate should not be used directly.
|
||||||
|
|
|
@ -25,7 +25,7 @@ librashader-runtime-vk = { path = "../librashader-runtime-vk", version = "0.1.0-
|
||||||
ash = { version = "0.37.1+1.3.235", optional = true }
|
ash = { version = "0.37.1+1.3.235", optional = true }
|
||||||
spirv_cross = { version = "0.23.1", optional = true, features = ["glsl"] }
|
spirv_cross = { version = "0.23.1", optional = true, features = ["glsl"] }
|
||||||
|
|
||||||
[dependencies.windows]
|
[target.'cfg(windows)'.dependencies.windows]
|
||||||
version = "0.44.0"
|
version = "0.44.0"
|
||||||
features = [
|
features = [
|
||||||
"Win32_Graphics_Direct3D11",
|
"Win32_Graphics_Direct3D11",
|
||||||
|
@ -42,3 +42,6 @@ reflect = []
|
||||||
preprocess = []
|
preprocess = []
|
||||||
presets = []
|
presets = []
|
||||||
internal = []
|
internal = []
|
||||||
|
|
||||||
|
[package.metadata.docs.rs]
|
||||||
|
targets = ["x86_64-pc-windows-msvc", "x86_64-unknown-linux-gnu"]
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
//! or [`librashader.h`](https://github.com/SnowflakePowered/librashader/blob/master/include/librashader.h).
|
//! or [`librashader.h`](https://github.com/SnowflakePowered/librashader/blob/master/include/librashader.h).
|
||||||
|
|
||||||
#[cfg(feature = "presets")]
|
#[cfg(feature = "presets")]
|
||||||
#[doc(cfg(presets))]
|
#[doc(cfg(feature = "presets"))]
|
||||||
/// Parsing and usage of shader presets.
|
/// Parsing and usage of shader presets.
|
||||||
///
|
///
|
||||||
/// This module contains facilities and types for parsing `.slangp` shader presets files.
|
/// This module contains facilities and types for parsing `.slangp` shader presets files.
|
||||||
|
@ -60,7 +60,7 @@ pub mod presets {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "preprocess")]
|
#[cfg(feature = "preprocess")]
|
||||||
#[doc(cfg(preprocess))]
|
#[doc(cfg(feature = "preprocess"))]
|
||||||
/// Loading and preprocessing of 'slang' shader source files.
|
/// Loading and preprocessing of 'slang' shader source files.
|
||||||
///
|
///
|
||||||
/// This module contains facilities and types for resolving `#include` directives in `.slang`
|
/// This module contains facilities and types for resolving `#include` directives in `.slang`
|
||||||
|
@ -74,7 +74,7 @@ pub mod preprocess {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "reflect")]
|
#[cfg(feature = "reflect")]
|
||||||
#[doc(cfg(reflect))]
|
#[doc(cfg(feature = "reflect"))]
|
||||||
/// Shader reflection and cross-compilation.
|
/// Shader reflection and cross-compilation.
|
||||||
///
|
///
|
||||||
/// The `type_alias_impl_trait` nightly feature is required. You should choose your
|
/// The `type_alias_impl_trait` nightly feature is required. You should choose your
|
||||||
|
@ -117,7 +117,7 @@ pub mod preprocess {
|
||||||
/// [naga](https://docs.rs/naga/latest/naga/index.html), a pure-Rust shader compiler, when it has
|
/// [naga](https://docs.rs/naga/latest/naga/index.html), a pure-Rust shader compiler, when it has
|
||||||
/// matured enough to support [the features librashader needs](https://github.com/gfx-rs/naga/issues/1012).
|
/// matured enough to support [the features librashader needs](https://github.com/gfx-rs/naga/issues/1012).
|
||||||
///
|
///
|
||||||
/// In the meanwhile, the only supported compilation type is [GlslangCompilation](crate::front::GlslangCompilation),
|
/// In the meanwhile, the only supported compilation type is [GlslangCompilation](crate::reflect::cross::GlslangCompilation),
|
||||||
/// which does transpilation via [shaderc](https://github.com/google/shaderc) and [SPIRV-Cross](https://github.com/KhronosGroup/SPIRV-Cross).
|
/// which does transpilation via [shaderc](https://github.com/google/shaderc) and [SPIRV-Cross](https://github.com/KhronosGroup/SPIRV-Cross).
|
||||||
pub mod reflect {
|
pub mod reflect {
|
||||||
/// Supported shader compiler targets.
|
/// Supported shader compiler targets.
|
||||||
|
@ -140,14 +140,11 @@ pub mod reflect {
|
||||||
pub mod cross {
|
pub mod cross {
|
||||||
pub use librashader_reflect::front::GlslangCompilation;
|
pub use librashader_reflect::front::GlslangCompilation;
|
||||||
|
|
||||||
#[cfg(feature = "gl")]
|
|
||||||
/// The version of GLSL to compile to.
|
/// The version of GLSL to compile to.
|
||||||
pub use spirv_cross::glsl::Version as GlslVersion;
|
pub use spirv_cross::glsl::Version as GlslVersion;
|
||||||
|
|
||||||
#[cfg(feature = "gl")]
|
|
||||||
pub use librashader_reflect::back::cross::CrossGlslContext;
|
pub use librashader_reflect::back::cross::CrossGlslContext;
|
||||||
|
|
||||||
#[cfg(any(feature = "d3d11", feature = "d3d12"))]
|
|
||||||
pub use librashader_reflect::back::cross::CrossHlslContext;
|
pub use librashader_reflect::back::cross::CrossHlslContext;
|
||||||
|
|
||||||
pub use librashader_reflect::reflect::cross::CompiledAst;
|
pub use librashader_reflect::reflect::cross::CompiledAst;
|
||||||
|
@ -171,13 +168,13 @@ pub mod reflect {
|
||||||
|
|
||||||
/// Shader runtimes to execute a filter chain on a GPU surface.
|
/// Shader runtimes to execute a filter chain on a GPU surface.
|
||||||
#[cfg(feature = "runtime")]
|
#[cfg(feature = "runtime")]
|
||||||
#[doc(cfg(runtime))]
|
#[doc(cfg(feature = "runtime"))]
|
||||||
pub mod runtime {
|
pub mod runtime {
|
||||||
pub use librashader_common::{Size, Viewport};
|
pub use librashader_common::{Size, Viewport};
|
||||||
pub use librashader_runtime::parameters::FilterChainParameters;
|
pub use librashader_runtime::parameters::FilterChainParameters;
|
||||||
|
|
||||||
#[cfg(feature = "gl")]
|
#[cfg(feature = "gl")]
|
||||||
#[doc(cfg(gl))]
|
#[doc(cfg(feature = "gl"))]
|
||||||
/// Shader runtime for OpenGL 3.3+.
|
/// Shader runtime for OpenGL 3.3+.
|
||||||
///
|
///
|
||||||
/// DSA support requires OpenGL 4.6.
|
/// DSA support requires OpenGL 4.6.
|
||||||
|
@ -201,8 +198,8 @@ pub mod runtime {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "d3d11")]
|
#[cfg(all(target_os = "windows", feature = "d3d11"))]
|
||||||
#[doc(cfg(d3d11))]
|
#[doc(cfg(all(target_os = "windows", feature = "d3d11")))]
|
||||||
/// Shader runtime for Direct3D 11.
|
/// Shader runtime for Direct3D 11.
|
||||||
pub mod d3d11 {
|
pub mod d3d11 {
|
||||||
pub use librashader_runtime_d3d11::{
|
pub use librashader_runtime_d3d11::{
|
||||||
|
@ -224,7 +221,7 @@ pub mod runtime {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "vk")]
|
#[cfg(feature = "vk")]
|
||||||
#[doc(cfg(vk))]
|
#[doc(cfg(feature = "vk"))]
|
||||||
/// Shader runtime for Vulkan 1.3+.
|
/// Shader runtime for Vulkan 1.3+.
|
||||||
pub mod vk {
|
pub mod vk {
|
||||||
pub use librashader_runtime_vk::{
|
pub use librashader_runtime_vk::{
|
||||||
|
|
Loading…
Reference in a new issue