aboutsummaryrefslogtreecommitdiff
path: root/src/texture.c
diff options
context:
space:
mode:
authortaw27 <taw27@84d2e878-0bd5-11dd-ad15-13eda11d74c5>2008-07-18 09:42:41 +0000
committertaw27 <taw27@84d2e878-0bd5-11dd-ad15-13eda11d74c5>2008-07-18 09:42:41 +0000
commitfb8b31d3026c9f96acdde8fef9e81d41b9a62215 (patch)
tree6e91adab8629a46d2581e6b90e7203c9cf889572 /src/texture.c
parent22e44824699c214a91ae69dbf40d5ae336fa7441 (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.c14
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);