:orphan:
# PetscDrawCreate
Creates a graphics context.
## Synopsis
```
#include "petscdraw.h"
#include "petscviewer.h"
PetscErrorCode PetscDrawCreate(MPI_Comm comm, const char display[], const char title[], int x, int y, int w, int h, PetscDraw *indraw)
```
Collective
## Input Parameters
- ***comm -*** MPI communicator
- ***display -*** X display when using X Windows
- ***title -*** optional title added to top of window
- ***x -*** horizonatl coordinate of lower left corner of window or `PETSC_DECIDE`
- ***y -*** vertical coordinate of lower left corner of window or `PETSC_DECIDE`
- ***w -*** width of window, `PETSC_DECIDE`, `PETSC_DRAW_HALF_SIZE`, `PETSC_DRAW_FULL_SIZE`, `PETSC_DRAW_THIRD_SIZE` or `PETSC_DRAW_QUARTER_SIZE`
- ***h -*** height of window, `PETSC_DECIDE`, `PETSC_DRAW_HALF_SIZE`, `PETSC_DRAW_FULL_SIZE`, `PETSC_DRAW_THIRD_SIZE` or `PETSC_DRAW_QUARTER_SIZE`
## Output Parameter
- ***draw -*** location to put the `PetscDraw` context
## See Also
`PetscDrawSetType()`, `PetscDrawSetFromOptions()`, `PetscDrawDestroy()`, `PetscDrawSetType()`, `PetscDrawLGCreate()`, `PetscDrawSPCreate()`,
`PetscDrawViewPortsCreate()`, `PetscDrawViewPortsSet()`, `PetscDrawAxisCreate()`, `PetscDrawHGCreate()`, `PetscDrawBarCreate()`,
`PetscViewerDrawGetDraw()`, `PetscDrawSetFromOptions()`, `PetscDrawSetSave()`, `PetscDrawSetSaveMovie()`, `PetscDrawSetSaveFinalImage()`,
`PetscDrawOpenX()`, `PetscDrawOpenImage()`, `PetscDrawIsNull()`, `PetscDrawGetPopup()`, `PetscDrawCheckResizedWindow()`, `PetscDrawResizeWindow()`,
`PetscDrawGetWindowSize()`, `PetscDrawLine()`, `PetscDrawArrow()`, `PetscDrawLineSetWidth()`, `PetscDrawLineGetWidth()`, `PetscDrawMarker()`,
`PetscDrawPoint()`, `PetscDrawRectangle()`, `PetscDrawTriangle()`, `PetscDrawEllipse()`, `PetscDrawString()`, `PetscDrawStringCentered()`,
`PetscDrawStringBoxed()`, `PetscDrawStringVertical()`, `PetscDrawSetViewPort()`, `PetscDrawGetViewPort()`,
`PetscDrawSplitViewPort()`, `PetscDrawSetTitle()`, `PetscDrawAppendTitle()`, `PetscDrawGetTitle()`, `PetscDrawSetPause()`, `PetscDrawGetPause()`,
`PetscDrawPause()`, `PetscDrawSetDoubleBuffer()`, `PetscDrawClear()`, `PetscDrawFlush()`, `PetscDrawGetSingleton()`, `PetscDrawGetMouseButton()`,
`PetscDrawZoom()`, `PetscDrawGetBoundingBox()`
## Level
beginner
## Location
src/sys/classes/draw/interface/drawreg.c
## Examples
src/ksp/ksp/tutorials/ex68.c
src/ksp/ksp/tutorials/ex69.c
## Implementations
PetscDrawCreate_Image in src/sys/classes/draw/impls/image/drawimage.c
PetscDrawCreate_Null in src/sys/classes/draw/impls/null/drawnull.c
PetscDrawCreate_TikZ in src/sys/classes/draw/impls/tikz/tikz.c
PetscDrawCreate_Win32 in src/sys/classes/draw/impls/win32/win32draw.c
PetscDrawCreate_X in src/sys/classes/draw/impls/x/xops.c
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/sys/classes/draw/interface/drawreg.c)
[Index of all Draw routines](index.md)
[Table of Contents for all manual pages](/manualpages/index.md)
[Index of all manual pages](/manualpages/singleindex.md)