Dawn/src/dawnopengl/display/BackBufferRenderTarget.hpp
2022-10-20 07:49:42 -07:00

46 lines
1.4 KiB
C++

// Copyright (c) 2022 Dominic Masters
//
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT
#pragma once
#include "dawnopengl.hpp"
#include "display/RenderTarget.hpp"
namespace Dawn {
class RenderManager;
class BackBufferRenderTarget : public RenderTarget {
private:
RenderManager &renderManager;
float_t width = 1;
float_t height = 1;
struct Color clearColor = COLOR_CORNFLOWER_BLUE;
public:
/**
* Construct the back buffer render target.
*
* @param renderManager Render Manager for this back buffer target.
*/
BackBufferRenderTarget(RenderManager &renderManager);
/**
* Requests to modify the viewport directly. This is mostly to be called
* by whatever is setting the window/display resolution, so that the
* backbuffer can keep track of what the viewport size is. This should
* also be DPI aware, e.g. "4k @ 2xDPI, resulting in a 1080p equiv" should
* still call this method with 3840, 2160.
*
* @param width New width of the back buffer.
* @param height New height of the back buffer.
*/
void setSize(float_t width, float_t height);
float_t getWidth() override;
float_t getHeight() override;
void setClearColor(struct Color color) override;
void clear(flag8_t clearFlags) override;
void bind() override;
};
}