2: #include <petsc/private/drawimpl.h>
4: PETSC_EXTERN PetscErrorCode PetscDrawCreate_Image(PetscDraw);
5: PETSC_EXTERN PetscErrorCode PetscDrawCreate_TikZ(PetscDraw);
6: #if defined(PETSC_HAVE_X)
7: PETSC_EXTERN PetscErrorCode PetscDrawCreate_X(PetscDraw);
8: #endif
9: PETSC_EXTERN PetscErrorCode PetscDrawCreate_Null(PetscDraw);
10: #if defined(PETSC_USE_WINDOWS_GRAPHICS)
11: PETSC_EXTERN PetscErrorCode PetscDrawCreate_Win32(PetscDraw);
12: #endif
14: PetscBool PetscDrawRegisterAllCalled = PETSC_FALSE;
16: /*@C
17: PetscDrawRegisterAll - Registers all of the graphics methods in the `PetscDraw` package.
19: Not Collective
21: Level: developer
23: .seealso: `PetscDraw`, `PetscDrawType`, `PetscDrawRegisterDestroy()`
24: @*/
25: PetscErrorCode PetscDrawRegisterAll(void)
26: {
27: PetscFunctionBegin;
28: if (PetscDrawRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
29: PetscDrawRegisterAllCalled = PETSC_TRUE;
31: PetscCall(PetscDrawRegister(PETSC_DRAW_IMAGE, PetscDrawCreate_Image));
32: PetscCall(PetscDrawRegister(PETSC_DRAW_TIKZ, PetscDrawCreate_TikZ));
33: #if defined(PETSC_HAVE_X)
34: PetscCall(PetscDrawRegister(PETSC_DRAW_X, PetscDrawCreate_X));
35: #elif defined(PETSC_USE_WINDOWS_GRAPHICS)
36: PetscCall(PetscDrawRegister(PETSC_DRAW_WIN32, PetscDrawCreate_Win32));
37: #endif
38: PetscCall(PetscDrawRegister(PETSC_DRAW_NULL, PetscDrawCreate_Null));
39: PetscFunctionReturn(PETSC_SUCCESS);
40: }