void displayLangSelection(char * browseDirectory) { langSelection = oslLoadImageFilePNG("system/settings/langSelection.png", OSL_IN_RAM, OSL_PF_8888); oslSetFont(Roboto); browseDirectory = langBrowse("system/settings/language"); //For language if (!langSelection) debugDisplay(); while (!osl_quit) { LowMemExit(); oslStartDrawing(); oslClearScreen(RGB(0,0,0)); centerText(480/2, 272/2, browseDirectory, 50); oslEndDrawing(); oslEndFrame(); oslSyncFrame(); } }
void MP3Play(char * path) { struct ID3Tag ID3; nowplaying = oslLoadImageFilePNG(nowplayingBgPath, OSL_IN_RAM, OSL_PF_8888); mp3Play = oslLoadImageFilePNG("system/app/apollo/play.png", OSL_IN_RAM, OSL_PF_8888); mp3Pause = oslLoadImageFilePNG("system/app/apollo/pause.png", OSL_IN_RAM, OSL_PF_8888); if (!nowplaying) debugDisplay(); scePowerSetClockFrequency(333, 333, 166); pspAudioInit(); int i, mp3Min = 0; MP3ME_Init(1); ParseID3(path, &ID3); MP3ME_Load(path); MP3ME_Play(); isPlaying = 1; while (!osl_quit) { LowMemExit(); oslStartDrawing(); oslClearScreen(RGB(0,0,0)); oslReadKeys(); oslIntraFontSetStyle(Roboto, fontSize, BLACK, 0, 0); if (MP3ME_playingTime > 59) { mp3Min += 1; MP3ME_playingTime = 0; } oslDrawImageXY(nowplaying, 0, 0); oslDrawStringf(240,76, "Playing: %.19s", folderIcons[current].name); oslDrawStringf(240,96, "Title: %.21s", ID3.ID3Title); oslDrawStringf(240,116, "Artist: %.20s", ID3.ID3Artist); oslDrawStringf(240,136, "Album: %.21s", ID3.ID3Album); oslDrawStringf(240,156, "Year: %.22s", ID3.ID3Year); oslDrawStringf(240,176, "Genre: %.21s", ID3.ID3GenreText); oslDrawStringf(435,206, "0%d:%.f", mp3Min, MP3ME_playingTime); if (MP3ME_isPlaying == 1) oslDrawImageXY(mp3Play, 230, 224); if (MP3ME_isPlaying == 0) oslDrawImageXY(mp3Pause, 230, 224); battery(370,2,1); digitaltime(420,4,0,hrTime); volumeController(); if(osl_keys->pressed.select) { oslDeleteImage(nowplaying); oslDeleteImage(mp3Play); oslDeleteImage(mp3Pause); return; } if(MP3ME_isPlaying == 1 && osl_keys->pressed.cross) { oslPlaySound(KeypressStandard, 1); MP3ME_Pause(); for(i=0; i<10; i++) { sceDisplayWaitVblankStart(); } } else if (MP3ME_isPlaying == 0 && osl_keys->pressed.cross) { MP3ME_Play(); } if (MP3ME_EndOfStream() == 1) { isPlaying = 0; endAudioLib(); MP3ME_Stop(); releaseAudio(); MP3ME_Play(); } if(osl_keys->pressed.circle) { endAudioLib(); MP3ME_Stop(); releaseAudio(); oslDeleteImage(nowplaying); oslDeleteImage(mp3Play); oslDeleteImage(mp3Pause); isPlaying = 0; setCpuBoot(); //Restore previous CPU state return; } if (osl_keys->pressed.square) { powermenu(); } if (osl_keys->pressed.L) { oslPlaySound(Lock, 1); lockscreen(); } captureScreenshot(); oslEndDrawing(); oslEndFrame(); oslSyncFrame(); } }
int mp3player() { mp3bg = oslLoadImageFilePNG(apolloBgPath, OSL_IN_RAM, OSL_PF_8888); mp3_select = oslLoadImageFilePNG(apolloSelectorPath, OSL_IN_RAM, OSL_PF_8888); if (!mp3bg || !mp3_select) debugDisplay(); oslSetFont(Roboto); int MenuSelection = 1; // Pretty obvious int selector_x = 8; //The x position of the first selection int selector_y = 43; //The y position of the first selection int selector_image_x; //Determines the starting x position of the selection int selector_image_y = 55; //Determines the starting y position of the selection int numMenuItems = 3; //Amount of items in the menu int selection = 0; while (!osl_quit) { LowMemExit(); selector_image_x = selector_x+(mp3XSelection*MenuSelection); //Determines where the selection image is drawn for each selection selector_image_y = selector_y+(mp3YSelection*MenuSelection); //Determines where the selection image is drawn for each selection oslStartDrawing(); oslReadKeys(); oslClearScreen(RGB(0,0,0)); oslIntraFontSetStyle(Roboto, fontSize, BLACK, 0, 0); oslDrawImageXY(mp3bg, 0, 0); oslDrawImageXY(mp3_select, selector_image_x, selector_image_y); oslDrawStringf(20,108,"MUSIC"); oslDrawStringf(20,163,"PSP/MUSIC"); oslDrawStringf(20,218,"PSP/GAME/CyanogenPSP/Downloads"); battery(370,2,1); digitaltime(420,4,0,hrTime); volumeController(); if (osl_keys->pressed.down) MenuSelection++; //Moves the selector down if (osl_keys->pressed.up) MenuSelection--; //Moves the selector up if (MenuSelection > numMenuItems) MenuSelection = 1; //Sets the selection to the first if (MenuSelection < 1) MenuSelection = numMenuItems; //Sets the selection back to last if (MenuSelection == 1 && osl_keys->pressed.cross) { oslPlaySound(KeypressStandard, 1); oslDeleteImage(mp3bg); oslDeleteImage(mp3_select); mp3View("ms0:/MUSIC"); } else if (MenuSelection == 2 && osl_keys->pressed.cross) { oslPlaySound(KeypressStandard, 1); oslDeleteImage(mp3bg); oslDeleteImage(mp3_select); mp3View("ms0:/PSP/MUSIC"); } else if (MenuSelection == 3 && osl_keys->pressed.cross) { oslPlaySound(KeypressStandard, 1); oslDeleteImage(mp3bg); oslDeleteImage(mp3_select); mp3View("ms0:/PSP/GAME/CyanogenPSP/downloads"); } if (osl_keys->pressed.circle) { oslDeleteImage(mp3bg); oslDeleteImage(mp3_select); appdrawer(); } if (osl_keys->pressed.square) { powermenu(); } if (osl_keys->pressed.L) { oslPlaySound(Lock, 1); lockscreen(); } captureScreenshot(); oslEndDrawing(); oslEndFrame(); oslSyncFrame(); } return selection; }
int soundPlay(char * path) { nowplaying = oslLoadImageFilePNG(nowplayingBgPath, OSL_IN_RAM, OSL_PF_8888); mp3Play = oslLoadImageFilePNG("system/app/apollo/play.png", OSL_IN_RAM, OSL_PF_8888); mp3Pause = oslLoadImageFilePNG("system/app/apollo/pause.png", OSL_IN_RAM, OSL_PF_8888); OSL_SOUND * sound = oslLoadSoundFile(path, OSL_FMT_NONE); if (!nowplaying) debugDisplay(); oslInitAudioME(3); oslPlaySound(sound,0); isPlaying = 1; int Play = 1; while (!osl_quit) { LowMemExit(); oslStartDrawing(); oslClearScreen(RGB(0,0,0)); oslReadKeys(); oslIntraFontSetStyle(Roboto, fontSize, BLACK, 0, 0); oslDrawImageXY(nowplaying, 0, 0); if (Play == 1) oslDrawImageXY(mp3Play, 230, 224); else if (Play == 0) oslDrawImageXY(mp3Pause, 230, 224); oslDrawStringf(240,76, "%.28s", folderIcons[current].name); battery(370,2,1); digitaltime(420,4,0,hrTime); volumeController(); if(osl_keys->pressed.select) { oslDeleteImage(nowplaying); oslDeleteImage(mp3Play); oslDeleteImage(mp3Pause); return 1; } if(osl_keys->pressed.cross && Play == 1) { Play = 0; oslPlaySound(KeypressStandard, 1); oslPauseSound(sound,-1); } else if(osl_keys->pressed.cross && Play == 0) { Play = 1; oslPlaySound(KeypressStandard, 1); oslPauseSound(sound,-1); } if(osl_keys->pressed.circle) { isPlaying = 0; oslStopSound(sound); oslDeleteSound(sound); oslDeleteImage(nowplaying); oslDeleteImage(mp3Play); oslDeleteImage(mp3Pause); return 1; } if (osl_keys->pressed.square) { powermenu(); } if (osl_keys->pressed.L) { oslPlaySound(Lock, 1); lockscreen(); } captureScreenshot(); oslEndDrawing(); oslEndFrame(); oslSyncFrame(); } oslStopSound(sound); oslDeleteSound(sound); oslDeleteImage(nowplaying); oslDeleteImage(mp3Play); oslDeleteImage(mp3Pause); return 0; }
int messenger() { messengerbg = oslLoadImageFilePNG("system/app/messenger/messengerbg.png", OSL_IN_RAM, OSL_PF_8888); if (!messengerbg) debugDisplay(); oslSetFont(Roboto); while (!osl_quit) { LowMemExit(); oslStartDrawing(); oslClearScreen(RGB(0,0,0)); oslIntraFontSetStyle(Roboto, fontSize, BLACK, 0, INTRAFONT_ALIGN_LEFT); controls(); oslDrawImageXY(messengerbg, 0, 0); navbarButtons(2); battery(330,2,0); digitaltime(381,4,0,hrTime); androidQuickSettings(); volumeController(); oslDrawImage(cursor); if (osl_keys->pressed.square) { powermenu(); } if (osl_keys->pressed.L) { oslPlaySound(Lock, 1); lockscreen(); } if (osl_keys->pressed.circle) { oslDeleteImage(messengerbg); appdrawer(); } if ((cursor->x >= 444 && cursor->x <= 480) && (cursor->y >= 157 && cursor->y <= 213) && (osl_keys->pressed.cross)) { oslPlaySound(KeypressStandard, 1); oslDeleteImage(messengerbg); appdrawer(); } if ((cursor->x >= 444 && cursor->x <= 480) && (cursor->y >= 76 && cursor->y <= 155) && (osl_keys->pressed.cross)) { oslPlaySound(KeypressStandard, 1); oslDeleteImage(messengerbg); home(); } if ((cursor->x >= 444 && cursor->x <= 480) && (cursor->y >= 19 && cursor->y <= 75) && (osl_keys->pressed.cross)) { oslPlaySound(KeypressStandard, 1); multitask(); } captureScreenshot(); if (cursor->x >= 385 && cursor->x <= 428 && cursor->y >= 210 && cursor->y <= 258 && osl_keys->pressed.cross) { oslPlaySound(KeypressStandard, 1); oslDeleteImage(messengerbg); newMessage(); } /* if (cursor->x >= 378 && cursor->x <= 434 && cursor->y >= 20 && cursor->y <= 52 && osl_keys->pressed.cross) { oslPlaySound(KeypressStandard, 1); oslDeleteImage(messengerbg); doClient(); } */ oslEndDrawing(); oslEndFrame(); oslSyncFrame(); } return 0; }
void newMessage() { new_message = oslLoadImageFilePNG("system/app/messenger/new_message.png", OSL_IN_RAM, OSL_PF_8888); if (!new_message) debugDisplay(); while (!osl_quit) { LowMemExit(); oslStartDrawing(); oslClearScreen(RGB(0,0,0)); controls(); oslDrawImageXY(new_message, 0, 0); navbarButtons(2); battery(330,2,0); digitaltime(381,4,0,hrTime); androidQuickSettings(); volumeController(); oslDrawImage(cursor); if (osl_keys->pressed.L) { oslPlaySound(Lock, 1); lockscreen(); } if (osl_keys->pressed.circle) { oslDeleteImage(new_message); messenger(); } if ((cursor->x >= 444 && cursor->x <= 480) && (cursor->y >= 157 && cursor->y <= 213) && (osl_keys->pressed.cross)) { oslPlaySound(KeypressStandard, 1); oslDeleteImage(messengerbg); messenger(); } if ((cursor->x >= 444 && cursor->x <= 480) && (cursor->y >= 76 && cursor->y <= 155) && (osl_keys->pressed.cross)) { oslPlaySound(KeypressStandard, 1); oslDeleteImage(messengerbg); home(); } if ((cursor->x >= 444 && cursor->x <= 480) && (cursor->y >= 19 && cursor->y <= 75) && (osl_keys->pressed.cross)) { oslPlaySound(KeypressStandard, 1); multitask(); } captureScreenshot(); if (cursor->x >= 7 && cursor->x <= 435 && cursor->y >= 55 && cursor->y <= 86 && osl_keys->pressed.cross) { oslPlaySound(KeypressStandard, 1); doServer(); } oslIntraFontSetStyle(Roboto, fontSize, BLACK, 0, INTRAFONT_ALIGN_LEFT); oslDrawString(14, 245, tempMessage); if (cursor->x >= 10 && cursor->x <= 362 && cursor->y >= 228 && cursor->y <= 270 && osl_keys->pressed.cross) { oslPlaySound(KeypressStandard, 1); openOSK("Enter Message", "", 128, -1); } if ((cursor->x >= 10 && cursor->x <= 405 && cursor->y >= 88 && cursor->y <= 118 && osl_keys->pressed.cross) && oslIsWlanPowerOn()) doClient(); else if ((cursor->x >= 410 && cursor->x <= 442 && cursor->y >= 92 && cursor->y <= 118 && osl_keys->pressed.cross) && oslIsWlanPowerOn()) doServer(); oslEndDrawing(); oslEndFrame(); oslSyncFrame(); } }
// Called when the window needs to be redrawn. void callbackDisplay() { handleKeyDown(); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); g_camera.update(); g_shipCamera.update(); GLuint fogFlag = glGetUniformLocation(g_program, "fogFlag"); glUniform1i(fogFlag, 1); g_vessel->updateMovement(); // Update movement of speed lines for (int i = 0; i < SPEED_LINE_COUNT; ++i) { if (speedLine[i]->m_position.z > 5.0f) { speedLine[i]->resetTranslation(); speedLine[i]->resetPosition(); } speedLine[i]->resetRotation(); speedLine[i]->rotate(g_vessel->m_qRotation); vec3 linet = g_vessel->m_qRotation * vec3(0.0, 0.0, SPEED_LINE_SPEED); speedLine[i]->translate(linet.x, linet.y, linet.z); } g_music->checkLoopTimer("starfox_theme.wav", MUSICGAIN); lightEffects le; le.numLights = LIGHTSOURCECOUNT + g_numLasers; le.ambientProducts = new vec4[le.numLights];//(vec4*)malloc(sizeof(vec4) * le.numLights); le.diffuseProducts = new vec4[le.numLights];//(vec4*)malloc(sizeof(vec4) * le.numLights); le.specularProducts = new vec4[le.numLights];//(vec4*)malloc(sizeof(vec4) * le.numLights); le.lightPositions = new vec4[le.numLights];//(vec4*)malloc(sizeof(vec4) * le.numLights); le.attenuations = new float[le.numLights];//(float*)malloc(sizeof(float) * le.numLights); g_light = new Light[le.numLights];//(Light*)malloc(sizeof(Light) * le.numLights); g_light[0].m_position = vec3(0.0, 0.0, 0.0); g_light[0].m_lightAmbient = vec4(1.0, 1.0, 1.0, 1.0); g_light[0].m_lightDiffuse = vec4(1.0, 1.0, 1.0, 1.0); g_light[0].m_lightSpecular = vec4(1.0, 1.0, 1.0, 1.0); g_light[0].m_attenuation = 0.0000005; //g_light[1].m_position = tempShip->m_position; //g_light[1].m_lightAmbient = vec4(0.0, 0.0, 0.0, 1.0); //g_light[1].m_lightDiffuse = vec4(0.0, 0.6, 0.0, 1.0); //g_light[1].m_lightSpecular = vec4(0.0, 1.5, 0.0, 1.0); //g_light[1].m_attenuation = 0.0001; GLuint fogColor = glGetUniformLocation(g_program, "uFogColor"); GLuint fogMinDist = glGetUniformLocation(g_program, "uFogMinDist"); GLuint fogMaxDist = glGetUniformLocation(g_program, "uFogMaxDist"); glUniform1f(fogMinDist, 1500.0f); glUniform1f(fogMaxDist, 1700.0f); glUniform4fv(fogColor, 1, vec4(0.0, 0.0, 0.0, 0.0)); //tempShip->draw(g_drawType, g_camera, g_light, le); //tempShip->translate(-g_bulletV.x, -g_bulletV.y, -g_bulletV.z); int lightIndex = 1; for (int i = 0; i < MAX_LASERS; ++i) { if (g_lasers[i]->m_active) { g_light[lightIndex].m_position = g_lasers[i]->m_position; g_light[lightIndex].m_lightAmbient = vec4(0.0, 0.0, 0.0, 1.0); g_light[lightIndex].m_lightDiffuse = vec4(0.0, 0.6, 0.0, 1.0); g_light[lightIndex].m_lightSpecular = vec4(0.0, 1.5, 0.0, 1.0); g_light[lightIndex].m_attenuation = 0.001; ++lightIndex; if (g_lasers[i]->dead()) { --g_numLasers; g_lasers[i]->kill(); } } } for (int i = 0; i < MAX_LASERS; ++i) { if ((!g_lasers[i]->dead()) && g_lasers[i]->m_active) { g_lasers[i]->draw(g_drawType, g_camera, g_light, le); g_lasers[i]->laser_update(); } } greenStar->draw(g_drawType, g_camera, g_light, le); if (g_vessel->m_shape->checkCollision(greenStar->m_shape)) { g_vessel->shake(); } // Draw mama asteroid //gMamaAsteroid->draw(g_drawType, g_camera, g_light, le); //if (g_vessel->m_shape->checkCollision(gMamaAsteroid->m_shape)) { // g_sound->playSound("ship_asteriod_impact.wav", 1.0, 1); // std::cout << "BOOP3" << glutGet(GLUT_ELAPSED_TIME) << std::endl; // g_vessel->shake();d //} // Draw all bloop asteroids for (int i = 0; i < BLOOPCOUNT; ++i) { if (asteroidAlive[i]) { bloop[i]->rotate(*(q[i % NUM_ASTEROID_ROTATIONS])); bloop[i]->draw(g_drawType, g_camera, g_light, le); if (g_vessel->m_shape->checkCollision(bloop[i]->m_shape)) { g_sound->playSound("ship_asteriod_impact.wav", 1.0, 1000); //asteroidAlive[i] = false; g_vessel->shake(); } for (int j = 0; j < MAX_LASERS; ++j) { if (g_lasers[j]->m_active) { if (bloop[i]->m_shape->checkCollision(g_lasers[j]->m_shape)) { if (g_explosionIndex == 5) g_explosionIndex = 0; g_exp[g_explosionIndex]->playSound("ship_asteriod_impact.wav", 1.0, 500); //g_lasers[j]->kill(); ++g_explosionIndex; if (g_partExplodeIndex == MAXEXPLOSIONCOUNT) g_partExplodeIndex = 0; //g_explosion[g_partExplodeIndex]->getEngine()->createNewInstance(bloop[i]->m_position.x, bloop[i]->m_position.y, bloop[i]->m_position.z); //g_explosion[g_partExplodeIndex]->getEngine()->createNewInstance(2.0*bloop[i]->m_position.x, 1.155*-bloop[i]->m_position.y, 1.11*bloop[i]->m_position.z); g_explosion[g_partExplodeIndex]->getEngine()->createNewInstance(g_lasers[j]->m_position.x, -g_lasers[j]->m_position.y, g_lasers[j]->m_position.z); //g_explosion[g_partExplodeIndex]->getEngine()->createNewInstance(0.0, 0.0, -20.0); asteroidAlive[i] = false; g_partExplodeIndex++; g_score += 20; } } } } } // Draw speed lines for (int i = 0; i < SPEED_LINE_COUNT; ++i) { speedLine[i]->draw(g_shipCamera, g_light, le); } glUniform1i(fogFlag, 0); starField->resetRotation(); starField->rotate(g_camera.m_qRotation); starField->draw(g_drawType, g_shipCamera, g_light, le); glUniform1i(fogFlag, 1); // Draw the thrusters for (int i = 0; i < MAXEXPLOSIONCOUNT; i++) { g_explosion[i]->drawScene(&g_shipCamera,g_vessel->m_position); } vec3 pos = g_camera.m_position - g_camera.m_zAxis * 12.0f - g_camera.m_yAxis * 2.0f; //vec4 pos2 = Translate(0.0f, 1.0 * g_vessel->getVelocity().y / g_vessel->MAX_VELOCITY_Y, 0.0f) * pos; //pos = vec3(pos2.x, pos2.y, pos2.z); vec3 a = Quaternion(vec3(0.0f, -1.0f, 0.0f), 40.0f * (g_vessel->getVelocity().x / g_vessel->MAX_VELOCITY)) * vec3(0.0, 0.0, 1.0); vec3 b = Quaternion(vec3(1.0f, 0.0f, 0.0f), 50.0f * (g_vessel->getVelocity().y / g_vessel->MAX_VELOCITY_Y)) * vec3(0.0, 0.0, 1.0); vec4 ab = normalize(vec4(a.x + b.x, a.y + b.y, a.z + b.z, 0.0)); vec3 ab1 = vec3(ab.x, ab.y, ab.z); if (g_shipAlive == 1) { xhair1->setPosition(-10 * (ab1)); xhair2->setPosition(-100 * (ab1)); glDisable(GL_DEPTH_TEST); xhair1->draw(MESH, g_shipCamera, g_light, le); xhair2->draw(MESH, g_shipCamera, g_light, le); glEnable(GL_DEPTH_TEST); } if (g_shipAlive == 1) { g_vessel->draw(g_drawType, g_shipCamera, g_light, le); thruster->drawScene(&g_shipCamera,g_vessel->m_position); } if (g_debug && g_shipAlive == 1) { glDisable(GL_DEPTH_TEST); g_menu->draw(g_drawType, g_shipCamera, g_light, le); debugDisplay(); glEnable(GL_DEPTH_TEST); } glDisable(GL_DEPTH_TEST); g_shipExplosion->drawScene(&g_shipCamera,g_vessel->m_position); if (g_vessel->m_health == 10) { vec3 ff = vec3(10.4 * g_vessel->getVelocity().x / g_vessel->MAX_VELOCITY,0.0f, 0.0f); g_shipExplosion->getEngine()->createNewInstance(-ff.x, 10.0, -50.0); //g_vessel->shake(); } glEnable(GL_DEPTH_TEST); if (g_vessel->m_health == 0) { g_shipAlive = 0; } delete [] le.ambientProducts; delete [] le.diffuseProducts; delete [] le.specularProducts; delete [] le.lightPositions; delete [] le.attenuations; delete [] g_light; std::cout << g_vessel->m_health << std::endl; calculateFPS(); glutSwapBuffers(); }
//First Boot Message void firstBootInitiation() { firstBoot = setFileDefaultsInt("system/settings/boot.bin", 1, firstBoot); iconPackLoad(); //Loads our images into memory loadIcons(); background = oslLoadImageFile(backgroundPath, OSL_IN_RAM, OSL_PF_8888); cursor = oslLoadImageFilePNG(cursorPath, OSL_IN_VRAM, OSL_PF_8888); navbar = oslLoadImageFile(navbarPath, OSL_IN_RAM, OSL_PF_8888); navbar2 = oslLoadImageFile(navbar2Path, OSL_IN_RAM, OSL_PF_8888); //notif = oslLoadImageFile("system/home/menu/notif.png", OSL_IN_RAM, OSL_PF_8888); welcome = oslLoadImageFilePNG("system/home/icons/welcome.png", OSL_IN_RAM, OSL_PF_8888); transbackground = oslLoadImageFilePNG("system/home/icons/transbackground.png", OSL_IN_RAM, OSL_PF_8888); control = oslLoadImageFilePNG("system/home/menu/brightnesscontrol.png", OSL_IN_VRAM, OSL_PF_8888); ic_launcher_apollo = oslLoadImageFilePNG(apolloPath, OSL_IN_RAM, OSL_PF_8888); ic_launcher_browser = oslLoadImageFile(browserPath, OSL_IN_RAM, OSL_PF_8888); ic_launcher_calculator = oslLoadImageFilePNG(calcPath, OSL_IN_RAM, OSL_PF_8888); ic_launcher_filemanager = oslLoadImageFilePNG(fmPath, OSL_IN_RAM, OSL_PF_8888); ic_launcher_gallery = oslLoadImageFilePNG(galleryPath, OSL_IN_RAM, OSL_PF_8888); ic_launcher_game = oslLoadImageFilePNG(gamePath, OSL_IN_RAM, OSL_PF_8888); ic_launcher_messenger = oslLoadImageFilePNG(messagesPath, OSL_IN_RAM, OSL_PF_8888); ic_launcher_settings = oslLoadImageFilePNG(settingsPath, OSL_IN_RAM, OSL_PF_8888); ic_launcher_umd = oslLoadImageFilePNG(umdPath, OSL_IN_RAM, OSL_PF_8888); usbdebug = oslLoadImageFilePNG("system/home/icons/usbdebug.png", OSL_IN_RAM, OSL_PF_8888); music = oslLoadImageFilePNG("system/home/icons/music.png", OSL_IN_RAM, OSL_PF_8888); //Debugger - Displays an error message if the following resources are missing. if (!background || !cursor || !ic_allapps || !ic_allapps_pressed || !navbar || !ic_launcher_apollo || !ic_launcher_settings || !ic_launcher_messenger || !ic_launcher_browser || !batt100 || !batt80 || !batt60 || !batt40 || !batt20 || !batt10 || !batt0 || !battcharge || !navbar2 || !usbdebug || !music) debugDisplay(); //Sets the cursor's original position on the screen cursor->x = 240; cursor->y = 136; if (firstBoot!= 0) { while (!osl_quit) { oslStartDrawing(); controls(); oslDrawImage(background); oslDrawImageXY(ic_launcher_apollo, 105, 190); oslDrawImageXY(ic_launcher_browser, 276, 190); oslDrawImageXY(ic_launcher_settings, 331, 190); oslDrawImageXY(ic_launcher_messenger, 160, 190); oslSetTransparentColor(RGB(0,0,0)); appDrawerIcon(); oslDisableTransparentColor(); oslIntraFontSetStyle(Roboto, 0.5f, WHITE, 0, INTRAFONT_ALIGN_LEFT); digitaltime(420,4,0,hrTime); volumeController(); battery(370,2,1); navbarButtons(0); oslDrawImageXY(transbackground, 0, 0); oslDrawImageXY(welcome, 0, 0); oslIntraFontSetStyle(Roboto, 0.8f,BLACK,0,INTRAFONT_ALIGN_LEFT); oslDrawStringf(20,30, "%s", lang_welcome[language][0]); oslIntraFontSetStyle(Roboto, 0.6f,DARKGRAY,0,INTRAFONT_ALIGN_LEFT); oslDrawStringf(20,60, "%s", lang_welcome[language][1]); oslDrawStringf(20,80, "%s", lang_welcome[language][2]); oslIntraFontSetStyle(Roboto, 0.6f,WHITE,0,INTRAFONT_ALIGN_LEFT); oslDrawStringf(385,110, "%s", lang_welcome[language][3]); oslDrawImage(cursor); if (cursor->x >= 388 && cursor->x <= 464 && cursor->y >= 98 && cursor->y <= 132 && osl_keys->pressed.cross) { FILE * firstBootTxt = fopen("system/settings/boot.bin", "w"); fprintf(firstBootTxt, "0"); fclose(firstBootTxt); oslPlaySound(KeypressStandard, 1); oslDeleteImage(welcome); oslDeleteImage(transbackground); unloadIcons(); home(); } captureScreenshot(); oslEndDrawing(); oslEndFrame(); oslSyncFrame(); } } if (firstBoot == 0) { oslDeleteImage(welcome); oslDeleteImage(transbackground); unloadIcons(); lockscreen(); home(); } }
int calculator() { //int result; int x = 1; int y = 1; /* int enterednumber; int numberuse = 0; int suppression = 1; int Number = 0; */ calcbackground = oslLoadImageFile("system/app/calculator/calcbg.png", OSL_IN_RAM, OSL_PF_8888); oslSetFont(Roboto); if (!calcbackground) debugDisplay(); while (!osl_quit) { LowMemExit(); oslStartDrawing(); oslClearScreen(RGB(0,0,0)); controls(); oslDrawImageXY(calcbackground, 0, 0); battery(370,2,1); digitaltime(420,4,0,hrTime); volumeController(); oslIntraFontSetStyle(Roboto, 0.8f,WHITE,0,0); oslDrawString(35,120,"7"); oslDrawString(90,120,"8"); oslDrawString(145,120,"9"); oslDrawString(35,160,"4"); oslDrawString(90,160,"5"); oslDrawString(145,160,"6"); oslDrawString(35,200,"1"); oslDrawString(90,200,"2"); oslDrawString(145,200,"3"); oslDrawString(90,240,"0"); oslDrawString(218,120,"/"); oslDrawString(218,160,"x"); oslDrawString(218,200,"-"); oslDrawString(218,240,"+"); oslIntraFontSetStyle(Roboto, 0.6f,WHITE,0,0); oslDrawString(260,120,"DEL"); oslDrawString(326,120,"sin"); oslDrawString(366,120,"cos"); oslDrawString(406,120,"tan"); oslDrawString(446,120,"ln"); if (osl_keys->pressed.left) x -= 1; if (x == 0) x = 8; if (osl_keys->pressed.right) x += 1; if (x == 10) x = 1; if (osl_keys->pressed.up) y -= 1; if (y == 0) y = 4; if (osl_keys->pressed.down) y += 1; if (y == 5) y = 1; if (y == 1 && x ==1) { oslIntraFontSetStyle(Roboto, 0.8f,RED,0,0); oslDrawString(35,120,"7"); } else if (y == 1 && x == 2) { oslIntraFontSetStyle(Roboto, 0.8f,RED,0,0); oslDrawString(90,120,"8"); } else if (y == 1 && x == 3) { oslIntraFontSetStyle(Roboto, 0.8f,RED,0,0); oslDrawString(145,120,"9"); } else if (y == 1 && x == 4) { oslIntraFontSetStyle(Roboto, 0.8f,RED,0,0); oslDrawString(218,120,"/"); } else if (y == 1 && x == 5) { oslIntraFontSetStyle(Roboto, 0.6f,RED,0,0); oslDrawString(260,120,"DEL"); } else if (y == 1 && x == 6) { oslIntraFontSetStyle(Roboto, 0.6f,RED,0,0); oslDrawString(326,120,"sin"); } else if (y == 1 && x == 7) { oslIntraFontSetStyle(Roboto, 0.6f,RED,0,0); oslDrawString(366,120,"cos"); } else if (y == 1 && x == 8) { oslIntraFontSetStyle(Roboto, 0.6f,RED,0,0); oslDrawString(406,120,"tan"); } else if (y == 1 && x == 9) { oslIntraFontSetStyle(Roboto, 0.6f,RED,0,0); oslDrawString(446,120,"ln"); } if (y == 2 && x == 1) { oslIntraFontSetStyle(Roboto, 0.8f,RED,0,0); oslDrawString(35,160,"4"); } else if (y == 2 && x == 2) { oslIntraFontSetStyle(Roboto, 0.8f,RED,0,0); oslDrawString(90,160,"5"); } else if (y == 2 && x == 3) { oslIntraFontSetStyle(Roboto, 0.8f,RED,0,0); oslDrawString(145,160,"6"); } else if (y == 2 && x == 4) { oslIntraFontSetStyle(Roboto, 0.8f,RED,0,0); oslDrawString(218,160,"x"); } if (y == 3 && x == 1) { oslIntraFontSetStyle(Roboto, 0.8f,RED,0,0); oslDrawString(35,200,"1"); } else if (y == 3 && x == 2) { oslIntraFontSetStyle(Roboto, 0.8f,RED,0,0); oslDrawString(90,200,"2"); } else if (y == 3 && x == 3) { oslIntraFontSetStyle(Roboto, 0.8f,RED,0,0); oslDrawString(145,200,"3"); } else if (y == 3 && x == 4) { oslIntraFontSetStyle(Roboto, 0.8f,RED,0,0); oslDrawString(218,200,"-"); } if (y == 4 && x == 1) { oslIntraFontSetStyle(Roboto, 0.8f,RED,0,0); oslDrawString(90,240,"0"); } else if (y == 4 && x == 2) { oslIntraFontSetStyle(Roboto, 0.8f,RED,0,0); oslDrawString(218,240,"+"); } if (osl_keys->pressed.square) { powermenu(); } if (osl_keys->pressed.circle) { oslDeleteImage(calcbackground); appdrawer(); } if (osl_keys->pressed.L) { oslPlaySound(Lock, 1); lockscreen(); } captureScreenshot(); oslEndDrawing(); oslEndFrame(); oslSyncFrame(); } return 0; }
State::stateResult_t VisibilitySubdivisionRenderer::doEnableState( FrameContext & context, Node *, const RenderParam & rp) { if (rp.getFlag(SKIP_RENDERER)) { return State::STATE_SKIPPED; } if (viSu == nullptr) { // Invalid information. => Fall back to standard rendering. return State::STATE_SKIPPED; } // [AccumRendering] if(accumRenderingEnabled){ // camera moved? -> start new frame const Geometry::Matrix4x4 & newCamMat=context.getCamera()->getWorldTransformationMatrix(); if(newCamMat!=lastCamMatrix){ lastCamMatrix = newCamMat; startRuntime=0; } }else{ startRuntime=0; } // ---- uint32_t renderedTriangles = 0; if (hold) { for (const auto & object : holdObjects) { if (debugOutput) { debugDisplay(renderedTriangles, object, context, rp); } else { context.displayNode(object, rp); } } return State::STATE_SKIP_RENDERING; } Geometry::Vec3 pos = context.getCamera()->getWorldOrigin(); bool refreshCache = false; // Check if cached cell can be used. if (currentCell == nullptr || !currentCell->getBB().contains(pos)) { currentCell = viSu->getNodeAtPosition(pos); refreshCache = true; } if (currentCell == nullptr || !currentCell->isLeaf()) { // Invalid information. => Fall back to standard rendering. return State::STATE_SKIPPED; } if (refreshCache) { try { const auto & vv = getVV(currentCell); const uint32_t maxIndex = vv.getIndexCount(); objects.clear(); objects.reserve(maxIndex); for(uint_fast32_t index = 0; index < maxIndex; ++index) { if(vv.getBenefits(index) == 0) { continue; } const VisibilityVector::costs_t costs = vv.getCosts(index); const VisibilityVector::benefits_t benefits = vv.getBenefits(index); const float score = static_cast<float>(costs) / static_cast<float>(benefits); objects.emplace_back(score, vv.getNode(index)); } } catch(...) { // Invalid information. => Fall back to standard rendering. return State::STATE_SKIPPED; } if (displayTexturedDepthMeshes) { #ifdef MINSG_EXT_OUTOFCORE for (const auto & depthMesh : depthMeshes) { OutOfCore::getCacheManager().setUserPriority(depthMesh.get(), 0); } #endif /* MINSG_EXT_OUTOFCORE */ depthMeshes.clear(); depthMeshes.reserve(6); textures.clear(); textures.reserve(6); const std::string dmDirectionStrings[6] = { "-dir_x1_y0_z0", "-dir_x-1_y0_z0", "-dir_x0_y1_z0", "-dir_x0_y-1_z0", "-dir_x0_y0_z1", "-dir_x0_y0_z-1" }; for (auto & dmDirectionString : dmDirectionStrings) { Util::GenericAttribute * attrib = currentCell->getAttribute("DepthMesh" + dmDirectionString); if (attrib == nullptr) { continue; } Util::FileName dmMeshPath(attrib->toString()); Util::Reference<Rendering::Mesh> dmMesh; #ifdef MINSG_EXT_OUTOFCORE Util::GenericAttribute * bbAttrib = currentCell->getAttribute("DepthMesh" + dmDirectionString + "-bounds"); if (bbAttrib == nullptr) { WARN("Found depth mesh with no bounding box."); continue; } std::vector<float> bbValues = Util::StringUtils::toFloats(bbAttrib->toString()); FAIL_IF(bbValues.size() != 6); const Geometry::Box meshBB(Geometry::Vec3(bbValues[0], bbValues[1], bbValues[2]), bbValues[3], bbValues[4], bbValues[5]); dmMesh = OutOfCore::addMesh(dmMeshPath, meshBB); #else /* MINSG_EXT_OUTOFCORE */ dmMesh = Rendering::Serialization::loadMesh(dmMeshPath); #endif /* MINSG_EXT_OUTOFCORE */ depthMeshes.emplace_back(dmMesh); // Count the depth mesh here already. renderedTriangles += dmMesh->getPrimitiveCount(); Util::GenericAttribute * texAttrib = currentCell->getAttribute("Texture" + dmDirectionString); if (texAttrib == nullptr) { continue; } Util::FileName texturePath(texAttrib->toString()); Util::Reference<Rendering::Texture> texture = Rendering::Serialization::loadTexture(texturePath); if (texture.isNull()) { WARN("Loading texture for depth mesh failed."); continue; } textures.emplace_back(texture); } } } const Geometry::Frustum & frustum = context.getCamera()->getFrustum(); holdObjects.clear(); holdObjects.reserve(objects.size()); std::sort(objects.begin(), objects.end()); for(const auto & ratioObjectPair : objects) { object_ptr o = ratioObjectPair.second; #ifdef MINSG_EXT_OUTOFCORE OutOfCore::getCacheManager().setUserPriority(o->getMesh(), 5); #endif /* MINSG_EXT_OUTOFCORE */ if (conditionalFrustumTest(frustum, o->getWorldBB(), rp)) { // [AccumRendering] // skip geometry rendered in the last frame if(renderedTriangles<startRuntime){ renderedTriangles += o->getTriangleCount(); continue; } // ---- if (debugOutput) { debugDisplay(renderedTriangles, o, context, rp); } else { context.displayNode(o, rp); renderedTriangles += o->getTriangleCount(); } holdObjects.push_back(o); } if (maxRuntime != 0 && renderedTriangles >= startRuntime+maxRuntime) { break; } } // Draw the textured depth meshes at the end. if (displayTexturedDepthMeshes) { context.getRenderingContext().pushAndSetPolygonOffset(Rendering::PolygonOffsetParameters(polygonOffsetFactor, polygonOffsetUnits)); auto texIt = textures.cbegin(); for (const auto & depthMesh : depthMeshes) { context.getRenderingContext().pushAndSetShader(getTDMShader()); context.getRenderingContext().pushAndSetTexture(0,texIt->get()); if (conditionalFrustumTest(frustum, depthMesh->getBoundingBox(), rp)) { context.displayMesh(depthMesh.get()); } context.getRenderingContext().popTexture(0); context.getRenderingContext().popShader(); #ifdef MINSG_EXT_OUTOFCORE OutOfCore::getCacheManager().setUserPriority(depthMesh.get(), 2); #endif /* MINSG_EXT_OUTOFCORE */ ++texIt; } context.getRenderingContext().popPolygonOffset(); } // [AccumRendering] startRuntime=renderedTriangles; // ---- return State::STATE_SKIP_RENDERING; }
void powermenu() { power = oslLoadImageFilePNG("system/home/menu/powerMenu.png", OSL_IN_RAM, OSL_PF_8888); powerSelection = oslLoadImageFilePNG("system/home/menu/powerSelection.png", OSL_IN_RAM, OSL_PF_8888); recoverySelection = oslLoadImageFilePNG("system/home/menu/recoverySelection.png", OSL_IN_RAM, OSL_PF_8888); if (!power || !powerSelection || !recoverySelection) debugDisplay(); while (!osl_quit) { LowMemExit(); oslStartDrawing(); controls(); oslClearScreen(RGB(0,0,0)); oslDrawImage(background); oslDrawImageXY(ic_launcher_apollo, 105, 190); oslDrawImageXY(ic_launcher_browser, 276, 190); oslDrawImageXY(ic_launcher_settings, 331, 190); oslDrawImageXY(ic_launcher_messenger, 160, 190); navbarButtons(0); oslDrawImageXY(power, 100, 61); battery(370,2,1); digitaltime(420,4,0,hrTime); oslIntraFontSetStyle(Roboto, 0.75f, BLACK, 0, 0); oslDrawStringf(165, 100, "Power off"); oslDrawStringf(165, 165, "Recovery"); if (cursor->x >= 116 && cursor->x <= 364 && cursor->y >= 55 && cursor->y <= 125) { oslDrawImageXY(powerSelection, 100, 60); oslDrawStringf(165, 100, "Power off"); oslDrawStringf(165, 165, "Recovery"); if (osl_keys->pressed.cross) { oslPlaySound(KeypressStandard, 1); sceKernelExitGame(); } /*else if (osl_pad.held.cross) { scePowerRequestColdReset(0); scePowerRequestColdReset(50000); }*/ } if (cursor->x >= 116 && cursor->x <= 364 && cursor->y >= 126 && cursor->y <= 200) { oslDrawImageXY(recoverySelection, 100, 60); oslDrawStringf(165, 100, "Power off"); oslDrawStringf(165, 165, "Recovery"); if (osl_keys->pressed.cross) { oslPlaySound(KeypressStandard, 1); oslSyncFrame(); sceKernelDelayThread(3*1000000); oslDeleteImage(power); oslDeleteImage(powerSelection); oslDeleteImage(recoverySelection); mainRecoveryMenu(); } } oslDrawImage(cursor); if (osl_keys->pressed.circle) { oslDeleteImage(power); oslDeleteImage(powerSelection); oslDeleteImage(recoverySelection); return; } captureScreenshot(); oslEndDrawing(); oslEndFrame(); oslSyncFrame(); } }
int appdrawer() { int browser_x = 30; int browser_text_x = 52; int calc_x = 105; int calc_text_x = 127; int clock_x = 180; int clock_text_x = 202; int fm_x = 255; int fm_text_x = 277; int gallery_x = 330; int gallery_text_x = 352; int game_icon = 405; int game_text_icon = 427; int messenger_x = 30; int messenger_text_x = 52; int music_x = 105; int music_text_x = 127; int settings_x = 180; int settings_test_x = 202; int umd_x = 255; int umd_text_x = 277; //loads appdrawer icons appdrawer_loadImages(); if (!ic_launcher_clock || !backdrop) debugDisplay(); oslSetFont(Roboto); while (!osl_quit) { LowMemExit(); oslStartDrawing(); controls(); oslDrawImage(background); if (eDesktopActivator == 1) { navbarButtons(1); battery(370,2,3); if ((cursor->y <= 16) || (cursor->y >= 226)) { digitaltime(420,4,0,hrTime); } else if (cursor->y >= 16 && cursor->y <= 226) { digitaltime(420,-10,0,hrTime); } } else if (eDesktopActivator == 0) { navbarButtons(0); battery(370,2,1); digitaltime(420,4,0,hrTime); } if (DARK == 0) oslIntraFontSetStyle(Roboto, fontSize, BLACK, 0, INTRAFONT_ALIGN_CENTER); else oslIntraFontSetStyle(Roboto, fontSize, WHITE, 0, INTRAFONT_ALIGN_CENTER); oslDrawImageXY(backdrop, 1, 15); oslDrawImageXY(ic_launcher_browser, browser_x, 40); oslDrawStringf(browser_text_x, 90, "%s", lang_appDrawer[language][0]); oslDrawImageXY(ic_launcher_calculator, calc_x, 40); oslDrawStringf(calc_text_x, 90, "%s", lang_appDrawer[language][1]); oslDrawImageXY(ic_launcher_clock, clock_x, 40); oslDrawStringf(clock_text_x, 90, "%s", lang_appDrawer[language][2]); oslDrawImageXY(ic_launcher_filemanager, fm_x, 40); oslDrawStringf(fm_text_x, 90,"%s", lang_appDrawer[language][3]); oslDrawImageXY(ic_launcher_gallery, gallery_x, 40); oslDrawStringf(gallery_text_x, 90, "%s", lang_appDrawer[language][4]); oslDrawImageXY(ic_launcher_game, game_icon, 40); oslDrawStringf(game_text_icon, 90, "%s", lang_appDrawer[language][5]); oslDrawImageXY(ic_launcher_messenger, messenger_x, 130); oslDrawStringf(messenger_text_x, 185, "%s", lang_appDrawer[language][6]); oslDrawImageXY(ic_launcher_apollo, music_x, 130); oslDrawStringf(music_text_x, 185, "%s", lang_appDrawer[language][7]); oslDrawImageXY(ic_launcher_settings, settings_x, 130); oslDrawStringf(settings_test_x, 185, "%s", lang_appDrawer[language][8]); oslDrawImageXY(ic_launcher_umd, umd_x, 132); oslDrawStringf(umd_text_x, 185, "%s", lang_appDrawer[language][9]); androidQuickSettings(); volumeController(); appHighlight(1); oslDrawImage(cursor); if (osl_keys->pressed.square) { powermenu(); } if (osl_keys->pressed.L) { oslPlaySound(Lock, 1); lockscreen(); } if (osl_keys->pressed.circle) { appdrawer_deleteImages(); home(); } if (cursor->x >= 15 && cursor->x <= 75 && cursor->y >= 25 && cursor->y <= 85 && osl_keys->pressed.cross) { oslPlaySound(KeypressStandard, 1); appdrawer_deleteImages(); internet(); } if (experimentalF == 1) { // WIP calculator if (cursor->x >= 100 && cursor->x <= 140 && cursor->y >= 25 && cursor->y <= 85 && osl_keys->pressed.cross) { oslPlaySound(KeypressStandard, 1); appdrawer_deleteImages(); calculator(); } } if (cursor->x >= 160 && cursor->x <= 225 && cursor->y >= 25 && cursor->y <= 85 && osl_keys->pressed.cross) { oslPlaySound(KeypressStandard, 1); appdrawer_deleteImages(); pspclock(); } if (cursor->x >= 245 && cursor->x <= 295 && cursor->y >= 25 && cursor->y <= 85 && osl_keys->pressed.cross) { oslPlaySound(KeypressStandard, 1); appdrawer_deleteImages(); filemanage(); } if (cursor->x >= 320 && cursor->x <= 370 && cursor->y >= 25 && cursor->y <= 85 && osl_keys->pressed.cross) { oslPlaySound(KeypressStandard, 1); appdrawer_deleteImages(); galleryApp(); } if (cursor->x >= 390 && cursor->x <= 450 && cursor->y >= 25 && cursor->y <= 85 && osl_keys->pressed.cross) { oslPlaySound(KeypressStandard, 1); appdrawer_deleteImages(); gameApp(); } if (experimentalF == 1) { //WIP ad-hoc messenger application if (cursor->x >= 15 && cursor->x <= 75 && cursor->y >= 115 && cursor->y <= 180 && osl_keys->pressed.cross) { oslPlaySound(KeypressStandard, 1); appdrawer_deleteImages(); messenger(); } } if (cursor->x >= 100 && cursor->x <= 140 && cursor->y >= 115 && cursor->y <= 180 && osl_keys->pressed.cross) { oslPlaySound(KeypressStandard, 1); appdrawer_deleteImages(); mp3player(); } if (cursor->x >= 160 && cursor->x <= 225 && cursor->y >= 115 && cursor->y <= 180 && osl_keys->pressed.cross) { oslPlaySound(KeypressStandard, 1); appdrawer_deleteImages(); settingsMenu(); } if (cursor->x >= 245 && cursor->x <= 295 && cursor->y >= 115 && cursor->y <= 180 && osl_keys->pressed.cross) { oslPlaySound(KeypressStandard, 1); launchUMD("disc0:/PSP_GAME/SYSDIR/EBOOT.BIN"); } if (cursor->x >= 137 && cursor->x <= 200 && cursor->y >= 237 && cursor->y <= 271 && osl_keys->pressed.cross) { oslPlaySound(KeypressStandard, 1); appdrawer_deleteImages(); home(); } if (cursor->x >= 200 && cursor->x <= 276 && cursor->y >= 237 && cursor->y <= 271 && osl_keys->pressed.cross) { oslPlaySound(KeypressStandard, 1); appdrawer_deleteImages(); home(); } if (cursor->x >= 276 && cursor->x <= 340 && cursor->y >= 237 && cursor->y <= 271 && osl_keys->pressed.cross) { oslPlaySound(KeypressStandard, 1); multitask(); } captureScreenshot(); oslEndDrawing(); oslEndFrame(); oslSyncFrame(); } return 0; }