Merge pull request #495 from tomaka/link-docs

Add links to the crate root docs
This commit is contained in:
tomaka 2017-06-04 10:40:14 +02:00 committed by GitHub
commit 3b20aed990

View File

@ -11,46 +11,50 @@
//!
//! # Brief summary of Vulkan
//!
//! - The `Instance` object is the API entry point. It is the first object you must create before
//! starting to use Vulkan.
//! - The [`Instance`](instance/struct.Instance.html) object is the API entry point. It is the
//! first object you must create before starting to use Vulkan.
//!
//! - The `PhysicalDevice` object represents an implementation of Vulkan available on the system
//! (eg. a graphics card, a software implementation, etc.). Physical devices can be enumerated
//! from an instance with `PhysicalDevice::enumerate()`.
//! - The [`PhysicalDevice`](instance/struct.PhysicalDevice.html) object represents an
//! implementation of Vulkan available on the system (eg. a graphics card, a software
//! implementation, etc.). Physical devices can be enumerated from an instance with
//! [`PhysicalDevice::enumerate()`](instance/struct.PhysicalDevice.html#method.enumerate).
//!
//! - Once you have chosen a physical device to use, you can create a `Device` object from it. The
//! `Device` is the most important object of Vulkan, as it represents an open channel of
//! communicaton with a physical device. You always need to have one before you can do something
//! interesting things with Vulkan.
//! - Once you have chosen a physical device to use, you can create a
//! [`Device`](device/index.html) object from it. The `Device` is the most important
//! object of Vulkan, as it represents an open channel of communicaton with a physical device.
//! You always need to have one before you can do something interesting things with Vulkan.
//!
//! - `Buffer`s and `Image`s can be used to store data on memory accessible by the GPU (or
//! more generally by the Vulkan implementation). Buffers are usually used to store information
//! about vertices, lights, etc. or arbitrary data, while images are used to store textures or
//! multi-dimensional data.
//! - [*Buffers*](buffer/index.html) and [*images*](image/index.html) can be used to store data on
//! memory accessible by the GPU (or more generally by the Vulkan implementation). Buffers are
//! usually used to store information about vertices, lights, etc. or arbitrary data, while
//! images are used to store textures or multi-dimensional data.
//!
//! - In order to show something on the screen, you need a `Swapchain`. A `Swapchain` contains
//! special `Image`s that correspond to the content of the window or the monitor. When you
//! *present* a swapchain, the content of one of these special images is shown on the screen.
//! - In order to show something on the screen, you need a [`Swapchain`](swapchain/index.html).
//! A `Swapchain` contains special `Image`s that correspond to the content of the window or the
//! monitor. When you *present* a swapchain, the content of one of these special images is shown
//! on the screen.
//!
//! - In order to ask the GPU to do something, you must create a `CommandBuffer`. A `CommandBuffer`
//! contains a list of commands that the GPU must perform. This can include copies between
//! buffers, compute operations, or graphics operations. For the work to start, the
//! `CommandBuffer` must then be submitted to a `Queue`, which is obtained when you create
//! the `Device`.
//! - In order to ask the GPU to do something, you must create a
//! [*command buffer*](command_buffer/index.html). A command buffer contains a list of commands
//! that the GPU must perform. This can include copies between buffers and images, compute
//! operations, or graphics operations. For the work to start, the command buffer must then be
//! submitted to a [`Queue`](device/struct.Queue.html), which is obtained when you create the
//! `Device`.
//!
//! - In order to be able to add a compute operation or a graphics operation to a command buffer,
//! you need to have created a `ComputePipeline` or a `GraphicsPipeline` object that describes
//! the operation you want. `Shader`s are programs that the GPU will execute as part of a
//! pipeline. Descriptors can be used to access the content of buffers or images from within
//! shaders.
//! you need to have created a [`ComputePipeline` or a `GraphicsPipeline`
//! object](pipeline/index.html) that describes the operation you want. These objects are usually
//! created during your program's initialization. `Shader`s are programs that the GPU will
//! execute as part of a pipeline. [*Descriptors*](descriptor/index.html) can be used to access
//! the content of buffers or images from within shaders.
//!
//! - For graphical operations, `RenderPass`es and `Framebuffer`s describe on which images the
//! implementation must draw upon.
//! - For graphical operations, [`RenderPass`es and `Framebuffer`s](framebuffer/index.html)
//! describe on which images the implementation must draw upon.
//!
//! - Once you have built a `CommandBuffer` that contains a list of commands, submitting it to the
//! GPU will return an object that implements the `GpuFuture` trait. `GpuFuture`s allow you to
//! chain multiple submissions together and are essential to performing multiple operations on
//! multiple different GPU queues. See [the `sync` module](sync/index.html) for more info.
//! - Once you have built a *command buffer* that contains a list of commands, submitting it to the
//! GPU will return an object that implements [the `GpuFuture` trait](sync/index.html).
//! `GpuFuture`s allow you to chain multiple submissions together and are essential to performing
//! multiple operations on multiple different GPU queues.
//!
//#![warn(missing_docs)] // TODO: activate