Files
ComSquare/sources/Renderer/IRenderer.hpp
2020-02-16 01:57:38 +01:00

41 lines
1.2 KiB
C++

//
// Created by cbihan on 1/30/20.
//
#ifndef COMSQUARE_IRENDERER_HPP
#define COMSQUARE_IRENDERER_HPP
#include <string>
namespace ComSquare
{
class SNES;
namespace Renderer
{
class IRenderer {
public:
//! @brief Set a new name to the window, if there is already a name it will be overwrite
virtual void setWindowName(std::string) = 0;
//! @brief Tells to the program if the window has been closed, and therefore if he should stop
bool shouldExit = true;
//! @brief Render the buffer to the window
virtual void drawScreen() = 0;
//! @brief Set a pixel to the coordinates x, y with the color rgba
//! @param x The x position of the window (0, 0 is the top left corner).
//! @param y The y position of the window (0, 0 is the top left corner).
//! @param rgba The color of the pixel (red, green, blue, alpha).
virtual void putPixel(unsigned x, unsigned y, uint32_t rgba) = 0;
//! @brief Use this function to create the window.
//! @param snes The snes game object (to call the update method).
//! @param maxFPS The number of FPS you aim to run on.
virtual void createWindow(SNES &snes, int maxFPS) = 0;
};
}
}
#endif //COMSQUARE_IRENDERER_HPP