MoonWorks provides nine different kinds of graphics resources that you use to construct your renderer.
`Buffer` holds generic data, like vertex information for example. The way this data is interpreted is determined by the pipeline.
`Texture` holds image data in a specified format.
`Sampler` tells a shader how it should sample texture data.
`ComputePipeline` sets up the graphics device to do computational work using [compute shaders](https://anteru.net/blog/2018/intro-to-compute-shaders/index.html).
`GraphicsPipeline` sets up the graphics device to do rendering work.
`RenderTarget` is a structure that can be rendered to.
`Framebuffer` is essentially a collection of `RenderTarget`s.