Compare commits

..

3 Commits

4 changed files with 59 additions and 0 deletions

View File

@@ -69,6 +69,7 @@ include_directories(${imgui_SOURCE_DIR} ${rlImGui_SOURCE_DIR})
set(SRC_CXX_FILES "./src/main.cpp" set(SRC_CXX_FILES "./src/main.cpp"
"./src/rules.cpp" "./src/rules.cpp"
"./src/world.cpp" "./src/world.cpp"
"./src/grid.cpp"
"./src/render.cpp" "./src/render.cpp"
"./src/control_menu.cpp" "./src/control_menu.cpp"
"./src/settings_menu.cpp" "./src/settings_menu.cpp"

28
includes/grid.hpp Normal file
View File

@@ -0,0 +1,28 @@
/*
* File name: grid.hpp
* Author: lejulien
* Date created: 01-01-1970 00:59:59
// Date modified: 12-01-2026 21:30:10
* ------
*/
#pragma once
#include <context.hpp>
#include <memory>
#include <settings_menu.hpp>
#include <world.hpp>
namespace gol {
class Grid {
public:
Grid(std::shared_ptr<ctx>);
~Grid() = default;
void display();
private:
std::shared_ptr<ctx> context_;
};
}; // namespace gol

27
src/grid.cpp Normal file
View File

@@ -0,0 +1,27 @@
/*
* File name: grid.cpp
* Author: lejulien
* Date created: 01-01-1970 00:59:59
// Date modified: 12-01-2026 21:30:10
* ------
*/
#include <raylib.h>
#include <grid.hpp>
namespace gol {
Grid::Grid(std::shared_ptr<ctx> context) : context_(context) {}
void Grid::display() {
auto cell_size = context_->settings_menu->getCellSize();
for (int j = 0; j < context_->world->getHeight(); j++) {
for (int i = 0; i < context_->world->getWidth(); i++) {
DrawRectangleLines(i * cell_size, j * cell_size, cell_size, cell_size,
GRAY);
}
}
}
} // namespace gol

View File

@@ -26,6 +26,7 @@
#include <selection.hpp> #include <selection.hpp>
#include <paterns_menu.hpp> #include <paterns_menu.hpp>
#include <patern_preview.hpp> #include <patern_preview.hpp>
#include <grid.hpp>
int main(int ac, char **av) { int main(int ac, char **av) {
std::shared_ptr<gol::ctx> context = std::make_shared<gol::ctx>(); std::shared_ptr<gol::ctx> context = std::make_shared<gol::ctx>();
@@ -109,6 +110,7 @@ int main(int ac, char **av) {
context->selection = std::make_shared<gol::Selection>(context); context->selection = std::make_shared<gol::Selection>(context);
context->paterns_menu = std::make_shared<gol::PaternsMenu>(context); context->paterns_menu = std::make_shared<gol::PaternsMenu>(context);
context->patern_preview = std::make_shared<gol::PaternPreview>(context); context->patern_preview = std::make_shared<gol::PaternPreview>(context);
gol::Grid grid(context);
// Speed handling values // Speed handling values
float sim_speed = 1.0f; float sim_speed = 1.0f;
@@ -155,6 +157,7 @@ int main(int ac, char **av) {
} }
BeginDrawing(); BeginDrawing();
ClearBackground(BLACK); ClearBackground(BLACK);
grid.display();
context->render->display(context->world); context->render->display(context->world);
context->selection->display(); context->selection->display();
context->patern_preview->display(); context->patern_preview->display();