|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T m
Length: 2087 (0x827) Types: TextFile Names: »mf_xwin.c«
└─⟦060c9c824⟧ Bits:30007080 DKUUG TeX 2/12/89 └─⟦this⟧ »./tex82/Unsupported/FromJapan/mf84.support/mf84/MFlib/mf_xwin.c« └─⟦52210d11f⟧ Bits:30007239 EUUGD2: TeX 3 1992-12 └─⟦beba6c409⟧ »unix3.0/Unsupported.tar.Z« └─⟦25c524ae4⟧ └─⟦this⟧ »Unsupported/FromJapan/mf84.support/mf84/MFlib/mf_xwin.c«
#ifndef lint static char RCSid[] = "$Header: mf_xwin.c,v 1.1 87/05/18 11:40:15 ikadai Exp $"; #endif #ifdef XWIN #define SCREEN_X 50 #define SCREEN_Y 50 #define SCREEN_ROWS 400 #define SCREEN_COLS 500 /* * Graphics Window interface to MetaFont for X windows */ #include <stdio.h> #include <X/Xlib.h> #include "mftypes.h" /* * global handle on the graphics subwindow (if run inside gfxtool) */ static Window win; /* * init_screen: boolean; return true if window operations legal */ mf_xwin_initscreen() { if(XOpenDisplay(NULL) == NULL) { fprintf(stderr, "! Window access requires METAFONT to run under X-Window\n"); return(0); } win = XCreateWindow(RootWindow, SCREEN_X, SCREEN_Y, SCREEN_COLS, SCREEN_ROWS, 3, BlackPixmap, WhitePixmap); if(win == 0) { fprintf(stderr, "! cannot create a window\n"); return(0); } XMapWindow(win); return(1); } /* * updatescreen; -- just make sure screen is ready to view */ mf_xwin_updatescreen() { XFlush(); } /* * blankrectangle: reset rectangle bounded by ([left,right],[top,bottom]) * to background color */ mf_xwin_blankrectangle(left, right, top, bottom) screencol left, right; screenrow top, bottom; /* Original with AllPlanes Added! { XCopyArea(win, left, top, left, top, right-left+1, bottom-top+1, GXclear, AllPlanes); } */ { XPixSet(win, left, top, right-left+1, bottom-top+1, WhitePixel); } /* * paintrow -- paint "row" starting with color "init_color", up to next * transition specified by "transition_vector", switch colors, * and continue for "vector_size" transitions. */ mf_xwin_paintrow(row, init_color, transition_vector, vector_size) screenrow row; pixelcolor init_color; transspec transition_vector; screencol vector_size; { register col; register color; color = (init_color == 0)? WhitePixel : BlackPixel; do { col = *transition_vector++; XLine(win, col, row, (*transition_vector)-1, row, 1, 1, color, GXcopy, AllPlanes); if(color == WhitePixel) color = BlackPixel; else color = WhitePixel; } while (--vector_size); } #endif XWIN