[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference bulova::decw_jan-89_to_nov-90

Title:DECWINDOWS 26-JAN-89 to 29-NOV-90
Notice:See 1639.0 for VMS V5.3 kit; 2043.0 for 5.4 IFT kit
Moderator:STAR::VATNE
Created:Mon Oct 30 1989
Last Modified:Mon Dec 31 1990
Last Successful Update:Fri Jun 06 1997
Number of topics:3726
Total number of notes:19516

3503.0. "Accvio on XPolygonRegion " by PEACHS::BELDIN () Mon Oct 22 1990 16:54

	The following code accvio's with the following status the second
	time on the call to X$POLYGON_REGION ONLY on color VMS worstations
	(both GPX and SPX). Mono systems work fine... If the call to 
	X$DESTROY_REGION is removed the code works fine... Same results
	on VMS 5.3-1, VMS 5.4...  Any ideas?

	Rick Beldin
	Graphics and Applications Support
	Atlanta CSC
	
------------------------------------------------------------------------------

	Here is the text of the accvio, followed by code:

$ r old_polyregion
CYCLE =            1
CYCLE =            2
%SYSTEM-F-ACCVIO, access violation, reason mask=04, virtual address=0001A104,
PC
=0000A722, PSL=03C00001
%TRACE-F-TRACEBACK, symbolic stack dump follows
module name     routine name                     line       rel PC    abs PC

                                                           0000A722  0000A722
                                                           0007F21B  0007F21B
                                                           0009758A  0009758A
                                                           0009232F  0009232F
TEST            TEST                             6784      00000169  00000969
	
------------------------------------------------------------------------------

      PROGRAM TEST

      IMPLICIT NONE
      INCLUDE 'SYS$LIBRARY:DECW$XLIBDEF'

      INTEGER*4 DISPLAY_ID            ! display id
      INTEGER*4 WINDOW_ID             ! window id
      INTEGER*4 SCREEN_ID             ! screen id

      INTEGER*4 WINDOW_DEPTH          ! window depth
      INTEGER*4 WINDOW_HEIGHT /100/
      INTEGER*4 WINDOW_WIDTH  /100/
      RECORD /X$VISUAL/ VISUAL            ! visual type
      RECORD /X$IMAGE/ OLD_XIMAGE
      RECORD /X$IMAGE/ NEW_XIMAGE

C      INTEGER*4 X$CREATE_IMAGE
      INTEGER*4 REGION_ID
      INTEGER*4 PIXEL_WIDTH /53/
      INTEGER*4 PIXEL_HEIGHT /25/
      INTEGER*4 PIXEL
      INTEGER*4 I,K
      RECORD /X$POINT/ POINT_ARRAY(4)
      					
	INTEGER*4 STATUS                    ! status return
      INTEGER*4 ATTR_MASK                 ! window attributes mask
      RECORD /X$SET_WIN_ATTRIBUTES/ XSWDA ! window attributes

      DISPLAY_ID = X$OPEN_DISPLAY ()
      SCREEN_ID = X$DEFAULT_SCREEN_OF_DISPLAY (DISPLAY_ID)
      WINDOW_DEPTH = X$DEFAULT_DEPTH_OF_SCREEN (SCREEN_ID)
      CALL X$DEFAULT_VISUAL_OF_SCREEN (SCREEN_ID,VISUAL)

      ATTR_MASK = X$M_CW_OVERRIDE_REDIRECT
      XSWDA.X$L_SWDA_OVERRIDE_REDIRECT = X$S_CW_OVERRIDE_REDIRECT
                                                                       
      WINDOW_ID = X$CREATE_WINDOW (DISPLAY_ID,
     1  X$ROOT_WINDOW_OF_SCREEN(SCREEN_ID),
     1  0,0, WINDOW_WIDTH, WINDOW_HEIGHT, 0,
     1  WINDOW_DEPTH, X$C_INPUT_OUTPUT, VISUAL, ATTR_MASK, XSWDA)

      CALL X$MAP_WINDOW(DISPLAY_ID, WINDOW_ID)

      POINT_ARRAY(1).X$W_GPNT_X =  10
      POINT_ARRAY(1).X$W_GPNT_Y =  10
      POINT_ARRAY(2).X$W_GPNT_X =  20
      POINT_ARRAY(2).X$W_GPNT_Y =  10
      POINT_ARRAY(3).X$W_GPNT_X =  20

      POINT_ARRAY(3).X$W_GPNT_Y =  20
      POINT_ARRAY(4).X$W_GPNT_X =  10
      POINT_ARRAY(4).X$W_GPNT_Y =  20

      STATUS = X$GET_IMAGE (DISPLAY_ID, WINDOW_ID,
     1       0,0,PIXEL_WIDTH,PIXEL_HEIGHT,
     2       -1, X$C_Z_PIXMAP, OLD_XIMAGE)

      status = X$CREATE_IMAGE (DISPLAY_ID,
     1	     VISUAL.X$L_VISU_VISUALID,
     2       WINDOW_DEPTH,
     3	     X$C_Z_PIXMAP,
     4	     OLD_XIMAGE.X$L_IMAG_XOFFSET,
     5       %VAL(OLD_XIMAGE.X$A_IMAG_DATA),
     6	     PIXEL_HEIGHT,
     7	     PIXEL_WIDTH,
     8       OLD_XIMAGE.X$L_IMAG_BITMAP_PAD,
     9       OLD_XIMAGE.X$L_IMAG_BYTES_PER_LINE, 
     a	     NEW_XIMAGE)

      DO K = 1,100
      	    TYPE *, 'CYCLE = ',K
      	    DO I = 1,PIXEL_WIDTH
      		    CALL X$PUT_PIXEL(NEW_XIMAGE,1,I,PIXEL)
      	    ENDDO
C	here is where accvio occurs
      	    REGION_ID = X$POLYGON_REGION (POINT_ARRAY, 4,
     1				          X$C_EVEN_ODD_RULE)
      	    CALL X$DESTROY_REGION (REGION_ID)
      ENDDO
      CALL X$DESTROY_IMAGE (NEW_XIMAGE)

      END

        
    
T.RTitleUserPersonal
Name
DateLines