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