diff options
Diffstat (limited to 'Build/source/texk/windvi/wintransf.c')
-rw-r--r-- | Build/source/texk/windvi/wintransf.c | 201 |
1 files changed, 0 insertions, 201 deletions
diff --git a/Build/source/texk/windvi/wintransf.c b/Build/source/texk/windvi/wintransf.c deleted file mode 100644 index ea90c10521b..00000000000 --- a/Build/source/texk/windvi/wintransf.c +++ /dev/null @@ -1,201 +0,0 @@ -/* - wintransf.c : implementation file - Time-stamp: "03/05/21 23:50:21 popineau" - - Copyright (C) 1999 - Fabrice Popineau <Fabrice.Popineau@supelec.fr> - - This file is part of Windvi. - - Windvi is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - Windvi is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. - - You should have received a copy of the GNU General Public License - along with Windvi; if not, write to the Free Software Foundation, 59 - Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#include "wingui.h" -#include "xdvi-config.h" - -#define DEBUG_TRANSF 0 - -#define XFRM_INITIAL 100 - -XFORM xfrmTransf = {1.0, 0.0, 0.0, 1.0, 0.0, 0.0}; -XFORM xfrmUnit = {1.0, 0.0, 0.0, 1.0, 0.0, 0.0}; - -typedef struct _xfrm_stack { - long dviptr; - XFORM xfrm; -} xfrm_stack; - -xfrm_stack *xfrmStack; -int top_xfrm; -int xfrmStack_len; - -BOOL bTransfInUse = FALSE; -XFORM xfrm_unit = { 1.0, 0.0, 0.0, 1.0, 0.0,0.0 }; -XFORM current_transf; - -void init_xfrm_stack() -{ - top_xfrm = 0; - xfrmStack_len = XFRM_INITIAL; - xfrmStack = xmalloc(sizeof(xfrm_stack)*XFRM_INITIAL); - current_transf = xfrm_unit; -} - -void reset_xfrm_stack() -{ - XFORM xfrm; - top_xfrm = 0; -#if DEBUG_TRANSF - fprintf(stderr, "Resetting transformation stack.\n"); -#endif - if (ModifyWorldTransform(foreGC, &xfrm, MWT_IDENTITY) == 0) - Win32Error("reset_xfrm_stack/ModifyWorldTransform"); - bTransfInUse = FALSE; - current_transf = xfrm_unit; -} - -void xfrm_dump_stack() -{ - int i; - for (i = 0; i < top_xfrm; i++) { - fprintf(stderr, "xfrmStack[%d] = [%f %f %f %f %f %f] pos = %ld\n", i, - xfrmStack[i].xfrm.eM11, xfrmStack[i].xfrm.eM12, - xfrmStack[i].xfrm.eM21, xfrmStack[i].xfrm.eM22, - xfrmStack[i].xfrm.eDx, xfrmStack[i].xfrm.eDy, - xfrmStack[i].dviptr); - } -} - -void xfrm_record(XFORM *x) -{ -#if 0 - __asm int 3; -#endif - int i; - - if (!resource.use_xform || !x) return; - - for (i = 0; i < top_xfrm; i++) { - if (xfrmStack[i].dviptr == currinf.pos) { - /* Already in there, return */ - /* FIXME : should we do any check for the *same* transf ? */ - return; - } - else if(xfrmStack[i].dviptr > currinf.pos) { - /* insert it at this position and move up everything else */ - break; - } - } - if (top_xfrm+1 > xfrmStack_len) { - xfrmStack_len *= 2; - xfrmStack = xrealloc(xfrmStack, sizeof(xfrm_stack)*xfrmStack_len); - } - if (i == top_xfrm) { - xfrmStack[top_xfrm].dviptr = currinf.pos; - xfrmStack[top_xfrm].xfrm = *x; - top_xfrm++; - } - else { - memmove(xfrmStack+(i+1), xfrmStack+i, (top_xfrm - i)*sizeof(xfrm_stack)); - xfrmStack[i].dviptr = currinf.pos; - xfrmStack[i].xfrm = *x; - top_xfrm++; - } -#if DEBUG_TRANSF - fprintf(stderr, "inserting (pos = %ld) xfrmStack[%d] = [%f %f %f %f %f %f]\n", - currinf.pos, i, - xfrmStack[i].xfrm.eM11, xfrmStack[i].xfrm.eM12, - xfrmStack[i].xfrm.eM21, xfrmStack[i].xfrm.eM22, - xfrmStack[i].xfrm.eDx, xfrmStack[i].xfrm.eDy); - xfrm_dump_stack(); -#endif -} - -void xfrm_apply() -{ - int i = -1; - long pos = currinf.pos; - POINT mane_points[3]; - XFORM xfrm = xfrm_unit; -#if 0 - __asm int 3; - fprintf(stderr, "Entering xfrm_apply\n"); -#endif - if (!resource.use_xform) return; - -#if DEBUG_TRANSF - fprintf(stderr, "xfrm_apply: pos = %ld\n", pos); - xfrm_dump_stack(); -#endif - for (i = 0; i < top_xfrm; i++) { - if (pos == xfrmStack[i].dviptr) { - xfrm = xfrmStack[i].xfrm; - break; - } - } - if (i < top_xfrm) { - if (foreGC == magMemDC || foreGC == magDC) { - extern int magWidth, magHeight; -#if 1 - /* FIXME : I'm afraid it can be solved only by applying - transformations in XPutImage ! - */ - -#if 0 - xfrm.eDx += ((xfrm.eM11 -1)*(currwin.base_x + magWidth) + xfrm.eM21*(currwin.base_y + magHeight))/mane.shrinkfactor; - xfrm.eDy += (xfrm.eM12*(currwin.base_x + magWidth) + (xfrm.eM22-1)*(currwin.base_y + magHeight))/mane.shrinkfactor; -#endif - xfrm.eDx += (xfrm.eM11 -1)*(currwin.base_x) + xfrm.eM21*(currwin.base_y); - xfrm.eDy += xfrm.eM12*(currwin.base_x) + (xfrm.eM22-1)*(currwin.base_y); - - bTransfInUse = (fabs(xfrm.eM11 - 1.0) - + fabs(xfrm.eM12) - + fabs(xfrm.eM21) - + fabs(xfrm.eM22 - 1.0) - + fabs(xfrm.eDx) - + fabs(xfrm.eDy)) > .0001 ; -#else - bTransfInUse = FALSE; -#endif - } - else { - bTransfInUse = (fabs(xfrm.eM11 - 1.0) - + fabs(xfrm.eM12) - + fabs(xfrm.eM21) - + fabs(xfrm.eM22 - 1.0) - + fabs(xfrm.eDx) - + fabs(xfrm.eDy)) > .0001 ; - } - if (!bTransfInUse) { - if (ModifyWorldTransform(foreGC, &xfrm, MWT_IDENTITY) == 0) - Win32Error("xfrm_apply/ModifyWorldTransform"); - current_transf = xfrm_unit; - } - else { -#if 0 - fprintf(stderr, "Applying transf [%f %f %f %f %f %f] to foreGC\n", - xfrm.eM11, xfrm.eM12, - xfrm.eM21, xfrm.eM22, - xfrm.eDx, xfrm.eDy); - fprintf(stderr, "currwin orig: (%d %d)\n", currwin.base_x, currwin.base_y); -#endif -#if 0 - if (SetWorldTransform(foreGC, &(xfrm)) == 0) - Win32Error("xfrm_apply/SetWorldTransform"); -#else - current_transf = xfrm; -#endif - } - } -} |