diff options
Diffstat (limited to 'Smoke/renderer_gl.c')
-rw-r--r-- | Smoke/renderer_gl.c | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/Smoke/renderer_gl.c b/Smoke/renderer_gl.c index 0f91404..9bbd754 100644 --- a/Smoke/renderer_gl.c +++ b/Smoke/renderer_gl.c @@ -62,7 +62,37 @@ static int grid_cell_size = 50; -void renderer_load_texture(char *filename) +void renderer_load_raw_texture(char *filename) +{ + FILE *bitmap; + + + bitmap = fopen(filename, "rb"); + if (bitmap > 0) { + unsigned int filesize; + GLsizei width, height; + unsigned char *imagedata; + + fseek(bitmap, 0, SEEK_END); + filesize = ftell(bitmap); + imagedata = (unsigned char *)malloc((size_t)(filesize) /* *(char *) */); + + fseek(bitmap, 0, SEEK_SET); + fread(imagedata, (size_t)(filesize), 1, bitmap); + + glGenTextures(1, &texture); + glBindTexture(GL_TEXTURE_2D, texture); + gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGBA, 120, 120, GL_RGBA, GL_UNSIGNED_BYTE, imagedata); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + + free(imagedata); + fclose(bitmap); + } +} + + +void renderer_load_bmp_texture(char *filename) { FILE *bitmap; @@ -251,6 +281,7 @@ static void render_normals(void) glDisable(GL_LIGHTING); glBegin(GL_LINES); glColor3f(0.2f, 1.0f, 0.0f); + glLineWidth(1.0f); for (j = 0; j < DIM - 1; j++) { |