From 296c99f0593dbe9b730d658866c2f4879f53f266 Mon Sep 17 00:00:00 2001 From: grovesNL Date: Tue, 18 Oct 2022 13:17:35 -0230 Subject: [PATCH] Add documentation to all public types Fixes #11 --- src/error.rs | 2 ++ src/lib.rs | 12 +++++++++++- src/text_atlas.rs | 2 ++ src/text_render.rs | 4 ++++ 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/error.rs b/src/error.rs index daffea8..0de51f9 100644 --- a/src/error.rs +++ b/src/error.rs @@ -3,6 +3,7 @@ use std::{ fmt::{self, Display, Formatter}, }; +/// An error that occurred while preparing text for rendering. #[derive(Clone, Copy, Debug, Eq, PartialEq)] pub enum PrepareError { AtlasFull, @@ -16,6 +17,7 @@ impl Display for PrepareError { impl Error for PrepareError {} +/// An error that occurred while rendering text. #[derive(Clone, Copy, Debug, Eq, PartialEq)] pub enum RenderError { RemovedFromAtlas, diff --git a/src/lib.rs b/src/lib.rs index 712b514..4eacb02 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -11,15 +11,22 @@ use recently_used::RecentlyUsedMap; pub use text_atlas::TextAtlas; pub use text_render::TextRenderer; +/// The color to use when rendering text. #[repr(C)] pub struct Color { + /// The red component of the color. pub r: u8, + /// The green component of the color. pub g: u8, + /// The blue component of the color. pub b: u8, + /// The alpha component of the color. pub a: u8, } +/// Allows text to be colored during rendering. pub trait HasColor: Copy { + /// The color to use when rendering text. fn color(&self) -> Color; } @@ -44,16 +51,19 @@ pub(crate) struct GlyphToRender { color: [u8; 4], } +/// The screen resolution to use when rendering text. #[repr(C)] #[derive(Clone, Copy, Debug, Eq, PartialEq)] pub struct Resolution { + /// The width of the screen in pixels. pub width: u32, + /// The height of the screen in pixels. pub height: u32, } #[repr(C)] #[derive(Clone, Copy, Debug, Eq, PartialEq)] -pub struct Params { +pub(crate) struct Params { screen_resolution: Resolution, _pad: [u32; 2], } diff --git a/src/text_atlas.rs b/src/text_atlas.rs index 6326b02..982ebbf 100644 --- a/src/text_atlas.rs +++ b/src/text_atlas.rs @@ -13,6 +13,7 @@ use wgpu::{ use crate::{GlyphDetails, GlyphToRender, Params, RecentlyUsedMap, Resolution}; +/// An atlas containing a cache of rasterized glyphs that can be rendered. pub struct TextAtlas { pub(crate) texture_pending: Vec, pub(crate) texture: Texture, @@ -27,6 +28,7 @@ pub struct TextAtlas { } impl TextAtlas { + /// Creates a new `TextAtlas`. pub fn new(device: &Device, _queue: &Queue, format: TextureFormat) -> Self { let max_texture_dimension_2d = device.limits().max_texture_dimension_2d; let width = max_texture_dimension_2d; diff --git a/src/text_render.rs b/src/text_render.rs index 6789188..2f847ae 100644 --- a/src/text_render.rs +++ b/src/text_render.rs @@ -14,6 +14,7 @@ use crate::{ TextAtlas, TextOverflow, }; +/// A text renderer that uses cached glyphs to render text into an existing render pass. pub struct TextRenderer { vertex_buffer: Buffer, vertex_buffer_size: u64, @@ -25,6 +26,7 @@ pub struct TextRenderer { } impl TextRenderer { + /// Creates a new `TextRenderer`. pub fn new(device: &Device, _queue: &Queue) -> Self { let vertex_buffer_size = next_copy_buffer_size(4096); let vertex_buffer = device.create_buffer(&BufferDescriptor { @@ -56,6 +58,7 @@ impl TextRenderer { } } + /// Prepares all of the provided layouts for rendering. pub fn prepare( &mut self, device: &Device, @@ -344,6 +347,7 @@ impl TextRenderer { Ok(()) } + /// Renders all layouts that were previously provided to `prepare`. pub fn render<'pass>( &'pass mut self, atlas: &'pass TextAtlas,