xref: /petsc/src/sys/classes/draw/impls/x/drawopenx.c (revision 3ba1676111f5c958fe6c2729b46ca4d523958bb3)
15c6c1daeSBarry Smith 
25c6c1daeSBarry Smith /*
35c6c1daeSBarry Smith     Defines the operations for the X PetscDraw implementation.
45c6c1daeSBarry Smith */
55c6c1daeSBarry Smith 
65c6c1daeSBarry Smith #include <../src/sys/classes/draw/impls/x/ximpl.h> /*I  "petscsys.h" I*/
75c6c1daeSBarry Smith 
85c6c1daeSBarry Smith /*@C
9811af0c4SBarry Smith    PetscDrawOpenX - Opens an X-window for use with the `PetscDraw` routines.
105c6c1daeSBarry Smith 
11d083f849SBarry Smith    Collective
125c6c1daeSBarry Smith 
135c6c1daeSBarry Smith    Input Parameters:
145c6c1daeSBarry Smith +  comm - the communicator that will share X-window
155c6c1daeSBarry Smith .  display - the X display on which to open,or null for the local machine
165c6c1daeSBarry Smith .  title - the title to put in the title bar,or null for no title
175c6c1daeSBarry Smith .  x,y - the screen coordinates of the upper left corner of window
18811af0c4SBarry Smith           may use `PETSC_DECIDE` for these two arguments, then PETSc places the
195c6c1daeSBarry Smith           window
20811af0c4SBarry Smith -  w, h - the screen width and height in pixels,  or `PETSC_DRAW_HALF_SIZE`, `PETSC_DRAW_FULL_SIZE`,
21811af0c4SBarry Smith           or `PETSC_DRAW_THIRD_SIZE` or `PETSC_DRAW_QUARTER_SIZE`
225c6c1daeSBarry Smith 
23f899ff85SJose E. Roman    Output Parameter:
245c6c1daeSBarry Smith .  draw - the drawing context.
255c6c1daeSBarry Smith 
265c6c1daeSBarry Smith    Options Database Keys:
275c6c1daeSBarry Smith +  -nox - Disables all x-windows output
285c6c1daeSBarry Smith .  -display <name> - Sets name of machine for the X display
295c6c1daeSBarry Smith .  -draw_pause <pause> - Sets time (in seconds) that the
305c6c1daeSBarry Smith        program pauses after PetscDrawPause() has been called
315c6c1daeSBarry Smith        (0 is default, -1 implies until user input).
3200d931feSLisandro Dalcin .  -draw_cmap <name> - Sets the colormap to use.
3300d931feSLisandro Dalcin .  -draw_cmap_reverse - Reverses the colormap.
3400d931feSLisandro Dalcin .  -draw_cmap_brighten - Brighten (0 < beta < 1) or darken (-1 < beta < 0) the colormap.
355c6c1daeSBarry Smith .  -draw_x_shared_colormap - Causes PETSc to use a shared
365c6c1daeSBarry Smith        colormap. By default PETSc creates a separate color
375c6c1daeSBarry Smith        for its windows, you must put the mouse into the graphics
385c6c1daeSBarry Smith        window to see  the correct colors. This options forces
395c6c1daeSBarry Smith        PETSc to use the default colormap which will usually result
405c6c1daeSBarry Smith        in bad contour plots.
4100d931feSLisandro Dalcin .  -draw_fast - Does not create colormap for countour plots.
425c6c1daeSBarry Smith .  -draw_double_buffer - Uses double buffering for smooth animation.
4300d931feSLisandro Dalcin -  -geometry - Indicates location and size of window.
445c6c1daeSBarry Smith 
455c6c1daeSBarry Smith    Level: beginner
465c6c1daeSBarry Smith 
475c6c1daeSBarry Smith    Note:
485c6c1daeSBarry Smith    When finished with the drawing context, it should be destroyed
49811af0c4SBarry Smith    with `PetscDrawDestroy()`.
505c6c1daeSBarry Smith 
515c6c1daeSBarry Smith    Note for Fortran Programmers:
525c6c1daeSBarry Smith    Whenever indicating null character data in a Fortran code,
53811af0c4SBarry Smith    `PETSC_NULL_CHARACTER` must be employed; using NULL is not
54811af0c4SBarry Smith    correct for character data!  Thus, `PETSC_NULL_CHARACTER` can be
555c6c1daeSBarry Smith    used for the display and title input parameters.
565c6c1daeSBarry Smith 
57db781477SPatrick Sanan .seealso: `PetscDrawFlush()`, `PetscDrawDestroy()`, `PetscDrawCreate()`, `PetscDrawOpnOpenGL()`
585c6c1daeSBarry Smith @*/
59d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscDrawOpenX(MPI_Comm comm, const char display[], const char title[], int x, int y, int w, int h, PetscDraw *draw)
60d71ae5a4SJacob Faibussowitsch {
615c6c1daeSBarry Smith   PetscFunctionBegin;
629566063dSJacob Faibussowitsch   PetscCall(PetscDrawCreate(comm, display, title, x, y, w, h, draw));
639566063dSJacob Faibussowitsch   PetscCall(PetscDrawSetType(*draw, PETSC_DRAW_X));
64*3ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
655c6c1daeSBarry Smith }
66