diff options
author | taw27 <taw27@84d2e878-0bd5-11dd-ad15-13eda11d74c5> | 2008-07-18 09:42:41 +0000 |
---|---|---|
committer | taw27 <taw27@84d2e878-0bd5-11dd-ad15-13eda11d74c5> | 2008-07-18 09:42:41 +0000 |
commit | fb8b31d3026c9f96acdde8fef9e81d41b9a62215 (patch) | |
tree | 6e91adab8629a46d2581e6b90e7203c9cf889572 /src/texture.c | |
parent | 22e44824699c214a91ae69dbf40d5ae336fa7441 (diff) |
Texture loader fussiness
Actually use MIPmapping
git-svn-id: svn://cook.msm.cam.ac.uk:745/thrust3d/thrust3d@142 84d2e878-0bd5-11dd-ad15-13eda11d74c5
Diffstat (limited to 'src/texture.c')
-rw-r--r-- | src/texture.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/texture.c b/src/texture.c index 464b057..fcd8659 100644 --- a/src/texture.c +++ b/src/texture.c @@ -44,7 +44,7 @@ void texture_load(RenderContext *ctx, char *name) { fprintf(stderr, "Couldn't open texture file '%s'\n", tmp); return ; } - + /* Check it's actually a PNG file */ header = malloc(8); fread(header, 1, 8, fh); @@ -62,7 +62,7 @@ void texture_load(RenderContext *ctx, char *name) { fclose(fh); return ; } - + info_ptr = png_create_info_struct(png_ptr); if ( !info_ptr ) { png_destroy_read_struct(&png_ptr, (png_infopp)NULL, (png_infopp)NULL); @@ -70,7 +70,7 @@ void texture_load(RenderContext *ctx, char *name) { fclose(fh); return; } - + end_info = png_create_info_struct(png_ptr); if ( !end_info ) { png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); @@ -85,19 +85,19 @@ void texture_load(RenderContext *ctx, char *name) { fprintf(stderr, "PNG read failed.\n"); return; } - + png_init_io(png_ptr, fh); png_set_sig_bytes(png_ptr, 8); /* Read! */ png_read_png(png_ptr, info_ptr, PNG_TRANSFORM_IDENTITY, NULL); - + width = png_get_image_width(png_ptr, info_ptr); height = png_get_image_height(png_ptr, info_ptr); bit_depth = png_get_bit_depth(png_ptr, info_ptr); channels = png_get_channels(png_ptr, info_ptr); if ( bit_depth != 8 ) { - fprintf(stderr, "Texture image '%s' isn't 8 bits per channel per pixel.\n", tmp); + fprintf(stderr, "Texture image '%s' doesn't have 8 bits per channel per pixel.\n", tmp); png_destroy_read_struct(&png_ptr, &info_ptr, &end_info); fclose(fh); return; @@ -133,7 +133,7 @@ void texture_load(RenderContext *ctx, char *name) { glGenTextures(1, &(ctx->textures[ctx->num_textures].texname)); glBindTexture(GL_TEXTURE_2D, ctx->textures[ctx->num_textures].texname); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); |