Actual source code: drawopenx.c
2: /*
3: Defines the operations for the X PetscDraw implementation.
4: */
6: #include <../src/sys/classes/draw/impls/x/ximpl.h>
8: /*@C
9: PetscDrawOpenX - Opens an X-window for use with the `PetscDraw` routines.
11: Collective
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`
23: Output Parameter:
24: . draw - the drawing context.
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.
45: Level: beginner
47: Note:
48: When finished with the drawing context, it should be destroyed
49: with `PetscDrawDestroy()`.
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.
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: }