#include "julia.h" #include #include "functionAdd.h" //Crée et initialise une structure Julia Julia* initJulia(SDL_Surface* surf_screen, double* pd_zoom, Point* ppoint_pInit, Point* ppoint_coeffC, int i_minX, int i_maxX, int i_minY, int i_maxY, int* pi_nbIter, int* pi_numGradient, int* pi_reverse) { Julia *jul_julia;//Structure Julia jul_julia=myMalloc(sizeof(Julia));//allocation de l'espace mémoire nécéssaire à une structure de Julia (*jul_julia).surf_screen=surf_screen;//initialise l'attribut surf_screen de la structure de Julia, correspondant à l'écran (*jul_julia).pd_zoom = pd_zoom;//initialise l'attribut pd_zoom correspondant au zoom (*jul_julia).ppoint_pInit=ppoint_pInit;//initialise l'attribut correspond au point initial (*jul_julia).ppoint_coeffC=ppoint_coeffC;//initalise l'attribut correspondant aux coefficents de Julia (*jul_julia).i_minX=i_minX;//initialise l'attribut i_minX (*jul_julia).i_maxX=i_maxX;//initialise l'attribut i_maxX (*jul_julia).i_minY=i_minY;//initialise l'attribut i_minY (*jul_julia).i_maxY=i_maxY;//initialise l'attribut i_maxY (*jul_julia).pi_nbIter=pi_nbIter;//inialise l'attribut pi_nbIter correspondant au nombre d'itération (*jul_julia).pi_numGradient=pi_numGradient;//inialise l'attribut pi_nbIter correspondant au nombre d'itération (*jul_julia).pi_reverse=pi_reverse; return (jul_julia);//retourne la structure de Julia } //Libère l'espace mémoire alloué à une structure de Julia et à ses attributs void freeJulia(Julia* jul_julia) { SDL_FreeSurface(jul_julia->surf_screen);//libère l'espace mémoire alloué à l'écran free(jul_julia->pd_zoom);//libère l'espace mémoire alloué au zoom free(jul_julia->ppoint_pInit);//libère l'espace mémoire alloué au point initial free(jul_julia->ppoint_coeffC);//libère l'espace mémoire alloué aux coefficients de Julia free(jul_julia->pi_nbIter);//libère l'espace mémoire alloué au nombre d'itérations de Julia free(jul_julia);//libère l'espace mémoire alloué à la structure de Julia } //Libère l'espace mémoire alloué lors du traitement d'un thread de dessin de la fractale de Julia void freeThreadJulia(Julia* jul_julia, int *pi_oldIter, int* pi_nIter) { //free(pi_oldIter);//libère l'espace mémoire alloué au nombre d'itérations associé au pixel précédent free(pi_nIter);//libère l'espace mémoire alloué au nombre d'itérations associé au pixel en cours de calcul free(jul_julia);//libère l'espace alloué par la structure de Julia }