aboutsummaryrefslogtreecommitdiff
path: root/lib/init.c
blob: 9321038decdc633ef9f8265bd67267ccc65d95fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <stdio.h>
#include <stdbool.h>
#include <time.h>
#include <init.h>

#include <SDL2/SDL.h>
#include <SDL2/SDL_video.h>
#include <SDL2/SDL_ttf.h>

int main(int argc, char *argv[])
{
	if (SDL_InitSubSystem(SDL_INIT_VIDEO) < 0)
		SDL_Log("SDL fails to initialize! %s\n", SDL_GetError());
	
    if (TTF_Init() < 0)
        SDL_Log("SDL fails to initialize ttf! %s\n", SDL_GetError());

    int startw=600;
    int starth=600;

	SDL_Window *window = SDL_CreateWindow(PROJECT_NAME, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, startw, starth, SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL);
	if (!window) {
		printf("Failed to create window: %s\n", SDL_GetError());
	}
	SDL_Renderer *renderer = SDL_CreateRenderer(window,-1,SDL_RENDERER_SOFTWARE);
	if (!renderer) {
		printf("Failed to create renderer: %s\n", SDL_GetError());
	}

    srand(time(NULL));
    OBJECT_INER obj_storage[obj_n];

    STUFFS stuff = {
        startw,
        starth,
        false,
        0,
        0,
        NULL,
        NULL,
        (OBJECT){},
    };

    stuff.renderer = renderer;

    stuff.font = TTF_OpenFont("/usr/share/fonts/TTF/JetBrainsMono-Regular.ttf" , 10);

    init_stuffs(startw,starth,obj_storage,&stuff);



    for (int i = 0; i < obj_n; i++)
        stuff.obj.objs[i] = &obj_storage[i];

    SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND);

	bool quit = false;
	SDL_Event e;
	while (!quit) {
		while (SDL_PollEvent(&e)) {
			if (e.type == SDL_QUIT) {
				quit = true;
			}
			else if(e.type == SDL_MOUSEBUTTONDOWN){
				if(e.button.button==SDL_BUTTON_LEFT){
                    stuff.mousedown=true;
				} else if(e.button.button==SDL_BUTTON_RIGHT){
				}
			} else if(e.type==SDL_MOUSEBUTTONUP){
                stuff.mousedown=false;
			}
            stuff.mx=e.button.x;
            stuff.my=e.button.y;
		}
		draw(window,&stuff);
		SDL_Delay(10);
	}

    on_end(&stuff);
    TTF_CloseFont(stuff.font);
    SDL_DestroyRenderer(renderer);
    SDL_DestroyWindow(window);
    SDL_QuitSubSystem(SDL_INIT_VIDEO);

    SDL_Quit();

	return 0;
}