Commit 865b9a62 authored by Julien David's avatar Julien David
Browse files

Ajout projet

parents
Loading
Loading
Loading
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