# Package icyllis.arc3d.granite

package icyllis.arc3d.granite
The Granite is our 2D graphics engine.

- Related Packages
  Package
  Description
  icyllis.arc3d.granite.geom
  icyllis.arc3d.granite.shading
- Class
  Description
  ArcShape
  AtlasProvider
  AtlasProvider groups various texture atlas management algorithms together.
  BakedGlyph
  This class holds information for a glyph about its pre-rendered image in a GPU texture.
  BakedTextBlob
  A BakedTextBlob contains a fully processed TextBlob, suitable for nearly immediate drawing on the GPU.
  BlendFormula
  Wraps the shader outputs and HW blend state that comprise a Porter Duff blend mode with coverage.
  Clip_old
  `Clip_old` is an abstract base class for producing a clip.
  ClipResult_old
  Produced by `Clip_old`.
  ClipStack
  GPU hierarchical clipping.
  ClipStack.ClipGeometry
  ClipStack.Element
  CommonDepthStencilSettings
  Draw
  Represents a recorded draw operation.
  DrawAtlas
  This class manages one or more atlas textures on behalf of primitive draws in Device.
  DrawAtlas.AtlasGenerationCounter
  Keep track of generation number for atlases and Plots.
  DrawAtlas.AtlasLocator
  AtlasLocator handles atlas position information.
  DrawAtlas.AtlasToken
  AtlasToken is used to sequence uploads relative to each other and to batches of draws.
  DrawAtlas.AtlasTokenTracker
  The TokenTracker encapsulates the incrementing and distribution of AtlasTokens.
  DrawAtlas.Plot
  The backing texture for an atlas is broken into a spatial grid of Plots.
  DrawAtlas.PlotBulkUseUpdater
  A class which can be handed back to an atlas for updating plots in bulk.
  DrawAtlas.PlotEvictionCallback
  An interface for eviction callbacks.
  DrawAtlas.PlotLocator
  Used to locate a plot in a `DrawAtlas`.
  DrawBufferManager
  Manages dynamic and streaming GPU buffers.
  DrawCommandList
  The list that holds commands of a draw pass, and can be replayed on `CommandBuffer`.
  DrawOrder
  DrawOrder aggregates the three separate sequences that Granite uses to re-order draws and their sub-steps as much as possible while preserving the painter's order semantics of the public API.
  DrawParams
  DrawPass
  A draw pass represents a render pass, with limited and sorted draw commands.
  DrawPass.SortKey
  The sorting is used to minimize state change.
  DrawTask
  FragmentHelpers
  Build `PaintParamsKey` and collect uniform data and texture sampler desc.
  FragmentHelpers.GradientData
  FragmentNode
  FragmentStage
  Represents a substage of a fragment shader, providing custom shader code to the Arc3D shading pipeline.
  FragmentStage.GenerateExpression
  Emit assignment expression statement.
  FragmentStage.Sampler
  FragmentStage.Uniform
  GeometryRenderer
  GeometryStep
  The GeometryProcessor represents some kind of geometric primitive.
  GeometryStep.ProgramImpl
  Every `GeometryStep` must be capable of creating a subclass of ProgramImpl.
  GlyphAtlasManager
  Manages all baked glyphs and their texture atlases for raster text rendering.
  GlyphStrike
  The GPU GlyphStrike holds GPU `Glyphs` for a Strike.
  GlyphStrikeCache
  GlyphStrikeCache manages strikes which are indexed by a Strike.
  GlyphVector
  GlyphVector provides a way to delay the lookup of `Glyphs` until the code is running on the GPU in single threaded mode.
  GraniteDevice
  The device that is backed by GPU.
  GraniteImage
  The image that is backed by GPU.
  GraniteSurface
  The surface that is backed by GPU.
  GraphicsPipelineDesc
  Descriptor of a graphics pipeline in Granite Renderer.
  KeyContext
  MeshDrawWriter
  PaintParams
  Parameters used for shading.
  PipelineBuilder
  Build AST for graphics pipeline.
  RendererProvider
  Granite defines a limited set of renderers in order to increase the likelihood of batching across draw calls, and reducing the number of shader permutations required.
  RenderPassTask
  RootTask
  ShaderCodeSource
  Manage all the fragment shader code snippets, used by Granite renderer.
  SimpleShape
  StaticBufferManager
  SubRunContainer
  A SubRun represents a method to draw a subregion of a GlyphRun, where GlyphRun represents the shaped text (positioned glyphs) and a strike.
  SubRunContainer.AtlasSubRun
  SubRunContainer.DirectMaskSubRun
  SubRunContainer.SubRun
  SubRun defines the most basic functionality of a SubRun; the ability to draw, and the ability to be in a list.
  SubRunContainer.TransformedMaskSubRun
  SubRunData
  SurfaceContext
  Helper to orchestrate commands for a particular surface.
  SurfaceDrawContext
  Used by `GraniteDevice`
  TextBlobCache
  TextBlobCache reuses data from previous drawing operations using multiple criteria to pick the best data for the draw.
  TextBlobCache.FeatureKey
  Secondary cache key.
  TextureDataGatherer
  TextureTracker
  TextureUtils
  UniformDataCache
  Add a block of data to the cache and return a stable pointer to the contents (assuming that a resettable gatherer had accumulated the input data pointer).
  UniformDataGatherer
  Build a uniform data block without reordering, use std140 or std430 layout.
  UniformTracker