/* dynamics.c 1.1 */ /* Copyright 1992, 1993 O'Reilly and Associates, Inc. Permission to use, copy, and modify this program is hereby granted, as long as this copyright notice appears in each copy of the program source code. */ #include "book_utils.h" void print_dynamics( dpy, renderer ) Display *dpy; PEXRenderer renderer; { unsigned long table_dyns, name_set_dyns, attr_dyns; (void) PEXGetRendererDynamics( dpy, renderer, &table_dyns, &name_set_dyns, &attr_dyns ); if ( table_dyns & PEXRDTViewTableContents ) fprintf( stdout, "View contents changes are static.\n" ); else fprintf( stdout, "View contents changes are dynamic.\n" ); } void set_renderer( dpy, renderer ) Display *dpy; PEXRenderer renderer; { PEXRendererAttributes rattrs; unsigned long mask; mask = PEXRANPCSubVolume; rattrs.npc_subvolume.min.x = 0.5; rattrs.npc_subvolume.max.x = 1; rattrs.npc_subvolume.min.y = 0.5; rattrs.npc_subvolume.max.y = 1; rattrs.npc_subvolume.min.z = 0; rattrs.npc_subvolume.max.z = 1; PEXChangeRenderer( dpy, renderer, mask, &rattrs ); } #define WIN_GEOM "500x500+50+50" main( argc, argv ) int argc; char *argv[]; { Display *dpy; Window window; XVisualInfo vis_info; XColor bkgd_color; XStandardColormap cmap_info; PEXColorApproxEntry capx_info; PEXRenderer renderer; PEXRendererAttributes rattrs; PEXExtensionInfo *pexinfo; /* Open a display and initialize PEX. */ dpy = ora_init_pex( argv, &pexinfo ); if ( !dpy ) exit(1); /* Determine the best visual to use. */ ora_find_best_visual( dpy, &vis_info ); /* Get a standard colormap for the visual. */ if ( !ora_get_standard_colormap( dpy, &vis_info, &cmap_info ) ) { fprintf ( stderr, "Cannot find a standard colormap\n" ); exit(1); } ora_set_stdcmap_approx( &vis_info, &cmap_info, &capx_info ); /* Create the window, giving it a gray background. */ bkgd_color.red = bkgd_color.green = bkgd_color.blue = 0x5555; bkgd_color.flags = DoRed | DoGreen | DoBlue; window = ora_create_window( dpy, &vis_info, &cmap_info, WIN_GEOM, &bkgd_color ); if ( IMMED_MODE_SPT( pexinfo ) ) { renderer = ora_setup_renderer( dpy, window, &capx_info, &rattrs ); } else { fprintf( stderr, "No immediate mode.\n" ); exit(1); } print_dynamics( dpy, renderer ); XCloseDisplay( dpy ); return 0; }