Start of sfml

This commit is contained in:
Clément Le Bihan
2020-02-04 14:36:21 +01:00
parent 5d766f3200
commit 98168435c1
3 changed files with 17 additions and 11 deletions
+6
View File
@@ -4,7 +4,9 @@
#include <iostream>
#include <string>
#include "sources/Renderer/IRenderer.hpp"
#include "sources/SNES.hpp"
#include "sources/Renderer/SFRenderer.hpp"
using namespace ComSquare;
@@ -16,5 +18,9 @@ int main(int argc, char **argv)
}
Memory::MemoryBus bus;
SNES snes(std::make_shared<Memory::MemoryBus>(bus), argv[1]);
bus.mapComponents(snes);
Renderer::SFRenderer renderer(600, 800, 60);
return 0;
}
+5 -11
View File
@@ -18,21 +18,14 @@ namespace ComSquare::Renderer
void SFRenderer::drawScreen()
{
sf::Sprite sprite;
sf::Image image;
image.loadFromMemory(this->pixelBuffer, sizeof(sf::Uint8 *) * this->videoMode.height * this->videoMode.width * 4);
//image.LoadFromPixels(800, 600, this->pixelBuffer);
//sprite.SetImage(image);
//window.Draw(sprite);
//window.Display();
this->texture.update(this->pixelBuffer);
this->sprite.setTexture(this->texture, false);
this->renderer.draw(this->sprite);
}
void SFRenderer::putPixel(int x, int y, uint8_t rgba)
{
(void) x;
(void) y;
(void) rgba;
this->pixelBuffer[this->videoMode.width * x + y] = rgba;
}
SFRenderer::SFRenderer(unsigned int height, unsigned int width, int maxFPS)
@@ -44,6 +37,7 @@ namespace ComSquare::Renderer
// note the size of the buffer is multiplied by 4 due to rgba values
this->window.create(this->videoMode, "ComSquare Emulator", sf::Style::Default);
this->window.setFramerateLimit(maxFPS);
this->texture.create(width, height);
}
}
+6
View File
@@ -18,10 +18,16 @@ namespace ComSquare::Renderer
private:
//! @brief The main Window.
sf::Window window;
//! @brief The Renderer for the window.
sf::RenderWindow renderer;
//! @brief Video Mode containing the height and width of the window.
sf::VideoMode videoMode;
//! @brief The buffer containing all of our pixels
sf::Uint8 *pixelBuffer;
//! @brief The texture to render the array of pixels
sf::Texture texture;
//! @brief The sprite to render the array of pixels
sf::Sprite sprite;
public:
//! @brief Set a new name to the window, if there is already a name it will be overwrite.
//! @param newWindowName new title for the window.