---
title: "Resources"
date: 2021-01-25T14:31:59-08:00
weight: 3
---

MoonWorks provides eight 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.

`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.

`RenderPass` is a structure that tells the `GraphicsPipeline` how it should use a `Framebuffer`.

`ComputePipeline` sets up the graphics device to do computational work using [compute shaders](https://anteru.net/blog/2018/intro-to-compute-shaders/index.html).


This is all pretty abstract. Let's get into some more detail.