... that is, until you pass another window over them to force a repaint.
I'm using DRAW_CHARACTERS@. For angle of 0 = horizontal there's no problem, they plot just fine. For any other angle, any part of any character that is outside the positive (upper right) quadrant is invisible. Calling PERFORM_GRAPHICS_UPDATE@ doesn't help. I have to physically move another window over the graphics window and away again to force a repaint and then the invisible parts of characters become visible.
Code snippets:
DATA TEXTM /'MIDDLE'/
...
UMID = (UMIN + UMAX)*0.5
VMID = (VMIN + VMAX)*0.5
HT = 40.0
ANGLE = -90.0
CALL VIG_TEXT (UMID,VMID,TEXTM,HT,ANGLE,IRGB)
ANGLE = -75.0
CALL VIG_TEXT (UMID,VMID,TEXTM,HT,ANGLE,IRGB)
ANGLE = -60.0
CALL VIG_TEXT (UMID,VMID,TEXTM,HT,ANGLE,IRGB)
ANGLE = -45.0
CALL VIG_TEXT (UMID,VMID,TEXTM,HT,ANGLE,IRGB)
ANGLE = -30.0
CALL VIG_TEXT (UMID,VMID,TEXTM,HT,ANGLE,IRGB)
ANGLE = -15.0
CALL VIG_TEXT (UMID,VMID,TEXTM,HT,ANGLE,IRGB)
ANGLE = 0.0
CALL VIG_TEXT (UMID,VMID,TEXTM,HT,ANGLE,IRGB)
ANGLE = 15.0
CALL VIG_TEXT (UMID,VMID,TEXTM,HT,ANGLE,IRGB)
ANGLE = 30.0
CALL VIG_TEXT (UMID,VMID,TEXTM,HT,ANGLE,IRGB)
ANGLE = 45.0
CALL VIG_TEXT (UMID,VMID,TEXTM,HT,ANGLE,IRGB)
ANGLE = 60.0
CALL VIG_TEXT (UMID,VMID,TEXTM,HT,ANGLE,IRGB)
ANGLE = 75.0
CALL VIG_TEXT (UMID,VMID,TEXTM,HT,ANGLE,IRGB)
ANGLE = 90.0
CALL VIG_TEXT (UMID,VMID,TEXTM,HT,ANGLE,IRGB)
--------------------------------------------
SUBROUTINE VIG_TEXT (U,V,TEXTM,H,A,IRGB)
USE MSWIN
USE CLRWIN
IMPLICIT DOUBLE PRECISION (A-H,O-Z)
COMMON /VIG/ IXAX,IYAX,IGO,USIZE,VSIZE,UMIN,UMAX,VMIN,VMAX,
1 XUSC,YVSC,XMIN,YMIN,XMAX,YMAX
CHARACTER*(*) TEXTM
DOUBLE PRECISION U,V,H,A,AA,VV,H
C
C WRITE OUT TEXT STRING
C H = HEIGHT IN PIXELS
C A = CLOCKWISE ROTATION ANGLE
C
CALL SELECT_FONT@('Modern')
IH = H
IW = (IH+1)/2
CALL SIZE_IN_PIXELS@ (IH,IW)
CALL BOLD_FONT@ (1)
AA = -A
CALL ROTATE_FONT@ (AA)
IU = U
VV = VSIZE - V
IV = VV
CALL DRAW_CHARACTERS@ (TEXTM,IU,IV,IRGB)
CALL PERFORM_GRAPHICS_UPDATE@ ()
RETURN
END
As originally plotted it looks like this -

(the little command window, generated elsewhere in the program, was over the bottom right part of the text until I moved it away). I then moved the command window across to the left, like this:
which revealed a little more of the text. I then swiped it over the whole area to reveal all of the text:

In fact any other window from the same or a different program will do the job - I just used this little one for convenience.
How can I reveal all of the text without having to obscure the graphics window first? Is there a more powerful version of PERFORM_GRAPHICS_UPDATE@ that actually does perform a full update - or a CW+ function that forces a WM_PAINT ?
ps edit #1.... I have found that a Minimise followed by a Restore will force a repaint of the whole window, making all the text visible. So if no Paint, are there any CW+ functions to do the Minimise and Restore ?