fixed... kinda? Works with valgrind, not vanilla
This commit is contained in:
		
							parent
							
								
									0315cbf7dd
								
							
						
					
					
						commit
						4f62acd157
					
				@ -7,7 +7,7 @@ set(TGT "surfaces-unies")
 | 
			
		||||
set(${TGT}_VERSION_MAJOR 0)
 | 
			
		||||
set(${TGT}_VERSION_MINOR 1)
 | 
			
		||||
 | 
			
		||||
set(CC_COVERAGE_COMPILE_FLAGS "-pedantic -Wall -Wextra -Wfloat-equal -Wwrite-strings -Wpointer-arith -Wcast-align -Wshadow -Wredundant-decls -Wdouble-promotion -Winit-self -Wswitch-default -Wswitch-enum -Wundef -Winline")
 | 
			
		||||
set(CC_COVERAGE_COMPILE_FLAGS "-Wall -Wextra -Wfloat-equal -Wwrite-strings -Wpointer-arith -Wcast-align -Wshadow -Wredundant-decls -Wdouble-promotion -Winit-self -Wswitch-default -Wswitch-enum -Wundef -Winline")
 | 
			
		||||
set(CMAKE_C_FLAGS_DEBUG "${CC_COVERAGE_COMPILE_FLAGS} -DDebug -g")
 | 
			
		||||
set(CMAKE_C_FLAGS_RELEASE "${CC_COVERAGE_COMPILE_FLAGS} -O3")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										18
									
								
								src/ppm.c
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								src/ppm.c
									
									
									
									
									
								
							@ -24,9 +24,7 @@
 | 
			
		||||
 *  \return Pointeur de fichier
 | 
			
		||||
 */
 | 
			
		||||
FILE* get_file(const char *t_filename, const char* t_mode) {
 | 
			
		||||
  printf("Opening, fopen(\"%s\", \"%s\")\n", t_filename, t_mode);
 | 
			
		||||
  FILE* fp = fopen(t_filename, t_mode);
 | 
			
		||||
  printf("Opened file... maybe?\n");
 | 
			
		||||
  if (!fp) {
 | 
			
		||||
    fprintf(stderr, "Unable to open file '%s'\n", t_filename);
 | 
			
		||||
    exit(FILE_IO_ERROR);
 | 
			
		||||
@ -108,20 +106,20 @@ void read_rgb(FILE* t_fp, const char* t_filename) {
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
unsigned long read_data(FILE *t_fp, Image *t_img, GLubyte *t_data,
 | 
			
		||||
unsigned long read_data(FILE *t_fp, Image *t_img, GLubyte **t_data,
 | 
			
		||||
                        const char *t_filename) {
 | 
			
		||||
  unsigned long size;
 | 
			
		||||
  /* allocation memoire */
 | 
			
		||||
  size = t_img->x * t_img->y * 3;
 | 
			
		||||
  printf("Size image %lu %lu => %lu\n", t_img->x, t_img->y, size);
 | 
			
		||||
  t_data = (GLubyte *)malloc((size_t)size * sizeof(GLubyte));
 | 
			
		||||
  assert(t_data);
 | 
			
		||||
  *t_data = (GLubyte *)malloc((size_t)size * sizeof(GLubyte));
 | 
			
		||||
  assert(*t_data);
 | 
			
		||||
  /* read pixel data from file */
 | 
			
		||||
  if (!fread(t_data, (size_t)1, (size_t)size, t_fp)) {
 | 
			
		||||
  if (!fread(*t_data, (size_t)1, (size_t)size, t_fp)) {
 | 
			
		||||
    fprintf(stderr, "Error loading image '%s'\n", t_filename);
 | 
			
		||||
    free(t_data);
 | 
			
		||||
    exit(FILE_IO_ERROR);
 | 
			
		||||
  }
 | 
			
		||||
  free(t_data);
 | 
			
		||||
  return size;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -138,10 +136,10 @@ unsigned long read_data(FILE *t_fp, Image *t_img, GLubyte *t_data,
 | 
			
		||||
 */
 | 
			
		||||
void dataToImage(Image *t_img, GLubyte *t_data, unsigned long t_size) {
 | 
			
		||||
  unsigned long i;
 | 
			
		||||
  printf("Hey 1\n");
 | 
			
		||||
  t_img->pixels = darrayNew(sizeof(Pixel));
 | 
			
		||||
  printf("Hey 2\n");
 | 
			
		||||
  printf("Size of data: %lu\n", t_size);
 | 
			
		||||
  for (i = 0; i < t_size; i += 3) {
 | 
			
		||||
    printf("%lu\t", i);
 | 
			
		||||
    darrayPushBack(t_img->pixels,
 | 
			
		||||
                   newPixel(t_data[i], t_data[i + 1], t_data[i + 2]));
 | 
			
		||||
  }
 | 
			
		||||
@ -190,7 +188,7 @@ int imageLoadPPM(const char *t_filename, Image *t_img) {
 | 
			
		||||
  check_for_comments(fp);                /* check for comments */
 | 
			
		||||
  read_file_size(fp, t_img, t_filename); /* read image size information */
 | 
			
		||||
  read_rgb(fp, t_filename);              /* read rgb component */
 | 
			
		||||
  size = read_data(fp, t_img, data, t_filename); /* read data from file */
 | 
			
		||||
  size = read_data(fp, t_img, &data, t_filename); /* read data from file */
 | 
			
		||||
  dataToImage(t_img, data, size);
 | 
			
		||||
  fclose(fp);
 | 
			
		||||
  return 1;
 | 
			
		||||
 | 
			
		||||
@ -15,7 +15,7 @@
 | 
			
		||||
/// \brief Ouvre un fichier avec les autorisations demandées
 | 
			
		||||
FILE *get_file(const char *filename, const char *mode);
 | 
			
		||||
/// \brief Lit le format d’un fichier ppm ouvert
 | 
			
		||||
void read_file_format(FILE* fp, const char* filename);
 | 
			
		||||
void read_file_format(FILE *fp, const char *filename);
 | 
			
		||||
/// \brief Vérifie et ignore d’éventuels commentaires du header d’un fichier
 | 
			
		||||
void check_for_comments(FILE *fp);
 | 
			
		||||
/// \brief Lit les dimensions du fichier ppm ouvert
 | 
			
		||||
@ -23,7 +23,8 @@ void read_file_size(FILE *fp, Image *img, const char *filename);
 | 
			
		||||
/// \brief Lit et vérifie le format RGB du fichier ppm
 | 
			
		||||
void read_rgb(FILE *fp, const char *filename);
 | 
			
		||||
/// \brief Lit dans le conteneur les données images du fichier ppm
 | 
			
		||||
unsigned long read_data(FILE *fp, Image *img, GLubyte *data, const char *filename);
 | 
			
		||||
unsigned long read_data(FILE *fp, Image *img, GLubyte **data,
 | 
			
		||||
                        const char *filename);
 | 
			
		||||
/// \brief Convertit les données brutes de fichier vers des conteneurs de pixels
 | 
			
		||||
void dataToImage(Image *img, GLubyte *data, unsigned long size);
 | 
			
		||||
/// \brief Convertit les pixels d’une image en tableau natif OpenGL
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user