Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

476 lines
9.5 KiB

/*
** Copyright 1992, Silicon Graphics, Inc.
** All Rights Reserved.
**
** This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
** the contents of this file may not be disclosed to third parties, copied or
** duplicated in any form, in whole or in part, without the prior written
** permission of Silicon Graphics, Inc.
**
** RESTRICTED RIGHTS LEGEND:
** Use, duplication or disclosure by the Government is subject to restrictions
** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
** and Computer Software clause at DFARS 252.227-7013, and/or in similar or
** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
** rights reserved under the Copyright Laws of the United States.
**
*/
#include <setjmp.h>
struct JumpBuffer {
jmp_buf buf;
};
#define mysetjmp(x) setjmp((x)->buf)
#define mylongjmp(x,y) longjmp((x)->buf, y)
/* <<AT&T USL C++ Language System <3.0.1> 02/03/92>> */
/* < ../core/arc.c++ > */
void *__vec_new (void *, int , int , void *);
void __vec_ct (void *, int , int , void *);
void __vec_dt (void *, int , int , void *);
void __vec_delete (void *, int , int , void *, int , int );
typedef int (*__vptp)(void);
struct __mptr {short d; short i; __vptp f; };
typedef unsigned int size_t ;
// extern void *malloc (size_t );
// extern void free (void *);
struct Buffer;
struct Buffer {
struct Buffer *next__6Buffer ;
};
struct Pool;
enum __Q2_4Pool5Magic { is_allocated__Q2_4Pool5Magic = 62369, is_free__Q2_4Pool5Magic = 61858} ;
struct Pool {
struct Buffer *freelist__4Pool ;
char *blocklist__4Pool [32];
int nextblock__4Pool ;
char *curblock__4Pool ;
int buffersize__4Pool ;
int nextsize__4Pool ;
int nextfree__4Pool ;
int initsize__4Pool ;
char *name__4Pool ;
int magic__4Pool ;
};
void __glgrow__4PoolFv (struct Pool *);
struct PooledObj;
struct PooledObj {
char __W3__9PooledObj ;
};
typedef float REAL ;
typedef void (*Pfvv )(void );
typedef void (*Pfvf )(float *);
typedef int (*cmpfunc )(void *, void *);
typedef REAL Knot ;
typedef REAL *Knot_ptr ;
struct TrimVertex;
struct PwlArc;
struct PwlArc {
char __W3__9PooledObj ;
struct TrimVertex *pts__6PwlArc ;
int npts__6PwlArc ;
long type__6PwlArc ;
};
struct TrimVertex;
struct TrimVertex {
REAL param__10TrimVertex [2];
long nuid__10TrimVertex ;
};
typedef struct TrimVertex *TrimVertex_p ;
struct Bin;
struct Arc;
struct BezierArc;
typedef struct Arc *Arc_ptr ;
enum arc_side { arc_none = 0, arc_right = 1, arc_top = 2, arc_left = 3, arc_bottom = 4} ;
struct Arc;
struct Arc {
char __W3__9PooledObj ;
Arc_ptr prev__3Arc ;
Arc_ptr next__3Arc ;
Arc_ptr link__3Arc ;
struct BezierArc *bezierArc__3Arc ;
struct PwlArc *pwlArc__3Arc ;
long type__3Arc ;
long nuid__3Arc ;
};
extern int __glbezier_tag__3Arc ;
extern int __glarc_tag__3Arc ;
extern int __gltail_tag__3Arc ;
struct Bin;
struct Bin {
struct Arc *head__3Bin ;
struct Arc *current__3Bin ;
};
struct Mapdesc;
struct BezierArc;
struct BezierArc {
char __W3__9PooledObj ;
REAL *cpts__9BezierArc ;
int order__9BezierArc ;
int stride__9BezierArc ;
long type__9BezierArc ;
struct Mapdesc *mapdesc__9BezierArc ;
};
extern int __glbezier_tag__3Arc ;
int __glbezier_tag__3Arc = 8192;
extern int __glarc_tag__3Arc ;
int __glarc_tag__3Arc = 8;
extern int __gltail_tag__3Arc ;
int __gltail_tag__3Arc = 64;
extern struct __mptr* __ptbl_vec_____core_arc_c___makeSide_[];
void __glmakeSide__3ArcFP6PwlArc8ar0 (struct Arc *__0this , struct PwlArc *__1pwl , int __1side )
{
((void )0 );
((void )0 );
((void )0 );
((void )0 );
__0this -> pwlArc__3Arc = __1pwl ;
( (__0this -> type__3Arc &= (~ 8192))) ;
( ( (__0this -> type__3Arc &= -1793)) , (__0this -> type__3Arc |= ((((long )__1side ))<< 8 ))) ;
}
int __glnumpts__3ArcFv (struct Arc *__0this )
{
Arc_ptr __1jarc ;
int __1npts ;
__1jarc = (struct Arc *)__0this ;
__1npts = 0 ;
do {
__1npts += __1jarc -> pwlArc__3Arc -> npts__6PwlArc ;
__1jarc = __1jarc -> next__3Arc ;
}
while (__1jarc != (struct Arc *)__0this );
return __1npts ;
}
void __glmarkverts__3ArcFv (struct Arc *__0this )
{
Arc_ptr __1jarc ;
__1jarc = (struct Arc *)__0this ;
do {
struct TrimVertex *__2p ;
__2p = __1jarc -> pwlArc__3Arc -> pts__6PwlArc ;
{ { int __2i ;
__2i = 0 ;
for(;__2i < __1jarc -> pwlArc__3Arc -> npts__6PwlArc ;__2i ++ )
(__2p [__2i ]). nuid__10TrimVertex = __1jarc -> nuid__3Arc ;
__1jarc = __1jarc -> next__3Arc ;
}
}
}
while (__1jarc != (struct Arc *)__0this );
}
void __glgetextrema__3ArcFPP3Arc (struct Arc *__0this , Arc_ptr *__1extrema )
{
REAL __1leftpt ;
REAL __1botpt ;
REAL __1rightpt ;
REAL __1toppt ;
(__1extrema [0 ])= ((__1extrema [1 ])= ((__1extrema [2 ])= ((__1extrema [3 ])= (struct Arc *)__0this )));
__1leftpt = (__1rightpt = (( (((REAL *)(__0this -> pwlArc__3Arc -> pts__6PwlArc [0 ]). param__10TrimVertex ))) [0 ]));
__1botpt = (__1toppt = (( (((REAL *)(__0this -> pwlArc__3Arc -> pts__6PwlArc [0 ]). param__10TrimVertex ))) [1 ]));
{ { Arc_ptr __1jarc ;
__1jarc = __0this -> next__3Arc ;
for(;__1jarc != (struct Arc *)__0this ;__1jarc = __1jarc -> next__3Arc ) {
if ((( (((REAL *)(((struct Arc *)__1jarc )-> pwlArc__3Arc -> pts__6PwlArc [0 ]). param__10TrimVertex ))) [0 ])<=
__1leftpt ){
__1leftpt = (__1jarc -> pwlArc__3Arc -> pts__6PwlArc -> param__10TrimVertex [0 ]);
(__1extrema [1 ])= __1jarc ;
}
if ((( (((REAL *)(((struct Arc *)__1jarc )-> pwlArc__3Arc -> pts__6PwlArc [0 ]). param__10TrimVertex ))) [0 ])>= __1rightpt ){
__1rightpt = (__1jarc -> pwlArc__3Arc -> pts__6PwlArc -> param__10TrimVertex [0 ]);
(__1extrema [3 ])= __1jarc ;
}
if ((( (((REAL *)(((struct Arc *)__1jarc )-> pwlArc__3Arc -> pts__6PwlArc [0 ]). param__10TrimVertex ))) [1 ])<= __1botpt ){
__1botpt = (__1jarc -> pwlArc__3Arc -> pts__6PwlArc -> param__10TrimVertex [1 ]);
(__1extrema [2 ])= __1jarc ;
}
if ((( (((REAL *)(((struct Arc *)__1jarc )-> pwlArc__3Arc -> pts__6PwlArc [0 ]). param__10TrimVertex ))) [1 ])>= __1toppt ){
__1toppt = (__1jarc -> pwlArc__3Arc -> pts__6PwlArc -> param__10TrimVertex [1 ]);
(__1extrema [0 ])= __1jarc ;
}
}
}
}
}
void __glshow__3ArcFv (struct Arc *__0this )
{
}
void __glprint__3ArcFv (struct Arc *__0this )
{
Arc_ptr __1jarc ;
__1jarc = (struct Arc *)__0this ;
if (! __0this ){
return ;
}
do {
__glshow__3ArcFv ( (struct Arc *)__1jarc ) ;
__1jarc = __1jarc -> next__3Arc ;
}
while (__1jarc != (struct Arc *)__0this );
}
int __glisDisconnected__3ArcFv (struct Arc *__0this )
{
if (__0this -> pwlArc__3Arc == 0 )return 0 ;
if (__0this -> prev__3Arc -> pwlArc__3Arc == 0 )return 0 ;
{ REAL *__1p0 ;
REAL *__1p1 ;
struct Arc *__0__X5 ;
__1p0 = ( (((REAL *)(__0this -> pwlArc__3Arc -> pts__6PwlArc [0 ]). param__10TrimVertex ))) ;
__1p1 = ( (__0__X5 = (struct Arc *)__0this -> prev__3Arc ), ( (((REAL *)(__0__X5 -> pwlArc__3Arc -> pts__6PwlArc [(__0__X5 -> pwlArc__3Arc -> npts__6PwlArc - 1 )]). param__10TrimVertex )))
) ;
if ((((((__1p0 [0 ])- (__1p1 [0 ]))> 0.000001 )|| (((__1p1 [0 ])- (__1p0 [0 ]))> 0.000001 ))|| (((__1p0 [1 ])- (__1p1 [1 ]))> 0.000001 ))|| (((__1p1 [1 ])- (__1p0 [1 ]))> 0.000001 ))
{
return
1 ;
}
else
{
(__1p0 [0 ])= ((__1p1 [0 ])= (((__1p1 [0 ])+ (__1p0 [0 ]))* 0.5 ));
(__1p0 [1 ])= ((__1p1 [1 ])= (((__1p1 [1 ])+ (__1p0 [1 ]))* 0.5 ));
return 0 ;
}
}
}
int __glcheck__3ArcFv (struct Arc *__0this )
{
if (__0this == 0 )return 1 ;
{ Arc_ptr __1jarc ;
__1jarc = (struct Arc *)__0this ;
do {
((void )0 );
if ((__1jarc -> prev__3Arc == 0 )|| (__1jarc -> next__3Arc == 0 )){
return 0 ;
}
if (__1jarc -> next__3Arc -> prev__3Arc != __1jarc ){
return 0 ;
}
if (__1jarc -> pwlArc__3Arc ){
if (__1jarc -> prev__3Arc -> pwlArc__3Arc ){
struct Arc *__0__X6 ;
struct Arc *__0__X7 ;
if ((( (((REAL *)(((struct Arc *)__1jarc )-> pwlArc__3Arc -> pts__6PwlArc [0 ]). param__10TrimVertex ))) [1 ])!= (( (__0__X6 = (struct Arc *)__1jarc -> prev__3Arc ), (
(((REAL *)(__0__X6 -> pwlArc__3Arc -> pts__6PwlArc [(__0__X6 -> pwlArc__3Arc -> npts__6PwlArc - 1 )]). param__10TrimVertex ))) ) [1 ])){
return 0 ;
}
if ((( (((REAL *)(((struct Arc *)__1jarc )-> pwlArc__3Arc -> pts__6PwlArc [0 ]). param__10TrimVertex ))) [0 ])!= (( (__0__X7 = (struct Arc *)__1jarc -> prev__3Arc ), (
(((REAL *)(__0__X7 -> pwlArc__3Arc -> pts__6PwlArc [(__0__X7 -> pwlArc__3Arc -> npts__6PwlArc - 1 )]). param__10TrimVertex ))) ) [0 ])){
return 0 ;
}
}
if (__1jarc -> next__3Arc -> pwlArc__3Arc ){
struct Arc *__0__X8 ;
struct Arc *__0__X9 ;
if ((( (__0__X8 = (struct Arc *)__1jarc -> next__3Arc ), ( (((REAL *)(__0__X8 -> pwlArc__3Arc -> pts__6PwlArc [0 ]). param__10TrimVertex ))) ) [0 ])!= ((
(((REAL *)(((struct Arc *)__1jarc )-> pwlArc__3Arc -> pts__6PwlArc [(((struct Arc *)__1jarc )-> pwlArc__3Arc -> npts__6PwlArc - 1 )]). param__10TrimVertex ))) [0 ])){
return 0 ;
}
if ((( (__0__X9 = (struct Arc *)__1jarc -> next__3Arc ), ( (((REAL *)(__0__X9 -> pwlArc__3Arc -> pts__6PwlArc [0 ]). param__10TrimVertex ))) ) [1 ])!= ((
(((REAL *)(((struct Arc *)__1jarc )-> pwlArc__3Arc -> pts__6PwlArc [(((struct Arc *)__1jarc )-> pwlArc__3Arc -> npts__6PwlArc - 1 )]). param__10TrimVertex ))) [1 ])){
return 0 ;
}
}
if (( (((struct Arc *)__1jarc )-> type__3Arc & 8192)) ){
((void )0 );
((void )0 );
}
}
__1jarc = __1jarc -> next__3Arc ;
}
while (__1jarc != (struct Arc *)__0this );
return 1 ;
}
}
Arc_ptr __glappend__3ArcFP3Arc (struct Arc *__0this , Arc_ptr __1jarc )
{
if (__1jarc != 0 ){
__0this -> next__3Arc = __1jarc -> next__3Arc ;
__0this -> prev__3Arc = __1jarc ;
__0this -> next__3Arc -> prev__3Arc = (__0this -> prev__3Arc -> next__3Arc = (struct Arc *)__0this );
}
else
{
__0this -> next__3Arc = (__0this -> prev__3Arc = (struct Arc *)__0this );
}
return (struct Arc *)__0this ;
}
/* the end */