initial commit

This commit is contained in:
loic 2024-12-13 02:02:58 +01:00
commit 46deb59efd
4 changed files with 104 additions and 0 deletions

43
Makefile Normal file
View file

@ -0,0 +1,43 @@
SRC_DIR = srcs/
SRCS= \
$(SRC_DIR)main.cpp \
$(SRC_DIR)windowManager/WindowManager.cpp
MAKEFLAGS += --no-print-directory
NAME = window
CC = c++
CFLAGS = -Wall -Wextra -Werror -g3
CPPFLAGS = -std=c++98 -MMD -MP
BUILDDIR = build/
INCLUDEDIR = includes/
DEPENDENCIESDIR = $(BUILDDIR)dependencies/
OBJS = $(SRCS:$(SRC_DIR)%.cpp=$(BUILDDIR)%.o)
DEPS = $(SRCS:$(SRC_DIR)%.cpp=$(DEPENDENCIESDIR)%.d)
-include $(DEPS)
all: $(NAME)
$(NAME): $(OBJS)
$(CC) $(CFLAGS) -Iincludes/ $(OBJS) -lX11 -o $(NAME)
$(BUILDDIR)%.o: $(SRC_DIR)%.cpp
@mkdir -p $(@D)
@mkdir -p $(DEPENDENCIESDIR)$(@:$(BUILDDIR)%$(@F)=%)
$(CC) $(CFLAGS) -I$(INCLUDEDIR) $(CPPFLAGS) -c $< -o $@
@mv $(@:%.o=%.d) $(DEPENDENCIESDIR)$(@:$(BUILDDIR)%.o=%.d)
clean:
rm -rf $(BUILDDIR)
fclean: clean
rm -f $(NAME)
re: fclean
@$(MAKE) all
.PHONY: all clean fclean re
.DEFAULT_GOAL := all

View file

@ -0,0 +1,25 @@
#ifndef NOISE_GENERATOR_WINDOWMANAGER_HPP
#define NOISE_GENERATOR_WINDOWMANAGER_HPP
#include <X11/Xlib.h>
#include "err.h"
class WindowManager {
public:
WindowManager(int width, int height);
~WindowManager();
void loop();
private:
Display *_display;
int _screen;
Window root;
Window win;
XEvent event;
int _width;
int _height;
};
#endif //NOISE_GENERATOR_WINDOWMANAGER_HPP

13
srcs/main.cpp Normal file
View file

@ -0,0 +1,13 @@
#include "windowManager/WindowManager.hpp"
#define WIDTH 500
#define HEIGHT 800
int main() {
WindowManager window(WIDTH, HEIGHT);
window.loop();
return 0;
}

View file

@ -0,0 +1,23 @@
#include "windowManager/WindowManager.hpp"
WindowManager::WindowManager(int width, int height) : _width(width), _height(height) {
_display = XOpenDisplay(NULL);
if (NULL == _display) errx(2, "unable to open display");
_screen = DefaultScreen(_display);
root = RootWindow(_display, _screen);
win = XCreateSimpleWindow(_display, root, 0, 0, _width, _height, 10,
0, 0x0f0f0f);
XMapWindow(_display, win);
XFlush(_display);
}
WindowManager::~WindowManager() {
XUnmapWindow(_display, win);
XDestroyWindow(_display, win);
XCloseDisplay(_display);
}
void WindowManager::loop() {
while (XNextEvent(_display, &event) != 0);
}