From aa4f454bb41092db679675690987cf479bd6d9f8 Mon Sep 17 00:00:00 2001 From: Maoake Teriierooiterai Date: Fri, 27 Mar 2026 13:46:31 +0100 Subject: [PATCH] starting to understand mlx --- Makefile | 2 ++ config.txt | 8 ++++---- test.txt | 35 ++++++++++++++++++++------------- test_mlx.py | 56 ++++++++++++++++++++++++++++++++++++----------------- 4 files changed, 66 insertions(+), 35 deletions(-) diff --git a/Makefile b/Makefile index 84ea907..3c0bbb0 100644 --- a/Makefile +++ b/Makefile @@ -31,3 +31,5 @@ run_test_maze_gen: PYTHONPATH=src uv run pytest tests/test_MazeGenerator.py run_test: uv run pytest +mlx: + uv run python3 test_mlx.py diff --git a/config.txt b/config.txt index 2c64e03..78fd4ec 100644 --- a/config.txt +++ b/config.txt @@ -1,8 +1,8 @@ -WIDTH=11 -HEIGHT=11 -ENTRY=4,3 +WIDTH=20 +HEIGHT=20 +ENTRY=2,3 EXIT=2,1 OUTPUT_FILE=maze.txt -PERFECT=False +PERFECT=True GENERATOR=DFS SOLVER=AStar diff --git a/test.txt b/test.txt index 11839f6..0a33b3a 100644 --- a/test.txt +++ b/test.txt @@ -1,15 +1,24 @@ -BD1553D3913 -C3AD54386AA -BAC5396C7AA -82956C5396E -A86D553AC53 -C295552C512 -9283B9693AA -AAAAC456AAA -AC2C553D2C2 -83C3D3C3E96 -C454547C547 +D39513D55513953913D3 +96E96C55396AC3EAAC3A +AD16D13BAC3C3C5683C6 +C5693AAAC383C553AA93 +953AAAC696EC13BAEC2A +AD46C2956913AA8693AA +83D156A93AAAEAC56AAA +AC3C57AEC6AC56957AEA +87C3956F956FFF853C52 +A956C53FC5157FABC556 +AC5517AFFFAFFFC43D13 +E953C3A93FAFD513C56A +96BC52AAAFAFFFAC513A +83C556C6AD4395693EC2 +AC539393C53A857AC53A +AB92AAAC556AE954796A +AAAAAC6B9156947956BA +C2AEA9546C55693A9786 +96C56C5555793AC6A96B +C55555555556C6D54456 -4,3 +2,3 2,1 -EENWWNNEEESESWSEESSEEESSSSWSWWNWNWWWNNWSSSESWWNWNNNENNNNNW +NEESWSWSWWNN diff --git a/test_mlx.py b/test_mlx.py index 3ad8ff7..9824837 100644 --- a/test_mlx.py +++ b/test_mlx.py @@ -1,26 +1,46 @@ from mlx import Mlx -mlx = Mlx() -mlx_ptr = mlx.mlx_init() -win_ptr = mlx.mlx_new_window(mlx_ptr, 800, 600, "Image") +class App: + def __init__(self): + self.mlx = Mlx() -# créer image -img_ptr = mlx.mlx_new_image(mlx_ptr, 800, 600) + self.mlx_ptr = self.mlx.mlx_init() + self.win_ptr = self.mlx.mlx_new_window(self.mlx_ptr, 800, 600, "Image") -# récupérer buffer -data, bpp, size_line, endian = mlx.mlx_get_data_addr(img_ptr) + self.img_ptr = self.mlx.mlx_new_image(self.mlx_ptr, 800, 600) -# dessiner dans le buffer -for y in range(600): - for x in range(800): - index = y * size_line + x * (bpp // 8) - data[index] = 0 # B - data[index + 1] = 0 # G - data[index + 2] = 255 # R - data[index + 3] = 0 # A + (self.data, + self.bpp, + self.size_line, + self.endian) = self.mlx.mlx_get_data_addr(self.img_ptr) -# afficher image -mlx.mlx_put_image_to_window(mlx_ptr, win_ptr, img_ptr, 0, 0) + for y in range(300): + for x in range(800): + index = y * self.size_line + x * (self.bpp // 8) + self.data[index] = 255 + self.data[index + 1] = 50 + self.data[index + 2] = 120 + self.data[index + 3] = 100 -mlx.mlx_loop(mlx_ptr) + for y in range(300, 600): + for x in range(800): + index = y * self.size_line + x * (self.bpp // 8) + self.data[index] = 150 + self.data[index + 1] = 50 + self.data[index + 2] = 120 + self.data[index + 3] = 100 + + # Hook fermeture fenêtre + self.mlx.mlx_hook(self.win_ptr, 33, 0, self.close_window, self) + + self.mlx.mlx_put_image_to_window(self.mlx_ptr, self.win_ptr, + self.img_ptr, 0, 0) + + def close_window(self, poop): + print("Closing window") + self.mlx.mlx_loop_exit(self.mlx_ptr) + + +app = App() +app.mlx.mlx_loop(app.mlx_ptr)