mirror of
https://github.com/zoriya/ComSquare.git
synced 2026-05-29 17:02:21 +00:00
Start of sfml
This commit is contained in:
@@ -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;
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user