// Copyright (c) 2021 Dominic Masters // // This software is released under the MIT License. // https://opensource.org/licenses/MIT #pragma once #include "../libs.h" #include "framebuffer.h" /** * Contains information about the current render state, can be used for querying * how the renderer is currently set up. */ typedef struct { /** Resolution (in pixels). Floats to allow subpixels in future. */ float width, height; } render_t; /** * 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, float width, float height); /** * Reset the framebuffer back to the original backbuffer. * * @param render Render to reset the backbuffer to. */ void renderResetFramebuffer(render_t *render);