Loading Makefile 0 → 100644 +19 −0 Original line number Diff line number Diff line CFLAGS = `sdl2-config --libs --cflags` -ggdb3 -O0 --std=c99 -Wall -lSDL2_image -lm FIGURES = src/figures/point.o all: main.o src/liste_figure.o src/couleur.o src/gestion_evenement.o $(FIGURES) gcc main.o src/liste_figure.o src/couleur.o src/gestion_evenement.o $(FIGURES) -o projet $(CFLAGS) test_couleur: tests/test_couleur.o src/couleur.o gcc tests/test_couleur.o src/couleur.o -o tests/test_couleur ./tests/test_couleur rm tests/test_couleur test_point: tests/test_point.o src/figures/point.o src/couleur.o gcc tests/test_point.o src/figures/point.o src/couleur.o -o tests/test_point $(CFLAGS) ./tests/test_point rm tests/test_point test: test_couleur test_point main.c 0 → 100644 +80 −0 Original line number Diff line number Diff line #include <SDL2/SDL.h> #include <SDL2/SDL_image.h> #include <SDL2/SDL_timer.h> #include"src/liste_figure.h" #include"src/figures/point.h" #include"src/gestion_evenement.h" int inialisation_SDL(SDL_Window ** fenetre, int largeur, int hauteur, SDL_Renderer ** renderer); void fermeture_SDL(SDL_Window * fenetre, SDL_Renderer * renderer); void gestion_evenements(int * close); void rendu_fenetre(SDL_Renderer * renderer, liste_figure_t * l); int main(int argc, char *argv[]) { SDL_Window * fenetre; SDL_Renderer * rendu; int close = inialisation_SDL(&fenetre, 1000, 1000, &rendu); if( close < 0 ) return EXIT_FAILURE; // Cette partie sert d'exemple de création de figures et NE DOIT PLUS ETRE dans le rendu final. liste_figure_t * l = creer_liste(); for( int i = 0; i < 1000; i++) liste_inserer_fin(l, creer_point(i, 500, creer_couleur(255,0,0))); for( int i = 0; i < 1000; i++){ liste_inserer_fin(l, creer_point(500, i, creer_couleur(0,0,255))); } // fin de l'exemple while (!close) { gestion_evenements(&close); rendu_fenetre(rendu, l); } fermeture_SDL(fenetre, rendu); return EXIT_SUCCESS; } void rendu_fenetre(SDL_Renderer * rendu, liste_figure_t * l){ SDL_SetRenderDrawColor(rendu, 255, 255, 255, 255); SDL_RenderClear(rendu); for(maillon_figure_t * tmp = l->premier; tmp != NULL; tmp = tmp->suivant){ tmp->figure->afficher(rendu, tmp->figure); } SDL_RenderPresent(rendu); } int inialisation_SDL(SDL_Window ** fenetre, int largeur, int hauteur, SDL_Renderer ** rendu){ // Quitte le programme en cas d'erreur if (SDL_Init(SDL_INIT_EVERYTHING) != 0) { printf("error initializing SDL: %s\n", SDL_GetError()); return -1; } *fenetre = SDL_CreateWindow("PROJET L2 Structures Algébriques", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, largeur, hauteur, 0); *rendu = SDL_CreateRenderer(*fenetre, -1, 0); return 0; } void fermeture_SDL(SDL_Window * fenetre, SDL_Renderer * rendu){ SDL_DestroyRenderer(rendu); SDL_DestroyWindow(fenetre); SDL_Quit(); } src/couleur.c 0 → 100644 +10 −0 Original line number Diff line number Diff line #include"couleur.h" couleur_t creer_couleur(unsigned int rouge, unsigned int vert, unsigned int bleu){ couleur_t resultat; resultat.rouge = rouge; resultat.vert = vert; resultat.bleu = bleu; return resultat; } src/couleur.h 0 → 100644 +19 −0 Original line number Diff line number Diff line #ifndef __COULEUR_H__ #define __COULEUR_H__ typedef struct couleur_s{ unsigned int rouge; unsigned int vert; unsigned int bleu; }couleur_t; /** Cette fonction initialise une structure de type couleur_t, où une couleur est définie en fonction de trois valeurs, rouge, vert et bleu, toutes trois comprises entre 0 et 255. @requires rouge <= 255 && vert <= 255 && bleu <= 255 @ensures resultat.rouge == rouge && resultat.vert == vert && resultat.bleu == bleu */ couleur_t creer_couleur(unsigned int rouge, unsigned int vert, unsigned int bleu); #endif src/dessin.c 0 → 100644 +18 −0 Original line number Diff line number Diff line /** Projet L2 Structures Algébriques 2022 Auteur(e): */ #include"dessin.h" void tracer_ligne(int x1, int y1, int x2, int y2){ } void tracer_rectangle(int x1, int y1, int x2, int y2){ } void tracer_triangle(int x1, int y1, int x2, int y2, int x3, int y3){ } void tracer_octant(int centre_x, int centre_y, int rayon){ } Loading
Makefile 0 → 100644 +19 −0 Original line number Diff line number Diff line CFLAGS = `sdl2-config --libs --cflags` -ggdb3 -O0 --std=c99 -Wall -lSDL2_image -lm FIGURES = src/figures/point.o all: main.o src/liste_figure.o src/couleur.o src/gestion_evenement.o $(FIGURES) gcc main.o src/liste_figure.o src/couleur.o src/gestion_evenement.o $(FIGURES) -o projet $(CFLAGS) test_couleur: tests/test_couleur.o src/couleur.o gcc tests/test_couleur.o src/couleur.o -o tests/test_couleur ./tests/test_couleur rm tests/test_couleur test_point: tests/test_point.o src/figures/point.o src/couleur.o gcc tests/test_point.o src/figures/point.o src/couleur.o -o tests/test_point $(CFLAGS) ./tests/test_point rm tests/test_point test: test_couleur test_point
main.c 0 → 100644 +80 −0 Original line number Diff line number Diff line #include <SDL2/SDL.h> #include <SDL2/SDL_image.h> #include <SDL2/SDL_timer.h> #include"src/liste_figure.h" #include"src/figures/point.h" #include"src/gestion_evenement.h" int inialisation_SDL(SDL_Window ** fenetre, int largeur, int hauteur, SDL_Renderer ** renderer); void fermeture_SDL(SDL_Window * fenetre, SDL_Renderer * renderer); void gestion_evenements(int * close); void rendu_fenetre(SDL_Renderer * renderer, liste_figure_t * l); int main(int argc, char *argv[]) { SDL_Window * fenetre; SDL_Renderer * rendu; int close = inialisation_SDL(&fenetre, 1000, 1000, &rendu); if( close < 0 ) return EXIT_FAILURE; // Cette partie sert d'exemple de création de figures et NE DOIT PLUS ETRE dans le rendu final. liste_figure_t * l = creer_liste(); for( int i = 0; i < 1000; i++) liste_inserer_fin(l, creer_point(i, 500, creer_couleur(255,0,0))); for( int i = 0; i < 1000; i++){ liste_inserer_fin(l, creer_point(500, i, creer_couleur(0,0,255))); } // fin de l'exemple while (!close) { gestion_evenements(&close); rendu_fenetre(rendu, l); } fermeture_SDL(fenetre, rendu); return EXIT_SUCCESS; } void rendu_fenetre(SDL_Renderer * rendu, liste_figure_t * l){ SDL_SetRenderDrawColor(rendu, 255, 255, 255, 255); SDL_RenderClear(rendu); for(maillon_figure_t * tmp = l->premier; tmp != NULL; tmp = tmp->suivant){ tmp->figure->afficher(rendu, tmp->figure); } SDL_RenderPresent(rendu); } int inialisation_SDL(SDL_Window ** fenetre, int largeur, int hauteur, SDL_Renderer ** rendu){ // Quitte le programme en cas d'erreur if (SDL_Init(SDL_INIT_EVERYTHING) != 0) { printf("error initializing SDL: %s\n", SDL_GetError()); return -1; } *fenetre = SDL_CreateWindow("PROJET L2 Structures Algébriques", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, largeur, hauteur, 0); *rendu = SDL_CreateRenderer(*fenetre, -1, 0); return 0; } void fermeture_SDL(SDL_Window * fenetre, SDL_Renderer * rendu){ SDL_DestroyRenderer(rendu); SDL_DestroyWindow(fenetre); SDL_Quit(); }
src/couleur.c 0 → 100644 +10 −0 Original line number Diff line number Diff line #include"couleur.h" couleur_t creer_couleur(unsigned int rouge, unsigned int vert, unsigned int bleu){ couleur_t resultat; resultat.rouge = rouge; resultat.vert = vert; resultat.bleu = bleu; return resultat; }
src/couleur.h 0 → 100644 +19 −0 Original line number Diff line number Diff line #ifndef __COULEUR_H__ #define __COULEUR_H__ typedef struct couleur_s{ unsigned int rouge; unsigned int vert; unsigned int bleu; }couleur_t; /** Cette fonction initialise une structure de type couleur_t, où une couleur est définie en fonction de trois valeurs, rouge, vert et bleu, toutes trois comprises entre 0 et 255. @requires rouge <= 255 && vert <= 255 && bleu <= 255 @ensures resultat.rouge == rouge && resultat.vert == vert && resultat.bleu == bleu */ couleur_t creer_couleur(unsigned int rouge, unsigned int vert, unsigned int bleu); #endif
src/dessin.c 0 → 100644 +18 −0 Original line number Diff line number Diff line /** Projet L2 Structures Algébriques 2022 Auteur(e): */ #include"dessin.h" void tracer_ligne(int x1, int y1, int x2, int y2){ } void tracer_rectangle(int x1, int y1, int x2, int y2){ } void tracer_triangle(int x1, int y1, int x2, int y2, int x3, int y3){ } void tracer_octant(int centre_x, int centre_y, int rayon){ }