/* Update for page changes. */ static void update_preview(HWND hMainWnd) { RECT paper; HWND hEditorWnd = GetDlgItem(hMainWnd, IDC_EDITOR); HWND hwndPreview = GetDlgItem(hMainWnd, IDC_PREVIEW); HBITMAP hBitmapCapture; FORMATRANGE fr; HDC hdc = GetDC(hwndPreview); fr.hdcTarget = make_dc(); fr.rc = fr.rcPage = preview.rcPage; fr.rc.left += margins.left; fr.rc.top += margins.top; fr.rc.bottom -= margins.bottom; fr.rc.right -= margins.right; fr.chrg.cpMin = 0; fr.chrg.cpMax = preview.textlength; paper.left = 0; paper.right = preview.bmSize.cx; paper.top = 0; paper.bottom = preview.bmSize.cy; if (!preview.hdc) { preview.hdc = CreateCompatibleDC(hdc); hBitmapCapture = CreateCompatibleBitmap(hdc, preview.bmSize.cx, preview.bmSize.cy); SelectObject(preview.hdc, hBitmapCapture); } fr.hdc = preview.hdc; draw_preview(hEditorWnd, &fr, &paper, preview.page); if(preview.pages_shown > 1) { if (!preview.hdc2) { preview.hdc2 = CreateCompatibleDC(hdc); hBitmapCapture = CreateCompatibleBitmap(hdc, preview.bmSize.cx, preview.bmSize.cy); SelectObject(preview.hdc2, hBitmapCapture); } fr.hdc = preview.hdc2; draw_preview(hEditorWnd, &fr, &fr.rcPage, preview.page + 1); } DeleteDC(fr.hdcTarget); ReleaseDC(hwndPreview, hdc); InvalidateRect(hwndPreview, NULL, FALSE); update_preview_buttons(hMainWnd); update_preview_statusbar(hMainWnd); }
void TriMeshView::draw_base_mesh() { // Enable the vertex array glEnableClientState(GL_VERTEX_ARRAY); glVertexPointer(3, GL_FLOAT, 0, &triMesh->vertices[0][0]); //normal array if(!triMesh->normals.empty()) { glEnableClientState(GL_NORMAL_ARRAY); glNormalPointer(GL_FLOAT, 0, &triMesh->normals[0][0]); } else { glDisableClientState(GL_NORMAL_ARRAY); } // glColor3f(1, 1, 1); // draw_strips();//遮住背面法线 // Draw the mesh, possibly with color and/or lighting glDepthFunc(GL_LESS); glEnable(GL_DEPTH_TEST); glPolygonOffset(5.0f, 30.0f); glEnable(GL_POLYGON_OFFSET_FILL); glEnable(GL_CULL_FACE); if(isDrawCurvColors) draw_curv_colors(); if(isDrawNormalColors) draw_normal_colors(); //draw_color_maps(); glColor3f(1, 1, 1); draw_strips();//遮住背面法线 // // Reset everything glDisableClientState(GL_COLOR_ARRAY); glDisable(GL_CULL_FACE); glDepthMask(GL_FALSE); // Do not remove me, else get dotted lines--zdd: That's true. if(isDrawEdges) draw_edges(); if(isDrawNormals) draw_normals(); if(isDrawPreview) draw_preview(); if(isDrawCurv1) draw_curv1(); if(isDrawCurv2) draw_curv2(); glDisableClientState(GL_VERTEX_ARRAY); }
static void draw(void) { center(); draw_playgrd(); draw_preview(); draw_linerecord(); draw_blockrecord(); draw_status(); draw_cur(); fflush(stdout); }
/*! Mode loop function \author jfpatry \date Created: 2000-09-24 \date Modified: 2000-09-24 */ static void race_select_loop( scalar_t time_step ) { use_hud_program(); check_gl_error(); update_audio(); set_gl_options( GUI ); clear_rendering_context(); ui_setup_display(); if (getparam_ui_snow()) { update_ui_snow( time_step, False ); draw_ui_snow(); } ui_draw_menu_decorations(False); if (price_update) { update_text(); price_update = False; } GameMenu_draw(); draw_preview(); winsys_update_joysticks(); ui_draw(); reshape( getparam_x_resolution(), getparam_y_resolution() ); winsys_swap_buffers(); }
void FCEUGUI_Run() { static int index = 0; static int spy = 72; int done = 0, y, i; load_preview(); g_dirty = 1; while (!done) { // Parse input readkey(); if (parsekey(DINGOO_B)) done = 1; if (parsekey(DINGOO_UP, 1)) { if (index > 0) { index--; spy -= 16; } else { index = 7; spy = 72 + 16*index; } } if (parsekey(DINGOO_DOWN, 1)) { if (index < 7) { index++; spy += 16; } else { index = 0; spy = 72; } } if (parsekey(DINGOO_A)) { done = main_menu[index].command(); if(index == 3) load_preview(); } if (index == 3 || index == 4) { if (parsekey(DINGOO_RIGHT, 1)) { if (g_slot < 9) { g_slot++; FCEUI_SelectState(g_slot, 0); load_preview(); } } if (parsekey(DINGOO_LEFT, 1)) { if (g_slot > 0) { g_slot--; FCEUI_SelectState(g_slot, 0); load_preview(); } } } // Must draw bg only when needed // Draw stuff if (g_dirty) { draw_bg(g_bg); //Draw Top and Bottom Bars DrawChar(gui_screen, SP_SELECTOR, 0, 37); DrawChar(gui_screen, SP_SELECTOR, 81, 37); DrawChar(gui_screen, SP_SELECTOR, 0, 225); DrawChar(gui_screen, SP_SELECTOR, 81, 225); DrawText(gui_screen, "B - Go Back", 235, 225); DrawChar(gui_screen, SP_LOGO, 12, 9); // Draw selector DrawChar(gui_screen, SP_SELECTOR, 56, spy); DrawChar(gui_screen, SP_SELECTOR, 77, spy); if (index == 3 || index == 4) { // Draw state preview DrawChar(gui_screen, SP_PREVIEWBLOCK, 184, 73); draw_preview((unsigned short *)gui_screen->pixels, 185, 100); if (!g_ispreview) DrawChar(gui_screen, SP_NOPREVIEW, 207, 135); } if (index == 5) { DrawChar(gui_screen, SP_PREVIEWBLOCK, 184, 73); draw_shot_preview((unsigned short *)gui_screen->pixels, 185, 100); } DrawText(gui_screen, "Now Playing:", 8, 37); DrawText(gui_screen, g_romname, 96, 37); // Draw menu for (i = 0, y = 72; i < 8; i++, y += 16) { DrawText(gui_screen, main_menu[i].name, 60, y); } // Draw info DrawText(gui_screen, main_menu[index].info, 8, 225); // If save/load state render slot preview and number if (index == 3 || index == 4) { char tmp[32]; sprintf(tmp, "Slot %d", g_slot); DrawText(gui_screen, tmp, 212, 80); if (g_slot > 0) DrawChar(gui_screen, SP_LEFTARROW, 197, 83); if (g_slot < 9) DrawChar(gui_screen, SP_RIGHTARROW, 259, 83); } // If screenshot render current frame preview if (index == 5) { DrawText(gui_screen, "Preview", 207, 80); } g_dirty = 0; } SDL_Delay(16); // Update real screen FCEUGUI_Flip(); } g_psdl = FCEUD_GetPaletteArray16(); // Clear screen dingoo_clear_video(); }