xref: /reactos/dll/opengl/mesa/clip.h (revision 8a978a17)
1 /* $Id: clip.h,v 1.3 1998/02/03 23:45:36 brianp Exp $ */
2 
3 /*
4  * Mesa 3-D graphics library
5  * Version:  2.6
6  * Copyright (C) 1995-1996  Brian Paul
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Library General Public
10  * License as published by the Free Software Foundation; either
11  * version 2 of the License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16  * Library General Public License for more details.
17  *
18  * You should have received a copy of the GNU Library General Public
19  * License along with this library; if not, write to the Free
20  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21  */
22 
23 
24 /*
25  * $Log: clip.h,v $
26  * Revision 1.3  1998/02/03 23:45:36  brianp
27  * added space parameter to clip interpolation functions
28  *
29  * Revision 1.2  1998/01/06 02:40:52  brianp
30  * added DavidB's clipping interpolation optimization
31  *
32  * Revision 1.1  1996/09/13 01:38:16  brianp
33  * Initial revision
34  *
35  */
36 
37 
38 #ifndef CLIP_H
39 #define CLIP_H
40 
41 
42 #include "types.h"
43 
44 
45 
46 #ifdef DEBUG
47 #  define GL_VIEWCLIP_POINT( V )   gl_viewclip_point( V )
48 #else
49 #  define GL_VIEWCLIP_POINT( V )			\
50      (    (V)[0] <= (V)[3] && (V)[0] >= -(V)[3]		\
51        && (V)[1] <= (V)[3] && (V)[1] >= -(V)[3]		\
52        && (V)[2] <= (V)[3] && (V)[2] >= -(V)[3] )
53 #endif
54 
55 
56 
57 
58 extern GLuint gl_viewclip_point( const GLfloat v[] );
59 
60 extern GLuint gl_viewclip_line( GLcontext* ctx, GLuint *i, GLuint *j );
61 
62 extern GLuint gl_viewclip_polygon( GLcontext* ctx, GLuint n, GLuint vlist[] );
63 
64 
65 
66 extern GLuint gl_userclip_point( GLcontext* ctx, const GLfloat v[] );
67 
68 extern GLuint gl_userclip_line( GLcontext* ctx, GLuint *i, GLuint *j );
69 
70 extern GLuint gl_userclip_polygon( GLcontext* ctx, GLuint n, GLuint vlist[] );
71 
72 
73 extern void gl_ClipPlane( GLcontext* ctx,
74                           GLenum plane, const GLfloat *equation );
75 
76 extern void gl_GetClipPlane( GLcontext* ctx,
77                              GLenum plane, GLdouble *equation );
78 
79 
80 /*
81  * Clipping interpolation functions
82  */
83 
84 extern void interpolate_aux( GLcontext *ctx, GLuint space,
85                              GLuint dst, GLfloat t, GLuint in, GLuint out );
86 
87 extern void interpolate_aux_color_tex2( GLcontext *ctx,	GLuint space,
88                              GLuint dst, GLfloat t, GLuint in, GLuint out );
89 
90 extern void interpolate_aux_tex2( GLcontext *ctx, GLuint space,
91                              GLuint dst, GLfloat t, GLuint in, GLuint out );
92 
93 extern void interpolate_aux_color( GLcontext *ctx, GLuint space,
94                              GLuint dst, GLfloat t, GLuint in, GLuint out );
95 
96 
97 #endif
98 
99