1 2 /* 3 Defines the operations for the X PetscDraw implementation. 4 */ 5 6 #include <../src/sys/classes/draw/impls/x/ximpl.h> /*I "petscsys.h" I*/ 7 8 /*@C 9 PetscDrawOpenX - Opens an X-window for use with the `PetscDraw` routines. 10 11 Collective 12 13 Input Parameters: 14 + comm - the communicator that will share X-window 15 . display - the X display on which to open,or null for the local machine 16 . title - the title to put in the title bar,or null for no title 17 . x,y - the screen coordinates of the upper left corner of window 18 may use `PETSC_DECIDE` for these two arguments, then PETSc places the 19 window 20 - w, h - the screen width and height in pixels, or `PETSC_DRAW_HALF_SIZE`, `PETSC_DRAW_FULL_SIZE`, 21 or `PETSC_DRAW_THIRD_SIZE` or `PETSC_DRAW_QUARTER_SIZE` 22 23 Output Parameter: 24 . draw - the drawing context. 25 26 Options Database Keys: 27 + -nox - Disables all x-windows output 28 . -display <name> - Sets name of machine for the X display 29 . -draw_pause <pause> - Sets time (in seconds) that the 30 program pauses after PetscDrawPause() has been called 31 (0 is default, -1 implies until user input). 32 . -draw_cmap <name> - Sets the colormap to use. 33 . -draw_cmap_reverse - Reverses the colormap. 34 . -draw_cmap_brighten - Brighten (0 < beta < 1) or darken (-1 < beta < 0) the colormap. 35 . -draw_x_shared_colormap - Causes PETSc to use a shared 36 colormap. By default PETSc creates a separate color 37 for its windows, you must put the mouse into the graphics 38 window to see the correct colors. This options forces 39 PETSc to use the default colormap which will usually result 40 in bad contour plots. 41 . -draw_fast - Does not create colormap for contour plots. 42 . -draw_double_buffer - Uses double buffering for smooth animation. 43 - -geometry - Indicates location and size of window. 44 45 Level: beginner 46 47 Note: 48 When finished with the drawing context, it should be destroyed 49 with `PetscDrawDestroy()`. 50 51 Note for Fortran Programmers: 52 Whenever indicating null character data in a Fortran code, 53 `PETSC_NULL_CHARACTER` must be employed; using NULL is not 54 correct for character data! Thus, `PETSC_NULL_CHARACTER` can be 55 used for the display and title input parameters. 56 57 .seealso: `PetscDrawFlush()`, `PetscDrawDestroy()`, `PetscDrawCreate()`, `PetscDrawOpnOpenGL()` 58 @*/ 59 PetscErrorCode PetscDrawOpenX(MPI_Comm comm, const char display[], const char title[], int x, int y, int w, int h, PetscDraw *draw) 60 { 61 PetscFunctionBegin; 62 PetscCall(PetscDrawCreate(comm, display, title, x, y, w, h, draw)); 63 PetscCall(PetscDrawSetType(*draw, PETSC_DRAW_X)); 64 PetscFunctionReturn(PETSC_SUCCESS); 65 } 66