1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
// Rhyoea. Vulkan FFI bindings for Rust
// Copyright © 2020 Adrien Jeser <adrien@jeser.me>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

//! Rhyoea is a Vulkan API bindings for Rust programming language
//!
//! Vulkan is a low-overhead, cross-platform 3D graphics and computing API.
//! Vulkan targets high-performance realtime 3D graphics applications such as
//! video games and interactive media across all platforms. Compared to OpenGL
//! and `Direct3D` 11, and like `Direct3D` 12 and Metal, Vulkan is intended to
//! offer higher performance and more balanced CPU/GPU usage.
//!
//! Features
//! ========
//! None
//!
//! Reading Suggestions
//! ===================
//!
//! If you start under Rhyoea, you should read the [examples](https://gitlab.com/ametha/rhyoea/tree/master/examples).
//! The [instance package](instance/index.html) is the entry point.
//!
//! Environnement
//! =============
//!
//! This section itemize how to prepare the developement environnement
//!
//! Rhyoea use the nightly rust version, with many components.
//! You should install it by [`RustUp`](https://rustup.rs/)
//! ```shell
//! $ curl https://sh.rustup.rs -sSf | sh
//! $ rustup install nightly
//! ```
//!
//! How to use the library
//! ----------------------
//!
//! Add this in your `Cargo.toml`:
//!
//! ```shell
//! [dependencies]
//! rhyoea_common = "^0"
//! ```
//!
//! Developpement
//! -------------
//!
//! ```shell
//! $ git clone git@gitlab.com:ametha/rhyoea.git
//! $ cd rhyoea
//! $ rustup override set nightly # Set the nightly rust version
//! $ cargo test # Run tests
//! ```
//!
//! ### New features
//!
//! The implementation of a new feature follows the steps:
//!
//! 1. Create an issue on [`Gitlab`](https://gitlab.com/ametha/rhyoea/issues/new)
//! 2. The maintener project assign and tag the issue
//! 3. Create the merge request
//! 4. Pull the branch
//! 5. Work on the branch
//! 6. Push the branch
//! 7. Send a notification to maintener project (@jeser)
//! 8. Merge the request

#![deny(warnings)]
#![deny(absolute_paths_not_starting_with_crate)]
#![deny(anonymous_parameters)]
#![deny(bare_trait_objects)]
#![deny(box_pointers)]
#![deny(deprecated_in_future)]
#![deny(elided_lifetimes_in_paths)]
#![deny(explicit_outlives_requirements)]
#![deny(keyword_idents)]
#![deny(missing_copy_implementations)]
#![deny(missing_debug_implementations)]
#![deny(missing_docs)]
#![deny(missing_crate_level_docs)]
#![deny(private_doc_tests)]
#![deny(single_use_lifetimes)]
#![deny(trivial_casts)]
#![deny(trivial_numeric_casts)]
#![deny(unreachable_pub)]
#![deny(unused_extern_crates)]
#![deny(unused_import_braces)]
#![deny(unused_labels)]
#![deny(unused_lifetimes)]
#![deny(unused_qualifications)]
#![deny(unused_results)]
#![deny(missing_doc_code_examples)]
#![cfg_attr(feature = "cargo-clippy", deny(clippy::all))]
#![cfg_attr(feature = "cargo-clippy", deny(clippy::pedantic))]
#![cfg_attr(feature = "cargo-clippy", deny(clippy::nursery))]
#![cfg_attr(feature = "cargo-clippy", deny(clippy::cargo))]

pub mod ffi;
pub mod helpers;