MaterialFactory::MaterialFactory() : m_materials() { m_materials["basic_white"] = create_basic_white(); m_materials["phong"] = create_phong(glm::vec3(0.5f, 0.5f, 0.5f), glm::vec3(1.0f, 1.0f, 1.0f), glm::vec3(1.0f, 1.0f, 1.0f), 5.0f); m_materials["Rim"] = create_phong(glm::vec3(0.5f, 0.5f, 0.5f), glm::vec3(1.0f, 1.0f, 1.0f), glm::vec3(1.0f, 1.0f, 1.0f), 1.0f); m_materials["Wheel"] = create_phong(glm::vec3(0.1f, 0.1f, 0.1f), glm::vec3(1.0f, 1.0f, 1.0f), glm::vec3(1.0f, 1.0f, 1.0f), 8.0f); m_materials["Body"] = create_phong(glm::vec3(0.5f, 0.5f, 0.8f), glm::vec3(1.0f, 1.0f, 1.0f), glm::vec3(0.5f, 0.5f, 0.5f), 2.5f); m_materials["skybox"] = create_skybox(); m_materials["textured"] = create_textured(); m_materials["video"] = create_video(); m_materials["video3d"] = create_video3d(false); m_materials["video3d-flip"] = create_video3d(true); }
static void preinit_skybox (void) { static int initialised = 0; kos_img_t txr; if (initialised) return; printf ("Loading sky box texture"); fflush (stdout); #if 0 skytex[0] = pvr_mem_malloc (512 * 512 * 2); png_to_texture ("/rd/sky23.png", skytex[0], PNG_NO_ALPHA); putchar ('.'); fflush (stdout); skytex[1] = pvr_mem_malloc (512 * 512 * 2); png_to_texture ("/rd/sky24.png", skytex[1], PNG_NO_ALPHA); putchar ('.'); fflush (stdout); skytex[2] = pvr_mem_malloc (512 * 512 * 2); png_to_texture ("/rd/sky27.png", skytex[2], PNG_NO_ALPHA); putchar ('.'); fflush (stdout); skytex[3] = pvr_mem_malloc (512 * 512 * 2); png_to_texture ("/rd/sky28.png", skytex[3], PNG_NO_ALPHA); putchar ('.'); fflush (stdout); skytex[4] = pvr_mem_malloc (512 * 512 * 2); png_to_texture ("/rd/sky25.png", skytex[4], PNG_NO_ALPHA); putchar ('.'); fflush (stdout); skytex[5] = pvr_mem_malloc (512 * 512 * 2); png_to_texture ("/rd/sky26.png", skytex[5], PNG_NO_ALPHA); putchar ('.'); #elif 0 skytex[0] = pvr_mem_malloc (512 * 512 * 2); jpeg_to_texture ("/rd/sky23.jpg", skytex[0], 512, 1); putchar ('.'); fflush (stdout); skytex[1] = pvr_mem_malloc (512 * 512 * 2); jpeg_to_texture ("/rd/sky24.jpg", skytex[1], 512, 1); putchar ('.'); fflush (stdout); skytex[2] = pvr_mem_malloc (512 * 512 * 2); jpeg_to_texture ("/rd/sky27.jpg", skytex[2], 512, 1); putchar ('.'); fflush (stdout); skytex[3] = pvr_mem_malloc (512 * 512 * 2); jpeg_to_texture ("/rd/sky28.jpg", skytex[3], 512, 1); putchar ('.'); fflush (stdout); skytex[4] = pvr_mem_malloc (512 * 512 * 2); jpeg_to_texture ("/rd/sky25.jpg", skytex[4], 512, 1); putchar ('.'); fflush (stdout); skytex[5] = pvr_mem_malloc (512 * 512 * 2); jpeg_to_texture ("/rd/sky26.jpg", skytex[5], 512, 1); putchar ('.'); #else kmg_to_img ("/rd/sky23.kmg", &txr); skytex[0] = pvr_mem_malloc (txr.byte_count); pvr_txr_load_kimg (&txr, skytex[0], PVR_TXRLOAD_SQ); kos_img_free (&txr, 0); kmg_to_img ("/rd/sky24.kmg", &txr); skytex[1] = pvr_mem_malloc (txr.byte_count); pvr_txr_load_kimg (&txr, skytex[1], PVR_TXRLOAD_SQ); kos_img_free (&txr, 0); kmg_to_img ("/rd/sky27.kmg", &txr); skytex[2] = pvr_mem_malloc (txr.byte_count); pvr_txr_load_kimg (&txr, skytex[2], PVR_TXRLOAD_SQ); kos_img_free (&txr, 0); kmg_to_img ("/rd/sky28.kmg", &txr); skytex[3] = pvr_mem_malloc (txr.byte_count); pvr_txr_load_kimg (&txr, skytex[3], PVR_TXRLOAD_SQ); kos_img_free (&txr, 0); kmg_to_img ("/rd/sky25.kmg", &txr); skytex[4] = pvr_mem_malloc (txr.byte_count); pvr_txr_load_kimg (&txr, skytex[4], PVR_TXRLOAD_SQ); kos_img_free (&txr, 0); kmg_to_img ("/rd/sky26.kmg", &txr); skytex[5] = pvr_mem_malloc (txr.byte_count); pvr_txr_load_kimg (&txr, skytex[5], PVR_TXRLOAD_SQ); kos_img_free (&txr, 0); #endif putchar ('\n'); skybox = create_skybox (200, skytex, 512, 512, PVR_TXRFMT_RGB565 | PVR_TXRFMT_TWIDDLED | PVR_TXRFMT_VQ_ENABLE); initialised = 1; }