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