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
//! A data parallel rendering engine developed by the [Amethyst][am] project.
//! The source code is available for download on [GitHub][gh]. See the
//! [online book][bk] for a complete guide to using Amethyst.
//!
//! [am]: https://www.amethyst.rs/
//! [gh]: https://github.com/amethyst/amethyst/tree/develop/src/renderer
//! [bk]: https://www.amethyst.rs/book/

#![deny(missing_docs)]
#![doc(html_logo_url = "https://tinyurl.com/jtmm43a")]

extern crate amethyst_assets;
extern crate amethyst_core;
#[macro_use]
extern crate derivative;
#[macro_use]
extern crate error_chain;
extern crate fnv;
extern crate gfx;
extern crate gfx_core;
#[macro_use]
extern crate gfx_macros;
extern crate hetseq;
extern crate imagefmt;
extern crate rayon;
extern crate serde;
#[macro_use]
extern crate serde_derive;
extern crate shred;
extern crate shrev;
extern crate smallvec;
extern crate specs;
extern crate wavefront_obj;
extern crate winit;

#[cfg(all(feature = "d3d11", target_os = "windows"))]
extern crate gfx_device_dx11;
#[cfg(all(feature = "d3d11", target_os = "windows"))]
extern crate gfx_window_dxgi;

#[cfg(all(feature = "metal", target_os = "macos"))]
extern crate gfx_device_metal;
#[cfg(all(feature = "metal", target_os = "macos"))]
extern crate gfx_window_metal;

#[cfg(feature = "opengl")]
extern crate gfx_device_gl;
#[cfg(feature = "opengl")]
extern crate gfx_window_glutin;
#[cfg(feature = "opengl")]
extern crate glutin;

#[cfg(feature = "vulkan")]
extern crate gfx_device_vulkan;
#[cfg(feature = "vulkan")]
extern crate gfx_window_vulkan;

pub use bundle::RenderBundle;
pub use cam::{ActiveCamera, Camera, Projection};
pub use color::Rgba;
pub use config::DisplayConfig;
pub use formats::{build_mesh_with_combo, create_mesh_asset, create_texture_asset, BmpFormat,
                  ComboMeshCreator, ImageData, ImageError, JpgFormat, MeshCreator, MeshData,
                  ObjFormat, PngFormat, TextureData, TextureMetadata};
pub use input::{ElementState, Event, KeyboardInput, MouseButton, VirtualKeyCode, WindowEvent};
pub use light::{DirectionalLight, Light, PointLight, SpotLight, SunLight};
pub use mesh::{vertex_data, Mesh, MeshHandle, VertexBuffer};
pub use mtl::{Material, MaterialDefaults};
pub use pass::{DrawFlat, DrawFlatSeparate, DrawPbm, DrawPbmSeparate, DrawShaded,
               DrawShadedSeparate};
pub use pipe::{ColorBuffer, Data, DepthBuffer, DepthMode, Effect, EffectBuilder, Init, Meta,
               NewEffect, Pipeline, PipelineBuild, PipelineBuilder, PipelineData, PolyPipeline,
               PolyStage, PolyStages, Stage, StageBuilder, Target, TargetBuilder, Targets};
pub use renderer::Renderer;
pub use resources::{AmbientColor, ScreenDimensions, WindowMessages};
pub use system::RenderSystem;
pub use tex::{Texture, TextureBuilder, TextureHandle};
pub use types::{Encoder, Factory, PipelineState, Resources};
pub use vertex::{Attribute, AttributeFormat, Attributes, Color, Normal, PosColor, PosNormTangTex,
                 PosNormTex, PosTex, Position, Query, Separate, Tangent, TexCoord,
                 VertexBufferCombination, VertexFormat, With};

pub mod error;
pub mod pipe;

mod bundle;
mod cam;
mod color;
mod config;
mod formats;
mod input;
mod light;
mod mesh;
mod mtl;
mod pass;
mod renderer;
mod resources;
mod system;
mod tex;
mod types;
mod vertex;