void AddTag(CIccIO *pIO, CIccProfile *pIcc) { std::string textIn; printf("Enter tag signature to be added [ex- cprt] : "); textIn = GetUserInput(); icTagSignature tagSig = (icTagSignature)icGetSigVal(textIn.c_str()); switch (tagSig) { case icSigProfileDescriptionTag: case icSigCopyrightTag: printf("Enter the text to be saved in the tag : "); textIn = GetUserInput(); if(!AddTextTag(textIn.c_str(), pIcc, tagSig)) printf("Write operation failed.\n"); else printf("Tag added successfully.\n"); break; default: if(!WriteTag(pIcc, tagSig)) printf("Write operation failed.\n"); else printf("Tag added successfully.\n"); } }
void ReadTag(CIccProfile *pIcc) { CIccInfo Fmt; icChar buf[64]; printf("\nProfile Tags\n"); printf( "------------\n"); printf("%25s ID %8s\t%8s\n", "Tag", "Offset", "Size"); printf("%25s ------ %8s\t%8s\n", "----", "------", "----"); TagEntryList::iterator i; for (i=pIcc->m_Tags->begin(); i!=pIcc->m_Tags->end(); i++) { printf("%25s %s %8d\t%8d\n", Fmt.GetTagSigName(i->TagInfo.sig), icGetSig(buf, i->TagInfo.sig, false), i->TagInfo.offset, i->TagInfo.size); } printf("\nNote: The above Offset & Size parameters DO NOT reflect any unsaved changes to profile.\n"); printf("\nEnter the tag ID : "); std::string TagID; TagID = GetUserInput(); if(!ShowTag(pIcc, (icTagSignature)icGetSigVal(TagID.c_str()))) printf("Tag (%s) not found in profile\n", TagID.c_str()); }
int main(void) { int n = GetUserInput(); for (int i = 1; i <= n; i++) { PrintLine(n - i, i); } }
bool ConfirmExit() { std::string Exit; printf("\nExit? (y/n): "); Exit = GetUserInput(); return (("Y" == Exit) || ("y" == Exit)); }
int main() { // Get first number from the user int nInput1 = GetUserInput(); // Get mathematical opeartion from user char chOperation = GetMathematicalOperation(); // Get second number from the user int nInput2 = GetUserInput(); // Calculate resault int nResult = CalculateResault(nInput1, chOperation, nInput2); // Print result PrintResult(nResult); }
//主进程 void main(void) { //创建Opengl渲染环境及窗口 char *device = "opengl"; HCoreResizeFunc( ResizeWindow ); HCoreCreateWindow(100, 100, 800, 600, device); if ( !HCoreInitGraphicsDevice(device) ) { printf("初始化失败 \n", device); exit(0); } //注册输入函数 HCoreInputInit(); HCoreRegisterKeyDown(HCoreKEY_0, KeyDown_0); HCoreRegisterKeyDown(HCoreKEY_1, KeyDown_1); HCoreRegisterKeyDown(HCoreKEY_2, KeyDown_2); HCoreRegisterKeyDown(HCoreKEY_3, KeyDown_3); HCoreRegisterKeyDown(HCoreKEY_4, KeyDown_4); HCoreRegisterKeyDown(HCoreKEY_5, KeyDown_5); HCoreRegisterKeyDown(HCoreKEY_6, KeyDown_6); HCoreRegisterKeyDown(HCoreKEY_7, KeyDown_7); HCoreRegisterKeyDown(HCoreKEY_8, KeyDown_8); HCoreRegisterKeyDown(HCoreKEY_9, KeyDown_9); //设置相机 g_Control.SetCamera(Vector4(0.0f, 0.0f, 1.0f), Vector4(0.0f, 1.0f, 1.0f), Vector4(0.0f, 0.0f, 1.0f) ); //读取模型 //地形 g_Model.Load_ASCII("..\\models\\terrain.gma"); //棋盘 g_SSAOModel.Load_ASCII("..\\models\\chess.gma"); // 载入shader if ( !InitResource() ) { ReleaseResource(); exit(0); } // 主循环 while( HCoreProcessMessage() ) { GetUserInput(); RenderFrame(); } // 释放shader ReleaseResource(); // 关闭OpenGL绘图设备 HCoreReleaseGraphicsDevice(); }
void DeleteTag(CIccIO *pIO, CIccProfile *pIcc) { std::string tagtype; printf("Enter tag signature to be deleted [ex- cprt] : "); tagtype = GetUserInput(); if(!pIcc->DeleteTag((icTagSignature)icGetSigVal(tagtype.c_str()))) printf("Delete operation failed.\n"); else printf("Tag deleted successfully.\n"); }
void SaveProfile(CIccProfile *pIcc) { printf("\nSave Profile as [Ex- Filename.icc]: "); std::string szFilename; szFilename = GetUserInput(); if(SaveIccProfile(szFilename.c_str(),pIcc)) printf("\nProfile successfully saved.\n"); else printf("\nError saving Profile.\n"); }
int main(int argc, char *argv[]){ /* argument checking */ if (argc != 3){ printf("The query engine required 2 arguments.\n"); exit(EXIT_FAILURE); } if ( !IsFile(argv[1]) ){ printf("%s is not a valid file.", argv[1]); exit(EXIT_FAILURE); } if ( !IsDir(argv[2]) ){ printf("%s is not a valid directory", argv[2]); exit(EXIT_FAILURE); } /* HashTable to store data from the file provided */ HashTable *ht = malloc(sizeof(HashTable)); initializeHashTable(ht); printf("Reading in the file...\n"); ReadFile(argv[1], ht); signal(SIGINT, intHandler); while(running){ DocumentNode *final = NULL; char input[MAX_INPUT + 1]; // character array to hold user input printf("Enter your words: "); /* make sure everything went well on the user's end */ int ret = GetUserInput(input); if( ret == 0){ continue; } else if(ret == 2){ break; } /* handle the input */ final = CreateUnsortedDocList(input, ht); SortDocList(&final); ReportInfo(final, argv[2]); FreeDocList(final); }
void StartGame() { SCORE score; ResetScore(&score); while (1) { p_r_s player_choice; p_r_s machine_choice; // What the player picks? char c = GetUserInput(); // Do we choose a control key rather than p r s? int controlKey = 0; switch (c) { case 'p': player_choice = paper; break; case 'r': player_choice = rock; break; case 's': player_choice = scissors; break; case 'g': PrintScore(&score); controlKey = 1; break; case 'h': PrintHelp(); controlKey = 1; break; case 'e': PrintScore(&score); exit(0); default: PrintHelp(); controlKey = 1; break; } if (controlKey) continue; // What the machine picks? machine_choice = MachineSelect(); outcome re = Compare(player_choice, machine_choice); PrintRoundResult(player_choice, machine_choice, re); SaveScore(re, &score); } return; }
int _tmain(int argc, _TCHAR* argv[]) { Game game; InitGame(game); while (!IsGameFinished(game)) { // Get game time game.t = timeGetTime(); GetUserInput(game); PerformAI(game); DrawGame(game); } DisplayResults(game); TerminateGame(game); return 0; }
void main(void) { // 內定使用DirectX 9來繪圖 char *device = "dx9"; void (*render)(void) = RenderFrameDX9; bool (*init_resource)(void) = InitResourceDX9; bool (*release_resource)(void) = ReleaseResourceDX9; void (*resize_func)(int width, int height) = ResizeWindowDX9; #ifdef _ENABLE_DX10_ printf("Press\n(1) for Direct3D9\n(2) for OpenGL\n(3) for Direct3D10\n"); #else printf("Press\n(1) for Direct3D9\n(2) for OpenGL\n"); #endif int c = getche(); switch(c) { default: case '1': render = RenderFrameDX9; init_resource = InitResourceDX9; release_resource = ReleaseResourceDX9; resize_func = ResizeWindowDX9; break; case '2': device = "opengl"; init_resource = InitResourceOpenGL; release_resource = ReleaseResourceOpenGL; render = RenderFrameOpenGL; resize_func = ResizeWindowOpenGL; break; case '3': #ifdef _ENABLE_DX10_ device = "dx10"; init_resource = InitResourceDX10; release_resource = ReleaseResourceDX10; render = RenderFrameDX10; resize_func = ResizeWindowDX10; #endif break; } GutResizeFunc( resize_func ); // 在(100,100)的位置開啟一個大小為(512x512)的視窗 GutCreateWindow(100, 100, 512, 512, device); // 做OpenGL或DirectX初始化 if ( !GutInitGraphicsDevice(device) ) { printf("Failed to initialize %s device\n", device); exit(0); } g_view_matrix.Identity(); g_world_matrix.Identity(); g_scale_matrix.Identity(); GutInputInit(); //g_Control.SetCamera(Vector4(0.0f, 10.0f, 0.0f), Vector4(0.0f, 0.0f, 0.0f), Vector4(0.0f, 0.0f, 1.0f) ); g_Control.SetCamera(Vector4(0.0f, 0.0f, 10.0f), Vector4(0.0f, 0.0f, 0.0f), Vector4(0.0f, 1.0f, 0.0f) ); CGutModel::SetTexturePath("../../textures/"); g_Models[0].Load_ASCII("../../models/sun_darker.gma"); g_Models[1].Load_ASCII("../../models/earth.gma"); g_Models[2].Load_ASCII("../../models/moon.gma"); g_Models[3].Load_ASCII("../../models/mars.gma"); // 載入shader & textures if ( !init_resource() ) { release_resource(); printf("Failed to load resources\n"); exit(0); } // 主回圈 while( GutProcessMessage() ) { GetUserInput(); frame_move(); render(); } // 卸載shader release_resource(); // 關閉OpenGL/DirectX繪圖裝置 GutReleaseGraphicsDevice(); }
//========================================================================= //----- (00000148) -------------------------------------------------------- __myevic__ void Main() { InitDevices(); InitVariables(); // Enable chip temp sensor sampling by ADC if ( ISRX300 ) { SYS->IVSCTL |= SYS_IVSCTL_VTEMPEN_Msk; } InitHardware(); myprintf( "\n\nJoyetech APROM\n" ); myprintf( "CPU @ %dHz(PLL@ %dHz)\n", SystemCoreClock, PllClock ); SetBatteryModel(); gFlags.sample_vbat = 1; ReadBatteryVoltage(); gFlags.sample_btemp = 1; ReadBoardTemp(); InitDisplay(); MainView(); SplashTimer = 3; CustomStartup(); if ( !PD3 ) { DrawScreen(); while ( !PD3 ) ; } while ( 1 ) { while ( gFlags.playing_fb ) { // Flappy Bird game loop fbCallTimeouts(); if ( gFlags.tick_100hz ) { // 100Hz gFlags.tick_100hz = 0; ResetWatchDog(); TimedItems(); SleepIfIdle(); GetUserInput(); if ( !PE0 ) SleepTimer = 3000; } if ( gFlags.tick_10hz ) { // 10Hz gFlags.tick_10hz = 0; DataFlashUpdateTick(); } } if ( gFlags.firing ) { ReadAtoCurrent(); } if ( gFlags.tick_5khz ) { // 5000Hz gFlags.tick_5khz = 0; if ( gFlags.firing ) { RegulateBuckBoost(); } } if ( gFlags.tick_1khz ) { // 1000Hz gFlags.tick_1khz = 0; if ( gFlags.firing ) { ReadAtomizer(); if ( ISMODETC(dfMode) ) { if ( gFlags.check_mode ) { CheckMode(); } TweakTargetVoltsTC(); } else if ( ISMODEVW(dfMode) ) { TweakTargetVoltsVW(); } } if ( dfStatus.vcom ) { VCOM_Poll(); } } if ( gFlags.tick_100hz ) { // 100Hz gFlags.tick_100hz = 0; ResetWatchDog(); if ( gFlags.read_battery ) { gFlags.read_battery = 0; } TimedItems(); SleepIfIdle(); ReadBatteryVoltage(); ReadBoardTemp(); if ( gFlags.firing && BoardTemp >= 70 ) { Overtemp(); } if ( ISVTCDUAL ) { BatteryChargeDual(); } else if ( ISCUBOID || ISCUBO200 || ISRX200S || ISRX23 || ISRX300 ) { BatteryCharge(); } if (( gFlags.anim3d ) && ( Screen == 1 ) && ( !EditModeTimer )) { anim3d( 0 ); } if ( Screen == 60 ) { AnimateScreenSaver(); } if ( gFlags.firing ) { if ( gFlags.read_bir && ( FireDuration > 10 ) ) { ReadInternalResistance(); } if ( PreheatTimer && !--PreheatTimer ) { uint16_t pwr; if ( dfMode == 6 ) { pwr = dfSavedCfgPwr[ConfigIndex]; } else { pwr = dfPower; } if ( pwr > BatteryMaxPwr ) { gFlags.limit_power = 1; PowerScale = 100 * BatteryMaxPwr / pwr; } else { gFlags.limit_power = 0; PowerScale = 100; } } } if ( KeyTicks >= 5 ) { KeyRepeat(); } GetUserInput(); } if ( gFlags.tick_10hz ) { // 10Hz gFlags.tick_10hz = 0; DataFlashUpdateTick(); LEDTimerTick(); if ( gFlags.firing ) { ++FireDuration; if ( gFlags.monitoring ) { Monitor(); } } if ( ShowWeakBatFlag ) --ShowWeakBatFlag; if ( ShowProfNum ) --ShowProfNum; if ( !( gFlags.firing && ISMODETC(dfMode) ) ) { DrawScreen(); } if ( KeyTicks < 5 ) { KeyRepeat(); } } if ( gFlags.tick_5hz ) { // 5Hz gFlags.tick_5hz = 0; if ( !gFlags.rtcinit && NumBatteries ) { InitRTC(); } if ( gFlags.firing ) { if ( TargetVolts == 0 ) { ProbeAtomizer(); } } else { if ( !dfStatus.off && Event == 0 && ( AtoProbeCount < 12 ) && ( Screen == 0 || Screen == 1 || Screen == 5 ) ) { ProbeAtomizer(); } } if ( IsClockOnScreen() ) { static uint8_t u8Seconds = 61; S_RTC_TIME_DATA_T rtd; GetRTC( &rtd ); if ( (uint8_t)rtd.u32Second != u8Seconds ) { u8Seconds = (uint8_t)rtd.u32Second; gFlags.refresh_display = 1; } } } if ( gFlags.tick_2hz ) { // 2Hz gFlags.tick_2hz = 0; gFlags.osc_1hz ^= 1; if ( gFlags.firing ) { if ( ISMODETC(dfMode) ) { DrawScreen(); } } else { if ( !dfStatus.off && Event == 0 && ( AtoProbeCount >= 12 ) && ( Screen == 0 || Screen == 1 || Screen == 5 ) ) { ProbeAtomizer(); } if ( gFlags.monitoring ) { Monitor(); } } } if ( gFlags.tick_1hz ) { // 1Hz gFlags.tick_1hz = 0; if ( SplashTimer ) { --SplashTimer; if ( !SplashTimer ) { MainView(); } } if ( !gFlags.firing && !dfStatus.off && !EditModeTimer ) { if ( HideLogo ) { if ( Screen == 1 ) { --HideLogo; if ( !HideLogo ) { gFlags.refresh_display = 1; } } } } } EventHandler(); } }
int main(int argc, icChar* argv[]) { if (argc<=1) { printf("Usage: CmdIccProfLibTest profile\n"); return -1; } CIccFileIO FileIO; if (!FileIO.Open(argv[1], "rb")) { printf("Unable to open '%s'\n", argv[1]); return -1; } CIccProfile *pIcc = new CIccProfile; if(!pIcc->Read(&FileIO)) { printf("Unable to read '%s'\n", argv[1]); delete pIcc; return -1; } bool Exit = false; std::string Option; ShowMenu(); while(!Exit) { Option = GetUserInput(); if(Option.size() >=2) { printf("\nInvalid Option\n"); return -1; } icChar temp = Option[0]; switch(temp) { case '0': ShowMenu(); break; case '1': ShowHeader(pIcc); ShowMenu(); break; case '2': ReadTag(pIcc); ShowMenu(); break; case '3': AddTag(&FileIO,pIcc); ShowMenu(); break; case '4': SaveProfile(pIcc); return 0; case '5': IsValidProfile(&FileIO, pIcc); ShowMenu(); break; case '6': DeleteTag(&FileIO, pIcc); ShowMenu(); break; case '7': SaveProfCopy(pIcc); ShowMenu(); break; case '9': Exit = ConfirmExit(); if(!Exit) ShowMenu(); break; default: printf("\nInvalid Option\n"); ShowMenu(); } } delete pIcc; return 0; }
void main(void) { // 內定使用DirectX 9來繪圖 char *device = "dx9"; void (*render)(void) = RenderFrameDX9; bool (*init_resource)(void) = InitResourceDX9; bool (*release_resource)(void) = ReleaseResourceDX9; void (*resize_func)(int width, int height) = ResizeWindowDX9; #ifdef _ENABLE_DX10_ printf("Press\n(1) for Direct3D9\n(2) for OpenGL\n(3) for Direct3D10\n"); #else printf("Press\n(1) for Direct3D9\n(2) for OpenGL\n"); #endif int c = getche(); switch(c) { default: case '1': render = RenderFrameDX9; init_resource = InitResourceDX9; release_resource = ReleaseResourceDX9; resize_func = ResizeWindowDX9; break; case '2': device = "opengl"; init_resource = InitResourceOpenGL; release_resource = ReleaseResourceOpenGL; render = RenderFrameOpenGL; resize_func = ResizeWindowOpenGL; break; #ifdef _ENABLE_DX10_ case '3': device = "dx10"; init_resource = InitResourceDX10; release_resource = ReleaseResourceDX10; render = RenderFrameDX10; resize_func = ResizeWindowDX10; break; #endif } printf("\nSelected %s device for rendering.\n", device); GutResizeFunc( resize_func ); // 在(100,100)的位置開啟一個大小為(512x512)的視窗 GutCreateWindow(100, 100, 512, 512, device); // 做OpenGL或DirectX初始化 if ( !GutInitGraphicsDevice(device) ) { printf("Failed to initialize %s device\n", device); exit(0); } // GutInputInit(); GutRegisterKeyDown(GUTKEY_1, KeyDown_1); GutRegisterKeyDown(GUTKEY_2, KeyDown_2); GutRegisterKeyDown(GUTKEY_3, KeyDown_3); GutRegisterKeyDown(GUTKEY_4, KeyDown_4); GutRegisterKeyDown(GUTKEY_5, KeyDown_5); GutRegisterKeyDown(GUTKEY_6, KeyDown_6); GutRegisterKeyPressed(GUTKEY_EQUALS, KeyPressed_ADD); GutRegisterKeyPressed(GUTKEY_MINUS, KeyPressed_MINUS); GutRegisterKeyPressed(GUTKEY_ADD, KeyPressed_ADD); GutRegisterKeyPressed(GUTKEY_SUBTRACT, KeyPressed_MINUS); g_Control.SetCamera(Vector4(0.0f, 3.0f, 1.0f), Vector4(0.0f, 0.0f, 1.0f), Vector4(0.0f, 0.0f, 1.0f) ); g_Control.SetMoveSpeed(5.0f); // g_emitter.m_fEmitRate = 300; g_emitter.m_fEmitTheta = FastMath::DegToRad(15.0f); g_emitter.m_fParticleInitSpeed[0] = 1.0f; g_emitter.m_fParticleInitSpeed[1] = 2.0f; g_emitter.m_fParticleLife[0] = 1.5f; g_emitter.m_fParticleLife[1] = 2.0f; g_emitter.m_fParticleSize[0] = 0.05f; g_emitter.m_fParticleSize[1] = 0.10f; g_Particle.SetEmitter(g_emitter); g_Particle.SetForce(Vector4(0.0f, 0.0f, -1.0f)); // 載入shader if ( !init_resource() ) { release_resource(); printf("Failed to load resources\n"); exit(0); } g_Timer.Restart(); // 主回圈 while( GutProcessMessage() ) { GetUserInput(); // framemove(); // 畫出矩形 render(); } // 卸載shader release_resource(); // 關閉OpenGL/DirectX繪圖裝置 GutReleaseGraphicsDevice(); }
void main(void) { // 內定使用DirectX 9來繪圖 char *device = "dx9"; void (*render)(void) = RenderFrameDX9; bool (*init_resource)(void) = InitResourceDX9; bool (*release_resource)(void) = ReleaseResourceDX9; void (*resize_func)(int width, int height) = ResizeWindowDX9; #ifndef _ENABLE_DX10_ printf("Press\n(1) for Direct3D9\n(2) for OpenGL\n"); #else printf("Press\n(1) for Direct3D9\n(2) for OpenGL\n(3) for Direct3D10\n"); #endif int c = getche(); switch(c) { default: case '1': render = RenderFrameDX9; init_resource = InitResourceDX9; release_resource = ReleaseResourceDX9; resize_func = ResizeWindowDX9; break; case '2': device = "opengl"; init_resource = InitResourceOpenGL; release_resource = ReleaseResourceOpenGL; render = RenderFrameOpenGL; resize_func = ResizeWindowOpenGL; break; case '3': #ifdef _ENABLE_DX10_ device = "dx10"; init_resource = InitResourceDX10; release_resource = ReleaseResourceDX10; render = RenderFrameDX10; resize_func = ResizeWindowDX10; #endif break; } GutResizeFunc( resize_func ); // 在(100,100)的位置開啟一個大小為(512x512)的視窗 GutCreateWindow(100, 100, 512, 512, device); // 做OpenGL或DirectX初始化 if ( !GutInitGraphicsDevice(device) ) { printf("Failed to initialize %s device\n", device); exit(0); } GutInputInit(); g_Control.SetCamera(Vector4(5.0f, 0.0f, 5.0f), Vector4(0.0f), Vector4(0.0f, 1.0f, 0.0f) ); g_Model.Load_ASCII("../../models/teapot_set.gma"); g_SpotLightModel.Load_ASCII("../../models/spotlight.gma"); // 載入shader if ( !init_resource() ) { release_resource(); printf("Failed to load resources\n"); exit(0); } // 主回圈 while( GutProcessMessage() ) { GetUserInput(); render(); } // 卸載shader release_resource(); // 關閉OpenGL/DirectX繪圖裝置 GutReleaseGraphicsDevice(); }
void Credits () { InitAnimatedSkyBackground (); int TextPosition1 = 1; int TextPosition2 = 1; int Textline1 = "PSP-OSS"; int Textline2 = OSSVersion; int Textline3 = "WwW.PsP-OsS.com"; int Textline4 = "Coded by:"; int Textline5 = "ELZ"; int Textline6 = "Canti"; int Textline7 = "Daurnimator"; int Textline8 = "Mondy"; int Textline8AndAHalf = "INK"; int Textline9 = "GFX by:"; int Textline10 = "System"; int Textline11 = "Posty"; int Textline12 = "Enjoy ;)"; int Textline13 = "Check PSP-OSS[DOT]COM for updates!"; int Textline14 = "Oh, I almost forgot; F**K YOU SASUKE!"; while (1) { AnimateSkyBackground (); GetUserInput (); PutTextFont (TextPosition2, 262, "PSP-OSS - WwW.PsP-OsS.CoM", DARK_RED); PutTextFont (TextPosition2, 0, "PSP-OSS - WwW.PsP-OsS.CoM", DARK_RED); PutTextFont (5, TextPosition1, Textline1, BLACK); PutTextFont (20, (TextPosition1 + 10), Textline2, RED); PutTextFont (40, (TextPosition1 + 20), Textline3, RED); PutTextFont (5, (TextPosition1 + 50), Textline4, ORANGE); PutTextFont (5, (TextPosition1 + 60), Textline5, CYAN); PutTextFont (5, (TextPosition1 + 70), Textline6, CYAN); PutTextFont (5, (TextPosition1 + 80), Textline7, CYAN); PutTextFont (5, (TextPosition1 + 90), Textline8, CYAN); PutTextFont (5, (TextPosition1 + 100), Textline8AndAHalf, CYAN); PutTextFont (5, (TextPosition1 + 130), Textline9, ORANGE); PutTextFont (5, (TextPosition1 + 140), Textline10, CYAN); PutTextFont (5, (TextPosition1 + 150), Textline11, CYAN); PutTextFont (5, (TextPosition1 + 190), Textline12, BLUE); PutTextFont (5, (TextPosition1 + 230), Textline13, BLACK); PutTextFont (5, (TextPosition1 + 250), Textline14, BLACK); PauseVbl (5) TextPosition2++; if (TextPosition1 == 272) { TextPosition1 = 0; } if (TextPosition2 == 480) { TextPosition2 = 0; } PrintScreen (); if (pad.Buttons & PSP_CTRL_DOWN) { TextPosition1++; } if (pad.Buttons & PSP_CTRL_UP) { TextPosition1--; } if (pad.Buttons & PSP_CTRL_START) { break; } } }
void main(void) { // 內定使用DirectX 9來繪圖 char *device = "dx9"; void (*render)(void) = RenderFrameDX9; bool (*init_resource)(void) = InitResourceDX9; bool (*release_resource)(void) = ReleaseResourceDX9; void (*resize_func)(int width, int height) = ResizeWindowDX9; #ifdef _ENABLE_DX10_ printf("Press\n(1) for Direct3D9\n(2) for OpenGL\n(3) for Direct3D10\n"); #else printf("Press\n(1) for Direct3D9\n(2) for OpenGL\n"); #endif int c = getche(); switch(c) { default: case '1': render = RenderFrameDX9; init_resource = InitResourceDX9; release_resource = ReleaseResourceDX9; resize_func = ResizeWindowDX9; break; case '2': device = "opengl"; init_resource = InitResourceOpenGL; release_resource = ReleaseResourceOpenGL; render = RenderFrameOpenGL; resize_func = ResizeWindowOpenGL; break; case '3': #ifdef _ENABLE_DX10_ device = "dx10"; init_resource = InitResourceDX10; release_resource = ReleaseResourceDX10; render = RenderFrameDX10; resize_func = ResizeWindowDX10; #endif break; } GutResizeFunc( resize_func ); // 在(100,100)的位置開啟一個大小為(512x512)的視窗 GutCreateWindow(100, 100, 512, 512, device); // 做OpenGL或DirectX初始化 if ( !GutInitGraphicsDevice(device) ) { printf("Failed to initialize %s device\n", device); exit(0); } float texel = 1.0f/(float)shadowmap_size; int index = 0; for ( int y=-PCF_sample_span; y<=PCF_sample_span; y++ ) { for ( int x=-PCF_sample_span; x<=PCF_sample_span; x++ ) { g_vTexOffset[index++].Set(x*texel, y*texel, 0.0f, 0.0f); } } index = 0; for ( int y=-1; y<=2; y++ ) { for ( int x=-1; x<=2; x++ ) { g_vTexOffset2[index++].Set(x*texel, y*texel, 0.0f, 0.0f); } } GutInputInit(); GutRegisterKeyDown(GUTKEY_1, KeyDown_1); GutRegisterKeyDown(GUTKEY_2, KeyDown_2); GutRegisterKeyPressed(GUTKEY_ADD, KeyPressed_ADD); GutRegisterKeyPressed(GUTKEY_SUBTRACT, KeyPressed_MINUS); g_Control.SetCamera(Vector4(5.0f, 0.0f, 5.0f), Vector4(0.0f), Vector4(0.0f, 1.0f, 0.0f) ); g_Model.SetTexturePath("../../textures/"); if ( !g_Model.Load_ASCII("../../models/altar.gma") ) { exit(0); } // 載入shader if ( !init_resource() ) { release_resource(); printf("Failed to load resources\n"); exit(0); } // 主回圈 while( GutProcessMessage() ) { GetUserInput(); render(); } // 卸載shader release_resource(); // 關閉OpenGL/DirectX繪圖裝置 GutReleaseGraphicsDevice(); }
void RunProgram(void) { int running = 1; //USER_INPUT[0] = USER_INPUT_0; //USER_INPUT[1] = USER_INPUT_1; //USER_INPUT[2] = USER_INPUT_2; //USER_INPUT[3] = USER_INPUT_3; //USER_INPUT[4] = NULL; while (running) { PrintPrompt(); GetUserInput(); if (strcmp(USER_INPUT[0], "exit") == 0) { running = 0; } else if (strcmp(USER_INPUT[0], "ls") == 0) { if (strcmp(USER_INPUT[1], ". . . . .") == 0) { //printf("Requires an argument for path name\n"); list(GetCurrentDirectoryClusterNum()); } else { ls(USER_INPUT[1]); } } else if (strcmp(USER_INPUT[0], "cd") == 0) { if (strcmp(USER_INPUT[1], ". . . . .") == 0) { printf("Requires an argument for path name\n"); } else if (strcmp(USER_INPUT[1], ".") == 0) { // do nothing } else { //char parsed_dir[USER_INPUT_BUFFER_LENGTH]; //strcpy(parsed_dir, USER_INPUT[1]); //ToFAT32(parsed_dir); //printf("!%s!\n", parsed_dir); cd(USER_INPUT[1]); } } else if (strcmp(USER_INPUT[0], "size") == 0) { if (strcmp(USER_INPUT[1], ". . . . .") == 0) { printf("Requires a file name argument\n"); } else { size(USER_INPUT[1]); } } else if (strcmp(USER_INPUT[0], "open") == 0) { if (strcmp(USER_INPUT[1], ". . . . .") == 0 || strcmp(USER_INPUT[2], ". . . . .") == 0) { printf("Requires a file name argument followed by a mode argument\n"); } else { char parsed_dir[USER_INPUT_BUFFER_LENGTH]; strcpy(parsed_dir, USER_INPUT[1]); ToFAT32(parsed_dir); open(parsed_dir, USER_INPUT[2]); } } else if (strcmp(USER_INPUT[0], "close") == 0) { if (strcmp(USER_INPUT[1], ". . . . .") == 0) { printf("Requires a file name argument\n"); } else { char parsed_dir[USER_INPUT_BUFFER_LENGTH]; strcpy(parsed_dir, USER_INPUT[1]); ToFAT32(parsed_dir); close(parsed_dir); } } else if (strcmp(USER_INPUT[0], "read") == 0) { if (strcmp(USER_INPUT[1],". . . . .") == 0 || strcmp(USER_INPUT[2],". . . . .") == 0 || strcmp(USER_INPUT[3],". . . . .") == 0) { printf("Requires arguments for filename, position, and size\n"); } else { char parsed_dir[USER_INPUT_BUFFER_LENGTH]; strcpy(parsed_dir, USER_INPUT[1]); ToFAT32(parsed_dir); read(parsed_dir, atoi(USER_INPUT[2]), atoi(USER_INPUT[3])); } } else if (strcmp(USER_INPUT[0], "create") == 0) { if (strcmp(USER_INPUT[1],". . . . .") == 0) { printf("Requires an argument for the file name\n"); } else if (strcmp(USER_INPUT[1],".") == 0) { printf("Invalid file name\n"); } else if (strcmp(USER_INPUT[1],"..") == 0) { printf("Invalid file name\n"); } else { char parsed_dir[USER_INPUT_BUFFER_LENGTH]; strcpy(parsed_dir, USER_INPUT[1]); ToFAT32(parsed_dir); create(parsed_dir); } } else if (strcmp(USER_INPUT[0], "mkdir") == 0) { if (strcmp(USER_INPUT[1],". . . . .") == 0) { printf("Requires an argument for the directory name\n"); } else if (strcmp(USER_INPUT[1],".") == 0) { printf("Invalid directory name\n"); } else if (strcmp(USER_INPUT[1],"..") == 0) { printf("Invalid directory name\n"); } else { char parsed_dir[USER_INPUT_BUFFER_LENGTH]; strcpy(parsed_dir, USER_INPUT[1]); ToFAT32(parsed_dir); mkdir(parsed_dir); } } else if (strcmp(USER_INPUT[0], "rm") == 0) { if (strcmp(USER_INPUT[1],". . . . .") == 0) { printf("Requires an argument for the file name\n"); } else if (strcmp(USER_INPUT[1],".") == 0) { printf("Invalid file name\n"); } else if (strcmp(USER_INPUT[1],"..") == 0) { printf("Invalid file name\n"); } else { char parsed_dir[USER_INPUT_BUFFER_LENGTH]; strcpy(parsed_dir, USER_INPUT[1]); ToFAT32(parsed_dir); rm(parsed_dir); } } else if (strcmp(USER_INPUT[0], "rmdir") == 0) { if (strcmp(USER_INPUT[1],". . . . .") == 0) { printf("Requires an argument for the directory name\n"); } else if (strcmp(USER_INPUT[1],".") == 0) { printf("Invalid directory name\n"); } else if (strcmp(USER_INPUT[1],"..") == 0) { printf("Invalid directory name\n"); } else { char parsed_dir[USER_INPUT_BUFFER_LENGTH]; strcpy(parsed_dir, USER_INPUT[1]); ToFAT32(parsed_dir); rmdir(parsed_dir); } } else if (strcmp(USER_INPUT[0], "write") == 0) { if (strcmp(USER_INPUT[1],". . . . .") == 0 || strcmp(USER_INPUT[2],". . . . .") == 0 || strcmp(USER_INPUT[3],". . . . .") == 0 || strcmp(USER_INPUT[4],". . . . .") == 0) { printf("Requires arguments for file name, position, number of bytes, and string to write\n"); } else { char parsed_dir[USER_INPUT_BUFFER_LENGTH]; strcpy(parsed_dir, USER_INPUT[1]); ToFAT32(parsed_dir); write(parsed_dir, atoi(USER_INPUT[2]), atoi(USER_INPUT[3]), USER_INPUT[4]); } } else if (strcmp(USER_INPUT[0], "debug") == 0) { printf("CURRENT_CLUSTER: %d\n", GetCurrentDirectoryClusterNum()); printf("CURRENT_CLUSTER BYTE_ADDRESS: 0x%x\n", FindFirstSectorOfCluster(GetCurrentDirectoryClusterNum())); FTPrint(); PrintDirectoryVector(GetDirectoryContents(GetCurrentDirectoryClusterNum())); } } int k; for (k = 0; k < 5; k++) { free(USER_INPUT[k]); } }
int Keyboard (char *Keyboard_Output_Temp) { Keyboard_CurrentKey = 1; Keyboard_Characters = 0; Keyboard_CharsetLowercase (); PauseVbl (30); //Pause for half a second while (1) { GetUserInput (); PutGFX (0, 0, 480, 270, wallpaper, 0, 0); //Wallpaper PutGFX (0, 0, 480, 15, Keyboard_Output, 0, 242); PutTextFont (5, 245, Keyboard_Output_Temp, KeyboardC); Keyboard_ButtonTemp = 1; while (Keyboard_ButtonTemp < 33) { if (Keyboard_CurrentKey == Keyboard_ButtonTemp) { PutGFX (0, 0, 15, 15, Keyboard_Button2,(15 * (Keyboard_ButtonTemp - 1)), 257); } else { PutGFX (0, 0, 15, 15, Keyboard_Button1,(15 * (Keyboard_ButtonTemp - 1)), 257); } char buffer[10]; sprintf (buffer, "%c",Keyboard_Characters[(Keyboard_ButtonTemp - 1)]); PutTextFont ((15 * (Keyboard_ButtonTemp - 1) + 3), 260, buffer,Keyboard2C); Keyboard_ButtonTemp += 1; } if (pad.Buttons != old_buttons) { old_buttons = pad.Buttons; if (pad.Buttons & PSP_CTRL_CONFIRM&& strlen (Keyboard_Output_Temp) < 50) { int size; size = strlen (Keyboard_Output_Temp); Keyboard_Output_Temp[size] = Keyboard_Characters[(Keyboard_CurrentKey - 1)]; Keyboard_Output_Temp[size+1] = '\0'; } //Space if (pad.Buttons & PSP_CTRL_TRIANGLE && strlen (Keyboard_Output_Temp) < 50) { Keyboard_Output_Temp[strlen (Keyboard_Output_Temp)] = ' '; } //Delete if (pad.Buttons & PSP_CTRL_SQUARE) { Keyboard_Output_Temp[strlen (Keyboard_Output_Temp) - 1] = 0; } //Move right if (pad.Buttons & PSP_CTRL_RIGHT) { Keyboard_CurrentKey += 1; if (Keyboard_CurrentKey == 34) { Keyboard_CurrentKey = 1; } } //Move left if (pad.Buttons & PSP_CTRL_LEFT) { Keyboard_CurrentKey -= 1; if (Keyboard_CurrentKey == 0) { Keyboard_CurrentKey = 33; } } //Done if (pad.Buttons & PSP_CTRL_START) { return Keyboard_Output_Temp; } //Change charset if (pad.Buttons & PSP_CTRL_SELECT) { if (Keyboard_Charset == "Lowercase") { Keyboard_CharsetUppercase (); } else if (Keyboard_Charset == "Uppercase") { Keyboard_CharsetOther (); } else if (Keyboard_Charset == "Other") { Keyboard_CharsetLowercase (); } } } //Fast right if (pad.Buttons & PSP_CTRL_RTRIGGER) { Keyboard_CurrentKey += 1; if (Keyboard_CurrentKey == 34) { Keyboard_CurrentKey = 1; } } //Fast left if (pad.Buttons & PSP_CTRL_LTRIGGER) { Keyboard_CurrentKey -= 1; if (Keyboard_CurrentKey == 0) { Keyboard_CurrentKey = 33; } } PutGFX (0, 0, 32, 32, cursor, cursorPosition.x, cursorPosition.y); PrintScreen (); } }
void InputManager::Run() { char input = GetUserInput(); _myWorld->Run(input); }
void main(void) { // 內定使用DirectX 9來繪圖 char *device = "dx9"; void (*render)(void) = RenderFrameDX9; bool (*init_resource)(void) = InitResourceDX9; bool (*release_resource)(void) = ReleaseResourceDX9; void (*resize_func)(int width, int height) = ResizeWindowDX9; /* #ifdef _ENABLE_DX10_ printf("Press\n(1) for Direct3D9\n(2) for OpenGL\n(3) for Direct3D10\n"); #else printf("Press\n(1) for Direct3D9\n(2) for OpenGL\n"); #endif */ printf("Press\n(1) for Direct3D9\n(2) for OpenGL\n"); int c = getche(); switch(c) { default: case '1': render = RenderFrameDX9; init_resource = InitResourceDX9; release_resource = ReleaseResourceDX9; resize_func = ResizeWindowDX9; break; case '2': device = "opengl"; init_resource = InitResourceOpenGL; release_resource = ReleaseResourceOpenGL; render = RenderFrameOpenGL; resize_func = ResizeWindowOpenGL; break; /* #ifdef _ENABLE_DX10_ case '3': device = "dx10"; init_resource = InitResourceDX10; release_resource = ReleaseResourceDX10; render = RenderFrameDX10; resize_func = ResizeWindowDX10; break; #endif */ } printf("\nSelected %s device for rendering.\n", device); GutResizeFunc( resize_func ); // 在(100,100)的位置開啟一個大小為(512x512)的視窗 GutCreateWindow(100, 100, 512, 512, device); // 做OpenGL或DirectX初始化 if ( !GutInitGraphicsDevice(device) ) { printf("Failed to initialize %s device\n", device); exit(0); } // GutInputInit(); GutRegisterKeyDown(GUTKEY_1, KeyDown_1); g_Control.SetCamera(Vector4(0.0f, 0.0f, 5.0f), Vector4(0.0f, 1.0f, 5.0f), Vector4(0.0f, 0.0f, 1.0f) ); g_Control.SetMoveSpeed(20.0f); // 設定方向光 g_Lights[0].m_Direction.Set(0.0f, 1.0f, 1.0f, 0.0f); g_Lights[0].m_Direction.Normalize(); g_Lights[0].m_Diffuse.Set(0.6f, 0.6f, 0.6f, 1.0f); g_Lights[0].m_Specular.Set(1.0f, 1.0f, 1.0f, 1.0f); // 載入shader if ( !init_resource() ) { release_resource(); printf("Failed to load resources\n"); exit(0); } // 主回圈 while( GutProcessMessage() ) { GetUserInput(); // 畫出矩形 render(); } // 卸載shader release_resource(); // 關閉OpenGL/DirectX繪圖裝置 GutReleaseGraphicsDevice(); }
void main(void) { // 內定使用DirectX 9來繪圖 char *device = "dx9"; void (*render)(void) = RenderFrameDX9; bool (*init_resource)(void) = InitResourceDX9; bool (*release_resource)(void) = ReleaseResourceDX9; void (*resize_func)(int width, int height) = ResizeWindowDX9; printf("Press\n(1) for Direct3D9\n(2) for OpenGL\n"); int c = getche(); switch(c) { default: case '1': render = RenderFrameDX9; init_resource = InitResourceDX9; release_resource = ReleaseResourceDX9; resize_func = ResizeWindowDX9; break; case '2': device = "opengl"; init_resource = InitResourceOpenGL; release_resource = ReleaseResourceOpenGL; render = RenderFrameOpenGL; resize_func = ResizeWindowOpenGL; break; } GutResizeFunc( resize_func ); // 在(100,100)的位置開啟一個大小為(512x512)的視窗 GutCreateWindow(100, 100, 512, 512, device); // 做OpenGL或DirectX初始化 if ( !GutInitGraphicsDevice(device) ) { printf("Failed to initialize %s device\n", device); exit(0); } // 設定方向光 g_Light.m_Position.Set(-3.0f, 0.0f, 5.0f); g_Light.m_Direction.Set(0.0f, 1.0f, 1.0f, 0.0f); g_Light.m_Direction.Normalize(); g_Light.m_Diffuse.Set(0.6f, 0.6f, 0.6f, 1.0f); //g_Light.m_Specular.Set(1.0f, 1.0f, 1.0f, 1.0f); g_Light.m_Specular.Set(0.0f, 0.0f, 0.0f, 1.0f); g_light_pos_x = g_Light.m_Position[0]; GutInputInit(); g_Control.SetCamera(Vector4(0.0f, 0.0f, 10.0f), Vector4(0.0f, 0.0f, 0.0f), Vector4(0.0f, 1.0f, 0.0f) ); g_Model.Load_ASCII("..\\..\\models\\teapot.gma"); // 載入shader if ( !init_resource() ) { release_resource(); printf("Failed to load resources\n"); exit(0); } // 主回圈 while( GutProcessMessage() ) { GetUserInput(); FrameMove(); render(); } // 卸載shader release_resource(); // 關閉OpenGL/DirectX繪圖裝置 GutReleaseGraphicsDevice(); }
void main(void) { // 內定使用DirectX 9來繪圖 char *device = "dx9"; void (*render)(void) = RenderFrameDX9; bool (*init_resource)(void) = InitResourceDX9; bool (*release_resource)(void) = ReleaseResourceDX9; void (*resize_func)(int width, int height) = ResizeWindowDX9; #ifdef _ENABLE_DX10_ printf("Press\n(1) for Direct3D9\n(2) for OpenGL\n(3) for Direct3D10\n"); #else printf("Press\n(1) for Direct3D9\n(2) for OpenGL\n"); #endif int c = getche(); switch(c) { default: case '1': render = RenderFrameDX9; init_resource = InitResourceDX9; release_resource = ReleaseResourceDX9; resize_func = ResizeWindowDX9; break; case '2': device = "opengl"; init_resource = InitResourceOpenGL; release_resource = ReleaseResourceOpenGL; render = RenderFrameOpenGL; resize_func = ResizeWindowOpenGL; break; #ifdef _ENABLE_DX10_ case '3': device = "dx10"; init_resource = InitResourceDX10; release_resource = ReleaseResourceDX10; render = RenderFrameDX10; resize_func = ResizeWindowDX10; break; #endif } printf("\nSelected %s device for rendering.\n", device); GutResizeFunc( resize_func ); // 在(100,100)的位置開啟一個大小為(512x512)的視窗 GutCreateWindow(100, 100, 512, 512, device); // 做OpenGL或DirectX初始化 if ( !GutInitGraphicsDevice(device) ) { printf("Failed to initialize %s device\n", device); exit(0); } g_view_matrix.Identity(); g_world_matrix.Identity(); GutInputInit(); // 載入shader if ( !init_resource() ) { release_resource(); printf("Failed to load resources\n"); exit(0); } // 主回圈 while( GutProcessMessage() ) { GetUserInput(); // 畫出矩形 render(); } // 卸載shader release_resource(); // 關閉OpenGL/DirectX繪圖裝置 GutReleaseGraphicsDevice(); }
void main(void) { // 內定使用DirectX 9來繪圖 char *device = "dx9"; void (*render)(void) = RenderFrameDX9; bool (*init_resource)(void) = InitResourceDX9; bool (*release_resource)(void) = ReleaseResourceDX9; void (*resize_func)(int width, int height) = ResizeWindowDX9; #ifdef _ENABLE_DX10_ printf("Press\n(1) for Direct3D9\n(2) for OpenGL\n(3) for Direct3D10\n"); #else printf("Press\n(1) for Direct3D9\n(2) for OpenGL\n"); #endif int c = getche(); switch(c) { default: case '1': render = RenderFrameDX9; init_resource = InitResourceDX9; release_resource = ReleaseResourceDX9; resize_func = ResizeWindowDX9; break; case '2': device = "opengl"; init_resource = InitResourceOpenGL; release_resource = ReleaseResourceOpenGL; render = RenderFrameOpenGL; resize_func = ResizeWindowOpenGL; break; case '3': #ifdef _ENABLE_DX10_ device = "dx10"; init_resource = InitResourceDX10; release_resource = ReleaseResourceDX10; render = RenderFrameDX10; resize_func = ResizeWindowDX10; #endif break; } GutResizeFunc( resize_func ); GutCreateWindow(100, 100, 512, 512, device); if ( !GutInitGraphicsDevice(device) ) { printf("Failed to initialize %s device\n", device); exit(0); } // ambient g_Lights[0].m_vPosition.Set(0.0f, 0.0f, 0.0f, 1.0f); g_Lights[0].m_vDiffuse.Set(0.0f); g_Lights[0].m_vAmbient.Set(0.3f); GutInputInit(); GutRegisterKeyDown(GUTKEY_1, KeyDown_1); GutRegisterKeyDown(GUTKEY_2, KeyDown_2); GutRegisterKeyDown(GUTKEY_3, KeyDown_3); GutRegisterKeyDown(GUTKEY_SPACE, KeyDown_Space); g_Control.SetCamera( Vector4(0.0f, 3.0f, 0.0f), Vector4(0.0f, 0.0f, 0.0f), Vector4(0.0f, 0.0f, 1.0f) ); g_Model.Load_ASCII("..\\..\\models\\earth_normalmapped.gma"); g_Sphere.Load_ASCII("..\\..\\models\\sphere_simple.gma"); // 載入shader if ( !init_resource() ) { release_resource(); printf("Failed to load resources\n"); exit(0); } // 主回圈 while( GutProcessMessage() ) { GetUserInput(); frame_move(); render(); } // 卸載shader release_resource(); // 關閉OpenGL/DirectX繪圖裝置 GutReleaseGraphicsDevice(); }