xref: /petsc/src/sys/classes/draw/interface/dflush.c (revision 8f69470a7058bcc0cf21d9492705f60bbdfc5aa4)
15c6c1daeSBarry Smith /*
25c6c1daeSBarry Smith        Provides the calling sequences for all the basic PetscDraw routines.
35c6c1daeSBarry Smith */
4af0996ceSBarry Smith #include <petsc/private/drawimpl.h>  /*I "petscdraw.h" I*/
55c6c1daeSBarry Smith 
65c6c1daeSBarry Smith #undef __FUNCT__
75c6c1daeSBarry Smith #define __FUNCT__ "PetscDrawFlush"
85c6c1daeSBarry Smith /*@
95c6c1daeSBarry Smith    PetscDrawFlush - Flushs graphical output.
105c6c1daeSBarry Smith 
115c6c1daeSBarry Smith    Not collective (Use PetscDrawSynchronizedFlush() for collective)
125c6c1daeSBarry Smith 
135c6c1daeSBarry Smith    Input Parameters:
145c6c1daeSBarry Smith .  draw - the drawing context
155c6c1daeSBarry Smith 
165c6c1daeSBarry Smith    Level: beginner
175c6c1daeSBarry Smith 
185c6c1daeSBarry Smith    Concepts: flushing^graphics
195c6c1daeSBarry Smith 
205c6c1daeSBarry Smith .seealso: PetscDrawSynchronizedFlush()
215c6c1daeSBarry Smith @*/
225c6c1daeSBarry Smith PetscErrorCode  PetscDrawFlush(PetscDraw draw)
235c6c1daeSBarry Smith {
245c6c1daeSBarry Smith   PetscErrorCode ierr;
255fd66863SKarl Rupp 
265c6c1daeSBarry Smith   PetscFunctionBegin;
275c6c1daeSBarry Smith   PetscValidHeaderSpecific(draw,PETSC_DRAW_CLASSID,1);
285c6c1daeSBarry Smith   if (draw->ops->flush) {
295c6c1daeSBarry Smith     ierr = (*draw->ops->flush)(draw);CHKERRQ(ierr);
305c6c1daeSBarry Smith   }
315c6c1daeSBarry Smith   PetscFunctionReturn(0);
325c6c1daeSBarry Smith }
33*8f69470aSLisandro Dalcin 
34*8f69470aSLisandro Dalcin #undef __FUNCT__
35*8f69470aSLisandro Dalcin #define __FUNCT__ "PetscDrawSynchronizedFlush"
36*8f69470aSLisandro Dalcin /*@
37*8f69470aSLisandro Dalcin    PetscDrawSynchronizedFlush - Flushes graphical output. This waits until all
38*8f69470aSLisandro Dalcin    processors have arrived and flushed, then does a global flush.
39*8f69470aSLisandro Dalcin    This is usually done to change the frame for double buffered graphics.
40*8f69470aSLisandro Dalcin 
41*8f69470aSLisandro Dalcin    Collective on PetscDraw
42*8f69470aSLisandro Dalcin 
43*8f69470aSLisandro Dalcin    Input Parameters:
44*8f69470aSLisandro Dalcin .  draw - the drawing context
45*8f69470aSLisandro Dalcin 
46*8f69470aSLisandro Dalcin    Level: beginner
47*8f69470aSLisandro Dalcin 
48*8f69470aSLisandro Dalcin    Concepts: flushing^graphics
49*8f69470aSLisandro Dalcin 
50*8f69470aSLisandro Dalcin .seealso: PetscDrawFlush()
51*8f69470aSLisandro Dalcin 
52*8f69470aSLisandro Dalcin @*/
53*8f69470aSLisandro Dalcin PetscErrorCode  PetscDrawSynchronizedFlush(PetscDraw draw)
54*8f69470aSLisandro Dalcin {
55*8f69470aSLisandro Dalcin   PetscErrorCode ierr;
56*8f69470aSLisandro Dalcin 
57*8f69470aSLisandro Dalcin   PetscFunctionBegin;
58*8f69470aSLisandro Dalcin   PetscValidHeaderSpecific(draw,PETSC_DRAW_CLASSID,1);
59*8f69470aSLisandro Dalcin   if (draw->ops->synchronizedflush) {
60*8f69470aSLisandro Dalcin     ierr = (*draw->ops->synchronizedflush)(draw);CHKERRQ(ierr);
61*8f69470aSLisandro Dalcin   }
62*8f69470aSLisandro Dalcin   PetscFunctionReturn(0);
63*8f69470aSLisandro Dalcin }
64