int main (int argc, char** argv) { const char* imagename = argc < 2 ? "images/fungus.dds" : argv[1]; glutInit (&argc, argv); glutInitDisplayMode (GLUT_DOUBLE|GLUT_RGBA); glutInitWindowSize (800, 600); glutCreateWindow (imagename); glutDisplayFunc (display); glutKeyboardFunc (key); /* Load texture */ int err = ddsGL_load (imagename, &texture); if (err != DDS_OK) { printf ("DDS load error: %s\n", dds_error_string (err)); return (1); } atexit (cleanup); glutMainLoop (); return (0); }
// bitmap functions int gr_stub_bm_load(ubyte type, int n, char *filename, CFILE *img_cfp, int *w, int *h, int *bpp, ubyte *c_type, int *mm_lvl, int *size) { int dds_ct; if (type == BM_TYPE_DDS) { int dds_error = dds_read_header( filename, img_cfp, w, h, bpp, &dds_ct, mm_lvl, size ); if (dds_error != DDS_ERROR_NONE) { mprintf(("DDS ERROR: Couldn't open '%s' -- %s\n", filename, dds_error_string(dds_error))); return -1; } switch (dds_ct) { case DDS_DXT1: *c_type = BM_TYPE_DXT1; break; case DDS_DXT3: *c_type = BM_TYPE_DXT3; break; case DDS_DXT5: *c_type = BM_TYPE_DXT5; break; case DDS_UNCOMPRESSED: *c_type = BM_TYPE_DDS; break; case DDS_CUBEMAP_DXT1: *c_type = BM_TYPE_CUBEMAP_DXT1; break; case DDS_CUBEMAP_DXT3: *c_type = BM_TYPE_CUBEMAP_DXT3; break; case DDS_CUBEMAP_DXT5: *c_type = BM_TYPE_CUBEMAP_DXT5; break; case DDS_CUBEMAP_UNCOMPRESSED: *c_type = BM_TYPE_CUBEMAP_DDS; break; default: Error(LOCATION, "bad DDS file compression. Not using DXT1,3,5 %s", filename); return -1; } } // if its a tga file else if (type == BM_TYPE_TGA) { int tga_error = targa_read_header( filename, img_cfp, w, h, bpp, NULL ); if ( tga_error != TARGA_ERROR_NONE ) { mprintf(( "tga: Couldn't open '%s'\n", filename )); return -1; } } // if its a jpg file else if (type == BM_TYPE_JPG) { int jpg_error=jpeg_read_header( filename, img_cfp, w, h, bpp, NULL ); if ( jpg_error != JPEG_ERROR_NONE ) { mprintf(( "jpg: Couldn't open '%s'\n", filename )); return -1; } } // if its a pcx file else if (type == BM_TYPE_PCX) { int pcx_error = pcx_read_header( filename, img_cfp, w, h, bpp, NULL ); if ( pcx_error != PCX_ERROR_NONE ) { mprintf(( "pcx: Couldn't open '%s'\n", filename )); return -1; } } else { Assert( 0 ); return -1; } return 0; }