xref: /petsc/src/sys/classes/draw/interface/drawregall.c (revision e8e8640d1cb9a3a2f50c0c0d7b26e5c4d521e2e4)
1 #include <petsc/private/drawimpl.h> /*I "petscdraw.h" I*/
2 
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
12 
13 PetscBool PetscDrawRegisterAllCalled = PETSC_FALSE;
14 
15 /*@C
16   PetscDrawRegisterAll - Registers all of the graphics methods in the `PetscDraw` package.
17 
18   Not Collective
19 
20   Level: developer
21 
22 .seealso: `PetscDraw`, `PetscDrawType`, `PetscDrawRegisterDestroy()`
23 @*/
PetscDrawRegisterAll(void)24 PetscErrorCode PetscDrawRegisterAll(void)
25 {
26   PetscFunctionBegin;
27   if (PetscDrawRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
28   PetscDrawRegisterAllCalled = PETSC_TRUE;
29 
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 }
40