// Copyright (c) 2021 Dominic Masters
// 
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT

#pragma once
#include <dawn/dawn.h>
#include "framebuffer.h"

/**
 * Initialize the renderer.
 */
void renderInit();

/**
 * Render a single frame of the render loop. The renderer is not (currently)
 * responsible for render looping.
 * @param render The render manager
 */
void renderFrameStart(render_t *render);

/**
 * Cleanup a render context.
 */
void renderDispose();

/**
 * Sets the internal display resolution.
 * 
 * @param render Render context to resize.
 * @param width Width of the display (in pixels).
 * @param height Height of the display (in pixels).
 */
void renderSetResolution(render_t *render, int32_t width, int32_t height);