void subScreenRender(void) { int i, j; /* Render all screens */ for(i = 0; i < subtle->screens->ndata; i++) { SubScreen *s = SCREEN(subtle->screens->data[i]); Window panel = s->panel1; ScreenClear(s, subtle->styles.subtle.top); /* Render panel items */ for(j = 0; s->panels && j < s->panels->ndata; j++) { SubPanel *p = PANEL(s->panels->data[j]); if(p->flags & SUB_PANEL_HIDDEN) continue; if(panel != s->panel2 && p->flags & SUB_PANEL_BOTTOM) { ScreenCopy(s, panel); ScreenClear(s, subtle->styles.subtle.bottom); panel = s->panel2; } subPanelRender(p, s->drawable); } ScreenCopy(s, panel); } XSync(subtle->dpy, False); ///< Sync before going on } /* }}} */
void Render() { clock_t CurTime = clock(); int j = 0; ScreenClear(); for (int i = startIndex; i < startIndex + printStr - 1; i++, j++) { ScreenPrint(15, j, IntroPrint[i]); // (15,j) 지점에 출력 // 수진언니 편집 } if (upFlag == true) { if (CurTime - OldTime > PrintTime) // 문구 올라가는 시간 : 2초 { if (startIndex >= printStr) upFlag = false; startIndex++; OldTime = CurTime; } } ScreenFlipping(); }
/* * Initialize the VM/CNSconsole. */ errr init_vme(void) { register i; term *t = &term_screen_body; short blank = ' '; static int done = FALSE; /* Paranoia -- Already done */ if (done) return (-1); /* Build a "wiper line" of blank spaces */ for (i = 0; i < 256; i++) wiper[i] = blank; /* Acquire the size of the screen */ rows = 25; cols = 80; /* Initialize the console */ InitConsole(); /* Wipe the screen */ for (i = 0; i < rows; i++) { /* Wipe that row */ memcpy(VirtualScreen + (i*cols), wiper, cols); memset(ScreenAttr + (i*cols), 0xF1, cols); } /* Erase the screen */ ScreenClear(); /* Initialize the term -- very large key buffer */ term_init(t, cols, rows - 1, 1024); /* Prepare the init/nuke hooks */ t->nuke_hook = Term_nuke_vm; /* Connect the hooks */ t->text_hook = Term_text_vm; t->wipe_hook = Term_wipe_vm; t->curs_hook = Term_curs_vm; t->xtra_hook = Term_xtra_vm; /* Save it */ term_screen = t; /* Activate it */ Term_activate(term_screen); /* Done */ done = TRUE; /* Success */ return 0; }
/* * Handle special request. */ static errr Term_xtra_vm(int n, int v) { int i, j; char tmp; /* Analyze the request */ switch (n) { /* Make a noise */ case TERM_XTRA_NOISE: /* No noises here! :) */ return (0); /* Wait for a single event */ case TERM_XTRA_EVENT: /* No wait key press check */ if (!v && !kbhit()) return (1); /* Wait for a keypress */ i = getkey(); /* Save keypress */ Term_keypress(i); /* Success */ return (0); case TERM_XTRA_CLEAR: ScreenClear(); return (0); #if 0 case TERM_XTRA_FROSH: ScreenUpdateLine(VirtualScreen + (cols*v), v); return (0); #endif case TERM_XTRA_FLUSH: /* Flush keys */ while (1) { tmp=getkeybuf(); if (!tmp) break; Term_keypress(tmp); } /* Success */ return (0); } /* Unknown request */ return (1); }
// 출력 void Render() { char string[100] = { 0 }; ScreenClear(); int gLength, i; // 출력 시작 if (p_GameState == RUNNING) { // 좌우에 벽을 만듬 (클리핑) if (Player.X < 0) ScreenPrint(0, Player.MoveY, &strPlayer[Player.X * (-1)]); else if (Player.MoveX + (Length - Player.MoveX + Player.CenterX + 1) > 79) { strncat(string, strPlayer, Length - ((Player.MoveX + Player.CenterX + 1) - 79)); ScreenPrint(Player.X, Player.Y, string); } else { ScreenPrint(Player.X, Player.Y, strPlayer); } ScreenPrint(Ball.bMoveX, Ball.bMoveY, "◎"); sprintf(string, "주인공 이동좌표 : %d, %d 점 수 : %d/%d 초기화 : R 버튼 ", Player.MoveX, Player.Y, BallCount, p_GoalCount); ScreenPrint(0, 0, string); //골대 출력 ScreenPrint(Goal.gMoveX, Goal.gMoveY, "ㅁ"); gLength = Goal.gLength * 2 + 1; for (i = 0; i < gLength; i++) ScreenPrint(Goal.gLineX[i], Goal.gMoveY, "ㅡ"); ScreenPrint(Goal.gLineX[gLength - 1] + 2, Goal.gMoveY, "ㅁ"); //세레머니 출력 if (GoalIn == 1) { //ScreenClear(); //GoalCere(10,5); ScreenPrint(50, 5, "** G O A L I N **"); } } // 상태 출력 ScreenPrint(20, 10, StateString); //출력 끝 ScreenFlipping(); }
void subScreenRender(void) { int i, j; /* Render all screens */ for(i = 0; i < subtle->screens->ndata; i++) { SubScreen *s = SCREEN(subtle->screens->data[i]); Window panel = s->panel1; ScreenClear(s, subtle->styles.subtle.top); /* Render panel items */ for(j = 0; s->panels && j < s->panels->ndata; j++) { SubPanel *p = PANEL(s->panels->data[j]); if(p->flags & SUB_PANEL_HIDDEN) continue; if(panel != s->panel2 && p->flags & SUB_PANEL_BOTTOM) { XCopyArea(subtle->dpy, s->drawable, panel, subtle->gcs.draw, 0, 0, s->base.width, subtle->ph, 0, 0); ScreenClear(s, subtle->styles.subtle.bottom); panel = s->panel2; } subPanelRender(p, s->drawable); } XCopyArea(subtle->dpy, s->drawable, panel, subtle->gcs.draw, 0, 0, s->base.width, subtle->ph, 0, 0); } XSync(subtle->dpy, False); ///< Sync before going on subSubtleLogDebugSubtle("Render\n"); } /* }}} */
void Render() { ScreenClear(); char InBoxNum[5]; char temp[5]; /* if (GameStatus == START) { ScreenPrint(10, 2, startPrint); } */ StatusPrint(); // GameStatus에 따른 문구 출력 if (GameStatus == RUNNING || GameStatus == FINISH) { sprintf(guidePrint, "숫자 세 개를 입력하세요. 남은 목숨 : %d \n", Player.life); ScreenPrint(10, 5, guidePrint); // 입력한 수 출력 for (int i = 0; i < 3; i++) { if (InBox[i].num != -1) // 숫자가 있는 것만 출력 { sprintf(InBoxNum, "%d", InBox[i].num); ScreenPrint(InBox[i].X, InBox[i].Y, InBoxNum); } } /* // 테스트용 정답 출력 sprintf(temp, "%d", Computer.x); ScreenPrint(10, 13, temp); sprintf(temp, "%d", Computer.y); ScreenPrint(10, 16, temp); sprintf(temp, "%d", Computer.z); ScreenPrint(10, 19, temp); */ ScreenPrint(10, 10, gueAftPrint); // 추측 후 메시지 출력 } ScreenFlipping(); }
void Draw() { int i; ScreenClear(); SetColor(11, 0); DrawUI(); SetColor(9, 0); ScreenPrint(g_nCharXPos, g_nCharYPos, "!!"); SetColor(12, 0); for (i = 0; i < 3; i++){ ScreenPrint(g_nEnemyXPos[i], g_nEnemyYPos[i], "00"); } SetColor(14, 0); ScreenPrint(g_nCoinXPos, g_nCoinYPos, "$"); for (i = 0; i < 5; i++){ if (g_nBulletFalg[i] == TRUE) { SetColor(14, 0); ScreenPrint(g_nBulletXPos[i], g_nBulletYPos[i], "||"); } } if (g_nItemKeyFlag == TRUE){ SetColor(13, 0); ScreenPrint(g_nItemXPos, g_nItemYPos, "+"); } sprintf(strTemp, "%d", g_nLife); sprintf(strTemp2, "%d", g_nTimeElapsed); sprintf(strTemp3, "%d", g_nKills); SetColor(15, 0); ScreenPrint(0, 22, "Life: "); ScreenPrint(6, 22, strTemp); ScreenPrint(0, 24, "Score: "); ScreenPrint(7, 24, strTemp2); ScreenPrint(0, 23, "Kills: "); ScreenPrint(7, 23, strTemp3); ScreenFlipping(); }
void Render() { char string[100] = {0}; ScreenClear(); int gLength, i; // 출력 시작 // 좌우에 벽을 만듬 (클리핑) if(Player.X < 0) ScreenPrint(0, Player.MoveY, &strPlayer[Player.X * (-1)]); else if(Player.MoveX + (Length - Player.MoveX + Player.CenterX + 1) > 79) { strncat_s(string, strPlayer, Length - ((Player.MoveX + Player.CenterX + 1) - 79)); ScreenPrint(Player.X, Player.Y, string); }else{ ScreenPrint(Player.X, Player.Y, strPlayer); } ScreenPrint(Ball.bMoveX, Ball.bMoveY, "○"); sprintf_s(string, "주인공 이동좌표 : %d, %d", Player.MoveX, Player.Y); ScreenPrint(0, 0, string); //골대 출력 ScreenPrint(Goal.gMoveX, Goal.gMoveY, "ㅁ"); gLength = Goal.gLength * 2 + 1; for(i = 0; i < gLength; i++) ScreenPrint(Goal.gLineX[i], Goal.gMoveY, "ㅡ"); ScreenPrint(Goal.gLineX[gLength - 1] + 2, Goal.gMoveY, "ㅁ"); //출력 끝 ScreenFlipping(); }
void term_clear() { ScreenClear(); }
void Render() { ScreenClear(); char TheTopBar[81]; StatusPrint(); // 상태별 화면 출력 // 게임 화면 if (GameStatus == RUNNING) { // 상단바 출력 sprintf(TheTopBar, "현 스테이지 : %d | Life : %d \t\t [Map%d]", Stage.level + 1, Player.Life, MapIndex); ScreenPrint(17, 2, TheTopBar); // Board 출력 // 각모서리 ScreenPrint(Board.leftX, Board.topY, "┌"); // 좌측 상단 ScreenPrint(Board.rightX, Board.topY, "┐"); // 우측 상단 ScreenPrint(Board.leftX, Board.bottomY, "└"); // 좌측 하단 ScreenPrint(Board.rightX, Board.bottomY, "┘"); // 우측 하단 // 위아래벽 for (int i = Board.leftX + 2; i < Board.rightX; i++) { ScreenPrint(i, Board.topY, "-"); ScreenPrint(i, Board.bottomY, "-"); } // 좌우벽 for (int i = Board.topY + 1; i < Board.bottomY; i++) { ScreenPrint(Board.leftX, i, "│"); ScreenPrint(Board.rightX, i, "│"); } // Goal 출력 if (Goal.IsEnable) { ScreenPrint(Goal.X, Goal.Y, "G"); } // Player 출력 ScreenPrint(Player.X, Player.Y, "-●-"); // Block 출력 for (int i = 0; i < MaxBlockCount; i++) { if (Block[i].X == 0 && Block[i].Y == 0) continue; // 좌표가 주어지지 않은 Block 표시 X ScreenPrint(Block[i].X, Block[i].Y, "■"); } // Portal 출력 for (int i = 0; i < 4; i++) { if (Portal[i].IsEnable == false) // 유효하지 않은 포탈이면 continue; ScreenPrint(Portal[i].X, Portal[i].Y, "★"); } } ScreenFlipping(); }
void Render() { char string[100]; char MoveLine[] = { "===============================================================================" }; // 행동범위 제한 ScreenClear(); // 렌더링 StatusPrint(); if (GameStatus == RUNNING || GameStatus == STOP || GameStatus == GO) { sprintf(string, "\tLife : %d Star : %d (총 %d 점 ) 게임 종료 : Q 버튼\n", Player.Life, Star.Catch, Star.SumCatch); ScreenPrint(0, 0, string); ScreenPrint(0, 1, MoveLine); // 1, 2 스테이지에서 MoveLine if (Stage != 2) { ScreenPrint(0, Player.Y - 1, MoveLine); ScreenPrint(0, Player.Y + 1, MoveLine); } ScreenPrint(Player.X, Player.Y, Player_Shape); // 플레이어 표시 // Dot 표시 switch (Stage) { case 2: for (int i = DotNum * 2; i < DotNum * 3; i++) // → { ScreenPrint(Dot[i].X, Dot[i].Y, Dot_Shape[2]); // 점 표시 } for (int i = DotNum * 3; i < DotNum * 4; i++) // ← { ScreenPrint(Dot[i].X, Dot[i].Y, Dot_Shape[3]); // 점 표시 } case 1: for (int i = DotNum; i < DotNum * 2; i++) // ↑ { ScreenPrint(Dot[i].X, Dot[i].Y, Dot_Shape[1]); // 점 표시 } for (int i = 0; i < DotNum; i++) // ↓ { ScreenPrint(Dot[i].X, Dot[i].Y, Dot_Shape[0]); // 점 표시 } break; case 0: for (int i = 0; i < Zero; i++) // ↓ { ScreenPrint(Dot[i].X, Dot[i].Y, Dot_Shape[0]); // 점 표시 } break; } ScreenPrint(Star.X, Star.Y, Star_Shape); // Star 표시 } ScreenFlipping(); }
//***************************************************************************** // // Send the currently encoded tag in the buffer. // This is a good example of all the fields that must be considered and the // order to process them in when sending a message. // //***************************************************************************** void SendData(void) { uint32_t ui32length=0, ui32Type=0, ui32Counter=0, x=0; uint8_t SendDataErr[]="Error on Sending Tag. Tag Format Not Recognized."; bool bCheck; // // Determine Tag Type. // for(x=0,ui32Type=0;x<g_sNDEFMessage.ui8TypeLength;x++) { ui32Type=(ui32Type<<8)+g_sNDEFMessage.pui8Type[x]; } // // Handler for different Message Types. // switch(ui32Type) { case NDEF_TYPE_TEXT : { // // Encode the Record from Struct to Buffer. // bCheck = NFCP2P_NDEFTextRecordEncoder(g_sNDEFText, g_pui8PayloadBuffer, sizeof(g_pui8PayloadBuffer), &ui32Counter); break; } case NDEF_TYPE_URI : { // // Encode the Record from Struct to Buffer. // NFCP2P_NDEFURIRecordEncoder(g_sNDEFURI, g_pui8PayloadBuffer, sizeof(g_pui8PayloadBuffer), &ui32Counter); break; } case NDEF_TYPE_SIGNATURE : { // // Do Nothing, Signature Record Types Not Supported. // break; } case NDEF_TYPE_SMARTPOSTER : { // // Encode the Record from Struct to Buffer. // NFCP2P_NDEFSmartPosterRecordEncoder(g_sNDEFSmartPoster, g_pui8PayloadBuffer, sizeof(g_pui8PayloadBuffer), &ui32Counter); break; } default: { // // The Tag Type is unrecognized. Print Error Message and Exit. // ScreenClear(); ScreenPayloadWrite(SendDataErr, sizeof(SendDataErr),1); return; break; } } // // Point Payload pointer to encoded payload buffer. // g_sNDEFMessage.pui8PayloadPtr=g_pui8PayloadBuffer; // // Set Length of Payload. // g_sNDEFMessage.ui32PayloadLength=ui32Counter; // // Encode Message Header from struct to Buffer. // This is used to echo the tag back over NFC. // NFCP2P_NDEFMessageEncoder(g_sNDEFMessage, g_pui8MessageBuffer, sizeof(g_pui8MessageBuffer),&ui32length); // // Send the NFC data to the stack for processing. // NFCP2P_sendPacket(g_pui8MessageBuffer,ui32length); // // Notify User of Message Sent. // UARTprintf("Message Sent.\n"); }
int ModeHandler(int mode, char *textIn, int argc, char **argv) { LcdSpi *lcd; Spi *spiBus0; ScreenData *screenBg; int result = 0; Fonts font; iconv_t ic; size_t res; char text[MAX_ISO8859_LEN] = ""; memset(&font, 0, sizeof(Fonts)); spiBus0 = SpiCreate(0); if (spiBus0 == NULL) { printf("SPI-Error\n"); exit(EXITCODE_ERROR); } lcd = LcdOpen(spiBus0); if (!lcd) { printf("LCD-Error\n"); exit(EXITCODE_ERROR); } if (gConfig.mIsInit == 1) { LcdInit(lcd); } else if (gConfig.mIsInit == 2) { LcdUninit(lcd); exit(EXITCODE_OK); } if (gConfig.mIsBgLight) { LcdSetBgLight(lcd, gConfig.mBgLight & 1, gConfig.mBgLight & 2, gConfig.mBgLight & 4); } screenBg = ScreenInit(LCD_X, LCD_Y); if (!screenBg) { printf("Screen-Error\n"); exit(EXITCODE_ERROR); } ScreenClear(screenBg); if (gConfig.mBgFilename) { if (ScreenLoadImage(screenBg, gConfig.mBgFilename, gConfig.mBgOffX, gConfig.mBgOffY) != 0) { ScreenClear(screenBg); } } if (textIn) { int testInLen = strlen(textIn); char **inPtr = &textIn; char *outPtr = &text[0]; ic = iconv_open("ISO-8859-1", "UTF-8"); if (ic != (iconv_t)(-1)) { size_t inBytesLeft = testInLen; size_t outBytesLeft = sizeof(text) - 1; res = iconv(ic, inPtr, &inBytesLeft, &outPtr, &outBytesLeft); if ((int)res != -1 && outBytesLeft) { outPtr[0] = 0; } else { strncpy(text, textIn, sizeof(text) - 1); text[sizeof(text) - 1] = 0; } iconv_close(ic); } } //printf("Mode: %i\n", mode); switch (mode) { case OPT_YESNO: LoadFonts(&font); result = YesNo(lcd, &font, text, screenBg); break; case OPT_OK: LoadFonts(&font); result = Ok(lcd, &font, text, screenBg); break; case OPT_MENU: LoadFonts(&font); result = Menu(lcd, &font, screenBg, optind, argc, argv); break; case OPT_IPV4: LoadFonts(&font); result = Ipv4(lcd, &font, text, screenBg, optind, argc, argv); break; case OPT_SUBNETMASK: LoadFonts(&font); result = Subnetmask(lcd, &font, text, screenBg, optind, argc, argv); break; case OPT_INFO: LoadFonts(&font); result = Info(lcd, &font, text, screenBg); break; case OPT_BUTTONWAIT: result = ButtonWait(); break; case OPT_INTINPUT: LoadFonts(&font); result = IntInput(lcd, &font, text, screenBg, optind, argc, argv); break; case OPT_PROGRESS: LoadFonts(&font); result = Progress(lcd, &font, text, screenBg, optind, argc, argv); break; case OPT_PERCENT: LoadFonts(&font); result = Percent(lcd, &font, text, screenBg, optind, argc, argv); break; default: break; } if (font.mSystem) { //FontDestroy(font.mSystem); } if (font.mInternal) { //FontDestroy(font.mInternal); } if (gConfig.mIsClear) { LcdCls(lcd); } ScreenDestroy(screenBg); LcdCleanup(lcd); SpiDestroy(spiBus0); return result; }
void CRendering::ConstructL() { CActiveScheduler::Add( this ); // clear the screen, and also check the display mode of iBitmapInfo is the same as expected // If not, stop creating the CRendering object. TBool ret = (iSettings & CDirectScreenBitmap::EIncrementalUpdate) ? ScreenClearPartial() : ScreenClear(); if (!ret) { User::Leave(KErrGeneral); } }
void Render() { char BarPrint[100]; ScreenClear(); // GameStatus에 따른 화면 출력 함수 StatusPrint(); // RUNNIG 시 출력 문구 if (GameStatus == RUNNING) { // 상태바 출력 sprintf(BarPrint, "남은 뒤집기 : %d 맞춘 카드 : %d 남은 카드 : %d", selectChance, matchCardCount, (Stage.CardCount / 2) - matchCardCount); ScreenPrint(16, 2, BarPrint); // Board 출력 // 각모서리 ScreenPrint(Board.leftX, Board.topY, "┌"); // 좌측 상단 ScreenPrint(Board.rightX, Board.topY, "┐"); // 우측 상단 ScreenPrint(Board.leftX, Board.bottomY, "└"); // 좌측 하단 ScreenPrint(Board.rightX, Board.bottomY, "┘"); // 우측 하단 // 위아래벽 for (int i = Board.leftX + 2; i < Board.rightX; i++) { ScreenPrint(i, Board.topY, "-"); ScreenPrint(i, Board.bottomY, "-"); } // 좌우벽 for (int i = Board.topY + 1; i < Board.bottomY; i++) { ScreenPrint(Board.leftX, i, "│"); ScreenPrint(Board.rightX, i, "│"); } // Card 출력 if (Stage.CardCount == 12) { for (int i = 0; i < Stage.CardCount; i++) { ScreenPrint(Card[i].X, Card[i].Y, Card[i].PrintForm); } } else { for (int i = 0; i < Stage.CardCount; i++) { ScreenPrint(Card[i].X, Card[i].Y - 2, Card[i].PrintForm); } } // Choice 출력 if (Stage.CardCount == 12) { ScreenPrint(Choice.X, Choice.Y, "▷"); } else { ScreenPrint(Choice.X, Choice.Y - 2, "▷"); } } /* //test 시작 for (int i = 0; i < 4; i++) { ScreenPrint(24 + (10*i), 8, "※"); } for (int i = 0; i < 4; i++) { ScreenPrint(24, 8 + (4*i), "※"); } //test 끝 */ ScreenFlipping(); }