Add documentation to all public types

Fixes #11
This commit is contained in:
grovesNL 2022-10-18 13:17:35 -02:30 committed by Josh Groves
parent 7e2983374e
commit 296c99f059
4 changed files with 19 additions and 1 deletions

View file

@ -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,

View file

@ -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],
}

View file

@ -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<u8>,
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;

View file

@ -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,