Compare commits

...

152 Commits

Author SHA1 Message Date
Brian Paul
e430f93ea0 fixed a typo 2001-02-14 15:25:06 +00:00
Brian Paul
bb70b0eaf8 fixed a typo 2001-02-14 15:24:34 +00:00
Brian Paul
b0f1460f13 added latest 3.4.1 bug fixes 2001-02-14 00:08:23 +00:00
Brian Paul
08a9355932 better error messages 2001-02-12 17:21:24 +00:00
Brian Paul
e9bd590781 minor changes from XFree86 (dawes) 2001-02-09 23:20:27 +00:00
Brian Paul
456480981a fixed line clipping bug; change DIFFERENT_SIGNS macro ala Mesa 3.5 2001-02-09 16:46:56 +00:00
Jouk Jansen
a241b22aaa Modified Files:
Tag: mesa_3_4_branch
 	Mesa/demos/descrip.mms Mesa/src/descrip.mms
 	Mesa/src/X/glxheader.h Mesa/src/X/xfonts.c Mesa/src/X/xfonts.h
 	Mesa/src-glu/descrip.mms Mesa/src-glut/descrip.mms
 	Mesa/vms/analyze_map.com Mesa/vms/xlib_share.opt
 Added Files:
  Tag: mesa_3_4_branch
 	Mesa/include/GL/vms_x_fix.h

 backported from version 3.5 some VMS compile issues
----------------------------------------------------------------------
2001-02-09 08:25:10 +00:00
Brian Paul
e32b1543e8 fixed bytesPerValue bug in OSMesaGetDepthBuffer() 2001-02-08 23:51:27 +00:00
Brian Paul
5a7d5d0808 fixed bugs in _mesa_clear_depth_buffer(), bug #131366 2001-02-08 15:54:33 +00:00
Brian Paul
e3aef4ed72 bumped version to 3.4.1 2001-02-07 23:49:26 +00:00
Brian Paul
47759b1d82 updates for 3.4.1 2001-02-07 22:54:04 +00:00
Gareth Hughes
0c769dba55 Upgrade to (patched) version 7 of glext.h 2001-01-30 15:01:09 +00:00
Brian Paul
9a1ca37e5b GL_SHADE_MODEL wasn't popped correctly 2001-01-29 22:15:36 +00:00
Brian Paul
0eedea5083 updated info re conformance testing at 16bpp 2001-01-25 17:35:05 +00:00
Brian Paul
c3ccae5f49 improved glReadPixels accuracy for 16bpp color buffers - fixes lots of conformance bugs 2001-01-25 17:34:21 +00:00
Brian Paul
18074cf055 bumped version numbers and dates 2001-01-24 04:53:26 +00:00
Brian Paul
1929fbde14 3.4.1 release notes 2001-01-24 04:50:00 +00:00
Brian Paul
7a47ecdf23 bumped version number to 3.4.1 2001-01-24 04:49:27 +00:00
Brian Paul
0f7e5e8a47 added two bug fixes 2001-01-23 23:34:15 +00:00
Brian Paul
44779d21a3 glPopAttrib() wasn't updating all derived state 2001-01-23 23:33:52 +00:00
Brian Paul
ae5cc3e94c fixed glTexSubImage error check bug #128775 2001-01-23 23:32:44 +00:00
Brian Paul
b15870fe69 moved GL_EXT_texture_env_dot3 item 2001-01-08 15:57:07 +00:00
Gareth Hughes
5c08f57d87 Implementation of GL_EXT_texture_env_dot3. 2001-01-06 22:43:00 +00:00
Brian Paul
d6540dbaf2 add texobj BaseLevel to P. Back-ported from Mesa 3.5 2000-12-14 23:10:39 +00:00
Brian Paul
9e33f91f4b silence compiler warnings (XFree86 sync) 2000-12-13 00:57:24 +00:00
Brian Paul
aa2bbcbcd3 minor tweaks for XFree86/DRI 2000-12-13 00:54:57 +00:00
Brian Paul
ea083a8b59 added GL_RESCALE_NORMAL cases 2000-12-09 19:55:58 +00:00
Brian Paul
3b20dc1dd7 fixed bug involving LastEnvMode and GL_COMBINE_EXT (tdfx and texcombine) 2000-12-09 19:21:01 +00:00
Brian Paul
5b3b871d79 added glXCopySubBufferMESA() buf fix 2000-12-08 17:36:27 +00:00
Gareth Hughes
6b593c0b7a Allow operating system SSE support test to be overridden with an
environment variable.
2000-12-07 02:36:07 +00:00
Gareth Hughes
7535dc796a Change signal handling to require _POSIX_SOURCE to be defined. 2000-12-06 11:46:43 +00:00
Gareth Hughes
8a341f4d38 More correct test for the availability of SSE on a Pentium III
processor, or any that specifies XMM in the CPUID features.  We perform
the equivalent of testing CR4.OSFXSR to verify the operating system
supports the extended FPU save and restore required for SSE.  We also
perform the equivalent of testing CR4.OSXMMEXCPT to verify the operating
system supports unmasked SIMD FPU exceptions.

All changes to the signal handlers and SIMD FPU control word are
restored after the testing is complete.

Tested on the following kernels:
  - 2.2.14-5.0 kernel from RedHat 6.2 that includes their SSE patch
  - 2.4.0-test11 kernel configured for PPro/PII processor (no SSE)
  - 2.4.0-test11 kernel configured for PIII processor (with SSE)
2000-12-06 11:14:58 +00:00
Gareth Hughes
8ea17294b8 Infrastructure for asm optimized lighting functions. Actual
implementations will follow.
2000-11-30 02:44:20 +00:00
Brian Paul
757e7feb81 added stencil span args bug fix 2000-11-28 21:34:41 +00:00
Brian Paul
76ef5a3993 fixed parameter mis-ordering bug in Driver.StencilSpan calls 2000-11-28 21:30:44 +00:00
Brian Paul
bae4b31566 prototype code for vertex array sets/objects (grep for VAO) 2000-11-26 21:10:26 +00:00
Brian Paul
e23ea371e6 added changes so far for a possible 3.4.1 release 2000-11-26 20:27:14 +00:00
Brian Paul
77743a4e08 fixed GLX_PBUFFER value 2000-11-25 18:52:02 +00:00
Brian Paul
7510d9a56e minor updates for widgets-mesa/ 2000-11-23 16:36:23 +00:00
Brian Paul
75b470c146 added some RENDER_START/RENDER_FINISH macros, finished GetConvolutionFilter() 2000-11-21 23:00:22 +00:00
Brian Paul
142d00e32f don't apply transfer ops when upacking pixel spans 2000-11-21 17:50:23 +00:00
Brian Paul
50cccb667e added RENDER_START and RENDER_FINISH macros to read_color_image() 2000-11-20 21:20:02 +00:00
Brian Paul
202ddf7a54 minor fixes for Windows compilation (Joshua Napoli) 2000-11-20 17:31:51 +00:00
Brian Paul
3efc845d1b yet another tweak to ctx->NewState |= NEW_TEXTURING in _mesa_BindTexture() 2000-11-17 02:42:32 +00:00
Brian Paul
dc203452eb minor optimization in _mesa_convert_texsubimage() for 8-bit texels when replacing entire teximage 2000-11-17 02:42:01 +00:00
Jon Taylor
f195052952 Misc GGIMesa build fixes 2000-11-15 10:27:44 +00:00
Brian Paul
adde46e8ee replaced Texture.Enabled with Texture.ReallyEnabled 2000-11-11 20:24:11 +00:00
Brian Paul
d9ec7b48d9 init WrapR to GL_REPEAT mode 2000-11-11 20:23:23 +00:00
Brian Paul
6fa6c586db patched to silence compiler warnings (Martin Lindhe) 2000-11-10 17:17:19 +00:00
Brian Paul
ce764717bc GL_BGR case was misplaced in _mesa_is_legal_format_and_type() (Jeff Hartmann) 2000-11-09 23:24:25 +00:00
Brian Paul
c6d4a00ca9 fixed bug in _mesa_convert_texsubimage when format == MESA_FF_R8_G8_B8 2000-11-09 22:31:28 +00:00
Brian Paul
4cdc441b9a fixed a typo 2000-11-08 16:42:48 +00:00
Brian Paul
17a68017c0 Adjust Driver.PointsFunc()'s last parameter by +1 for consistancy (AlanH).
Adjust calling parameters and rendering for-loops accordingly.
2000-11-08 16:41:17 +00:00
Brian Paul
6e9605a00d minor changes for BeOS/g++ compiling 2000-11-05 21:24:00 +00:00
Brian Paul
e5c8261f76 added Glide/Quake bug fix item 2000-11-03 02:39:00 +00:00
Brian Paul
57db1be417 fixed glXChooseVisual to return NULL if using Glide and user requests too deep of visual parameters 2000-11-03 02:35:54 +00:00
Brian Paul
ebeb5da82c fixed Glide link problem 2000-11-03 01:58:06 +00:00
Brian Paul
bd1b6ef5af added some missing backslashes 2000-11-03 01:35:30 +00:00
Brian Paul
672da3532f bumped version numbers to 3.4 2000-11-02 18:05:34 +00:00
Brian Paul
554cd6ba8c bumped version to 3.4 2000-11-02 17:59:43 +00:00
Brian Paul
585b358204 added vertex fog bug fix 2000-11-01 20:58:35 +00:00
Brian Paul
1a87813f14 added GLUT projtex demo bug fix 2000-10-31 20:01:16 +00:00
Brian Paul
fab2936ea2 sync with DRI texgen and texture matrix bug fixes 2000-10-31 19:57:39 +00:00
Gareth Hughes
510d86231d Change animated apps to double-buffered visuals by default. 2000-10-27 02:53:29 +00:00
Brian Paul
183e09ee42 added gluBuild[12]DMipmaps GL_BGR fix 2000-10-26 21:57:29 +00:00
Brian Paul
feb83f991e added GL_BGR case to bytes_per_pixel() 2000-10-26 21:48:37 +00:00
Brian Paul
5c4f8bdfc7 removed X86/*.m4 files from tar archive 2000-10-26 19:35:53 +00:00
Brian Paul
16deaa9c49 fixed value for GLU_NURBS_MODE 2000-10-26 15:32:46 +00:00
Brian Paul
12dbb90d4a added a glFinish() call 2000-10-26 15:26:27 +00:00
Brian Paul
0bf5284850 added incomplete() debug function/macro 2000-10-24 02:52:36 +00:00
Brian Paul
e3650179c6 signal NEW_TEXTURING if there's a Driver.BindTexture() function 2000-10-24 01:14:16 +00:00
Brian Paul
c089afb55b sync with Mesa 3.5 2000-10-23 20:07:57 +00:00
Brian Paul
bfaab253d1 fixed 386/x86 mismatches, reordered a few configs 2000-10-23 19:38:26 +00:00
Gareth Hughes
4c782b7470 Major audit of all Mesa's x86 assembly code. This round is basically
general cleanups - more to come.

Added P6 architecture timing to debug_xform routines.  Still need to add
test_all_vertex_functions test for the v16 asm.  Dynamic reconfiguration
of counter overhead for more accurate benchmarking.
2000-10-22 23:10:48 +00:00
Brian Paul
fceecc5bc1 fixed a texture enable bug 2000-10-21 01:22:13 +00:00
Brian Paul
cb5d29cd17 use 1.1 glPolygonOffset instead of glPolygonOffsetEXT 2000-10-20 17:27:16 +00:00
Gareth Hughes
807544498a - General cleanups, fix version numbers.
- Fix INV_MATRIX in katmai_norm_raw.S
- Change MOVUPS to MOVAPS where appropriate
2000-10-20 04:29:15 +00:00
Brian Paul
17f2610d03 Added glXGetProcAddressARB() bug fix 2000-10-19 20:17:13 +00:00
Brian Paul
00935d9eab Rewrote get_static_proc_address(). It made mistakes in some situations 2000-10-19 20:14:57 +00:00
Brian Paul
c8c04359dd added glPixelStore bug fix 2000-10-19 20:10:49 +00:00
Brian Paul
534bc2e2a9 glPixelStore(GL_PACK/UNPACK_SKIP_IMAGES) wasn't handled correctly 2000-10-19 20:09:29 +00:00
Brian Paul
82960fbf69 call Driver.SetReadBuffer() in clear_color_buffers() to fix colormasked clear bug 2000-10-19 18:14:58 +00:00
Brian Paul
b0c8df81ab added blend accuracy item 2000-10-19 18:10:13 +00:00
Brian Paul
ceab228540 improved blending accuracy to fix Glean test failures 2000-10-19 18:09:01 +00:00
Brian Paul
03614d2f33 sync with DRI tdfx3 branch 2000-10-17 00:24:11 +00:00
Brian Paul
e17c1d2202 added _mesa_get_teximages_from_driver() 2000-10-16 23:37:16 +00:00
Brian Paul
e27b783426 added per-fragment bug fix 2000-10-09 22:47:55 +00:00
Brian Paul
18ef8e7c98 if depthBits == 0, set DepthMask = 2^16 to fix per-fragment fog problems 2000-10-09 22:44:01 +00:00
Brian Paul
b34a9dab57 update TriangleCaps in GL_POINT/POLYGON_SMOOTH cases 2000-10-05 23:10:35 +00:00
Brian Paul
7a13c83663 better handling of GLX_DEPTH_SIZE in glXChooseVisual() 2000-10-05 17:38:03 +00:00
Brian Paul
d4e84664a5 added glDrawPixels fast-path item 2000-10-05 17:01:23 +00:00
Brian Paul
29f19424ab fixed fast-path for GL_COLOR_INDEX, GL_UNSIGNED_BYTE drawpixels 2000-10-05 16:47:23 +00:00
Brian Paul
813e8585a6 added glDrawPixels GL_COLOR_INDEX bug item 2000-10-05 16:24:18 +00:00
Brian Paul
88337d5109 drawing color-index image to RGB window was broken 2000-10-05 16:23:18 +00:00
Brian Paul
77a5bab1a3 added glPush/PopAttrib(GL_ENABLE_BIT) item 2000-09-28 22:45:55 +00:00
Brian Paul
de63653835 removed ctx->Texture.Enabled, use ctx->Texture.ReallyEnabled instead 2000-09-28 22:39:41 +00:00
Brian Paul
2f095b9b09 new params for SpecificCompressedTexFormat() (Bill White) 2000-09-28 18:25:00 +00:00
Brian Paul
94b61f99c4 added texture env combine bugfix item 2000-09-25 16:05:53 +00:00
Gareth Hughes
44b450728d Added SSE streaming store instructions, external symbol directives. 2000-09-18 22:48:44 +00:00
Gareth Hughes
bc2b379ad0 Added SSE prefetching instructions. General cleanups. 2000-09-18 16:56:30 +00:00
Gareth Hughes
f35a545d4f General cleanups. Disable gl_katmai_project_vertices and
gl_katmai_project_clipped_vertices for now as they are broken.
2000-09-17 21:23:11 +00:00
Brian Paul
0248965561 use cpml.h on Alpha (AlanH) 2000-09-15 15:42:51 +00:00
Brian Paul
29fb6b3525 replaced GL_RGBA with GL_BGRA for GL_UNSIGNED_SHORT_1_5_5_5_REV datatype 2000-09-13 22:06:36 +00:00
Brian Paul
93bff74a02 added glReadPixels bug fix 2000-09-12 21:11:25 +00:00
Brian Paul
211c30cbc9 packing of GLushort packed types was broken 2000-09-12 21:10:36 +00:00
Brian Paul
1ef3d8407b added format/type error check to draw_rgba_pixels() 2000-09-12 21:09:48 +00:00
Brian Paul
b64ede6f45 init mutex 2000-09-12 21:08:11 +00:00
Brian Paul
a11f829108 Win32 updates (Chris Morley) 2000-09-12 15:46:39 +00:00
Brian Paul
5715ee5d5d Win32 update (Chris Morley) 2000-09-12 15:41:13 +00:00
Brian Paul
08056a38ee added device driver function for texture proxy testing 2000-09-07 15:30:48 +00:00
Brian Paul
2591e8f1db added compressed texture item 2000-09-06 17:48:31 +00:00
Brian Paul
b92036499d bumped version number to 3.4 2000-09-06 17:47:47 +00:00
Brian Paul
60a0b0d7c6 silence compiler warning (zoomY0) 2000-09-06 17:47:26 +00:00
Brian Paul
c68f4fb958 test for __bsdi__ for XFree86 2000-09-06 17:34:29 +00:00
Brian Paul
b9a3c2b3ce replaced ## with CONCAT macro 2000-09-06 17:33:32 +00:00
Brian Paul
2cddd4cd79 use clear_proxy_teximage() instead of MEMSET() 2000-09-05 22:09:03 +00:00
Brian Paul
052512e2ec added more resolutions (Andy Sloane) 2000-08-31 22:09:20 +00:00
Brian Paul
dc1e96acdc removed bogus gl_problem() call 2000-08-30 18:23:51 +00:00
Brian Paul
0eb94349b6 removed some debugging code 2000-08-29 23:10:23 +00:00
Brian Paul
846101fe60 finished compressed texture support (Bill White) 2000-08-29 22:58:57 +00:00
Brian Paul
9af68b1222 added MESA_FF_R8_G8_B8 (alpha filled to 0xff) format 2000-08-29 22:58:33 +00:00
Brian Paul
5c4431cc0a changed default Shininess to 6 2000-08-29 21:17:25 +00:00
Brian Paul
308b5f2e0d added glDrawPixels optimization item 2000-08-29 21:16:50 +00:00
Brian Paul
013a664712 don't free ctx inside _mesa_initialize_context() if error, caller does that. 2000-08-29 19:01:18 +00:00
Brian Paul
52eee51001 changed quad vertex colors to be tessellation invariant 2000-08-21 21:10:35 +00:00
Brian Paul
5d62414004 print UNDEFINED MODE over samples that are undefined in the GL spec 2000-08-21 20:06:44 +00:00
Brian Paul
5917ec0983 optimized glDrawPixels for glPixelZoom(1,-1) (Andrew Gee) 2000-08-16 20:51:23 +00:00
Brian Paul
06e32f455f added missing radius multiplication factor to sphere code 2000-08-16 20:36:32 +00:00
Brian Paul
0ead11e448 fixed typo which disabled simple_DrawPixels 2000-08-16 17:32:13 +00:00
Brian Paul
3edbaf7de6 fixed some warnings (Alan H.) 2000-08-16 17:25:40 +00:00
Brian Paul
e6d349d8e4 added glXUseXFont bug fix 2000-08-13 03:59:04 +00:00
Brian Paul
c25a8f9317 removed all dependencies on XMesa 2000-08-13 03:54:04 +00:00
Brian Paul
9f5ddba23f fixed segfault problem when using MESA_GLX_FX 2000-08-13 03:42:38 +00:00
Brian Paul
f5de04549e fixed depth mask bug in fxddClear(DD_DEPTH_BIT) 2000-08-09 17:56:34 +00:00
Brian Paul
fb027ada34 changed version to 3.4 2000-08-08 16:19:32 +00:00
Brian Paul
e990e8c166 bumped MESA_MINOR to 4 2000-08-08 16:16:04 +00:00
Brian Paul
394ecbde83 added GetInteger/Float/Double/Boolean/Pointer device driver functions 2000-08-08 16:02:09 +00:00
Brian Paul
7ea41a18a5 added NULL parameter checking to API functions 2000-08-03 13:59:28 +00:00
Brian Paul
262112dafa added some bug fix items 2000-08-02 20:33:21 +00:00
Brian Paul
e0fd3762ce updates from mesa3d@billbaxter.com 2000-08-02 20:28:19 +00:00
Brian Paul
1274afbe0b fixed return val bug in glAreTexturesResident() 2000-08-02 20:16:06 +00:00
Brian Paul
5f9760b572 added include/GL/mesa_wgl.h to tar file list 2000-08-02 20:14:25 +00:00
Brian Paul
107c1a4d40 updated by Alessandro Pisani 2000-08-02 20:07:16 +00:00
Brian Paul
809c5a7fc7 removed GLU 1.2 symbols 2000-08-02 14:08:35 +00:00
Brian Paul
aaab86427a define GL_GLEXT_PROTOTYPES before including mesa_wgl.h 2000-08-02 00:42:52 +00:00
Brian Paul
5e2c92b8b6 initialize texture priorities to 1.0, clean-up of _mesa_PrioritizeTextures() 2000-08-02 00:38:23 +00:00
Brian Paul
84e8b8ea5a glGetTexParameter(GL_TEXTURE_RESIDENT) didn't query device driver 2000-08-01 17:33:51 +00:00
Brian Paul
051690168a test against an epsilon magnitude in gl_rotation_matrix() 2000-07-31 15:31:17 +00:00
Brian Paul
652f3b41c1 install glext.h too 2000-07-31 15:26:48 +00:00
Brian Paul
c5e6547a95 3.4 release notes 2000-07-31 13:50:02 +00:00
Brian Paul
bc8257a729 updated Phil's email address 2000-07-31 13:47:21 +00:00
Brian Paul
b353233325 added missing widgets-mesa src files to tar list, updated version numbers 2000-07-31 13:46:27 +00:00
114 changed files with 8649 additions and 4268 deletions

View File

@@ -1,8 +1,8 @@
# $Id: Make-config,v 1.25 2000/06/08 15:19:12 brianp Exp $
# $Id: Make-config,v 1.25.4.6 2001/01/24 04:49:27 brianp Exp $
MESA_MAJOR=3
MESA_MINOR=3
MESA_TINY=0
MESA_MINOR=4
MESA_TINY=1
VERSION=$(MESA_MAJOR).$(MESA_MINOR)
# Mesa 3-D graphics library
@@ -200,7 +200,11 @@ freebsd-386:
"CFLAGS = -O3 -ffast-math -fPIC -pedantic -I/usr/X11R6/include -DUSE_XSHM -DHZ=100 -DUSE_X86_ASM -DFREEBSD" \
"MAKELIB = ../bin/mklib.freebsd" \
"APP_LIB_DEPS = -L/usr/X11R6/lib -lXext -lXmu -lXi -lX11 -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S"
"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \
X86/x86_xform_raw2.S X86/x86_xform_raw3.S \
X86/x86_xform_raw4.S X86/x86_xform_masked2.S \
X86/x86_xform_masked3.S X86/x86_xform_masked4.S \
X86/x86_cliptest.S"
gcc:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
@@ -467,136 +471,7 @@ linux-static:
"MAKELIB = ../bin/mklib.ar-ruv" \
"APP_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lm -lpthread"
linux-386:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.so" \
"GLU_LIB = libGLU.so" \
"GLUT_LIB = libglut.so" \
"GLW_LIB = libGLw.so" \
"CC = gcc" \
"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DPTHREADS -I/usr/X11R6/include" \
"MAKELIB = ../bin/mklib.linux" \
"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread" \
"GLU_LIB_DEPS = -L../lib -lGL -lm" \
"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \
"APP_LIB_DEPS = -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S X86/vertex.S"
linux-386-static:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.a" \
"GLU_LIB = libGLU.a" \
"GLUT_LIB = libglut.a" \
"GLW_LIB = libGLw.a" \
"CC = gcc" \
"CFLAGS = -O3 -funroll-loops -ansi -pedantic -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DPTHREADS -I/usr/X11R6/include" \
"MAKELIB = ../bin/mklib.ar-ruv" \
"APP_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lm -lpthread" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S X86/vertex.S"
linux-glide:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.so" \
"GLU_LIB = libGLU.so" \
"GLUT_LIB = libglut.so" \
"GLW_LIB = libGLw.so" \
"CC = gcc" \
"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DFX -DPTHREADS -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include" \
"MAKELIB = ../bin/mklib.linux" \
"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -L/usr/local/glide/lib -lglide2x" \
"GLU_LIB_DEPS = -L../lib -lGL -lm" \
"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \
"APP_LIB_DEPS = -lglut -lGLU -lGL"
linux-386-glide:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.so" \
"GLU_LIB = libGLU.so" \
"GLUT_LIB = libglut.so" \
"GLW_LIB = libGLw.so" \
"CC = gcc" \
"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_X86_ASM -DUSE_XSHM -DFX -DPTHREADS -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include" \
"MAKELIB = ../bin/mklib.linux" \
"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \
"GLU_LIB_DEPS = -L../lib -lGL -lm" \
"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \
"APP_LIB_DEPS = -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S X86/vertex.S"
linux-386-opt-V2-glide:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.so" \
"GLU_LIB = libGLU.so" \
"GLUT_LIB = libglut.so" \
"GLW_LIB = libGLw.so" \
"CC = gcc" \
"CFLAGS = -O3 -m486 -fomit-frame-pointer -pipe -ansi -pedantic -ffast-math -fexpensive-optimizations -malign-loops=2 -malign-jumps=2 -malign-functions=2 -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DFX -DFX_V2 -DUSE_X86_ASM -DPTHREAD -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include"\
"MAKELIB = ../bin/mklib.linux" \
"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \
"GLU_LIB_DEPS = -L../lib -lGL -lm" \
"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \
"APP_LIB_DEPS = -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S X86/vertex.S"
linux-386-opt-glide:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.so" \
"GLU_LIB = libGLU.so" \
"GLUT_LIB = libglut.so" \
"GLW_LIB = libGLw.so" \
"CC = gcc" \
"CFLAGS = -O3 -m486 -fomit-frame-pointer -pipe -ansi -pedantic -ffast-math -fexpensive-optimizations -malign-loops=2 -malign-jumps=2 -malign-functions=2 -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DFX -DUSE_X86_ASM -DPTHREADS -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include" \
"MAKELIB = ../bin/mklib.linux" \
"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \
"GLU_LIB_DEPS = -L../lib -lGL -lm" \
"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \
"APP_LIB_DEPS = -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S X86/vertex.S"
linux-3dnow:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.so" \
"GLU_LIB = libGLU.so" \
"GLUT_LIB = libglut.so" \
"GLW_LIB = libGLw.so" \
"CC = gcc -malign-loops=2 -malign-jumps=2 -malign-functions=2" \
"CFLAGS = -Wall -O3 -ansi -pedantic -fPIC -ffast-math -funroll-loops -fomit-frame-pointer -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DPTHREADS -I/usr/X11R6/include" \
"MAKELIB = ../bin/mklib.linux" \
"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lm -lpthread" \
"GLU_LIB_DEPS = -L../lib -lGL -lm" \
"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \
"APP_LIB_DEPS = -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S \
X86/mmx_blend.S \
X86/3dnow_xform_raw1.S X86/3dnow_xform_raw2.S \
X86/3dnow_xform_raw3.S X86/3dnow_xform_raw4.S \
X86/3dnow_xform_masked1.S X86/3dnow_xform_masked2.S \
X86/3dnow_xform_masked3.S X86/3dnow_xform_masked4.S \
X86/3dnow_norm_raw.S X86/vertex.S X86/vertex_3dnow.S"
linux-3dnow-glide:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.so" \
"GLU_LIB = libGLU.so" \
"GLUT_LIB = libglut.so" \
"GLW_LIB = libGLw.so" \
"CC = gcc -malign-loops=2 -malign-jumps=2 -malign-functions=2" \
"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -funroll-loops -fomit-frame-pointer -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_XSHM -DFX -DPTHREADS -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include -I/usr/src/mesa-glx/src/FX/X86" \
"MAKELIB = ../bin/mklib.linux" \
"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \
"GLU_LIB_DEPS = -L../lib -lGL -lm" \
"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \
"APP_LIB_DEPS = -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S \
X86/mmx_blend.S \
X86/3dnow_xform_raw1.S X86/3dnow_xform_raw2.S \
X86/3dnow_xform_raw3.S X86/3dnow_xform_raw4.S \
X86/3dnow_xform_masked1.S X86/3dnow_xform_masked2.S \
X86/3dnow_xform_masked3.S X86/3dnow_xform_masked4.S \
X86/3dnow_norm_raw.S X86/vertex.S X86/vertex_3dnow.S \
FX/X86/fx_3dnow_fastpath.S"
linux-katmai:
linux-x86:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.so" \
"GLU_LIB = libGLU.so" \
@@ -609,47 +484,52 @@ linux-katmai:
"GLU_LIB_DEPS = -L../lib -lGL -lm" \
"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \
"APP_LIB_DEPS = -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S \
X86/mmx_blend.S \
X86/3dnow_xform_raw1.S X86/3dnow_xform_raw2.S \
X86/3dnow_xform_raw3.S X86/3dnow_xform_raw4.S \
X86/3dnow_xform_masked1.S X86/3dnow_xform_masked2.S \
X86/3dnow_xform_masked3.S X86/3dnow_xform_masked4.S \
X86/3dnow_norm_raw.S X86/vertex.S X86/vertex_3dnow.S \
X86/katmai_norm_raw.S \
X86/katmai_xform_raw1.S X86/katmai_xform_masked1.S \
X86/katmai_xform_raw2.S X86/katmai_xform_masked2.S \
X86/katmai_xform_raw3.S X86/katmai_xform_masked3.S \
X86/katmai_xform_raw4.S X86/katmai_xform_masked4.S \
X86/vertex_katmai.S"
"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \
X86/x86_xform_raw2.S X86/x86_xform_raw3.S \
X86/x86_xform_raw4.S X86/x86_xform_masked2.S \
X86/x86_xform_masked3.S X86/x86_xform_masked4.S \
X86/x86_cliptest.S X86/x86_vertex.S \
X86/mmx_blend.S \
X86/3dnow_xform_raw1.S X86/3dnow_xform_raw2.S \
X86/3dnow_xform_raw3.S X86/3dnow_xform_raw4.S \
X86/3dnow_xform_masked1.S X86/3dnow_xform_masked2.S \
X86/3dnow_xform_masked3.S X86/3dnow_xform_masked4.S \
X86/3dnow_norm_raw.S X86/3dnow_vertex.S \
X86/katmai_xform_raw1.S X86/katmai_xform_masked1.S \
X86/katmai_xform_raw2.S X86/katmai_xform_masked2.S \
X86/katmai_xform_raw3.S X86/katmai_xform_masked3.S \
X86/katmai_xform_raw4.S X86/katmai_xform_masked4.S \
X86/katmai_norm_raw.S X86/katmai_vertex.S"
linux-katmai-glide:
linux-x86-static:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.so" \
"GLU_LIB = libGLU.so" \
"GLUT_LIB = libglut.so" \
"GLW_LIB = libGLw.so" \
"GL_LIB = libGL.a" \
"GLU_LIB = libGLU.a" \
"GLUT_LIB = libglut.a" \
"GLW_LIB = libGLw.a" \
"CC = gcc -malign-loops=2 -malign-jumps=2 -malign-functions=2" \
"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -funroll-loops -fomit-frame-pointer -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_KATMAI_ASM -DUSE_XSHM -DFX -DPTHREADS -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include -I/usr/src/mesa-glx/src/FX/X86" \
"MAKELIB = ../bin/mklib.linux" \
"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \
"CFLAGS = -Wall -O3 -ansi -pedantic -fPIC -ffast-math -funroll-loops -fomit-frame-pointer -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_KATMAI_ASM -DPTHREADS -I/usr/X11R6/include" \
"MAKELIB = ../bin/mklib.ar-ruv" \
"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lm -lpthread" \
"GLU_LIB_DEPS = -L../lib -lGL -lm" \
"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \
"APP_LIB_DEPS = -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S \
X86/mmx_blend.S \
X86/3dnow_xform_raw1.S X86/3dnow_xform_raw2.S \
X86/3dnow_xform_raw3.S X86/3dnow_xform_raw4.S \
X86/3dnow_xform_masked1.S X86/3dnow_xform_masked2.S \
X86/3dnow_xform_masked3.S X86/3dnow_xform_masked4.S \
X86/3dnow_norm_raw.S X86/vertex.S X86/vertex_3dnow.S \
FX/X86/fx_3dnow_fastpath.S \
X86/katmai_norm_raw.S \
X86/katmai_xform_raw1.S X86/katmai_xform_masked1.S \
X86/katmai_xform_raw2.S X86/katmai_xform_masked2.S \
X86/katmai_xform_raw3.S X86/katmai_xform_masked3.S \
X86/katmai_xform_raw4.S X86/katmai_xform_masked4.S \
X86/vertex_katmai.S"
"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \
X86/x86_xform_raw2.S X86/x86_xform_raw3.S \
X86/x86_xform_raw4.S X86/x86_xform_masked2.S \
X86/x86_xform_masked3.S X86/x86_xform_masked4.S \
X86/x86_cliptest.S X86/x86_vertex.S \
X86/mmx_blend.S \
X86/3dnow_xform_raw1.S X86/3dnow_xform_raw2.S \
X86/3dnow_xform_raw3.S X86/3dnow_xform_raw4.S \
X86/3dnow_xform_masked1.S X86/3dnow_xform_masked2.S \
X86/3dnow_xform_masked3.S X86/3dnow_xform_masked4.S \
X86/3dnow_norm_raw.S X86/3dnow_vertex.S \
X86/katmai_xform_raw1.S X86/katmai_xform_masked1.S \
X86/katmai_xform_raw2.S X86/katmai_xform_masked2.S \
X86/katmai_xform_raw3.S X86/katmai_xform_masked3.S \
X86/katmai_xform_raw4.S X86/katmai_xform_masked4.S \
X86/katmai_norm_raw.S X86/katmai_vertex.S"
# Contributed by Uwe_Maurer@t-online.de
linux-ggi:
@@ -674,7 +554,113 @@ linux-386-ggi:
"CFLAGS = -O3 -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DUSE_X86_ASM -DGGI -DCDECL=" \
"MAKELIB = ../bin/mklib.ggi" \
"APP_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lggi -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S X86/vertex.S"
"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \
X86/x86_xform_raw2.S X86/x86_xform_raw3.S \
X86/x86_xform_raw4.S X86/x86_xform_masked2.S \
X86/x86_xform_masked3.S X86/x86_xform_masked4.S \
X86/x86_cliptest.S X86/x86_vertex.S"
linux-glide:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.so" \
"GLU_LIB = libGLU.so" \
"GLUT_LIB = libglut.so" \
"GLW_LIB = libGLw.so" \
"CC = gcc" \
"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DFX -DPTHREADS -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include" \
"MAKELIB = ../bin/mklib.linux" \
"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -L/usr/local/glide/lib -lglide2x" \
"GLU_LIB_DEPS = -L../lib -lGL -lm" \
"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \
"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -lglut -lGLU -lGL"
linux-386-glide:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.so" \
"GLU_LIB = libGLU.so" \
"GLUT_LIB = libglut.so" \
"GLW_LIB = libGLw.so" \
"CC = gcc" \
"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_X86_ASM -DUSE_XSHM -DFX -DPTHREADS -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include" \
"MAKELIB = ../bin/mklib.linux" \
"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \
"GLU_LIB_DEPS = -L../lib -lGL -lm" \
"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \
"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -lm" \
"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \
X86/x86_xform_raw2.S X86/x86_xform_raw3.S \
X86/x86_xform_raw4.S X86/x86_xform_masked2.S \
X86/x86_xform_masked3.S X86/x86_xform_masked4.S \
X86/x86_cliptest.S X86/x86_vertex.S"
linux-386-opt-glide:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.so" \
"GLU_LIB = libGLU.so" \
"GLUT_LIB = libglut.so" \
"GLW_LIB = libGLw.so" \
"CC = gcc" \
"CFLAGS = -O3 -m486 -fomit-frame-pointer -pipe -ansi -pedantic -ffast-math -fexpensive-optimizations -malign-loops=2 -malign-jumps=2 -malign-functions=2 -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DFX -DUSE_X86_ASM -DPTHREADS -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include" \
"MAKELIB = ../bin/mklib.linux" \
"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \
"GLU_LIB_DEPS = -L../lib -lGL -lm" \
"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \
"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -lm" \
"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \
X86/x86_xform_raw2.S X86/x86_xform_raw3.S \
X86/x86_xform_raw4.S X86/x86_xform_masked2.S \
X86/x86_xform_masked3.S X86/x86_xform_masked4.S \
X86/x86_cliptest.S X86/x86_vertex.S"
linux-386-opt-V2-glide:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.so" \
"GLU_LIB = libGLU.so" \
"GLUT_LIB = libglut.so" \
"GLW_LIB = libGLw.so" \
"CC = gcc" \
"CFLAGS = -O3 -m486 -fomit-frame-pointer -pipe -ansi -pedantic -ffast-math -fexpensive-optimizations -malign-loops=2 -malign-jumps=2 -malign-functions=2 -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DFX -DFX_V2 -DUSE_X86_ASM -DPTHREAD -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include"\
"MAKELIB = ../bin/mklib.linux" \
"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \
"GLU_LIB_DEPS = -L../lib -lGL -lm" \
"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \
"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -lm" \
"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \
X86/x86_xform_raw2.S X86/x86_xform_raw3.S \
X86/x86_xform_raw4.S X86/x86_xform_masked2.S \
X86/x86_xform_masked3.S X86/x86_xform_masked4.S \
X86/x86_cliptest.S X86/x86_vertex.S"
linux-x86-glide:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.so" \
"GLU_LIB = libGLU.so" \
"GLUT_LIB = libglut.so" \
"GLW_LIB = libGLw.so" \
"CC = gcc -malign-loops=2 -malign-jumps=2 -malign-functions=2" \
"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -funroll-loops -fomit-frame-pointer -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_KATMAI_ASM -DUSE_XSHM -DFX -DPTHREADS -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include -I/usr/src/mesa-glx/src/FX/X86" \
"MAKELIB = ../bin/mklib.linux" \
"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \
"GLU_LIB_DEPS = -L../lib -lGL -lm" \
"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \
"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -lm" \
"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \
X86/x86_xform_raw2.S X86/x86_xform_raw3.S \
X86/x86_xform_raw4.S X86/x86_xform_masked2.S \
X86/x86_xform_masked3.S X86/x86_xform_masked4.S \
X86/x86_cliptest.S X86/x86_vertex.S \
X86/mmx_blend.S \
X86/3dnow_xform_raw1.S X86/3dnow_xform_raw2.S \
X86/3dnow_xform_raw3.S X86/3dnow_xform_raw4.S \
X86/3dnow_xform_masked1.S X86/3dnow_xform_masked2.S \
X86/3dnow_xform_masked3.S X86/3dnow_xform_masked4.S \
X86/3dnow_norm_raw.S X86/3dnow_vertex.S \
FX/X86/fx_3dnow_fastpath.S \
X86/katmai_xform_raw1.S X86/katmai_xform_masked1.S \
X86/katmai_xform_raw2.S X86/katmai_xform_masked2.S \
X86/katmai_xform_raw3.S X86/katmai_xform_masked3.S \
X86/katmai_xform_raw4.S X86/katmai_xform_masked4.S \
X86/katmai_norm_raw.S X86/katmai_vertex.S"
linux-alpha:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
@@ -874,7 +860,11 @@ os2-x11:
"CFLAGS = -Zmt -O3 -m486 -funroll-loops -Wall -Wno-unused -ansi -pedantic -ffast-math -DUSE_X86_ASM -D_SVID_SOURCE -D_BSD_SOURCE -I$(X11ROOT)/XFree86/include" \
"MAKELIB = ..\\bin\\mklib-emx.cmd " \
"APP_LIB_DEPS = -Zmt -Zcrtdll -Zexe -L$(X11ROOT)/XFree86/lib -lXt -lX11 -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S X86/vertex.S"
"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \
X86/x86_xform_raw2.S X86/x86_xform_raw3.S \
X86/x86_xform_raw4.S X86/x86_xform_masked2.S \
X86/x86_xform_masked3.S X86/x86_xform_masked4.S \
X86/x86_cliptest.S X86/x86_vertex.S"
osf1:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
@@ -1273,19 +1263,7 @@ DEBUG:
"APP_LIB_DEPS = -lX11 -lXext -lXmu -lXi -lfpe -lm"
# for debugging on Linux systems
linux-static-debug:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.a" \
"GLU_LIB = libGLU.a" \
"GLUT_LIB = libglut.a" \
"GLW_LIB = libGLw.a" \
"CC = gcc" \
"CFLAGS = -g -ansi -pedantic -Wall -Wmissing-prototypes -DUSE_XSHM -DDEBUG -DSVGA -DFX -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_X86_ASM_not -I/usr/include/glide -I/usr/local/glide/include" \
"MAKELIB = ../bin/mklib.ar-ruv" \
"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -ltexus -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lvga -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S X86/vertex.S"
linux-elf-debug:
linux-debug:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.so" \
"GLU_LIB = libGLU.so" \
@@ -1297,7 +1275,48 @@ linux-elf-debug:
"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -lvga -L/usr/local/glide/lib -lglide2x" \
"GLU_LIB_DEPS = -L../lib -lGL -lm" \
"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \
"APP_LIB_DEPS = -lglut -lGLU -lGL"
"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -lglut -lGLU -lGL"
linux-static-debug:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.a" \
"GLU_LIB = libGLU.a" \
"GLUT_LIB = libglut.a" \
"GLW_LIB = libGLw.a" \
"CC = gcc" \
"CFLAGS = -g -ansi -pedantic -Wall -Wmissing-prototypes -DUSE_XSHM -DDEBUG -DMESA_DEBUG -DSVGA -DFX -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/include/glide -I/usr/local/glide/include" \
"MAKELIB = ../bin/mklib.ar-ruv" \
"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -ltexus -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lvga -lm" \
linux-x86-debug:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.so" \
"GLU_LIB = libGLU.so" \
"GLUT_LIB = libglut.so" \
"GLW_LIB = libGLw.so" \
"CC = gcc -malign-loops=2 -malign-jumps=2 -malign-functions=2" \
"CFLAGS = -O2 -g -ansi -pedantic -Wall -Wmissing-prototypes -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_KATMAI_ASM -DPTHREADS -I/usr/X11R6/include -DDEBUG -DMESA_DEBUG" \
"MAKELIB = ../bin/mklib.linux" \
"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lm -lpthread" \
"GLU_LIB_DEPS = -L../lib -lGL -lm" \
"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \
"APP_LIB_DEPS = -lm" \
"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \
X86/x86_xform_raw2.S X86/x86_xform_raw3.S \
X86/x86_xform_raw4.S X86/x86_xform_masked2.S \
X86/x86_xform_masked3.S X86/x86_xform_masked4.S \
X86/x86_cliptest.S X86/x86_vertex.S \
X86/mmx_blend.S \
X86/3dnow_xform_raw1.S X86/3dnow_xform_raw2.S \
X86/3dnow_xform_raw3.S X86/3dnow_xform_raw4.S \
X86/3dnow_xform_masked1.S X86/3dnow_xform_masked2.S \
X86/3dnow_xform_masked3.S X86/3dnow_xform_masked4.S \
X86/3dnow_norm_raw.S X86/3dnow_vertex.S \
X86/katmai_xform_raw1.S X86/katmai_xform_masked1.S \
X86/katmai_xform_raw2.S X86/katmai_xform_masked2.S \
X86/katmai_xform_raw3.S X86/katmai_xform_masked3.S \
X86/katmai_xform_raw4.S X86/katmai_xform_masked4.S \
X86/katmai_norm_raw.S X86/katmai_vertex.S"
linux-glide-debug:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
@@ -1318,14 +1337,51 @@ linux-prof:
"GLUT_LIB = libglut.a" \
"GLW_LIB = libGLw.a" \
"CC = gcc" \
"CFLAGS = -O2 -pg -ansi -pedantic -Wall -DUSE_XSHM -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -I/usr/include/glide -I/usr/local/glide/include" \
"CFLAGS = -Wall -O2 -pg -ansi -pedantic -ffast-math -DUSE_XSHM -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_KATMAI_ASM" \
"MAKELIB = ../bin/mklib.ar-ruv" \
"APP_LIB_DEPS = -L/usr/X11/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lm" \
"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \
X86/x86_xform_raw2.S X86/x86_xform_raw3.S \
X86/x86_xform_raw4.S X86/x86_xform_masked2.S \
X86/x86_xform_masked3.S X86/x86_xform_masked4.S \
X86/x86_cliptest.S X86/x86_vertex.S \
X86/mmx_blend.S \
X86/3dnow_xform_raw1.S X86/3dnow_xform_raw2.S \
X86/3dnow_xform_raw3.S X86/3dnow_xform_raw4.S \
X86/3dnow_xform_masked1.S X86/3dnow_xform_masked2.S \
X86/3dnow_xform_masked3.S X86/3dnow_xform_masked4.S \
X86/3dnow_norm_raw.S X86/3dnow_vertex.S \
FX/X86/fx_3dnow_fastpath.S \
X86/katmai_xform_raw1.S X86/katmai_xform_masked1.S \
X86/katmai_xform_raw2.S X86/katmai_xform_masked2.S \
X86/katmai_xform_raw3.S X86/katmai_xform_masked3.S \
X86/katmai_xform_raw4.S X86/katmai_xform_masked4.S \
X86/katmai_norm_raw.S X86/katmai_vertex.S"
linux-glide-prof:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.a" \
"GLU_LIB = libGLU.a" \
"GLUT_LIB = libglut.a" \
"GLW_LIB = libGLw.a" \
"CC = gcc" \
"CFLAGS = -O2 -pg -ansi -pedantic -Wall -DUSE_XSHM -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_KATMAI_ASM -I/usr/include/glide -I/usr/local/glide/include" \
"MAKELIB = ../bin/mklib.ar-ruv" \
"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -L/usr/X11/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S \
X86/mmx_blend.S \
X86/3dnow_xform_raw1.S X86/3dnow_xform_raw2.S \
X86/3dnow_xform_raw3.S X86/3dnow_xform_raw4.S \
X86/3dnow_xform_masked1.S X86/3dnow_xform_masked2.S \
X86/3dnow_xform_masked3.S X86/3dnow_xform_masked4.S \
X86/3dnow_norm_raw.S X86/vertex.S X86/vertex_3dnow.S \
FX/X86/fx_3dnow_fastpath.S"
"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \
X86/x86_xform_raw2.S X86/x86_xform_raw3.S \
X86/x86_xform_raw4.S X86/x86_xform_masked2.S \
X86/x86_xform_masked3.S X86/x86_xform_masked4.S \
X86/x86_cliptest.S X86/x86_vertex.S \
X86/mmx_blend.S \
X86/3dnow_xform_raw1.S X86/3dnow_xform_raw2.S \
X86/3dnow_xform_raw3.S X86/3dnow_xform_raw4.S \
X86/3dnow_xform_masked1.S X86/3dnow_xform_masked2.S \
X86/3dnow_xform_masked3.S X86/3dnow_xform_masked4.S \
X86/3dnow_norm_raw.S X86/3dnow_vertex.S \
FX/X86/fx_3dnow_fastpath.S \
X86/katmai_xform_raw1.S X86/katmai_xform_masked1.S \
X86/katmai_xform_raw2.S X86/katmai_xform_masked2.S \
X86/katmai_xform_raw3.S X86/katmai_xform_masked3.S \
X86/katmai_xform_raw4.S X86/katmai_xform_masked4.S \
X86/katmai_norm_raw.S X86/katmai_vertex.S"

View File

@@ -1,20 +1,20 @@
# $Id: Makefile.X11,v 1.32 2000/07/21 16:36:35 brianp Exp $
# $Id: Makefile.X11,v 1.32.2.7 2001/02/07 23:49:26 brianp Exp $
# Mesa 3-D graphics library
# Version: 3.3
#
# Version: 3.4.1
#
# Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
#
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
@@ -68,18 +68,15 @@ default:
@echo " make linux for Linux systems, make shared .so libs"
@echo " make linux-static for Linux systems, make static .a libs"
@echo " make linux-386 for Linux on Intel, make shared .so libs"
@echo " make linux-386-static for Linux on Intel, make static .a libs"
@echo " make linux-x86 for Linux on Intel, make shared .so libs"
@echo " make linux-x86-static for Linux on Intel, make static .a libs"
@echo " make linux-ggi for Linux systems with libggi"
@echo " make linux-386-ggi for Linux systems with libggi w/ Intel assembly"
@echo " make linux-glide for Linux w/ 3Dfx Glide driver"
@echo " make linux-386-glide for Linux w/ 3Dfx Glide driver, Intel assembly"
@echo " make linux-386-opt-glide for Linux with 3Dfx Voodoo1 for GLQuake"
@echo " make linux-386-opt-V2-glide for Linux with 3Dfx Voodoo2 for GLQuake"
@echo " make linux-3dnow for Linux on AMD w/ 3DNow!"
@echo " make linux-3dnow-glide for Linux on AMD w/ 3DNow! for Glide"
@echo " make linux-katmai for Linux on PentiumIII w/ SSE"
@echo " make linux-katmai-glide for Linux on PentiumIII w/ SSE for Glide"
@echo " make linux-x86-glide for Linux w/ all x86 asm for Glide"
@echo " make linux-alpha for Linux on Alpha systems"
@echo " make linux-alpha-static for Linux on Alpha systems, static libs"
@echo " make linux-ppc for Linux on PowerPC systems"
@@ -139,13 +136,10 @@ aix aix-sl amix bsdos bsdos4 dgux freebsd freebsd-386 gcc \
hpux9 hpux9-sl hpux9-gcc hpux9-gcc-sl \
hpux10 hpux10-sl hpux10-gcc hpux10-gcc-sl \
irix4 irix5 irix5-gcc irix5-dso irix6-o32 irix6-o32-dso \
linux-static-debug linux-elf-debug linux-prof linux-glide-debug \
linux linux-static \
linux-386 linux-386-static \
linux linux-static linux-debug linux-static-debug linux-prof \
linux-x86 linux-x86-static linux-x86-debug \
linux-glide linux-386-glide linux-386-opt-glide \
linux-386-opt-V2-glide \
linux-3dnow linux-3dnow-glide \
linux-katmai linux-katmai-glide \
linux-386-opt-V2-glide linux-x86-glide linux-glide-debug linux-glide-prof \
linux-alpha-static linux-alpha \
linux-ppc-static linux-ppc \
linux-sparc \
@@ -326,10 +320,10 @@ realclean: clean
DIRECTORY = Mesa-3.3
LIB_NAME = MesaLib-3.3
DEMO_NAME = MesaDemos-3.3
GLU_NAME = MesaGLU-3.3
DIRECTORY = Mesa-3.4.1
LIB_NAME = MesaLib-3.4.1
DEMO_NAME = MesaDemos-3.4.1
GLU_NAME = MesaGLU-3.4.1
GLUT_NAME = GLUT-3.7
@@ -388,6 +382,7 @@ LIB_FILES = \
$(DIRECTORY)/include/GL/glu_mangle.h \
$(DIRECTORY)/include/GL/glx.h \
$(DIRECTORY)/include/GL/glx_mangle.h \
$(DIRECTORY)/include/GL/mesa_wgl.h \
$(DIRECTORY)/include/GL/mglmesa.h \
$(DIRECTORY)/include/GL/osmesa.h \
$(DIRECTORY)/include/GL/svgamesa.h \
@@ -463,7 +458,6 @@ LIB_FILES = \
$(DIRECTORY)/src/X86/*.[ch] \
$(DIRECTORY)/src/X86/Makefile.am \
$(DIRECTORY)/src/X86/Makefile.in \
$(DIRECTORY)/src/X86/*.m4 \
$(DIRECTORY)/src/X86/*.S \
$(DIRECTORY)/src-glu/README[12] \
$(DIRECTORY)/src-glu/Makefile* \
@@ -478,6 +472,7 @@ LIB_FILES = \
$(DIRECTORY)/widgets-mesa/README \
$(DIRECTORY)/widgets-mesa/TODO \
$(DIRECTORY)/widgets-mesa/configure \
$(DIRECTORY)/widgets-mesa/configure.in \
$(DIRECTORY)/widgets-mesa/demos/ChangeLog \
$(DIRECTORY)/widgets-mesa/demos/Cube \
$(DIRECTORY)/widgets-mesa/demos/Ed \
@@ -494,6 +489,8 @@ LIB_FILES = \
$(DIRECTORY)/widgets-mesa/man/Makefile.in \
$(DIRECTORY)/widgets-mesa/man/Mesa* \
$(DIRECTORY)/widgets-mesa/src/ChangeLog \
$(DIRECTORY)/widgets-mesa/src/*.c \
$(DIRECTORY)/widgets-mesa/src/Makefile.in \
$(DIRECTORY)/widgets-sgi/*.[ch] \
$(DIRECTORY)/widgets-sgi/Makefile* \
$(DIRECTORY)/widgets-sgi/README \

View File

@@ -1,8 +1,11 @@
3Dfx Glide device driver for Mesa 3.3
3Dfx Glide device driver for Mesa 3.4.1
(see below for FAQ)
NOTE: This information is probably somewhat out of date. A rewrite is
overdue.
What do you need ?
------------------
@@ -13,7 +16,7 @@ What do you need ?
under Linux (more information in the "Useful Glide Environment
Variables");
- Mesa 3.1;
- Mesa 3.4.1;
- The 3Dfx Glide library 2.3 or later for your OS (the 2.4 works fine).
The Voodoo2 requires the Glide library 2.51. The Glide 3.1 is not
@@ -23,8 +26,6 @@ What do you need ?
- A compiler supported by the Glide library (Micro$oft VC++ (tested),
Watcom (tested), GCC for Linux (tested), etc.);
- A lot of patience, this is an alpha release.
- It's nice to have two monitors - one for your normal graphics
card and one for your 3Dfx card. If something goes wrong with
an application using the 3Dfx hardware you can still see your
@@ -77,31 +78,28 @@ Linux:
If your Glide libraries and headers are in a different directory
you'll have to modify the Mesa-config and mklib.glide files.
- Unpack the MesaLib-3.1.tar.gz and MesaDemos-3.1.tar.gz archives;
- Unpack the MesaLib-3.4.1.tar.gz and MesaDemos-3.4.1.tar.gz archives;
- If you're going to use a newer Mesa/Glide driver than v0.27 then
unpack the new driver archive over the Mesa directory.
- In the Mesa-3.1 directory type "make linux-glide"
- In the Mesa-3.4.1 directory type "make linux-glide"
- Compilation _should_ finish without errors;
- Set your LD_LIBRARY_PATH environment variable so that the
libglide2x.so and Mesa library files can be found. For example:
setenv LD_LIBRARY_PATH "/usr/local/glide/lib:/SOMEDIR/Mesa-3.1/lib"
setenv LD_LIBRARY_PATH "/usr/local/glide/lib:/SOMEDIR/Mesa-3.4.1/lib"
- You'll have to run Glide-based programs as root or set the suid
bit on executables;
- Try a demo:
cd gdemos
cd demos
su
setenv MESA_GLX_FX f
./gears (hit ESC to exit)
- You can find the demos especially designed for the Voodoo driver in
in the Mesa-3.1/3Dfx/demos directory (type "make" in order to compile
everything).
MacOS:
------
@@ -117,13 +115,10 @@ MS Windows:
- You must have the vcvars32.bat script in your PATH;
- Go to the directory Mesa-3.1 and run the mesafx.bat;
- Go to the directory Mesa-3.4.1 and run the mesafx.bat;
- The script will compile everything (Mesa-3.1/lib/OpenGL32.{lib,dll},
Mesa-3.1/lib/GLU32.{lib,dll}, Mesa-3.1/lib/GLUT32.{lib,dll} and
Voodoo demos);
- At the end, you will be in the Mesa-3.1/3Dfx/demos directory;
- The script will compile everything (Mesa-3.4.1/lib/OpenGL32.{lib,dll},
Mesa-3.4.1/lib/GLU32.{lib,dll}, Mesa-3.4.1/lib/GLUT32.{lib,dll};
- Try some demo (fire.exe, teapot.exe, etc.) in order to check if
everything is OK (you can use Alt-Tab or Ctrl-F9 to switch between
@@ -135,10 +130,6 @@ MS Windows:
- I think that you can easy change the Makefile.fx files in order
to work with other kind of compilers;
- To discover how open the 3Dfx screen, read the sources under
the Mesa-3.1/3Dfx/demos directory. You can use the GLUT library or
the Diego Picciani's wgl emulator.
NOTE: the MSVC++ 5.0 optimizer is really buggy. Also if you install the
SP3, you could have some problem (you can disable optimization in order
solve these kind of problems).
@@ -236,7 +227,7 @@ Doing more with Mesa & Linux Glide:
#endif
...
See the 3Dfx/demos/tunnel.c program
See the demos/tunnel.c program
for an example. You have to set the -DXMESA flag in the Makefile's COPTS
to enable it.
@@ -395,7 +386,7 @@ Hints and Special Features:
- The Voodoo driver support multiple Voodoo Graphics boards in the
some PC. Using this feature, you can write applications that use
multiple monitors, videoprojectors or HMDs for the output. See
Mesa-3.1/3Dfx/demos/tunnel2.c for an example of how setup one
Mesa-3.4.1/demos/tunnel2.c for an example of how setup one
context for each board.
- The v0.19 introduces a new powerful texture memory manager: the
@@ -413,13 +404,8 @@ Hints and Special Features:
- The Voodoo driver supports the GL_EXT_paletted_texture. it works
only with GL_COLOR_INDEX8_EXT, GL_RGBA palettes and the alpha value
is ignored because this is a limitation of the the current Glide
version and of the Voodoo hardware. See Mesa-3.1/3Dfx/demos/paltex.c for
a demo of this extension.
- The Voodoo driver directly supports 3Dfx Global Palette extension.
It was written for GLQuake and I think that it isn't a good idea
to use this extension for any other purpose (it is a trick). See
Mesa-3.1/3Dfx/demos/glbpaltex.c for a demo of this extension.
version and of the Voodoo hardware. See Mesa-3.4.1/demos/paltex.c
for a demo of this extension.
- The Voodoo driver chooses the screen resolution according to the
requested window size. If you open a 640x480 window, you will get
@@ -490,12 +476,12 @@ version of GLQuake with works with the Mesa/3Dfx/Glide combo.
Here's what you need to run GLQuake on Linux:
PC with 100MHz Pentium or better
a 3Dfx-based card
Mesa 3.1 libraries: libMesaGL.so libMesaGLU.so
Mesa 3.4.1 libraries: libGL.so libGLU.so
Glide 2.4 libraries: libglide2x.so libtexus.so
GLQuake for Linux.
Also, the windows version of GLQuake works fine with the Mesa OpenGL32.dll,
you have only to copy the Mesa-3.1/lib/OpenGL32.dll in the GLQuake directory
you have only to copy the Mesa-3.4.1/lib/OpenGL32.dll in the GLQuake directory
in order to test 'MesaQuake'.

View File

@@ -1,5 +1,5 @@
Mesa 3.3 Unix/X11 Information
Mesa 3.4.1 Unix/X11 Information
@@ -323,4 +323,4 @@ Summary of X-related environment variables:
----------------------------------------------------------------------
$Id: README.X11,v 3.5 2000/04/04 15:14:48 brianp Exp $
$Id: README.X11,v 3.5.4.2 2001/01/24 04:53:26 brianp Exp $

22
docs/RELNOTES-3.4 Normal file
View File

@@ -0,0 +1,22 @@
Mesa 3.4 release notes
November 3, 2000
PLEASE READ!!!!
Introduction
------------
Mesa uses an even/odd version number scheme like the Linux kernel.
Odd numbered versions (such as 3.3) designate new developmental releases.
Even numbered versions (such as 3.4) designate stable releases.
Mesa 3.4 simply fixes bugs found in the Mesa 3.3 release. For details,
see the VERSIONS file.
----------------------------------------------------------------------
$Id: RELNOTES-3.4,v 1.1.2.2 2000/11/02 18:05:34 brianp Exp $

22
docs/RELNOTES-3.4.1 Normal file
View File

@@ -0,0 +1,22 @@
Mesa 3.4.1 release notes
February 9, 2001
PLEASE READ!!!!
Introduction
------------
Mesa uses an even/odd version number scheme like the Linux kernel.
Odd numbered versions (such as 3.3) designate new developmental releases.
Even numbered versions (such as 3.4) designate stable releases.
Mesa 3.4.1 is a maintenance release that simply fixes bugs found since
the Mesa 3.4 release. For details, see the VERSIONS file.
----------------------------------------------------------------------
$Id: RELNOTES-3.4.1,v 1.1.2.2 2001/02/07 22:54:04 brianp Exp $

View File

@@ -1,4 +1,4 @@
$Id: VERSIONS,v 1.38 2000/07/21 15:41:59 brianp Exp $
$Id: VERSIONS,v 1.38.2.29 2001/02/14 15:25:06 brianp Exp $
Mesa Version History
@@ -746,3 +746,58 @@ Mesa Version History
- gl.h now uses #defines instead of C enums for all tokens
- glu.h now uses #defines instead of C enums for all tokens
- moved programs from 3Dfx/demos/ into demos/ directory
3.4 November 3, 2000
New:
- optimized glDrawPixels for glPixelZoom(1,-1)
Bug Fixes:
- widgets-mesa/src/*.c files were missing from 3.3 distro
- include/GL/mesa_wgl.h file was missing from 3.3 distro
- fixed some Win32 compile problems
- texture object priorities weren't getting initialized to 1.0
- glAreTexturesResident return value was wrong when using hardware
- glXUseXFont segfaulted when using 3dfx driver (via MESA_GLX_FX)
- glReadPixels with GLushort packed types was broken
- fixed a few bugs in the GL_EXT_texture_env_combine texture code
- glPush/PopAttrib(GL_ENABLE_BIT) mishandled multi-texture enables
- fixed some typos/bugs in the VB code
- glDrawPixels(GL_COLOR_INDEX) to RGB window didn't work
- optimized glDrawPixels paths weren't being used
- per-fragment fog calculation didn't work without a Z buffer
- improved blending accuracy, fixes Glean blendFunc test failures
- glPixelStore(GL_PACK/UNPACK_SKIP_IMAGES) wasn't handled correctly
- glXGetProcAddressARB() didn't always return the right address
- gluBuild[12]DMipmaps() didn't grok the GL_BGR pixel format
- texture matrix changes weren't always detected (GLUT projtex demo)
- fixed random color problem in vertex fog code
- fixed Glide-related bug that let Quake get a 24-bit Z buffer
Changes:
- finished internal support for compressed textures for DRI
3.4.1 February 14, 2001
New:
- fixed some Linux build problems
- fixed some Windows build problems
- GL_EXT_texture_env_dot3 extension (Gareth Hughes)
Bug fixes:
- added RENDER_START/RENDER_FINISH macros for glCopyTexImage in DRI
- various state-update code changes needed for DRI bugs
- disabled pixel transfer ops in glColorTable commands, not needed
- fixed bugs in glCopyConvolutionFilter1D/2D, glGetConvolutionFilter
- updated sources and fixed compile problems in widgets-mesa/
- GLX_PBUFFER enum value was wrong in glx.h
- fixed a glColorMaterial lighting bug
- fixed bad args to Read/WriteStencilSpan in h/w stencil clear function
- glXCopySubBufferMESA() Y position was off by one
- Error checking of glTexSubImage3D() was broken (bug 128775)
- glPopAttrib() didn't restore all derived Mesa state correctly
- Better glReadPixels accuracy for 16bpp color - fixes lots of OpenGL
conformance problems at 16bpp.
- clearing depth buffer with scissoring was broken, would segfault
- OSMesaGetDepthBuffer() returned bad bytesPerValue value
- fixed a line clipping bug (reported by Craig McDaniel)
- fixed RGB color over/underflow bug for very tiny triangles
Known problems:
- NURBS or evaluator surfaces inside display lists don't always work

View File

@@ -29,6 +29,6 @@ endif
EXTRA_DIST = fxmesa.h ggimesa.h osmesa.h svgamesa.h \
glx.h glx_mangle.h xmesa.h xmesa_x.h xmesa_xf86.h
GLinclude_HEADERS = gl.h gl_mangle.h glu.h glu_mangle.h \
GLinclude_HEADERS = gl.h glext.h gl_mangle.h glu.h glu_mangle.h \
$(INC_FX) $(INC_GGI) $(INC_OSMESA) $(INC_SVGA) $(INC_X11) $(INC_GLUT)

View File

@@ -1,8 +1,8 @@
/* $Id: gl.h,v 1.44 2000/07/13 17:45:13 brianp Exp $ */
/* $Id: gl.h,v 1.44.4.2 2001/01/06 22:43:00 gareth Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
* Version: 3.4
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
@@ -2228,6 +2228,19 @@ GLAPI void GLAPIENTRY glResizeBuffersMESA( void );
#endif /* GL_MESA_resize_bufffers */
/*
* 220. GL_EXT_texture_env_dot3
*/
#ifndef GL_EXT_texture_env_dot3
#define GL_EXT_texture_env_dot3 1
#define GL_DOT3_RGB_EXT 0x8740
#define GL_DOT3_RGBA_EXT 0x8741
#endif /* GL_EXT_texture_env_dot3 */
#else /* GL_GLEXT_LEGACY */
#include <GL/glext.h>

View File

@@ -13,21 +13,21 @@ extern "C" {
** this file except in compliance with the License. You may obtain a copy
** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
**
**
** http://oss.sgi.com/projects/FreeB
**
**
** Note that, as provided in the License, the Software is distributed on an
** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
**
**
** Original Code. The Original Code is: OpenGL Sample Implementation,
** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.
** Copyright in any portions created by third parties is as indicated
** elsewhere herein. All Rights Reserved.
**
**
** Additional Notice Provisions: This software was created using the
** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has
** not been independently verified as being compliant with the OpenGL(R)
@@ -46,7 +46,7 @@ extern "C" {
/*************************************************************/
/* Header file version number, required by OpenGL ABI for Linux */
#define GL_GLEXT_VERSION 6
#define GL_GLEXT_VERSION 7
#ifndef GL_VERSION_1_2
#define GL_CONSTANT_COLOR 0x8001
@@ -220,12 +220,57 @@ extern "C" {
#define GL_COMPRESSED_RGB_ARB 0x84ED
#define GL_COMPRESSED_RGBA_ARB 0x84EE
#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF
#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0
#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0
#define GL_TEXTURE_COMPRESSED_ARB 0x86A1
#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2
#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3
#endif
#ifndef GL_ARB_vertex_blend
#define GL_MAX_VERTEX_UNITS_ARB 0x86A4
#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5
#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6
#define GL_VERTEX_BLEND_ARB 0x86A7
#define GL_CURRENT_WEIGHT_ARB 0x86A8
#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9
#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA
#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB
#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC
#define GL_WEIGHT_ARRAY_ARB 0x86AD
#define GL_MODELVIEW0_ARB 0x1700
#define GL_MODELVIEW1_ARB 0x850A
#define GL_MODELVIEW2_ARB 0x8722
#define GL_MODELVIEW3_ARB 0x8723
#define GL_MODELVIEW4_ARB 0x8724
#define GL_MODELVIEW5_ARB 0x8725
#define GL_MODELVIEW6_ARB 0x8726
#define GL_MODELVIEW7_ARB 0x8727
#define GL_MODELVIEW8_ARB 0x8728
#define GL_MODELVIEW9_ARB 0x8729
#define GL_MODELVIEW10_ARB 0x872A
#define GL_MODELVIEW11_ARB 0x872B
#define GL_MODELVIEW12_ARB 0x872C
#define GL_MODELVIEW13_ARB 0x872D
#define GL_MODELVIEW14_ARB 0x872E
#define GL_MODELVIEW15_ARB 0x872F
#define GL_MODELVIEW16_ARB 0x8730
#define GL_MODELVIEW17_ARB 0x8731
#define GL_MODELVIEW18_ARB 0x8732
#define GL_MODELVIEW19_ARB 0x8733
#define GL_MODELVIEW20_ARB 0x8734
#define GL_MODELVIEW21_ARB 0x8735
#define GL_MODELVIEW22_ARB 0x8736
#define GL_MODELVIEW23_ARB 0x8737
#define GL_MODELVIEW24_ARB 0x8738
#define GL_MODELVIEW25_ARB 0x8739
#define GL_MODELVIEW26_ARB 0x873A
#define GL_MODELVIEW27_ARB 0x873B
#define GL_MODELVIEW28_ARB 0x873C
#define GL_MODELVIEW29_ARB 0x873D
#define GL_MODELVIEW30_ARB 0x873E
#define GL_MODELVIEW31_ARB 0x873F
#endif
#ifndef GL_EXT_abgr
#define GL_ABGR_EXT 0x8000
#endif
@@ -670,6 +715,18 @@ extern "C" {
#ifndef GL_SGIX_tag_sample_buffer
#endif
#ifndef GL_FfdMaskSGIX
#define GL_TEXTURE_DEFORMATION_BIT_SGIX 0x00000001
#define GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x00000002
#endif
#ifndef GL_SGIX_polynomial_ffd
#define GL_GEOMETRY_DEFORMATION_SGIX 0x8194
#define GL_TEXTURE_DEFORMATION_SGIX 0x8195
#define GL_DEFORMATIONS_MASK_SGIX 0x8196
#define GL_MAX_DEFORMATION_ORDER_SGIX 0x8197
#endif
#ifndef GL_SGIX_reference_plane
#define GL_REFERENCE_PLANE_SGIX 0x817D
#define GL_REFERENCE_PLANE_EQUATION_SGIX 0x817E
@@ -785,6 +842,14 @@ extern "C" {
#define GL_COLOR_INDEX8_EXT 0x80E5
#define GL_COLOR_INDEX12_EXT 0x80E6
#define GL_COLOR_INDEX16_EXT 0x80E7
#define GL_COLOR_TABLE_FORMAT_EXT 0x80D8
#define GL_COLOR_TABLE_WIDTH_EXT 0x80D9
#define GL_COLOR_TABLE_RED_SIZE_EXT 0x80DA
#define GL_COLOR_TABLE_GREEN_SIZE_EXT 0x80DB
#define GL_COLOR_TABLE_BLUE_SIZE_EXT 0x80DC
#define GL_COLOR_TABLE_ALPHA_SIZE_EXT 0x80DD
#define GL_COLOR_TABLE_LUMINANCE_SIZE_EXT 0x80DE
#define GL_COLOR_TABLE_INTENSITY_SIZE_EXT 0x80DF
#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED
#endif
@@ -926,6 +991,24 @@ extern "C" {
#define GL_BGRA_EXT 0x80E1
#endif
#ifndef GL_SGIX_async
#define GL_ASYNC_MARKER_SGIX 0x8329
#endif
#ifndef GL_SGIX_async_pixel
#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C
#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D
#define GL_ASYNC_READ_PIXELS_SGIX 0x835E
#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F
#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360
#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361
#endif
#ifndef GL_SGIX_async_histogram
#define GL_ASYNC_HISTOGRAM_SGIX 0x832C
#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D
#endif
#ifndef GL_INTEL_texture_scissor
#endif
@@ -1419,6 +1502,11 @@ extern "C" {
#define GL_TEXTURE_COLOR_WRITEMASK_SGIS 0x81EF
#endif
#ifndef GL_EXT_texture_env_dot3
#define GL_DOT3_RGB_EXT 0x8740
#define GL_DOT3_RGBA_EXT 0x8741
#endif
/*************************************************************/
@@ -1658,15 +1746,9 @@ typedef void (APIENTRY * PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bia
#define GL_EXT_texture3D 1
#ifdef GL_GLEXT_PROTOTYPES
extern void APIENTRY glTexImage3DEXT (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
#endif /* GL_GLEXT_PROTOTYPES */
typedef void (APIENTRY * PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
#endif
#ifndef GL_EXT_subtexture
/*#define GL_EXT_subtexture 1*/
#ifdef GL_GLEXT_PROTOTYPES
extern void APIENTRY glTexSubImage3DEXT (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
#endif /* GL_GLEXT_PROTOTYPES */
typedef void (APIENTRY * PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (APIENTRY * PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
#endif
@@ -2038,6 +2120,20 @@ extern void APIENTRY glTagSampleBufferSGIX (void);
typedef void (APIENTRY * PFNGLTAGSAMPLEBUFFERSGIXPROC) (void);
#endif
#ifndef GL_SGIX_polynomial_ffd
#define GL_SGIX_polynomial_ffd 1
#ifdef GL_GLEXT_PROTOTYPES
extern void APIENTRY glDeformationMap3dSGIX (GLenum, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, const GLdouble *);
extern void APIENTRY glDeformationMap3fSGIX (GLenum, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, const GLfloat *);
extern void APIENTRY glDeformSGIX (GLbitfield);
extern void APIENTRY glLoadIdentityDeformationMapSGIX (GLbitfield);
#endif /* GL_GLEXT_PROTOTYPES */
typedef void (APIENTRY * PFNGLDEFORMATIONMAP3DSGIXPROC) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points);
typedef void (APIENTRY * PFNGLDEFORMATIONMAP3FSGIXPROC) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points);
typedef void (APIENTRY * PFNGLDEFORMSGIXPROC) (GLbitfield mask);
typedef void (APIENTRY * PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) (GLbitfield mask);
#endif
#ifndef GL_SGIX_reference_plane
#define GL_SGIX_reference_plane 1
#ifdef GL_GLEXT_PROTOTYPES
@@ -2306,6 +2402,32 @@ typedef void (APIENTRY * PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode)
#define GL_EXT_bgra 1
#endif
#ifndef GL_SGIX_async
#define GL_SGIX_async 1
#ifdef GL_GLEXT_PROTOTYPES
extern void APIENTRY glAsyncMarkerSGIX (GLuint);
extern GLint APIENTRY glFinishAsyncSGIX (GLuint *);
extern GLint APIENTRY glPollAsyncSGIX (GLuint *);
extern GLuint APIENTRY glGenAsyncMarkersSGIX (GLsizei);
extern void APIENTRY glDeleteAsyncMarkersSGIX (GLuint, GLsizei);
extern GLboolean APIENTRY glIsAsyncMarkerSGIX (GLuint);
#endif /* GL_GLEXT_PROTOTYPES */
typedef void (APIENTRY * PFNGLASYNCMARKERSGIXPROC) (GLuint marker);
typedef GLint (APIENTRY * PFNGLFINISHASYNCSGIXPROC) (GLuint *markerp);
typedef GLint (APIENTRY * PFNGLPOLLASYNCSGIXPROC) (GLuint *markerp);
typedef GLuint (APIENTRY * PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range);
typedef void (APIENTRY * PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range);
typedef GLboolean (APIENTRY * PFNGLISASYNCMARKERSGIXPROC) (GLuint marker);
#endif
#ifndef GL_SGIX_async_pixel
#define GL_SGIX_async_pixel 1
#endif
#ifndef GL_SGIX_async_histogram
#define GL_SGIX_async_histogram 1
#endif
#ifndef GL_INTEL_parallel_arrays
#define GL_INTEL_parallel_arrays 1
#ifdef GL_GLEXT_PROTOTYPES
@@ -2712,12 +2834,6 @@ extern void APIENTRY glCombinerOutputNV (GLenum, GLenum, GLenum, GLenum, GLenum,
extern void APIENTRY glFinalCombinerInputNV (GLenum, GLenum, GLenum, GLenum);
extern void APIENTRY glGetCombinerInputParameterfvNV (GLenum, GLenum, GLenum, GLenum, GLfloat *);
extern void APIENTRY glGetCombinerInputParameterivNV (GLenum, GLenum, GLenum, GLenum, GLint *);
#ifdef VMS
#define glGetCombinerOutputParameterfvNV glGetCombinerOutputParameterfvN
#define glGetCombinerOutputParameterivNV glGetCombinerOutputParameterivN
#define glGetFinalCombinerInputParameterfvNV glGetFinalCombinerInputParafvNV
#define glGetFinalCombinerInputParameterivNV glGetFinalCombinerInputParaivNV
#endif
extern void APIENTRY glGetCombinerOutputParameterfvNV (GLenum, GLenum, GLenum, GLfloat *);
extern void APIENTRY glGetCombinerOutputParameterivNV (GLenum, GLenum, GLenum, GLint *);
extern void APIENTRY glGetFinalCombinerInputParameterfvNV (GLenum, GLenum, GLfloat *);
@@ -2918,6 +3034,18 @@ extern void APIENTRY glTextureColorMaskSGIS (GLboolean, GLboolean, GLboolean, GL
typedef void (APIENTRY * PFNGLTEXTURECOLORMASKSGISPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
#endif
#ifndef GL_SGIX_igloo_interface
#define GL_SGIX_igloo_interface 1
#ifdef GL_GLEXT_PROTOTYPES
extern void APIENTRY glIglooInterfaceSGIX (GLenum, const GLvoid *);
#endif /* GL_GLEXT_PROTOTYPES */
typedef void (APIENTRY * PFNGLIGLOOINTERFACESGIXPROC) (GLenum pname, const GLvoid *params);
#endif
#ifndef GL_EXT_texture_env_dot3
#define GL_EXT_texture_env_dot3 1
#endif
#ifdef __cplusplus
}

View File

@@ -1,4 +1,4 @@
/* $Id: glu.h,v 1.22 2000/07/11 14:11:44 brianp Exp $ */
/* $Id: glu.h,v 1.22.4.1 2000/10/26 15:32:46 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -200,7 +200,7 @@ extern "C" {
#define GLU_NURBS_ERROR37 100287 /* duplicate point on pwlcurve */
/* GLU 1.3 and later */
#define GLU_NURBS_MODE ?
#define GLU_NURBS_MODE 100160
/* Errors */

View File

@@ -1,8 +1,8 @@
/* $Id: glx.h,v 1.22 2000/06/23 17:39:18 brianp Exp $ */
/* $Id: glx.h,v 1.22.4.1 2000/11/25 18:52:02 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
* Version: 3.4
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
@@ -158,7 +158,7 @@ extern "C" {
#define GLX_DAMAGED 0x8020
#define GLX_SAVED 0x8021
#define GLX_WINDOW 0x8022
#define GLX_PBUFFER 0x8033
#define GLX_PBUFFER 0x8023

View File

@@ -1,4 +1,4 @@
/* $Id: mesa_wgl.h,v 1.5 2000/05/22 16:21:27 brianp Exp $ */
/* $Id: mesa_wgl.h,v 1.5.4.1 2000/11/20 17:31:51 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -32,6 +32,7 @@
#define _mesa_wgl_h_
#include <windows.h>
#include <gl/gl.h>
#ifdef __cplusplus

880
include/GL/vms_x_fix.h Normal file
View File

@@ -0,0 +1,880 @@
/***************************************************************************
* *
* Repair definitions of Xlib when compileing with /name=(as_is) on VMS *
* *
* Author : Jouk Jansen (joukj@hrem.stm.tudelft.nl) *
* *
* Last revision : 22 August 2000 *
* *
***************************************************************************/
#ifndef VMS_X_FIX
#define VMS_X_FIX
#define _XRegisterFilterByType _XREGISTERFILTERBYTYPE
#define XAllocClassHint XALLOCCLASSHINT
#define XAllocColor XALLOCCOLOR
#define XAllocColorCells XALLOCCOLORCELLS
#define XAllocSizeHints XALLOCSIZEHINTS
#define XAllocWMHints XALLOCWMHINTS
#define XAutoRepeatOff XAUTOREPEATOFF
#define XAutoRepeatOn XAUTOREPEATON
#define XBaseFontNameListOfFontSet XBASEFONTNAMELISTOFFONTSET
#define XBell XBELL
#define XBitmapPad XBITMAPPAD
#define XChangeActivePointerGrab XCHANGEACTIVEPOINTERGRAB
#define XChangeGC XCHANGEGC
#define XChangeProperty XCHANGEPROPERTY
#define XChangeWindowAttributes XCHANGEWINDOWATTRIBUTES
#define XCheckIfEvent XCHECKIFEVENT
#define XCheckMaskEvent XCHECKMASKEVENT
#define XCheckTypedWindowEvent XCHECKTYPEDWINDOWEVENT
#define XCheckWindowEvent XCHECKWINDOWEVENT
#define XClearArea XCLEARAREA
#define XClearWindow XCLEARWINDOW
#define XClipBox XCLIPBOX
#define XCloseDisplay XCLOSEDISPLAY
#define XCloseIM XCLOSEIM
#define XConfigureWindow XCONFIGUREWINDOW
#define XConvertSelection XCONVERTSELECTION
#define XCopyArea XCOPYAREA
#define XCopyGC XCOPYGC
#define XCopyPlane XCOPYPLANE
#define XCreateBitmapFromData XCREATEBITMAPFROMDATA
#define XCreateColormap XCREATECOLORMAP
#define XCreateFontCursor XCREATEFONTCURSOR
#define XCreateFontSet XCREATEFONTSET
#define XCreateGC XCREATEGC
#define XCreateIC XCREATEIC
#define XCreateImage XCREATEIMAGE
#define XCreatePixmap XCREATEPIXMAP
#define XCreatePixmapCursor XCREATEPIXMAPCURSOR
#define XCreatePixmapFromBitmapData XCREATEPIXMAPFROMBITMAPDATA
#define XCreateRegion XCREATEREGION
#define XCreateSimpleWindow XCREATESIMPLEWINDOW
#define XCreateWindow XCREATEWINDOW
#define XDefaultScreenOfDisplay XDEFAULTSCREENOFDISPLAY
#define XDefineCursor XDEFINECURSOR
#define XDeleteProperty XDELETEPROPERTY
#define XDestroyIC XDESTROYIC
#define XDestroyRegion XDESTROYREGION
#define XDestroyWindow XDESTROYWINDOW
#define XDisplayName XDISPLAYNAME
#define XDisplayOfScreen XDISPLAYOFSCREEN
#define XDrawArc XDRAWARC
#define XDrawImageString XDRAWIMAGESTRING
#define XDrawImageString16 XDRAWIMAGESTRING16
#define XDrawLine XDRAWLINE
#define XDrawLines XDRAWLINES
#define XDrawPoint XDRAWPOINT
#define XDrawPoints XDRAWPOINTS
#define XDrawRectangle XDRAWRECTANGLE
#define XDrawSegments XDRAWSEGMENTS
#define XDrawString XDRAWSTRING
#define XDrawString16 XDRAWSTRING16
#define XEmptyRegion XEMPTYREGION
#define XEqualRegion XEQUALREGION
#define XEventsQueued XEVENTSQUEUED
#define XExtentsOfFontSet XEXTENTSOFFONTSET
#define XFillArc XFILLARC
#define XFillPolygon XFILLPOLYGON
#define XFillRectangle XFILLRECTANGLE
#define XFillRectangles XFILLRECTANGLES
#define XFilterEvent XFILTEREVENT
#define XFlush XFLUSH
#define XFontsOfFontSet XFONTSOFFONTSET
#define XFree XFREE
#define XFreeColormap XFREECOLORMAP
#define XFreeColors XFREECOLORS
#define XFreeCursor XFREECURSOR
#define XFreeFont XFREEFONT
#define XFreeFontInfo XFREEFONTINFO
#define XFreeFontNames XFREEFONTNAMES
#define XFreeFontSet XFREEFONTSET
#define XFreeGC XFREEGC
#define XFreeModifiermap XFREEMODIFIERMAP
#define XFreePixmap XFREEPIXMAP
#define XFreeStringList XFREESTRINGLIST
#define XGetAtomName XGETATOMNAME
#define XGetDefault XGETDEFAULT
#define XGetErrorDatabaseText XGETERRORDATABASETEXT
#define XGetErrorText XGETERRORTEXT
#define XGetFontProperty XGETFONTPROPERTY
#define XGetGCValues XGETGCVALUES
#define XGetGeometry XGETGEOMETRY
#define XGetICValues XGETICVALUES
#define XGetIMValues XGETIMVALUES
#define XGetImage XGETIMAGE
#define XGetKeyboardControl XGETKEYBOARDCONTROL
#define XGetModifierMapping XGETMODIFIERMAPPING
#define XGetMotionEvents XGETMOTIONEVENTS
#define XGetNormalHints XGETNORMALHINTS
#define XGetSelectionOwner XGETSELECTIONOWNER
#define XGetSubImage XGETSUBIMAGE
#define XGetVisualInfo XGETVISUALINFO
#define XGetWMColormapWindows XGETWMCOLORMAPWINDOWS
#define XGetWMHints XGETWMHINTS
#define XGetWMName XGETWMNAME
#define XGetWMNormalHints XGETWMNORMALHINTS
#define XGetWindowAttributes XGETWINDOWATTRIBUTES
#define XGetWindowProperty XGETWINDOWPROPERTY
#define XGrabKeyboard XGRABKEYBOARD
#define XGrabPointer XGRABPOINTER
#define XGrabServer XGRABSERVER
#define XHeightOfScreen XHEIGHTOFSCREEN
#define XIfEvent XIFEVENT
#define XInternAtom XINTERNATOM
#define XIntersectRegion XINTERSECTREGION
#define XKeycodeToKeysym XKEYCODETOKEYSYM
#define XKeysymToKeycode XKEYSYMTOKEYCODE
#define XKeysymToString XKEYSYMTOSTRING
#define XListFonts XLISTFONTS
#define XListFontsWithInfo XLISTFONTSWITHINFO
#define XListPixmapFormats XLISTPIXMAPFORMATS
#define XListProperties XLISTPROPERTIES
#define XLoadQueryFont XLOADQUERYFONT
#define XLookupString XLOOKUPSTRING
#define XLowerWindow XLOWERWINDOW
#define XMapRaised XMAPRAISED
#define XMapWindow XMAPWINDOW
#define XMatchVisualInfo XMATCHVISUALINFO
#define XMoveResizeWindow XMOVERESIZEWINDOW
#define XMoveWindow XMOVEWINDOW
#define XNextEvent XNEXTEVENT
#define XOffsetRegion XOFFSETREGION
#define XOpenDisplay XOPENDISPLAY
#define XOpenIM XOPENIM
#define XParseColor XPARSECOLOR
#define XParseGeometry XPARSEGEOMETRY
#define XPeekEvent XPEEKEVENT
#define XPending XPENDING
#define XPointInRegion XPOINTINREGION
#define XPolygonRegion XPOLYGONREGION
#define XPutBackEvent XPUTBACKEVENT
#define XPutImage XPUTIMAGE
#define XQueryColor XQUERYCOLOR
#define XQueryColors XQUERYCOLORS
#define XQueryExtension XQUERYEXTENSION
#define XQueryPointer XQUERYPOINTER
#define XQueryTree XQUERYTREE
#define XRaiseWindow XRAISEWINDOW
#define XReconfigureWMWindow XRECONFIGUREWMWINDOW
#define XRectInRegion XRECTINREGION
#define XRefreshKeyboardMapping XREFRESHKEYBOARDMAPPING
#define XReparentWindow XREPARENTWINDOW
#define XResizeWindow XRESIZEWINDOW
#define XRestackWindows XRESTACKWINDOWS
#define XRootWindowOfScreen XROOTWINDOWOFSCREEN
#define XScreenNumberOfScreen XSCREENNUMBEROFSCREEN
#define XSelectAsyncEvent XSELECTASYNCEVENT
#define XSelectAsyncInput XSELECTASYNCINPUT
#define XSelectInput XSELECTINPUT
#define XSendEvent XSENDEVENT
#define XServerVendor XSERVERVENDOR
#define XSetBackground XSETBACKGROUND
#define XSetClassHint XSETCLASSHINT
#define XSetClipMask XSETCLIPMASK
#define XSetClipOrigin XSETCLIPORIGIN
#define XSetClipRectangles XSETCLIPRECTANGLES
#define XSetCloseDownMode XSETCLOSEDOWNMODE
#define XSetCommand XSETCOMMAND
#define XSetDashes XSETDASHES
#define XSetErrorHandler XSETERRORHANDLER
#define XSetFillStyle XSETFILLSTYLE
#define XSetFont XSETFONT
#define XSetForeground XSETFOREGROUND
#define XSetFunction XSETFUNCTION
#define XSetGraphicsExposures XSETGRAPHICSEXPOSURES
#define XSetICFocus XSETICFOCUS
#define XSetICValues XSETICVALUES
#define XSetIOErrorHandler XSETIOERRORHANDLER
#define XSetInputFocus XSETINPUTFOCUS
#define XSetLineAttributes XSETLINEATTRIBUTES
#define XSetLocaleModifiers XSETLOCALEMODIFIERS
#define XSetNormalHints XSETNORMALHINTS
#define XSetRegion XSETREGION
#define XSetSelectionOwner XSETSELECTIONOWNER
#define XSetStipple XSETSTIPPLE
#define XSetSubwindowMode XSETSUBWINDOWMODE
#define XSetTSOrigin XSETTSORIGIN
#define XSetTile XSETTILE
#define XSetTransientForHint XSETTRANSIENTFORHINT
#define XSetWMColormapWindows XSETWMCOLORMAPWINDOWS
#define XSetWMHints XSETWMHINTS
#define XSetWMIconName XSETWMICONNAME
#define XSetWMName XSETWMNAME
#define XSetWMNormalHints XSETWMNORMALHINTS
#define XSetWMProperties XSETWMPROPERTIES
#define XSetWMProtocols XSETWMPROTOCOLS
#define XSetWindowBackground XSETWINDOWBACKGROUND
#define XSetWindowBackgroundPixmap XSETWINDOWBACKGROUNDPIXMAP
#define XSetWindowColormap XSETWINDOWCOLORMAP
#define XShapeCombineMask XSHAPECOMBINEMASK
#define XShapeCombineRectangles XSHAPECOMBINERECTANGLES
#define XShapeGetRectangles XSHAPEGETRECTANGLES
#define XShrinkRegion XSHRINKREGION
#define XStoreColor XSTORECOLOR
#define XStoreColors XSTORECOLORS
#define XStoreName XSTORENAME
#define XStringToKeysym XSTRINGTOKEYSYM
#define XSubtractRegion XSUBTRACTREGION
#define XSupportsLocale XSUPPORTSLOCALE
#define XSync XSYNC
#define XSynchronize XSYNCHRONIZE
#define XTextExtents XTEXTEXTENTS
#define XTextExtents16 XTEXTEXTENTS16
#define XTextWidth XTEXTWIDTH
#define XTextWidth16 XTEXTWIDTH16
#define XTranslateCoordinates XTRANSLATECOORDINATES
#define XUndefineCursor XUNDEFINECURSOR
#define XUngrabKeyboard XUNGRABKEYBOARD
#define XUngrabPointer XUNGRABPOINTER
#define XUngrabServer XUNGRABSERVER
#define XUnionRectWithRegion XUNIONRECTWITHREGION
#define XUnionRegion XUNIONREGION
#define XUnmapWindow XUNMAPWINDOW
#define _XUnregisterFilter _XUNREGISTERFILTER
#define XUnsetICFocus XUNSETICFOCUS
#define XVaCreateNestedList XVACREATENESTEDLIST
#define XVisualIDFromVisual XVISUALIDFROMVISUAL
#define XWidthOfScreen XWIDTHOFSCREEN
#define XWindowEvent XWINDOWEVENT
#define XWithdrawWindow XWITHDRAWWINDOW
#define XXorRegion XXORREGION
#define XmAddProtocolCallback XMADDPROTOCOLCALLBACK
#define XmAddProtocols XMADDPROTOCOLS
#define XmChangeColor XMCHANGECOLOR
#define XmClipboardCopy XMCLIPBOARDCOPY
#define XmClipboardEndCopy XMCLIPBOARDENDCOPY
#define XmClipboardInquireLength XMCLIPBOARDINQUIRELENGTH
#define XmClipboardLock XMCLIPBOARDLOCK
#define XmClipboardRetrieve XMCLIPBOARDRETRIEVE
#define XmClipboardStartCopy XMCLIPBOARDSTARTCOPY
#define XmClipboardUnlock XMCLIPBOARDUNLOCK
#define XmCreateArrowButton XMCREATEARROWBUTTON
#define XmCreateArrowButtonGadget XMCREATEARROWBUTTONGADGET
#define XmCreateCascadeButton XMCREATECASCADEBUTTON
#define XmCreateDialogShell XMCREATEDIALOGSHELL
#define XmCreateDragIcon XMCREATEDRAGICON
#define XmCreateDrawingArea XMCREATEDRAWINGAREA
#define XmCreateDrawnButton XMCREATEDRAWNBUTTON
#define XmCreateFileSelectionBox XMCREATEFILESELECTIONBOX
#define XmCreateFileSelectionDialog XMCREATEFILESELECTIONDIALOG
#define XmCreateForm XMCREATEFORM
#define XmCreateFormDialog XMCREATEFORMDIALOG
#define XmCreateFrame XMCREATEFRAME
#define XmCreateInformationDialog XMCREATEINFORMATIONDIALOG
#define XmCreateLabelGadget XMCREATELABELGADGET
#define XmCreateMainWindow XMCREATEMAINWINDOW
#define XmCreateMenuBar XMCREATEMENUBAR
#define XmCreateMessageBox XMCREATEMESSAGEBOX
#define XmCreateMessageDialog XMCREATEMESSAGEDIALOG
#define XmCreateOptionMenu XMCREATEOPTIONMENU
#define XmCreatePanedWindow XMCREATEPANEDWINDOW
#define XmCreatePopupMenu XMCREATEPOPUPMENU
#define XmCreatePromptDialog XMCREATEPROMPTDIALOG
#define XmCreatePulldownMenu XMCREATEPULLDOWNMENU
#define XmCreatePushButton XMCREATEPUSHBUTTON
#define XmCreatePushButtonGadget XMCREATEPUSHBUTTONGADGET
#define XmCreateQuestionDialog XMCREATEQUESTIONDIALOG
#define XmCreateRadioBox XMCREATERADIOBOX
#define XmCreateRowColumn XMCREATEROWCOLUMN
#define XmCreateScale XMCREATESCALE
#define XmCreateScrollBar XMCREATESCROLLBAR
#define XmCreateScrolledList XMCREATESCROLLEDLIST
#define XmCreateScrolledText XMCREATESCROLLEDTEXT
#define XmCreateScrolledWindow XMCREATESCROLLEDWINDOW
#define XmCreateSelectionDialog XMCREATESELECTIONDIALOG
#define XmCreateSeparator XMCREATESEPARATOR
#define XmCreateSeparatorGadget XMCREATESEPARATORGADGET
#define XmCreateTemplateDialog XMCREATETEMPLATEDIALOG
#define XmCreateText XMCREATETEXT
#define XmCreateTextField XMCREATETEXTFIELD
#define XmCreateToggleButton XMCREATETOGGLEBUTTON
#define XmCreateToggleButtonGadget XMCREATETOGGLEBUTTONGADGET
#define XmDragStart XMDRAGSTART
#define XmDropSiteRegister XMDROPSITEREGISTER
#define XmDropSiteUnregister XMDROPSITEUNREGISTER
#define XmDropSiteUpdate XMDROPSITEUPDATE
#define XmDropTransferStart XMDROPTRANSFERSTART
#define XmFileSelectionBoxGetChild XMFILESELECTIONBOXGETCHILD
#define XmFileSelectionDoSearch XMFILESELECTIONDOSEARCH
#define XmFontListAppendEntry XMFONTLISTAPPENDENTRY
#define XmFontListCopy XMFONTLISTCOPY
#define XmFontListCreate XMFONTLISTCREATE
#define XmFontListEntryCreate XMFONTLISTENTRYCREATE
#define XmFontListEntryFree XMFONTLISTENTRYFREE
#define XmFontListEntryGetFont XMFONTLISTENTRYGETFONT
#define XmFontListEntryGetTag XMFONTLISTENTRYGETTAG
#define XmFontListEntryLoad XMFONTLISTENTRYLOAD
#define XmFontListFree XMFONTLISTFREE
#define XmFontListFreeFontContext XMFONTLISTFREEFONTCONTEXT
#define XmFontListGetNextFont XMFONTLISTGETNEXTFONT
#define XmFontListInitFontContext XMFONTLISTINITFONTCONTEXT
#define XmFontListNextEntry XMFONTLISTNEXTENTRY
#define XmGetColors XMGETCOLORS
#define XmGetFocusWidget XMGETFOCUSWIDGET
#define XmGetMenuCursor XMGETMENUCURSOR
#define XmGetPixmapByDepth XMGETPIXMAPBYDEPTH
#define XmGetTearOffControl XMGETTEAROFFCONTROL
#define XmGetXmDisplay XMGETXMDISPLAY
#define XmImMbLookupString XMIMMBLOOKUPSTRING
#define XmImRegister XMIMREGISTER
#define XmImSetFocusValues XMIMSETFOCUSVALUES
#define XmImSetValues XMIMSETVALUES
#define XmImUnregister XMIMUNREGISTER
#define XmImUnsetFocus XMIMUNSETFOCUS
#define XmInternAtom XMINTERNATOM
#define XmIsMotifWMRunning XMISMOTIFWMRUNNING
#define XmListAddItem XMLISTADDITEM
#define XmListAddItemUnselected XMLISTADDITEMUNSELECTED
#define XmListAddItemsUnselected XMLISTADDITEMSUNSELECTED
#define XmListDeleteAllItems XMLISTDELETEALLITEMS
#define XmListDeleteItemsPos XMLISTDELETEITEMSPOS
#define XmListDeletePos XMLISTDELETEPOS
#define XmListDeselectAllItems XMLISTDESELECTALLITEMS
#define XmListDeselectPos XMLISTDESELECTPOS
#define XmListGetKbdItemPos XMLISTGETKBDITEMPOS
#define XmListGetMatchPos XMLISTGETMATCHPOS
#define XmListGetSelectedPos XMLISTGETSELECTEDPOS
#define XmListPosSelected XMLISTPOSSELECTED
#define XmListSelectItem XMLISTSELECTITEM
#define XmListSelectPos XMLISTSELECTPOS
#define XmListSetBottomPos XMLISTSETBOTTOMPOS
#define XmListSetItem XMLISTSETITEM
#define XmListSetKbdItemPos XMLISTSETKBDITEMPOS
#define XmListSetPos XMLISTSETPOS
#define XmMainWindowSetAreas XMMAINWINDOWSETAREAS
#define XmMenuPosition XMMENUPOSITION
#define XmMessageBoxGetChild XMMESSAGEBOXGETCHILD
#define XmOptionButtonGadget XMOPTIONBUTTONGADGET
#define XmOptionLabelGadget XMOPTIONLABELGADGET
#define XmProcessTraversal XMPROCESSTRAVERSAL
#define XmQmotif XMQMOTIF
#define XmRemoveProtocolCallback XMREMOVEPROTOCOLCALLBACK
#define XmRepTypeGetId XMREPTYPEGETID
#define XmRepTypeGetRecord XMREPTYPEGETRECORD
#define XmRepTypeRegister XMREPTYPEREGISTER
#define XmRepTypeValidValue XMREPTYPEVALIDVALUE
#define XmScrollBarSetValues XMSCROLLBARSETVALUES
#define XmScrolledWindowSetAreas XMSCROLLEDWINDOWSETAREAS
#define XmSelectionBoxGetChild XMSELECTIONBOXGETCHILD
#define XmStringByteCompare XMSTRINGBYTECOMPARE
#define XmStringCompare XMSTRINGCOMPARE
#define XmStringConcat XMSTRINGCONCAT
#define XmStringCopy XMSTRINGCOPY
#define XmStringCreate XMSTRINGCREATE
#define XmStringCreateLocalized XMSTRINGCREATELOCALIZED
#define XmStringCreateLtoR XMSTRINGCREATELTOR
#define XmStringCreateSimple XMSTRINGCREATESIMPLE
#define XmStringDraw XMSTRINGDRAW
#define XmStringDrawUnderline XMSTRINGDRAWUNDERLINE
#define XmStringExtent XMSTRINGEXTENT
#define XmStringFree XMSTRINGFREE
#define XmStringFreeContext XMSTRINGFREECONTEXT
#define XmStringGetLtoR XMSTRINGGETLTOR
#define XmStringGetNextComponent XMSTRINGGETNEXTCOMPONENT
#define XmStringGetNextSegment XMSTRINGGETNEXTSEGMENT
#define XmStringInitContext XMSTRINGINITCONTEXT
#define XmStringLength XMSTRINGLENGTH
#define XmStringLtoRCreate XMSTRINGLTORCREATE
#define XmStringNConcat XMSTRINGNCONCAT
#define XmStringSegmentCreate XMSTRINGSEGMENTCREATE
#define XmStringWidth XMSTRINGWIDTH
#define XmTextClearSelection XMTEXTCLEARSELECTION
#define XmTextFieldGetEditable XMTEXTFIELDGETEDITABLE
#define XmTextFieldGetInsertionPosition XMTEXTFIELDGETINSERTIONPOSITION
#define XmTextFieldGetLastPosition XMTEXTFIELDGETLASTPOSITION
#define XmTextFieldGetSelection XMTEXTFIELDGETSELECTION
#define XmTextFieldGetString XMTEXTFIELDGETSTRING
#define XmTextFieldInsert XMTEXTFIELDINSERT
#define XmTextFieldRemove XMTEXTFIELDREMOVE
#define XmTextFieldSetSelection XMTEXTFIELDSETSELECTION
#define XmTextFieldSetString XMTEXTFIELDSETSTRING
#define XmTextGetCursorPosition XMTEXTGETCURSORPOSITION
#define XmTextGetInsertionPosition XMTEXTGETINSERTIONPOSITION
#define XmTextGetLastPosition XMTEXTGETLASTPOSITION
#define XmTextGetMaxLength XMTEXTGETMAXLENGTH
#define XmTextGetSelection XMTEXTGETSELECTION
#define XmTextGetSelectionPosition XMTEXTGETSELECTIONPOSITION
#define XmTextGetString XMTEXTGETSTRING
#define XmTextInsert XMTEXTINSERT
#define XmTextRemove XMTEXTREMOVE
#define XmTextReplace XMTEXTREPLACE
#define XmTextSetCursorPosition XMTEXTSETCURSORPOSITION
#define XmTextSetHighlight XMTEXTSETHIGHLIGHT
#define XmTextSetInsertionPosition XMTEXTSETINSERTIONPOSITION
#define XmTextSetSelection XMTEXTSETSELECTION
#define XmTextSetString XMTEXTSETSTRING
#define XmToggleButtonGadgetGetState XMTOGGLEBUTTONGADGETGETSTATE
#define XmToggleButtonGadgetSetState XMTOGGLEBUTTONGADGETSETSTATE
#define XmToggleButtonGetState XMTOGGLEBUTTONGETSTATE
#define XmToggleButtonSetState XMTOGGLEBUTTONSETSTATE
#define XmUpdateDisplay XMUPDATEDISPLAY
#define XmVaCreateSimpleRadioBox XMVACREATESIMPLERADIOBOX
#define XmbDrawString XMBDRAWSTRING
#define XmbLookupString XMBLOOKUPSTRING
#define XmbResetIC XMBRESETIC
#define XmbSetWMProperties XMBSETWMPROPERTIES
#define XmbTextEscapement XMBTEXTESCAPEMENT
#define XmbTextExtents XMBTEXTEXTENTS
#define XmbTextListToTextProperty XMBTEXTLISTTOTEXTPROPERTY
#define XmbTextPropertyToTextList XMBTEXTPROPERTYTOTEXTLIST
#define XmuClientWindow XMUCLIENTWINDOW
#define XmuPrintDefaultErrorMessage XMUPRINTDEFAULTERRORMESSAGE
#define XrmGetDatabase XRMGETDATABASE
#define XrmGetResource XRMGETRESOURCE
#define XrmPutStringResource XRMPUTSTRINGRESOURCE
#define XrmQuarkToString XRMQUARKTOSTRING
#define XrmStringToQuark XRMSTRINGTOQUARK
#define XtAddCallback XTADDCALLBACK
#define XtAddCallbacks XTADDCALLBACKS
#define XtAddEventHandler XTADDEVENTHANDLER
#define XtAddGrab XTADDGRAB
#define XtAllocateGC XTALLOCATEGC
#define XtAppAddActions XTAPPADDACTIONS
#define XtAppAddInput XTAPPADDINPUT
#define XtAppAddTimeOut XTAPPADDTIMEOUT
#define XtAppCreateShell XTAPPCREATESHELL
#define XtAppInitialize XTAPPINITIALIZE
#define XtAppNextEvent XTAPPNEXTEVENT
#define XtAppPeekEvent XTAPPPEEKEVENT
#define XtAppPending XTAPPPENDING
#define XtAppProcessEvent XTAPPPROCESSEVENT
#define XtAppSetErrorHandler XTAPPSETERRORHANDLER
#define XtAppSetFallbackResources XTAPPSETFALLBACKRESOURCES
#define XtAppSetWarningHandler XTAPPSETWARNINGHANDLER
#define XtAppSetWarningMsgHandler XTAPPSETWARNINGMSGHANDLER
#define XtAppWarning XTAPPWARNING
#define XtCallActionProc XTCALLACTIONPROC
#define XtCallCallbackList XTCALLCALLBACKLIST
#define XtCallCallbacks XTCALLCALLBACKS
#define XtConfigureWidget XTCONFIGUREWIDGET
#define XtConvertAndStore XTCONVERTANDSTORE
#define XtCreateApplicationContext XTCREATEAPPLICATIONCONTEXT
#define XtCreateManagedWidget XTCREATEMANAGEDWIDGET
#define XtCreatePopupShell XTCREATEPOPUPSHELL
#define XtCreateWidget XTCREATEWIDGET
#define XtDatabase XTDATABASE
#define XtDestroyWidget XTDESTROYWIDGET
#define XtDisownSelection XTDISOWNSELECTION
#define XtDispatchEvent XTDISPATCHEVENT
#define XtDisplayOfObject XTDISPLAYOFOBJECT
#define XtDisplayStringConvWarning XTDISPLAYSTRINGCONVWARNING
#define XtDisplayToApplicationContext XTDISPLAYTOAPPLICATIONCONTEXT
#define XtAppAddWorkProc XTAPPADDWORKPROC
#define XtRemoveWorkProc XTREMOVEWORKPROC
#define XtFree XTFREE
#define XtGetActionKeysym XTGETACTIONKEYSYM
#define XtGetActionList XTGETACTIONLIST
#define XtGetApplicationNameAndClass XTGETAPPLICATIONNAMEANDCLASS
#define XtGetApplicationResources XTGETAPPLICATIONRESOURCES
#define XtGetGC XTGETGC
#define XtGetMultiClickTime XTGETMULTICLICKTIME
#define XtGetSelectionValue XTGETSELECTIONVALUE
#define XtGetSelectionValues XTGETSELECTIONVALUES
#define XtGetSubresources XTGETSUBRESOURCES
#define XtGetValues XTGETVALUES
#define XtGrabKeyboard XTGRABKEYBOARD
#define XtGrabPointer XTGRABPOINTER
#define XtHasCallbacks XTHASCALLBACKS
#define XtInitializeWidgetClass XTINITIALIZEWIDGETCLASS
#define XtInsertEventHandler XTINSERTEVENTHANDLER
#define XtIsManaged XTISMANAGED
#define XtIsObject XTISOBJECT
#define XtIsSensitive XTISSENSITIVE
#define XtIsSubclass XTISSUBCLASS
#define XtLastTimestampProcessed XTLASTTIMESTAMPPROCESSED
#define XtMakeGeometryRequest XTMAKEGEOMETRYREQUEST
#define XtMakeResizeRequest XTMAKERESIZEREQUEST
#define XtMalloc XTMALLOC
#define XtManageChild XTMANAGECHILD
#define XtManageChildren XTMANAGECHILDREN
#define XtMergeArgLists XTMERGEARGLISTS
#define XtMoveWidget XTMOVEWIDGET
#define XtName XTNAME
#define XtNameToWidget XTNAMETOWIDGET
#define XtOpenDisplay XTOPENDISPLAY
#define XtOverrideTranslations XTOVERRIDETRANSLATIONS
#define XtOwnSelection XTOWNSELECTION
#define XtParseTranslationTable XTPARSETRANSLATIONTABLE
#define XtPopdown XTPOPDOWN
#define XtPopup XTPOPUP
#define XtQueryGeometry XTQUERYGEOMETRY
#define XtRealizeWidget XTREALIZEWIDGET
#define XtRealloc XTREALLOC
#define XtReleaseGC XTRELEASEGC
#define XtRemoveAllCallbacks XTREMOVEALLCALLBACKS
#define XtRemoveCallback XTREMOVECALLBACK
#define XtRemoveEventHandler XTREMOVEEVENTHANDLER
#define XtRemoveGrab XTREMOVEGRAB
#define XtRemoveInput XTREMOVEINPUT
#define XtRemoveTimeOut XTREMOVETIMEOUT
#define XtResizeWidget XTRESIZEWIDGET
#define XtResolvePathname XTRESOLVEPATHNAME
#define XtSetKeyboardFocus XTSETKEYBOARDFOCUS
#define XtSetMappedWhenManaged XTSETMAPPEDWHENMANAGED
#define XtSetSensitive XTSETSENSITIVE
#define XtSetTypeConverter XTSETTYPECONVERTER
#define XtSetValues XTSETVALUES
#define XtShellStrings XTSHELLSTRINGS
#define XtStrings XTSTRINGS
#define XtToolkitInitialize XTTOOLKITINITIALIZE
#define XtTranslateCoords XTTRANSLATECOORDS
#define XtTranslateKeycode XTTRANSLATEKEYCODE
#define XtUngrabKeyboard XTUNGRABKEYBOARD
#define XtUngrabPointer XTUNGRABPOINTER
#define XtUnmanageChild XTUNMANAGECHILD
#define XtUnmanageChildren XTUNMANAGECHILDREN
#define XtUnrealizeWidget XTUNREALIZEWIDGET
#define XtVaCreateManagedWidget XTVACREATEMANAGEDWIDGET
#define XtVaCreateWidget XTVACREATEWIDGET
#define XtVaGetValues XTVAGETVALUES
#define XtVaSetValues XTVASETVALUES
#define XtWarning XTWARNING
#define XtWidgetToApplicationContext XTWIDGETTOAPPLICATIONCONTEXT
#define XtWindowOfObject XTWINDOWOFOBJECT
#define XtWindowToWidget XTWINDOWTOWIDGET
#define XwcDrawString XWCDRAWSTRING
#define XwcFreeStringList XWCFREESTRINGLIST
#define XwcTextEscapement XWCTEXTESCAPEMENT
#define XwcTextExtents XWCTEXTEXTENTS
#define XwcTextListToTextProperty XWCTEXTLISTTOTEXTPROPERTY
#define XwcTextPropertyToTextList XWCTEXTPROPERTYTOTEXTLIST
#define _XmBottomShadowColorDefault _XMBOTTOMSHADOWCOLORDEFAULT
#define _XmClearBorder _XMCLEARBORDER
#define _XmConfigureObject _XMCONFIGUREOBJECT
#define _XmDestroyParentCallback _XMDESTROYPARENTCALLBACK
#define _XmDrawArrow _XMDRAWARROW
#define _XmDrawShadows _XMDRAWSHADOWS
#define _XmFontListGetDefaultFont _XMFONTLISTGETDEFAULTFONT
#define _XmFromHorizontalPixels _XMFROMHORIZONTALPIXELS
#define _XmFromVerticalPixels _XMFROMVERTICALPIXELS
#define _XmGetClassExtensionPtr _XMGETCLASSEXTENSIONPTR
#define _XmGetDefaultFontList _XMGETDEFAULTFONTLIST
#define _XmGetTextualDragIcon _XMGETTEXTUALDRAGICON
#define _XmGetWidgetExtData _XMGETWIDGETEXTDATA
#define _XmGrabKeyboard _XMGRABKEYBOARD
#define _XmGrabPointer _XMGRABPOINTER
#define _XmInheritClass _XMINHERITCLASS
#define _XmInputInGadget _XMINPUTINGADGET
#define _XmMakeGeometryRequest _XMMAKEGEOMETRYREQUEST
#define _XmMenuPopDown _XMMENUPOPDOWN
#define _XmMoveObject _XMMOVEOBJECT
#define _XmNavigChangeManaged _XMNAVIGCHANGEMANAGED
#define _XmOSBuildFileList _XMOSBUILDFILELIST
#define _XmOSFileCompare _XMOSFILECOMPARE
#define _XmOSFindPatternPart _XMOSFINDPATTERNPART
#define _XmOSQualifyFileSpec _XMOSQUALIFYFILESPEC
#define _XmPostPopupMenu _XMPOSTPOPUPMENU
#define _XmPrimitiveEnter _XMPRIMITIVEENTER
#define _XmPrimitiveLeave _XMPRIMITIVELEAVE
#define _XmRedisplayGadgets _XMREDISPLAYGADGETS
#define _XmShellIsExclusive _XMSHELLISEXCLUSIVE
#define _XmStringDraw _XMSTRINGDRAW
#define _XmStringGetTextConcat _XMSTRINGGETTEXTCONCAT
#define _XmStrings _XMSTRINGS
#define _XmToHorizontalPixels _XMTOHORIZONTALPIXELS
#define _XmToVerticalPixels _XMTOVERTICALPIXELS
#define _XmTopShadowColorDefault _XMTOPSHADOWCOLORDEFAULT
#define _Xm_fastPtr _XM_FASTPTR
#define _XtCheckSubclassFlag _XTCHECKSUBCLASSFLAG
#define _XtInherit _XTINHERIT
#define _XtInheritTranslations _XTINHERITTRANSLATIONS
#define applicationShellWidgetClass APPLICATIONSHELLWIDGETCLASS
#define compositeWidgetClass COMPOSITEWIDGETCLASS
#define overrideShellWidgetClass OVERRIDESHELLWIDGETCLASS
#define shellWidgetClass SHELLWIDGETCLASS
#define topLevelShellClassRec TOPLEVELSHELLCLASSREC
#define topLevelShellWidgetClass TOPLEVELSHELLWIDGETCLASS
#define transientShellWidgetClass TRANSIENTSHELLWIDGETCLASS
#define vendorShellClassRec VENDORSHELLCLASSREC
#define vendorShellWidgetClass VENDORSHELLWIDGETCLASS
#define wmShellWidgetClass WMSHELLWIDGETCLASS
#define xmArrowButtonWidgetClass XMARROWBUTTONWIDGETCLASS
#define xmCascadeButtonClassRec XMCASCADEBUTTONCLASSREC
#define xmCascadeButtonGadgetClass XMCASCADEBUTTONGADGETCLASS
#define xmCascadeButtonWidgetClass XMCASCADEBUTTONWIDGETCLASS
#define xmDialogShellWidgetClass XMDIALOGSHELLWIDGETCLASS
#define xmDrawingAreaWidgetClass XMDRAWINGAREAWIDGETCLASS
#define xmDrawnButtonWidgetClass XMDRAWNBUTTONWIDGETCLASS
#define xmFileSelectionBoxWidgetClass XMFILESELECTIONBOXWIDGETCLASS
#define xmFormWidgetClass XMFORMWIDGETCLASS
#define xmFrameWidgetClass XMFRAMEWIDGETCLASS
#define xmGadgetClass XMGADGETCLASS
#define xmLabelGadgetClass XMLABELGADGETCLASS
#define xmLabelWidgetClass XMLABELWIDGETCLASS
#define xmListWidgetClass XMLISTWIDGETCLASS
#define xmMainWindowWidgetClass XMMAINWINDOWWIDGETCLASS
#define xmManagerClassRec XMMANAGERCLASSREC
#define xmManagerWidgetClass XMMANAGERWIDGETCLASS
#define xmMenuShellWidgetClass XMMENUSHELLWIDGETCLASS
#define xmMessageBoxWidgetClass XMMESSAGEBOXWIDGETCLASS
#define xmPrimitiveClassRec XMPRIMITIVECLASSREC
#define xmPrimitiveWidgetClass XMPRIMITIVEWIDGETCLASS
#define xmPushButtonClassRec XMPUSHBUTTONCLASSREC
#define xmPushButtonGadgetClass XMPUSHBUTTONGADGETCLASS
#define xmPushButtonWidgetClass XMPUSHBUTTONWIDGETCLASS
#define xmRowColumnWidgetClass XMROWCOLUMNWIDGETCLASS
#define xmSashWidgetClass XMSASHWIDGETCLASS
#define xmScrollBarWidgetClass XMSCROLLBARWIDGETCLASS
#define xmScrolledWindowClassRec XMSCROLLEDWINDOWCLASSREC
#define xmScrolledWindowWidgetClass XMSCROLLEDWINDOWWIDGETCLASS
#define xmSeparatorGadgetClass XMSEPARATORGADGETCLASS
#define xmSeparatorWidgetClass XMSEPARATORWIDGETCLASS
#define xmTextFieldWidgetClass XMTEXTFIELDWIDGETCLASS
#define xmTextWidgetClass XMTEXTWIDGETCLASS
#define xmToggleButtonGadgetClass XMTOGGLEBUTTONGADGETCLASS
#define xmToggleButtonWidgetClass XMTOGGLEBUTTONWIDGETCLASS
#define XtRegisterDrawable _XTREGISTERWINDOW
#define XtUnregisterDrawable _XTUNREGISTERWINDOW
#define XQueryFont XQUERYFONT
#define XSetPlaneMask XSETPLANEMASK
#define XChangeKeyboardControl XCHANGEKEYBOARDCONTROL
#define XDestroySubwindows XDESTROYSUBWINDOWS
#define XFreeDeviceList XFREEDEVICELIST
#define XFreeDeviceState XFREEDEVICESTATE
#define XGetExtensionVersion XGETEXTENSIONVERSION
#define XGetRGBColormaps XGETRGBCOLORMAPS
#define XIconifyWindow XICONIFYWINDOW
#define XInstallColormap XINSTALLCOLORMAP
#define XListInputDevices XLISTINPUTDEVICES
#define XLookupKeysym XLOOKUPKEYSYM
#define XOpenDevice XOPENDEVICE
#define XQueryDeviceState XQUERYDEVICESTATE
#define XSelectExtensionEvent XSELECTEXTENSIONEVENT
#define XWarpPointer XWARPPOINTER
#define XmuLookupStandardColormap XMULOOKUPSTANDARDCOLORMAP
#define XAllocNamedColor XALLOCNAMEDCOLOR
#define XBlackPixelOfScreen XBLACKPIXELOFSCREEN
#define XDefaultColormap XDEFAULTCOLORMAP
#define XDefaultColormapOfScreen XDEFAULTCOLORMAPOFSCREEN
#define XDefaultDepth XDEFAULTDEPTH
#define XDefaultScreen XDEFAULTSCREEN
#define XDefaultVisual XDEFAULTVISUAL
#define XSetIconName XSETICONNAME
#define XtInitialize XTINITIALIZE
#define XtMainLoop XTMAINLOOP
#define DtSaverGetWindows DTSAVERGETWINDOWS
#define XAddHosts XADDHOSTS
#define XDisableAccessControl XDISABLEACCESSCONTROL
#define XEnableAccessControl XENABLEACCESSCONTROL
#define XFillArcs XFILLARCS
#define XForceScreenSaver XFORCESCREENSAVER
#define XGetScreenSaver XGETSCREENSAVER
#define XListHosts XLISTHOSTS
#define XReadBitmapFile XREADBITMAPFILE
#define XRemoveHosts XREMOVEHOSTS
#define XResetScreenSaver XRESETSCREENSAVER
#define XResourceManagerString XRESOURCEMANAGERSTRING
#define XSetScreenSaver XSETSCREENSAVER
#define XStringListToTextProperty XSTRINGLISTTOTEXTPROPERTY
#define XrmDestroyDatabase XRMDESTROYDATABASE
#define XrmGetFileDatabase XRMGETFILEDATABASE
#define XrmGetStringDatabase XRMGETSTRINGDATABASE
#define XrmInitialize XRMINITIALIZE
#define XrmMergeDatabases XRMMERGEDATABASES
#define XrmParseCommand XRMPARSECOMMAND
#define XrmPutLineResource XRMPUTLINERESOURCE
#define XrmQPutStringResource XRMQPUTSTRINGRESOURCE
#define XrmStringToBindingQuarkList XRMSTRINGTOBINDINGQUARKLIST
#define XrmStringToQuark XRMSTRINGTOQUARK
#define XmCreateLabel XMCREATELABEL
#ifdef __cplusplus
extern "C" {
#endif
extern void XtFree(char*);
#ifdef __cplusplus
}
#endif
#define pthread_attr_create PTHREAD_ATTR_CREATE
#define pthread_attr_delete PTHREAD_ATTR_DELETE
#define pthread_attr_destroy PTHREAD_ATTR_DESTROY
#define pthread_attr_getdetach_np PTHREAD_ATTR_GETDETACH_NP
#define pthread_attr_getguardsize_np PTHREAD_ATTR_GETGUARDSIZE_NP
#define pthread_attr_getinheritsched PTHREAD_ATTR_GETINHERITSCHED
#define pthread_attr_getprio PTHREAD_ATTR_GETPRIO
#define pthread_attr_getsched PTHREAD_ATTR_GETSCHED
#define pthread_attr_getschedparam PTHREAD_ATTR_GETSCHEDPARAM
#define pthread_attr_getstacksize PTHREAD_ATTR_GETSTACKSIZE
#define pthread_attr_init PTHREAD_ATTR_INIT
#define pthread_attr_setdetach_np PTHREAD_ATTR_SETDETACH_NP
#define pthread_attr_setdetachstate PTHREAD_ATTR_SETDETACHSTATE
#define pthread_attr_setguardsize_np PTHREAD_ATTR_SETGUARDSIZE_NP
#define pthread_attr_setinheritsched PTHREAD_ATTR_SETINHERITSCHED
#define pthread_attr_setprio PTHREAD_ATTR_SETPRIO
#define pthread_attr_setsched PTHREAD_ATTR_SETSCHED
#define pthread_attr_setschedparam PTHREAD_ATTR_SETSCHEDPARAM
#define pthread_attr_setschedpolicy PTHREAD_ATTR_SETSCHEDPOLICY
#define pthread_attr_setstacksize PTHREAD_ATTR_SETSTACKSIZE
#define pthread_cancel PTHREAD_CANCEL
#define pthread_cancel_e PTHREAD_CANCEL_E
#define pthread_cond_broadcast PTHREAD_COND_BROADCAST
#define pthread_cond_destroy PTHREAD_COND_DESTROY
#define pthread_cond_init PTHREAD_COND_INIT
#define pthread_cond_sig_preempt_int_np PTHREAD_COND_SIG_PREEMPT_INT_NP
#define pthread_cond_signal PTHREAD_COND_SIGNAL
#define pthread_cond_signal_int_np PTHREAD_COND_SIGNAL_INT_NP
#define pthread_cond_timedwait PTHREAD_COND_TIMEDWAIT
#define pthread_cond_wait PTHREAD_COND_WAIT
#define pthread_condattr_create PTHREAD_CONDATTR_CREATE
#define pthread_condattr_delete PTHREAD_CONDATTR_DELETE
#define pthread_condattr_init PTHREAD_CONDATTR_INIT
#define pthread_create PTHREAD_CREATE
#define pthread_delay_np PTHREAD_DELAY_NP
#define pthread_detach PTHREAD_DETACH
#define pthread_equal PTHREAD_EQUAL
#define pthread_exc_fetch_fp_np PTHREAD_EXC_FETCH_FP_NP
#define pthread_exc_handler_np PTHREAD_EXC_HANDLER_NP
#define pthread_exc_pop_ctx_np PTHREAD_EXC_POP_CTX_NP
#define pthread_exc_push_ctx_np PTHREAD_EXC_PUSH_CTX_NP
#define pthread_exc_savecontext_np PTHREAD_EXC_SAVECONTEXT_NP
#define pthread_exit PTHREAD_EXIT
#define pthread_get_expiration_np PTHREAD_GET_EXPIRATION_NP
#define pthread_getprio PTHREAD_GETPRIO
#define pthread_getschedparam PTHREAD_GETSCHEDPARAM
#define pthread_getscheduler PTHREAD_GETSCHEDULER
#define pthread_getspecific PTHREAD_GETSPECIFIC
#define pthread_getunique_np PTHREAD_GETUNIQUE_NP
#define pthread_join PTHREAD_JOIN
#define pthread_join32 PTHREAD_JOIN32
#define pthread_keycreate PTHREAD_KEYCREATE
#define pthread_key_create PTHREAD_KEY_CREATE
#define pthread_kill PTHREAD_KILL
#define pthread_lock_global_np PTHREAD_LOCK_GLOBAL_NP
#define pthread_mutex_destroy PTHREAD_MUTEX_DESTROY
#define pthread_mutex_init PTHREAD_MUTEX_INIT
#define pthread_mutex_lock PTHREAD_MUTEX_LOCK
#define pthread_mutex_trylock PTHREAD_MUTEX_TRYLOCK
#define pthread_mutex_unlock PTHREAD_MUTEX_UNLOCK
#define pthread_mutexattr_create PTHREAD_MUTEXATTR_CREATE
#define pthread_mutexattr_delete PTHREAD_MUTEXATTR_DELETE
#define pthread_mutexattr_destroy PTHREAD_MUTEXATTR_DESTROY
#define pthread_mutexattr_getkind_np PTHREAD_MUTEXATTR_GETKIND_NP
#define pthread_mutexattr_init PTHREAD_MUTEXATTR_INIT
#define pthread_mutexattr_setkind_np PTHREAD_MUTEXATTR_SETKIND_NP
#define pthread_mutexattr_settype_np PTHREAD_MUTEXATTR_SETTYPE_NP
#define pthread_once PTHREAD_ONCE
#define pthread_resume_np PTHREAD_RESUME_NP
#define pthread_self PTHREAD_SELF
#define pthread_setasynccancel PTHREAD_SETASYNCCANCEL
#define pthread_setcancel PTHREAD_SETCANCEL
#define pthread_setcancelstate PTHREAD_SETCANCELSTATE
#define pthread_setprio PTHREAD_SETPRIO
#define pthread_setschedparam PTHREAD_SETSCHEDPARAM
#define pthread_setscheduler PTHREAD_SETSCHEDULER
#define pthread_setspecific PTHREAD_SETSPECIFIC
#define pthread_suspend_np PTHREAD_SUSPEND_NP
#define pthread_testcancel PTHREAD_TESTCANCEL
#define pthread_unlock_global_np PTHREAD_UNLOCK_GLOBAL_NP
#define pthread_yield PTHREAD_YIELD
#define pthread_yield_np PTHREAD_YIELD_NP
#define XDefaultRootWindow XDEFAULTROOTWINDOW
#define XDisplayCells XDISPLAYCELLS
#define XMaxRequestSize XMAXREQUESTSIZE
#define XScreenOfDisplay XSCREENOFDISPLAY
#define XSetFillRule XSETFILLRULE
#define XmActivateProtocol XMACTIVATEPROTOCOL
#define XmCreateBulletinBoardDialog XMCREATEBULLETINBOARDDIALOG
#define XmCreateErrorDialog XMCREATEERRORDIALOG
#define XmCreateWarningDialog XMCREATEWARNINGDIALOG
#define XmCvtCTToXmString XMCVTCTTOXMSTRING
#define XmDestroyPixmap XMDESTROYPIXMAP
#define XmGetPixmap XMGETPIXMAP
#define XmInstallImage XMINSTALLIMAGE
#define XmListAddItems XMLISTADDITEMS
#define XmListDeleteItem XMLISTDELETEITEM
#define XmListItemExists XMLISTITEMEXISTS
#define XmListItemPos XMLISTITEMPOS
#define XmListReplaceItems XMLISTREPLACEITEMS
#define XmListReplaceItemsPos XMLISTREPLACEITEMSPOS
#define XmRemoveProtocols XMREMOVEPROTOCOLS
#define XmRemoveTabGroup XMREMOVETABGROUP
#define XmSetColorCalculation XMSETCOLORCALCULATION
#define XmTextCopy XMTEXTCOPY
#define XmTextCut XMTEXTCUT
#define XmTextFieldClearSelection XMTEXTFIELDCLEARSELECTION
#define XmTextFieldCopy XMTEXTFIELDCOPY
#define XmTextFieldCut XMTEXTFIELDCUT
#define XmTextFieldGetMaxLength XMTEXTFIELDGETMAXLENGTH
#define XmTextFieldGetSelectionPosition XMTEXTFIELDGETSELECTIONPOSITION
#define XmTextFieldPaste XMTEXTFIELDPASTE
#define XmTextFieldReplace XMTEXTFIELDREPLACE
#define XmTextFieldSetAddMode XMTEXTFIELDSETADDMODE
#define XmTextFieldSetHighlight XMTEXTFIELDSETHIGHLIGHT
#define XmTextFieldSetInsertionPosition XMTEXTFIELDSETINSERTIONPOSITION
#define XmTextFieldSetMaxLength XMTEXTFIELDSETMAXLENGTH
#define XmTextFieldShowPosition XMTEXTFIELDSHOWPOSITION
#define XmTextGetEditable XMTEXTGETEDITABLE
#define XmTextPaste XMTEXTPASTE
#define XmTextPosToXY XMTEXTPOSTOXY
#define XmTextSetEditable XMTEXTSETEDITABLE
#define XmTextShowPosition XMTEXTSHOWPOSITION
#define XmUninstallImage XMUNINSTALLIMAGE
#define XmuCvtStringToBitmap XMUCVTSTRINGTOBITMAP
#define XrmPutFileDatabase XRMPUTFILEDATABASE
#define XtAddConverter XTADDCONVERTER
#define XtError XTERROR
#define XtVaCreatePopupShell XTVACREATEPOPUPSHELL
#define pthread_attr_getschedpolicy PTHREAD_ATTR_GETSCHEDPOLICY
#define pthread_key_delete PTHREAD_KEY_DELETE
#define xmBulletinBoardWidgetClass XMBULLETINBOARDWIDGETCLASS
#define xmScaleWidgetClass XMSCALEWIDGETCLASS
#define XtDisplay XTDISPLAY
#define XtScreen XTSCREEN
#define XAllocIconSize XALLOCICONSIZE
#define XAllocStandardColormap XALLOCSTANDARDCOLORMAP
#define XAllowEvents XALLOWEVENTS
#define XBlackPixel XBLACKPIXEL
#define XCopyColormapAndFree XCOPYCOLORMAPANDFREE
#define XDefaultGC XDEFAULTGC
#define XDisplayHeight XDISPLAYHEIGHT
#define XDisplayWidth XDISPLAYWIDTH
#define XGetCommand XGETCOMMAND
#define XGetIconSizes XGETICONSIZES
#define XKillClient XKILLCLIENT
#define XListInstalledColormaps XLISTINSTALLEDCOLORMAPS
#define XRootWindow XROOTWINDOW
#define XWMGeometry XWMGEOMETRY
#define XWhitePixel XWHITEPIXEL
#define XrmCombineDatabase XRMCOMBINEDATABASE
#define XrmCombineFileDatabase XRMCOMBINEFILEDATABASE
#define XSetStandardProperties XSETSTANDARDPROPERTIES
#define XSetState XSETSTATE
#define XDrawRectangles XDRAWRECTANGLES
#define XGrabButton XGRABBUTTON
#define XLookupColor XLOOKUPCOLOR
#define XMapSubwindows XMAPSUBWINDOWS
#define XRecolorCursor XRECOLORCURSOR
#define XStoreBytes XSTOREBYTES
#define XUngrabButton XUNGRABBUTTON
#define XUninstallColormap XUNINSTALLCOLORMAP
#define lib$wait LIB$WAIT
#define lib$find_file LIB$FIND_FILE
#define lib$find_file_end LIB$FIND_FILE_END
#define lib$set_symbol LIB$SET_SYMBOL
#define lib$sfree1_dd LIB$SFREE1_DD
#define lib$spawn LIB$SPAWN
#define sys$assign SYS$ASSIGN
#define sys$crembx SYS$CREMBX
#define sys$dassgn SYS$DASSGN
#define sys$dclexh SYS$DCLEXH
#define sys$getdviw SYS$GETDVIW
#define sys$getsyiw SYS$GETSYIW
#define sys$qio SYS$QIO
#define sys$qiow SYS$QIOW
#define sys$setef SYS$SETEF
#define sys$synch SYS$SYNCH
#define XDrawText XDRAWTEXT
#define XtCloseDisplay XTCLOSEDISPLAY
#define XtDestroyApplicationContext XTDESTROYAPPLICATIONCONTEXT
#define lib$ediv LIB$EDIV
#define lib$subx LIB$SUBX
#define sys$bintim SYS$BINTIM
#define sys$gettim SYS$GETTIM
#define XFetchName XFETCHNAME
#define XPeekIfEvent XPEEKIFEVENT
#define XQueryKeymap XQUERYKEYMAP
#endif

View File

@@ -1,4 +1,4 @@
/* $Id: xmesa.h,v 1.8 2000/05/02 02:30:01 brianp Exp $ */
/* $Id: xmesa.h,v 1.8.4.1 2000/11/02 18:08:28 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -89,7 +89,7 @@ extern struct Library *XLibBase;
#define XMESA_MAJOR_VERSION 3
#define XMESA_MINOR_VERSION 3
#define XMESA_MINOR_VERSION 4

View File

@@ -1,36 +1,13 @@
/* $Id: bounce.c,v 1.2 2000/06/27 17:04:43 brianp Exp $ */
/* $Id: bounce.c,v 1.2.4.1 2000/08/16 20:36:32 brianp Exp $ */
/*
* Bouncing ball demo. Color index mode only!
* Bouncing ball demo.
*
* This program is in the public domain
*
* Brian Paul
*/
/* Conversion to GLUT by Mark J. Kilgard */
/*
* $Log: bounce.c,v $
* Revision 1.2 2000/06/27 17:04:43 brianp
* fixed compiler warnings
*
* Revision 1.1.1.1 1999/08/19 00:55:40 jtg
* Imported sources
*
* Revision 3.3 1999/03/18 08:16:14 joukj
*
* cmpstr needs string.h to included to avoid warnings
*
* Revision 3.2 1998/11/28 01:13:02 brianp
* now sets an initial window position and size
*
* Revision 3.1 1998/11/28 01:06:57 brianp
* now works in RGB mode by default
*
* Revision 3.0 1998/02/14 18:42:29 brianp
* initial rev
*
* Conversion to GLUT by Mark J. Kilgard
*/
@@ -84,9 +61,9 @@ make_ball(void)
glColor3f(1, 1, 1);
}
x = COS(b) * COS(a);
y = SIN(b) * COS(a);
z = SIN(a);
x = radius * COS(b) * COS(a);
y = radius * SIN(b) * COS(a);
z = radius * SIN(a);
glVertex3f(x, y, z);
x = radius * COS(b) * COS(a + da);

View File

@@ -1,6 +1,6 @@
# Makefile for GLUT-based demo programs for VMS
# Makefile for core library for VMS
# contributed by Jouk Jansen joukj@crys.chem.uva.nl
# Last revision : 3 May 1999
.first
define gl [-.include.gl]
@@ -9,55 +9,172 @@
##### MACROS #####
VPATH = RCS
INCDIR = [-.include]
CFLAGS = /include=$(INCDIR)/prefix=all
LIBDIR = [-.lib]
CFLAGS = /include=($(INCDIR),[])/define=(FBIND=1)/name=(as_is,short)
.ifdef SHARE
GL_LIBS = $(XLIBS)
.else
GL_LIBS = [-.lib]libGLUT/l,libMesaGLU/l,libMesaGL/l,$(XLIBS)
.endif
CORE_SOURCES = aatriangle.c accum.c alpha.c alphabuf.c attrib.c \
bitmap.c blend.c buffers.c clip.c colortab.c context.c copypix.c depth.c \
dispatch.c \
dlist.c drawpix.c enable.c eval.c feedback.c fog.c \
get.c hash.c hint.c image.c imaging.c light.c lines.c logic.c masking.c matrix.c \
mem.c glapi.c glapinoop.c \
mmath.c pb.c pixel.c points.c polygon.c \
quads.c rastpos.c readpix.c rect.c scissor.c shade.c span.c \
stencil.c teximage.c texobj.c texstate.c texture.c translate.c triangle.c \
varray.c winpos.c vb.c vbcull.c vbfill.c vbrender.c vbxform.c xform.c \
zoom.c bbox.c cva.c vector.c vbindirect.c config.c enums.c extensions.c \
pipeline.c stages.c state.c vertices.c [.x86]x86.c
LIB_DEP = [-.lib]$(GL_LIB) [-.lib]$(GLU_LIB) [-.lib]$(GLUT_LIB)
DRIVER_SOURCES = [.x]glxapi.c [.x]fakeglx.c [.x]xfonts.c \
[.x]xmesa1.c [.x]xmesa2.c [.x]xmesa3.c [.x]xmesa4.c \
[.osmesa]osmesa.c \
[.svga]svgamesa.c \
[.fx]fxapi.c [.fx]fxdd.c [.fx]fxddtex.c [.fx]fxvsetup.c [.fx]fxsetup.c \
[.fx]fxtrifuncs.c [.fx]fxclip.c [.fx]fxfastpath.c [.fx]fxpipeline.c\
[.fx]fxrender.c [.fx]fxtexman.c [.fx]fxddspan.c [.fx]fxcva.c [.fx]fxsanity.c\
[.fx]fxglidew.c
PROGS = bounce.exe;,clearspd.exe;,drawpix.exe;,gamma.exe;,gears.exe;,\
glinfo.exe;,glutfx.exe;,isosurf.exe;,morph3d.exe;,osdemo.exe;,\
paltex.exe;,pointblast.exe;,reflect.exe;,spectex.exe;,stex3d.exe;,\
tessdemo.exe;,texcyl.exe;,texobj.exe;,trispd.exe;,winpos.exe;
ASM_SOURCES =
OBJECTS =aatriangle.obj,\
accum.obj,alpha.obj,alphabuf.obj,attrib.obj,\
bitmap.obj,blend.obj,buffers.obj,clip.obj,colortab.obj,context.obj,copypix.obj,depth.obj,\
dlist.obj,drawpix.obj,enable.obj,eval.obj,feedback.obj,fog.obj
OBJECTS3=get.obj,hash.obj,hint.obj,image.obj,light.obj,lines.obj,logic.obj,masking.obj,\
matrix.obj,glapi.obj,glapinoop.obj,dispatch.obj,imaging.obj,mem.obj,\
mmath.obj,pb.obj,pixel.obj,points.obj
OBJECTS7=polygon.obj,\
quads.obj,rastpos.obj,readpix.obj,rect.obj,scissor.obj,shade.obj,span.obj,\
pixeltex.obj
OBJECTS4=stencil.obj,teximage.obj,texobj.obj,texstate.obj,texture.obj,translate.obj,\
triangle.obj,varray.obj,winpos.obj,vb.obj,vbcull.obj,vbfill.obj,vbrender.obj
OBJECTS6=vbxform.obj,xform.obj,zoom.obj,bbox.obj,cva.obj,vector.obj,vbindirect.obj,\
config.obj,enums.obj,extensions.obj,pipeline.obj,stages.obj,state.obj,\
vertices.obj,[.x86]x86.obj
OBJECTS2=[.x]glxapi.obj,[.x]fakeglx.obj,[.x]xfonts.obj,\
[.x]xmesa1.obj,[.x]xmesa2.obj,[.x]xmesa3.obj,[.x]xmesa4.obj,\
[.osmesa]osmesa.obj,\
[.svga]svgamesa.obj
OBJECTS5=[.fx]fxapi.obj,[.fx]fxdd.obj,[.fx]fxddtex.obj,[.fx]fxvsetup.obj,\
[.fx]fxsetup.obj,[.fx]fxclip.obj,[.fx]fxfastpath.obj,[.fx]fxpipeline.obj
OBJECTS8=[.fx]fxtrifuncs.obj,[.fx]fxsanity.obj,[.fx]fxglidew.obj,\
[.fx]fxrender.obj,[.fx]fxtexman.obj,[.fx]fxddspan.obj,[.fx]fxcva.obj
##### RULES #####
.obj.exe :
link $(MMS$TARGET_NAME),$(GL_LIBS)
VERSION=Mesa V3.1
##### TARGETS #####
default :
$(MMS)$(MMSQUALIFIERS) $(PROGS)
# Make the library
$(LIBDIR)$(GL_LIB) : $(OBJECTS),$(OBJECTS2) $(OBJECTS3) $(OBJECTS4)\
$(OBJECTS5) $(OBJECTS8) $(OBJECTS7) $(OBJECTS6)
.ifdef SHARE
@ WRITE_ SYS$OUTPUT " generating mesagl1.opt"
@ OPEN_/WRITE FILE mesagl1.opt
@ WRITE_ FILE "!"
@ WRITE_ FILE "! mesagl1.opt generated by DESCRIP.$(MMS_EXT)"
@ WRITE_ FILE "!"
@ WRITE_ FILE "IDENTIFICATION=""$(VERSION)"""
@ WRITE_ FILE "GSMATCH=LEQUAL,3,1
@ WRITE_ FILE "$(OBJECTS)"
@ WRITE_ FILE "$(OBJECTS3)"
@ WRITE_ FILE "$(OBJECTS4)"
@ WRITE_ FILE "$(OBJECTS7)"
@ WRITE_ FILE "$(OBJECTS6)"
@ WRITE_ FILE "$(OBJECTS2)"
@ WRITE_ FILE "$(OBJECTS5)"
@ WRITE_ FILE "$(OBJECTS8)"
@ WRITE_ FILE "SYS$SHARE:DECW$XEXTLIBSHR/SHARE"
@ WRITE_ FILE "SYS$SHARE:DECW$XLIBSHR/SHARE"
@ CLOSE_ FILE
@ WRITE_ SYS$OUTPUT " generating mesagl.map ..."
@ LINK_/NODEB/NOSHARE/NOEXE/MAP=mesagl.map/FULL mesagl1.opt/OPT
@ WRITE_ SYS$OUTPUT " analyzing mesagl.map ..."
@ @[-.vms]ANALYZE_MAP.COM mesagl.map mesagl.opt
@ WRITE_ SYS$OUTPUT " linking $(GL_LIB) ..."
@ LINK_/NODEB/SHARE=$(GL_LIB)/MAP=mesagl.map/FULL mesagl1.opt/opt,mesagl.opt/opt
.else
@ $(MAKELIB) $(GL_LIB) $(OBJECTS)
@ library $(GL_LIB) $(OBJECTS2)
@ library $(GL_LIB) $(OBJECTS3)
@ library $(GL_LIB) $(OBJECTS4)
@ library $(GL_LIB) $(OBJECTS5)
@ library $(GL_LIB) $(OBJECTS8)
@ library $(GL_LIB) $(OBJECTS7)
@ library $(GL_LIB) $(OBJECTS6)
.endif
@ rename $(GL_LIB)* $(LIBDIR)
clean :
purge
delete *.obj;*
realclean :
delete $(PROGS)
delete *.obj;*
aatriangle.obj : aatriangle.c
bounce.exe; : bounce.obj $(LIB_DEP)
clearspd.exe; : clearspd.obj $(LIB_DEP)
drawpix.exe; : drawpix.obj $(LIB_DEP)
gamma.exe; : gamma.obj $(LIB_DEP)
gears.exe; : gears.obj $(LIB_DEP)
glinfo.exe; : glinfo.obj $(LIB_DEP)
glutfx.exe; : glutfx.obj $(LIB_DEP)
isosurf.exe; : isosurf.obj $(LIB_DEP)
morph3d.exe; : morph3d.obj $(LIB_DEP)
osdemo.exe; : osdemo.obj $(LIB_DEP)
paltex.exe; : paltex.obj $(LIB_DEP)
pointblast.exe; : pointblast.obj $(LIB_DEP)
reflect.exe; : reflect.obj $(LIB_DEP)
spectex.exe; : spectex.obj $(LIB_DEP)
stex3d.exe; : stex3d.obj $(LIB_DEP)
tessdemo.exe; : tessdemo.obj $(LIB_DEP)
texcyl.exe; : texcyl.obj $(LIB_DEP)
texobj.exe; : texobj.obj $(LIB_DEP)
trispd.exe; : trispd.obj $(LIB_DEP)
winpos.exe; : winpos.obj $(LIB_DEP)
triangle.obj : triangle.c
pixeltex.obj : pixeltex.c
[.x86]x86.obj : [.x86]x86.c
$(CC) $(CFLAGS) /obj=[.x86]x86.obj [.x86]x86.c
[.x]glxapi.obj : [.x]glxapi.c
$(CC) $(CFLAGS) /obj=[.x]glxapi.obj [.x]glxapi.c
[.x]fakeglx.obj : [.x]fakeglx.c
$(CC) $(CFLAGS) /obj=[.x]fakeglx.obj [.x]fakeglx.c
[.x]xfonts.obj : [.x]xfonts.c
$(CC) $(CFLAGS) /obj=[.x]xfonts.obj [.x]xfonts.c
[.x]xmesa1.obj : [.x]xmesa1.c
$(CC) $(CFLAGS) /obj=[.x]xmesa1.obj [.x]xmesa1.c
[.x]xmesa2.obj : [.x]xmesa2.c
$(CC) $(CFLAGS) /obj=[.x]xmesa2.obj [.x]xmesa2.c
[.x]xmesa3.obj : [.x]xmesa3.c
$(CC) $(CFLAGS) /obj=[.x]xmesa3.obj [.x]xmesa3.c
[.x]xmesa4.obj : [.x]xmesa4.c
$(CC) $(CFLAGS) /obj=[.x]xmesa4.obj [.x]xmesa4.c
[.osmesa]osmesa.obj : [.osmesa]osmesa.c
$(CC) $(CFLAGS) /obj=[.osmesa]osmesa.obj [.osmesa]osmesa.c
[.svga]svgamesa.obj : [.svga]svgamesa.c
$(CC) $(CFLAGS) /obj=[.svga]svgamesa.obj [.svga]svgamesa.c
[.fx]fxapi.obj : [.fx]fxapi.c
$(CC) $(CFLAGS) /obj=[.fx]fxapi.obj [.fx]fxapi.c
[.fx]fxclip.obj : [.fx]fxclip.c
$(CC) $(CFLAGS) /obj=[.fx]fxclip.obj [.fx]fxclip.c
[.fx]fxcva.obj : [.fx]fxcva.c
$(CC) $(CFLAGS) /obj=[.fx]fxcva.obj [.fx]fxcva.c
[.fx]fxdd.obj : [.fx]fxdd.c
$(CC) $(CFLAGS) /obj=[.fx]fxdd.obj [.fx]fxdd.c
[.fx]fxddtex.obj : [.fx]fxddtex.c
$(CC) $(CFLAGS) /obj=[.fx]fxddtex.obj [.fx]fxddtex.c
[.fx]fxfastpath.obj : [.fx]fxfastpath.c
$(CC) $(CFLAGS) /obj=[.fx]fxfastpath.obj [.fx]fxfastpath.c
[.fx]fxpipeline.obj : [.fx]fxpipeline.c
$(CC) $(CFLAGS) /obj=[.fx]fxpipeline.obj [.fx]fxpipeline.c
[.fx]fxsanity.obj : [.fx]fxsanity.c
$(CC) $(CFLAGS) /obj=[.fx]fxsanity.obj [.fx]fxsanity.c
[.fx]fxvsetup.obj : [.fx]fxvsetup.c
$(CC) $(CFLAGS) /obj=[.fx]fxvsetup.obj [.fx]fxvsetup.c
[.fx]fxsetup.obj : [.fx]fxsetup.c
$(CC) $(CFLAGS) /obj=[.fx]fxsetup.obj [.fx]fxsetup.c
[.fx]fxtrifuncs.obj : [.fx]fxtrifuncs.c
$(CC) $(CFLAGS) /obj=[.fx]fxtrifuncs.obj [.fx]fxtrifuncs.c
[.fx]fxrender.obj : [.fx]fxrender.c
$(CC) $(CFLAGS) /obj=[.fx]fxrender.obj [.fx]fxrender.c
[.fx]fxtexman.obj : [.fx]fxtexman.c
$(CC) $(CFLAGS) /obj=[.fx]fxtexman.obj [.fx]fxtexman.c
[.fx]fxddspan.obj : [.fx]fxddspan.c
$(CC) $(CFLAGS) /obj=[.fx]fxddspan.obj [.fx]fxddspan.c
[.fx]fxglidew.obj : [.fx]fxglidew.c
$(CC) $(CFLAGS) /obj=[.fx]fxglidew.obj [.fx]fxglidew.c
.include mms_depend.

View File

@@ -1,4 +1,4 @@
/* $Id: gloss.c,v 1.4 2000/06/27 17:04:43 brianp Exp $ */
/* $Id: gloss.c,v 1.4.4.1 2000/08/29 21:17:25 brianp Exp $ */
/*
* Specular reflection demo. The specular highlight is modulated by
@@ -46,7 +46,7 @@ static GLfloat DXrot = 1.0, DYrot = 2.5;
static GLfloat Black[4] = { 0, 0, 0, 0 };
static GLfloat White[4] = { 1, 1, 1, 1 };
static GLfloat Diffuse[4] = { .3, .3, 1.0, 1.0 }; /* blue */
static GLfloat Shininess = 15;
static GLfloat Shininess = 6;
static GLuint BaseTexture, SpecularTexture;
static GLboolean DoSpecTexture = GL_TRUE;

View File

@@ -561,24 +561,28 @@ static void drawSample( int x, int y, int w, int h,
if ( drawSmooth ) {
glShadeModel( GL_SMOOTH );
}
else {
glShadeModel( GL_FLAT );
glColor4f(1, 1, 1, 1);
}
if ( drawTextured ) {
glEnable( GL_TEXTURE_2D );
}
glBegin( GL_QUADS );
glColor4f( 1.0, 0.0, 0.0, 1.0 );
if ( drawSmooth ) glColor4f( 1.0, 0.0, 1.0, 1.0 );
glTexCoord2f( 0.0, 0.0 );
glVertex2f( -0.8, -0.8 );
glColor4f( 0.0, 1.0, 0.0, 1.0 );
if ( drawSmooth ) glColor4f( 1.0, 0.0, 1.0, 1.0 );
glTexCoord2f( 1.0, 0.0 );
glVertex2f( 0.8, -0.8 );
glColor4f( 0.0, 0.0, 1.0, 1.0 );
if ( drawSmooth ) glColor4f( 0.0, 1.0, 0.0, 1.0 );
glTexCoord2f( 1.0, 1.0 );
glVertex2f( 0.8, 0.8 );
glColor4f( 1.0, 1.0, 1.0, 1.0 );
if ( drawSmooth ) glColor4f( 0.0, 1.0, 0.0, 1.0 );
glTexCoord2f( 0.0, 1.0 );
glVertex2f( -0.8, 0.8 );
glEnd();
@@ -587,7 +591,18 @@ static void drawSample( int x, int y, int w, int h,
glShadeModel( GL_FLAT );
glDisable( GL_TEXTURE_2D );
if ( displayLevelInfo ) {
if ( envMode->mode == GL_DECAL &&
(format->baseFormat == GL_ALPHA ||
format->baseFormat == GL_LUMINANCE ||
format->baseFormat == GL_LUMINANCE_ALPHA ||
format->baseFormat == GL_INTENSITY)) {
/* undefined format/mode combination */
begin2D( w, h );
drawStringOutline( "UNDEFINED MODE", 15, h / 2,
labelLevelColor0, labelLevelColor1 );
end2D();
}
else if ( displayLevelInfo ) {
GLint width, height, border, components;
GLint redSize, greenSize, blueSize, alphaSize;
GLint luminanceSize, intensitySize;

View File

@@ -1,4 +1,4 @@
/* $Id: trispd.c,v 1.1 1999/08/19 00:55:40 jtg Exp $ */
/* $Id: trispd.c,v 1.1.1.1.6.1 2000/10/26 15:26:27 brianp Exp $ */
/*
* Simple GLUT program to measure triangle strip rendering speed.
@@ -7,8 +7,11 @@
/*
* $Log: trispd.c,v $
* Revision 1.1 1999/08/19 00:55:40 jtg
* Initial revision
* Revision 1.1.1.1.6.1 2000/10/26 15:26:27 brianp
* added a glFinish() call
*
* Revision 1.1.1.1 1999/08/19 00:55:40 jtg
* Imported sources
*
* Revision 3.4 1999/03/28 18:24:37 brianp
* minor clean-up
@@ -107,6 +110,7 @@ static void Display( void )
}
}
}
glFinish();
t1 = glutGet(GLUT_ELAPSED_TIME) * 0.001;
if (t1-t0 < MinPeriod) {

View File

@@ -27,7 +27,8 @@ static int fullscreen = 1;
static int WIDTH = 640;
static int HEIGHT = 480;
#define FRAME 50
static GLint T0 = 0;
static GLint Frames = 0;
#define NUMBLOC 5
@@ -56,7 +57,7 @@ static float v = 0.5;
static float alpha = 90.0;
static float beta = 90.0;
static int fog = 0;
static int fog = 1;
static int bfcull = 1;
static int usetex = 1;
static int cstrip = 0;
@@ -154,21 +155,6 @@ drawobjs(int *l, float *f)
}
}
static float
gettime(void)
{
static clock_t told = 0;
clock_t tnew, ris;
tnew = clock();
ris = tnew - told;
told = tnew;
return (ris / (float) CLOCKS_PER_SEC);
}
static void
calcposobs(void)
{
@@ -221,7 +207,6 @@ key(unsigned char k, int x, int y)
XMesaSetFXmode(fullscreen ? XMESA_FX_FULLSCREEN : XMESA_FX_WINDOW);
break;
#endif
case 'j':
joyactive = (!joyactive);
break;
@@ -257,6 +242,7 @@ key(unsigned char k, int x, int y)
fprintf(stderr, "Done.\n");
break;
}
glutPostRedisplay();
}
static void
@@ -366,10 +352,9 @@ dojoy(void)
static void
draw(void)
{
static int count = 0;
static char frbuf[80];
static char frbuf[80] = "";
int i;
float fr, base, offset;
float base, offset;
dojoy();
@@ -416,11 +401,6 @@ draw(void)
glPopMatrix();
glPopMatrix();
if ((count % FRAME) == 0) {
fr = gettime();
sprintf(frbuf, "Frame rate: %f", FRAME / fr);
}
glDisable(GL_TEXTURE_2D);
glDisable(GL_FOG);
glShadeModel(GL_FLAT);
@@ -449,9 +429,27 @@ draw(void)
glutSwapBuffers();
count++;
Frames++;
{
GLint t = glutGet(GLUT_ELAPSED_TIME);
if (t - T0 >= 2000) {
GLfloat seconds = (t - T0) / 1000.0;
GLfloat fps = Frames / seconds;
sprintf(frbuf, "Frame rate: %f", fps);
T0 = t;
Frames = 0;
}
}
}
static void
idle(void)
{
glutPostRedisplay();
}
int
main(int ac, char **av)
{
@@ -500,7 +498,7 @@ main(int ac, char **av)
glutDisplayFunc(draw);
glutKeyboardFunc(key);
glutSpecialFunc(special);
glutIdleFunc(draw);
glutIdleFunc(idle);
glEnable(GL_BLEND);
/*glBlendFunc(GL_SRC_ALPHA_SATURATE,GL_ONE); */

View File

@@ -88,7 +88,7 @@ void drawSquares(GLenum mode)
void processHits (GLint hits, GLuint buffer[])
{
unsigned int i, j;
GLuint ii, jj, names, *ptr;
GLuint ii = 0, jj = 0, names, *ptr;
printf ("hits = %d\n", hits);
ptr = (GLuint *) buffer;

View File

@@ -65,7 +65,7 @@ void makeCheckImage(void)
for (i = 0; i < checkImageHeight; i++) {
for (j = 0; j < checkImageWidth; j++) {
c = ((((i&0x8)==0)^((j&0x8))==0))*255;
c = (((i&0x8)==0)^((j&0x8)==0))*255;
checkImage[i][j][0] = (GLubyte) c;
checkImage[i][j][1] = (GLubyte) c;
checkImage[i][j][2] = (GLubyte) c;

View File

@@ -41,55 +41,55 @@ GLint cubeList = 1;
float scp[18][3] = {
{
1.000000, 0.000000, 0.000000
},
},
{
1.000000, 0.000000, 5.000000
},
{
0.707107, 0.707107, 0.000000
},
},
{
0.707107, 0.707107, 5.000000
},
{
0.000000, 1.000000, 0.000000
},
},
{
0.000000, 1.000000, 5.000000
},
{
-0.707107, 0.707107, 0.000000
},
},
{
-0.707107, 0.707107, 5.000000
},
{
-1.000000, 0.000000, 0.000000
},
},
{
-1.000000, 0.000000, 5.000000
},
{
-0.707107, -0.707107, 0.000000
},
},
{
-0.707107, -0.707107, 5.000000
},
{
0.000000, -1.000000, 0.000000
},
},
{
0.000000, -1.000000, 5.000000
},
{
0.707107, -0.707107, 0.000000
},
},
{
0.707107, -0.707107, 5.000000
},
{
1.000000, 0.000000, 0.000000
},
},
{
1.000000, 0.000000, 5.000000
},
@@ -136,7 +136,7 @@ static void Init(void)
static float back_mat_diffuse[] = {1.0, 0.0, 0.0, 1.0};
static float lmodel_ambient[] = {0.0, 0.0, 0.0, 1.0};
static float fog_color[] = {0.8, 0.8, 0.8, 1.0};
glFrontFace(GL_CW);
glEnable(GL_DEPTH_TEST);
@@ -148,7 +148,7 @@ static void Init(void)
glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glMaterialfv(GL_FRONT, GL_SHININESS, front_mat_shininess);
glMaterialfv(GL_FRONT, GL_SPECULAR, front_mat_specular);
glMaterialfv(GL_FRONT, GL_DIFFUSE, front_mat_diffuse);
@@ -258,7 +258,7 @@ static GLenum Args(int argc, char **argv)
GLint i;
rgb = GL_TRUE;
doubleBuffer = GL_FALSE;
doubleBuffer = GL_TRUE;
for (i = 1; i < argc; i++) {
if (strcmp(argv[i], "-ci") == 0) {

View File

@@ -123,7 +123,7 @@ static void Draw(void)
} else {
glDisable(GL_LINE_STIPPLE);
}
if (mode2) {
ci = CI_OFFSET;
glEnable(GL_LINE_SMOOTH);
@@ -170,7 +170,7 @@ static GLenum Args(int argc, char **argv)
GLint i;
rgb = GL_TRUE;
doubleBuffer = GL_FALSE;
doubleBuffer = GL_TRUE;
for (i = 1; i < argc; i++) {
if (strcmp(argv[i], "-ci") == 0) {

View File

@@ -26,7 +26,7 @@
* Nov 20, 1995 use stdlib's rand()/srand() instead of random()/srand48(), etc.
*/
/*
/*
* Modified by Li Wei(liwei@aiar.xjtu.edu.cn) to be able to run in Windows
* 6/13
*
@@ -83,7 +83,7 @@ void FillTorus(float rc, int numc, float rt, int numt)
pi = 3.14159265358979323846;
twopi = 2 * pi;
for (i = 0; i < numc; i++) {
glBegin(GL_QUAD_STRIP);
for (j = 0; j <= numt; j++) {
@@ -136,7 +136,7 @@ void DrawScene(void)
}
glPushMatrix();
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
gluLookAt(0,0,10, 0,0,0, 0,1,0);
@@ -252,7 +252,7 @@ void Init(void)
dests[GREENRING][1] = bottom_y;
dests[GREENRING][2] = bottom_z;
base = 2.0;
base = 2.0;
height = 2.0;
theTorus = glGenLists(1);
glNewList(theTorus, GL_COMPILE);
@@ -321,7 +321,7 @@ GLenum Args(int argc, char **argv)
GLint i;
rgb = GL_TRUE;
doubleBuffer = GL_FALSE;
doubleBuffer = GL_TRUE;
for (i = 1; i < argc; i++) {
if (strcmp(argv[i], "-ci") == 0) {

View File

@@ -326,7 +326,7 @@ static GLenum Args(int argc, char **argv)
{
GLint i;
doubleBuffer = GL_FALSE;
doubleBuffer = GL_TRUE;
for (i = 1; i < argc; i++) {
if (strcmp(argv[i], "-sb") == 0) {

View File

@@ -85,7 +85,7 @@ float c[6][4][4][3] = {
{
{
1.0, 1.0, -1.0
},
},
{
0.0, 1.0, -1.0
},
@@ -102,10 +102,10 @@ float c[6][4][4][3] = {
},
{
-1.0, 1.0, -1.0
},
},
{
-1.0, 0.0, -1.0
},
},
{
0.0, 0.0, -1.0
},
@@ -269,7 +269,7 @@ float c[6][4][4][3] = {
{
-1.0, 0.0, -1.0
},
},
},
{
{
-1.0, 1.0, 0.0
@@ -283,7 +283,7 @@ float c[6][4][4][3] = {
{
-1.0, 0.0, 0.0
},
},
},
{
{
-1.0, 0.0, 1.0
@@ -297,7 +297,7 @@ float c[6][4][4][3] = {
{
-1.0, 0.0, 0.0
},
},
},
{
{
-1.0, -1.0, 0.0
@@ -311,7 +311,7 @@ float c[6][4][4][3] = {
{
-1.0, 0.0, 0.0
},
},
},
},
{
{
@@ -463,8 +463,8 @@ GLfloat identity[16] = {
void BuildCylinder(int numEdges)
{
int i, top = 1.0, bottom = -1.0;
float x[100], y[100], angle;
float x[100], y[100], angle;
for (i = 0; i <= numEdges; i++) {
angle = i * 2.0 * PI / numEdges;
x[i] = cos(angle); /* was cosf() */
@@ -505,7 +505,7 @@ void BuildTorus(float rc, int numc, float rt, int numt)
pi = 3.14159265358979323846;
twopi = 2.0 * pi;
glNewList(torus, GL_COMPILE);
for (i = 0; i < numc; i++) {
glBegin(GL_QUAD_STRIP);
@@ -542,7 +542,7 @@ void BuildCage(void)
left = -4.0;
bottom = -4.0;
right = 4.0;
top = 4.0;
top = 4.0;
inc = 2.0 * 4.0 * 0.1;
@@ -631,7 +631,7 @@ void BuildCube(void)
glNewList(cube, GL_COMPILE);
for (i = 0; i < 6; i++) {
for (j = 0; j < 4; j++) {
glNormal3fv(n[i]);
glNormal3fv(n[i]);
glBegin(GL_POLYGON);
glVertex3fv(c[i][j][0]);
glVertex3fv(c[i][j][1]);
@@ -670,7 +670,7 @@ void SetDeepestColor(void)
glGetIntegerv(GL_BLUE_BITS, &blueBits);
deepestColor = (redBits >= greenBits) ? COLOR_RED : COLOR_GREEN;
deepestColor = (deepestColor >= blueBits) ? deepestColor : COLOR_BLUE;
deepestColor = (deepestColor >= blueBits) ? deepestColor : COLOR_BLUE;
}
void SetDefaultSettings(void)
@@ -726,17 +726,17 @@ void Init(void)
image->data = AlphaPadImage(image->sizeX*image->sizeY,
image->data, 128);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
gluBuild2DMipmaps(GL_TEXTURE_2D, numComponents,
image->sizeX, image->sizeY,
gluBuild2DMipmaps(GL_TEXTURE_2D, numComponents,
image->sizeX, image->sizeY,
GL_RGBA, GL_UNSIGNED_BYTE, image->data);
} else {
image = LoadPPM(imageFileName);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
gluBuild2DMipmaps(GL_TEXTURE_2D, numComponents,
image->sizeX, image->sizeY,
gluBuild2DMipmaps(GL_TEXTURE_2D, numComponents,
image->sizeX, image->sizeY,
GL_RGB, GL_UNSIGNED_BYTE, image->data);
}
glFogf(GL_FOG_DENSITY, 0.125);
glFogi(GL_FOG_MODE, GL_LINEAR);
glFogf(GL_FOG_START, 4.0);
@@ -747,7 +747,7 @@ void Init(void)
glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
glLightfv(GL_LIGHT0, GL_SPECULAR, specular);
glLightfv(GL_LIGHT0, GL_POSITION, position);
glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, mat_shininess);
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, mat_specular);
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mat_diffuse);
@@ -845,7 +845,7 @@ void Draw(void)
if (autoRotate) {
xRotation += .75;
yRotation += .375;
}
}
glutSwapBuffers();
}
@@ -964,7 +964,7 @@ GLenum Args(int argc, char **argv)
{
GLint i;
doubleBuffer = GL_FALSE;
doubleBuffer = GL_TRUE;
numComponents = 4;
for (i = 1; i < argc; i++) {

View File

@@ -281,7 +281,7 @@ static GLenum Args(int argc, char **argv)
{
GLint i;
doubleBuffer = GL_FALSE;
doubleBuffer = GL_TRUE;
for (i = 1; i < argc; i++) {
if (strcmp(argv[i], "-sb") == 0) {

View File

@@ -285,7 +285,7 @@ static GLenum Args(int argc, char **argv)
{
GLint i;
doubleBuffer = GL_FALSE;
doubleBuffer = GL_TRUE;
for (i = 1; i < argc; i++) {
if (strcmp(argv[i], "-sb") == 0) {

View File

@@ -128,7 +128,7 @@ static void Animate(void)
glColor3fv(facet->color);
} else {
thisColor = facet->color;
glMaterialfv(GL_FRONT_AND_BACK, GL_COLOR_INDEXES,
glMaterialfv(GL_FRONT_AND_BACK, GL_COLOR_INDEXES,
facet->color);
}
} else {
@@ -182,12 +182,12 @@ static void Animate(void)
}
}
static void SetColorMap(void)
static void SetColorMap(void)
{
static float green[3] = {0.2, 1.0, 0.2};
static float red[3] = {1.0, 0.2, 0.2};
float *color, percent;
GLint *indexes, entries, i, j;
float *color = 0, percent;
GLint *indexes = 0, entries, i, j;
entries = glutGet(GLUT_WINDOW_COLORMAP_SIZE);
@@ -360,7 +360,7 @@ static void InitMaterials(void)
glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, lmodel_twoside);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glMaterialfv(GL_FRONT, GL_SHININESS, front_mat_shininess);
glMaterialfv(GL_FRONT, GL_SPECULAR, front_mat_specular);
glMaterialfv(GL_FRONT, GL_DIFFUSE, front_mat_diffuse);
@@ -394,7 +394,7 @@ static void Init(void)
glClearColor(0.0, 0.0, 0.0, 0.0);
glShadeModel(GL_FLAT);
glFrontFace(GL_CW);
glEnable(GL_DEPTH_TEST);
@@ -515,7 +515,7 @@ static GLenum Args(int argc, char **argv)
GLint i;
rgb = GL_TRUE;
doubleBuffer = GL_FALSE;
doubleBuffer = GL_TRUE;
frames = 10;
widthX = 10;
widthY = 10;

View File

@@ -1,4 +1,4 @@
/* $Id: glxheads.c,v 1.1 2000/06/13 19:41:30 brianp Exp $ */
/* $Id: glxheads.c,v 1.1.4.1 2000/11/10 17:17:23 brianp Exp $ */
/*
* Exercise multiple GLX connections on multiple X displays.
@@ -139,7 +139,7 @@ AddHead(const char *displayName)
if (!glXMakeCurrent(dpy, win, ctx)) {
Error(displayName, "glXMakeCurrent failed");
printf("glXMakeCurrent failed in Redraw()\n");
return;
return NULL;
}
/* save the info for this head */

View File

@@ -53,7 +53,7 @@ PERFORMANCE OF THIS SOFTWARE.
#include <stdio.h>
#include <string.h>
/*#undef GL_EXT_polygon_offset uncomment to use new version*/
#undef GL_EXT_polygon_offset /* use GL 1.1 version instead of extension */
#ifndef EXIT_FAILURE

View File

@@ -1,61 +1,62 @@
LIBRARY GLU32
DESCRIPTION 'GLU for Windows Mesa'
EXETYPE WINDOWS
CODE MOVEABLE DISCARDABLE
DATA MOVEABLE SINGLE
HEAPSIZE 256000
STACKSIZE 4096
EXPORTS
gluLookAt
gluOrtho2D
gluPerspective
gluPickMatrix
gluProject
gluUnProject
gluErrorString
gluScaleImage
gluBuild1DMipmaps
gluBuild2DMipmaps
gluNewQuadric
gluDeleteQuadric
gluQuadricDrawStyle
gluQuadricOrientation
gluQuadricNormals
gluQuadricTexture
gluQuadricCallback
gluCylinder
gluSphere
gluDisk
gluPartialDisk
gluNewNurbsRenderer
gluDeleteNurbsRenderer
gluLoadSamplingMatrices
gluNurbsProperty
gluGetNurbsProperty
gluBeginCurve
gluEndCurve
gluNurbsCurve
gluBeginSurface
gluEndSurface
gluNurbsSurface
gluBeginTrim
gluEndTrim
gluPwlCurve
gluNurbsCallback
gluNewTess
gluDeleteTess
gluTessBeginPolygon
gluTessBeginContour
gluTessVertex
gluTessEndContour
gluTessEndPolygon
gluTessProperty
gluTessNormal
gluTessCallback
gluGetTessProperty
gluBeginPolygon
gluNextContour
gluEndPolygon
gluGetString
LIBRARY GLU32
DESCRIPTION 'GLU for Windows Mesa'
EXETYPE WINDOWS
CODE MOVEABLE DISCARDABLE
DATA MOVEABLE SINGLE
HEAPSIZE 256000
STACKSIZE 4096
EXPORTS
gluLookAt
gluOrtho2D
gluPerspective
gluPickMatrix
gluProject
gluUnProject
gluErrorString
gluScaleImage
gluBuild1DMipmaps
gluBuild2DMipmaps
gluNewQuadric
gluDeleteQuadric
gluQuadricDrawStyle
gluQuadricOrientation
gluQuadricNormals
gluQuadricTexture
gluQuadricCallback
gluCylinder
gluSphere
gluDisk
gluPartialDisk
gluNewNurbsRenderer
gluDeleteNurbsRenderer
gluLoadSamplingMatrices
gluNurbsProperty
gluGetNurbsProperty
gluBeginCurve
gluEndCurve
gluNurbsCurve
gluBeginSurface
gluEndSurface
gluNurbsSurface
gluBeginTrim
gluEndTrim
gluPwlCurve
gluNurbsCallback
gluNewTess
gluDeleteTess
; gluTessBeginPolygon
; gluTessBeginContour
gluTessVertex
; gluTessEndContour
; gluTessEndPolygon
; gluTessProperty
; gluTessNormal
gluTessCallback
; gluGetTessProperty
gluBeginPolygon
gluNextContour
gluEndPolygon
gluGetString

View File

@@ -1,5 +1,6 @@
# Makefile for GLU for VMS
# Makefile for core library for VMS
# contributed by Jouk Jansen joukj@crys.chem.uva.nl
# Last revision : 3 May 1999
.first
define gl [-.include.gl]
@@ -10,28 +11,74 @@
VPATH = RCS
INCDIR = $disk2:[-.include]
INCDIR = [-.include]
LIBDIR = [-.lib]
CFLAGS = /include=$(INCDIR)/define=(FBIND=1)
CFLAGS = /include=($(INCDIR),[])/define=(FBIND=1)/name=(as_is,short)
SOURCES = glu.c mipmap.c nurbs.c nurbscrv.c nurbssrf.c nurbsutl.c \
project.c quadric.c tess.c tess_fist.c tess_hash.c tess_heap.c \
tess_winding.c tess_clip.c
CORE_SOURCES = aatriangle.c accum.c alpha.c alphabuf.c attrib.c \
bitmap.c blend.c buffers.c clip.c colortab.c context.c copypix.c depth.c \
dispatch.c \
dlist.c drawpix.c enable.c eval.c feedback.c fog.c \
get.c hash.c hint.c image.c imaging.c light.c lines.c logic.c masking.c matrix.c \
mem.c glapi.c glapinoop.c \
mmath.c pb.c pixel.c points.c polygon.c \
quads.c rastpos.c readpix.c rect.c scissor.c shade.c span.c \
stencil.c teximage.c texobj.c texstate.c texture.c translate.c triangle.c \
varray.c winpos.c vb.c vbcull.c vbfill.c vbrender.c vbxform.c xform.c \
zoom.c bbox.c cva.c vector.c vbindirect.c config.c enums.c extensions.c \
pipeline.c stages.c state.c vertices.c [.x86]x86.c
OBJECTS =glu.obj,mipmap.obj,nurbs.obj,nurbscrv.obj,nurbssrf.obj,nurbsutl.obj,\
project.obj,quadric.obj,tess.obj,tess_fist.obj,tess_hash.obj,\
tess_heap.obj,tess_winding.obj,tess_clip.obj
DRIVER_SOURCES = [.x]glxapi.c [.x]fakeglx.c [.x]xfonts.c \
[.x]xmesa1.c [.x]xmesa2.c [.x]xmesa3.c [.x]xmesa4.c \
[.osmesa]osmesa.c \
[.svga]svgamesa.c \
[.fx]fxapi.c [.fx]fxdd.c [.fx]fxddtex.c [.fx]fxvsetup.c [.fx]fxsetup.c \
[.fx]fxtrifuncs.c [.fx]fxclip.c [.fx]fxfastpath.c [.fx]fxpipeline.c\
[.fx]fxrender.c [.fx]fxtexman.c [.fx]fxddspan.c [.fx]fxcva.c [.fx]fxsanity.c\
[.fx]fxglidew.c
ASM_SOURCES =
OBJECTS =aatriangle.obj,\
accum.obj,alpha.obj,alphabuf.obj,attrib.obj,\
bitmap.obj,blend.obj,buffers.obj,clip.obj,colortab.obj,context.obj,copypix.obj,depth.obj,\
dlist.obj,drawpix.obj,enable.obj,eval.obj,feedback.obj,fog.obj
OBJECTS3=get.obj,hash.obj,hint.obj,image.obj,light.obj,lines.obj,logic.obj,masking.obj,\
matrix.obj,glapi.obj,glapinoop.obj,dispatch.obj,imaging.obj,mem.obj,\
mmath.obj,pb.obj,pixel.obj,points.obj
OBJECTS7=polygon.obj,\
quads.obj,rastpos.obj,readpix.obj,rect.obj,scissor.obj,shade.obj,span.obj,\
pixeltex.obj
OBJECTS4=stencil.obj,teximage.obj,texobj.obj,texstate.obj,texture.obj,translate.obj,\
triangle.obj,varray.obj,winpos.obj,vb.obj,vbcull.obj,vbfill.obj,vbrender.obj
OBJECTS6=vbxform.obj,xform.obj,zoom.obj,bbox.obj,cva.obj,vector.obj,vbindirect.obj,\
config.obj,enums.obj,extensions.obj,pipeline.obj,stages.obj,state.obj,\
vertices.obj,[.x86]x86.obj
OBJECTS2=[.x]glxapi.obj,[.x]fakeglx.obj,[.x]xfonts.obj,\
[.x]xmesa1.obj,[.x]xmesa2.obj,[.x]xmesa3.obj,[.x]xmesa4.obj,\
[.osmesa]osmesa.obj,\
[.svga]svgamesa.obj
OBJECTS5=[.fx]fxapi.obj,[.fx]fxdd.obj,[.fx]fxddtex.obj,[.fx]fxvsetup.obj,\
[.fx]fxsetup.obj,[.fx]fxclip.obj,[.fx]fxfastpath.obj,[.fx]fxpipeline.obj
OBJECTS8=[.fx]fxtrifuncs.obj,[.fx]fxsanity.obj,[.fx]fxglidew.obj,\
[.fx]fxrender.obj,[.fx]fxtexman.obj,[.fx]fxddspan.obj,[.fx]fxcva.obj
##### RULES #####
VERSION=MesaGlu V3.1
VERSION=Mesa V3.1
##### TARGETS #####
# Make the library:
$(LIBDIR)$(GLU_LIB) : $(OBJECTS)
# Make the library
$(LIBDIR)$(GL_LIB) : $(OBJECTS),$(OBJECTS2) $(OBJECTS3) $(OBJECTS4)\
$(OBJECTS5) $(OBJECTS8) $(OBJECTS7) $(OBJECTS6)
.ifdef SHARE
@ WRITE_ SYS$OUTPUT " generating mesagl1.opt"
@ OPEN_/WRITE FILE mesagl1.opt
@@ -41,7 +88,13 @@ $(LIBDIR)$(GLU_LIB) : $(OBJECTS)
@ WRITE_ FILE "IDENTIFICATION=""$(VERSION)"""
@ WRITE_ FILE "GSMATCH=LEQUAL,3,1
@ WRITE_ FILE "$(OBJECTS)"
@ WRITE_ FILE "[-.lib]libmesagl.exe/SHARE"
@ WRITE_ FILE "$(OBJECTS3)"
@ WRITE_ FILE "$(OBJECTS4)"
@ WRITE_ FILE "$(OBJECTS7)"
@ WRITE_ FILE "$(OBJECTS6)"
@ WRITE_ FILE "$(OBJECTS2)"
@ WRITE_ FILE "$(OBJECTS5)"
@ WRITE_ FILE "$(OBJECTS8)"
@ WRITE_ FILE "SYS$SHARE:DECW$XEXTLIBSHR/SHARE"
@ WRITE_ FILE "SYS$SHARE:DECW$XLIBSHR/SHARE"
@ CLOSE_ FILE
@@ -49,16 +102,79 @@ $(LIBDIR)$(GLU_LIB) : $(OBJECTS)
@ LINK_/NODEB/NOSHARE/NOEXE/MAP=mesagl.map/FULL mesagl1.opt/OPT
@ WRITE_ SYS$OUTPUT " analyzing mesagl.map ..."
@ @[-.vms]ANALYZE_MAP.COM mesagl.map mesagl.opt
@ WRITE_ SYS$OUTPUT " linking $(GLU_LIB) ..."
@ LINK_/noinform/NODEB/SHARE=$(GLU_LIB)/MAP=mesagl.map/FULL mesagl1.opt/opt,mesagl.opt/opt
@ WRITE_ SYS$OUTPUT " linking $(GL_LIB) ..."
@ LINK_/NODEB/SHARE=$(GL_LIB)/MAP=mesagl.map/FULL mesagl1.opt/opt,mesagl.opt/opt
.else
@ $(MAKELIB) $(GLU_LIB) $(OBJECTS)
@ $(MAKELIB) $(GL_LIB) $(OBJECTS)
@ library $(GL_LIB) $(OBJECTS2)
@ library $(GL_LIB) $(OBJECTS3)
@ library $(GL_LIB) $(OBJECTS4)
@ library $(GL_LIB) $(OBJECTS5)
@ library $(GL_LIB) $(OBJECTS8)
@ library $(GL_LIB) $(OBJECTS7)
@ library $(GL_LIB) $(OBJECTS6)
.endif
@ rename $(GLU_LIB)* $(LIBDIR)
@ rename $(GL_LIB)* $(LIBDIR)
clean :
delete *.obj;*
purge
delete *.obj;*
include mms_depend.
aatriangle.obj : aatriangle.c
triangle.obj : triangle.c
pixeltex.obj : pixeltex.c
[.x86]x86.obj : [.x86]x86.c
$(CC) $(CFLAGS) /obj=[.x86]x86.obj [.x86]x86.c
[.x]glxapi.obj : [.x]glxapi.c
$(CC) $(CFLAGS) /obj=[.x]glxapi.obj [.x]glxapi.c
[.x]fakeglx.obj : [.x]fakeglx.c
$(CC) $(CFLAGS) /obj=[.x]fakeglx.obj [.x]fakeglx.c
[.x]xfonts.obj : [.x]xfonts.c
$(CC) $(CFLAGS) /obj=[.x]xfonts.obj [.x]xfonts.c
[.x]xmesa1.obj : [.x]xmesa1.c
$(CC) $(CFLAGS) /obj=[.x]xmesa1.obj [.x]xmesa1.c
[.x]xmesa2.obj : [.x]xmesa2.c
$(CC) $(CFLAGS) /obj=[.x]xmesa2.obj [.x]xmesa2.c
[.x]xmesa3.obj : [.x]xmesa3.c
$(CC) $(CFLAGS) /obj=[.x]xmesa3.obj [.x]xmesa3.c
[.x]xmesa4.obj : [.x]xmesa4.c
$(CC) $(CFLAGS) /obj=[.x]xmesa4.obj [.x]xmesa4.c
[.osmesa]osmesa.obj : [.osmesa]osmesa.c
$(CC) $(CFLAGS) /obj=[.osmesa]osmesa.obj [.osmesa]osmesa.c
[.svga]svgamesa.obj : [.svga]svgamesa.c
$(CC) $(CFLAGS) /obj=[.svga]svgamesa.obj [.svga]svgamesa.c
[.fx]fxapi.obj : [.fx]fxapi.c
$(CC) $(CFLAGS) /obj=[.fx]fxapi.obj [.fx]fxapi.c
[.fx]fxclip.obj : [.fx]fxclip.c
$(CC) $(CFLAGS) /obj=[.fx]fxclip.obj [.fx]fxclip.c
[.fx]fxcva.obj : [.fx]fxcva.c
$(CC) $(CFLAGS) /obj=[.fx]fxcva.obj [.fx]fxcva.c
[.fx]fxdd.obj : [.fx]fxdd.c
$(CC) $(CFLAGS) /obj=[.fx]fxdd.obj [.fx]fxdd.c
[.fx]fxddtex.obj : [.fx]fxddtex.c
$(CC) $(CFLAGS) /obj=[.fx]fxddtex.obj [.fx]fxddtex.c
[.fx]fxfastpath.obj : [.fx]fxfastpath.c
$(CC) $(CFLAGS) /obj=[.fx]fxfastpath.obj [.fx]fxfastpath.c
[.fx]fxpipeline.obj : [.fx]fxpipeline.c
$(CC) $(CFLAGS) /obj=[.fx]fxpipeline.obj [.fx]fxpipeline.c
[.fx]fxsanity.obj : [.fx]fxsanity.c
$(CC) $(CFLAGS) /obj=[.fx]fxsanity.obj [.fx]fxsanity.c
[.fx]fxvsetup.obj : [.fx]fxvsetup.c
$(CC) $(CFLAGS) /obj=[.fx]fxvsetup.obj [.fx]fxvsetup.c
[.fx]fxsetup.obj : [.fx]fxsetup.c
$(CC) $(CFLAGS) /obj=[.fx]fxsetup.obj [.fx]fxsetup.c
[.fx]fxtrifuncs.obj : [.fx]fxtrifuncs.c
$(CC) $(CFLAGS) /obj=[.fx]fxtrifuncs.obj [.fx]fxtrifuncs.c
[.fx]fxrender.obj : [.fx]fxrender.c
$(CC) $(CFLAGS) /obj=[.fx]fxrender.obj [.fx]fxrender.c
[.fx]fxtexman.obj : [.fx]fxtexman.c
$(CC) $(CFLAGS) /obj=[.fx]fxtexman.obj [.fx]fxtexman.c
[.fx]fxddspan.obj : [.fx]fxddspan.c
$(CC) $(CFLAGS) /obj=[.fx]fxddspan.obj [.fx]fxddspan.c
[.fx]fxglidew.obj : [.fx]fxglidew.c
$(CC) $(CFLAGS) /obj=[.fx]fxglidew.obj [.fx]fxglidew.c
.include mms_depend.

View File

@@ -1,8 +1,8 @@
/* $Id: glu.c,v 1.21 2000/07/18 01:13:28 brianp Exp $ */
/* $Id: glu.c,v 1.21.2.2 2001/01/24 04:49:27 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
* Version: 3.4
* Copyright (C) 1995-2000 Brian Paul
*
* This library is free software; you can redistribute it and/or
@@ -302,7 +302,7 @@ const GLubyte *GLAPIENTRY
gluGetString(GLenum name)
{
static char *extensions = "GL_EXT_abgr";
static char *version = "1.1 Mesa 3.3";
static char *version = "1.1 Mesa 3.4.1";
switch (name) {
case GLU_EXTENSIONS:

View File

@@ -1,8 +1,8 @@
/* $Id: mipmap.c,v 1.7 2000/07/11 14:11:04 brianp Exp $ */
/* $Id: mipmap.c,v 1.7.4.1 2000/10/26 21:48:37 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
* Version: 3.4
* Copyright (C) 1995-2000 Brian Paul
*
* This library is free software; you can redistribute it and/or
@@ -576,6 +576,7 @@ bytes_per_pixel(GLenum format, GLenum type)
n = 2;
break;
case GL_RGB:
case GL_BGR:
n = 3;
break;
case GL_RGBA:

View File

@@ -1,4 +1,4 @@
/* $Id: nurbscrv.c,v 1.2 2000/07/11 14:11:04 brianp Exp $ */
/* $Id: nurbscrv.c,v 1.2.4.1 2000/11/10 17:17:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -359,7 +359,7 @@ do_nurbs_curve(GLUnurbsObj * nobj)
GLint n_ctrl;
GLfloat *new_geom_ctrl, *new_color_ctrl, *new_normal_ctrl,
*new_texture_ctrl;
GLfloat *geom_ctrl, *color_ctrl, *normal_ctrl, *texture_ctrl;
GLfloat *geom_ctrl = 0, *color_ctrl = 0, *normal_ctrl = 0, *texture_ctrl = 0;
GLint *factors;
GLint i, j;
GLint geom_dim, color_dim = 0, normal_dim = 0, texture_dim = 0;

View File

@@ -1,4 +1,4 @@
/* $Id: nurbsutl.c,v 1.3 2000/07/11 20:39:00 brianp Exp $ */
/* $Id: nurbsutl.c,v 1.3.4.1 2000/11/10 17:17:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -130,7 +130,7 @@ set_new_t_min_t_max(knot_str_type * geom_knot, knot_str_type * color_knot,
knot_str_type * normal_knot, knot_str_type * texture_knot,
GLfloat maximal_min_knot, GLfloat minimal_max_knot)
{
GLuint t_min, t_max, cnt;
GLuint t_min = 0, t_max = 0, cnt = 0;
if (minimal_max_knot - maximal_min_knot < EPSILON) {
/* knot common range empty */

View File

@@ -1,4 +1,4 @@
/* $Id: polytest.c,v 1.3 2000/07/11 14:11:04 brianp Exp $ */
/* $Id: polytest.c,v 1.3.4.1 2000/11/10 17:17:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -786,7 +786,7 @@ cut_out_hole(GLUtriangulatorObj * tobj,
tess_vertex *v1, *v2, *tmp_vertex;
GLuint vertex1_cnt, vertex2_cnt, tmp_vertex_cnt;
GLuint i, j, k;
GLenum test;
GLenum test = 0;
/* find an edge connecting contour and hole not intersecting any other */
/* edge belonging to either the contour or any of the other holes */

View File

@@ -1,5 +1,6 @@
# Makefile for GLUT for VMS
# Makefile for core library for VMS
# contributed by Jouk Jansen joukj@crys.chem.uva.nl
# Last revision : 3 May 1999
.first
define gl [-.include.gl]
@@ -7,122 +8,77 @@
.include [-]mms-config.
##### MACROS #####
GLUT_MAJOR = 3
GLUT_MINOR = 7
VPATH = RCS
INCDIR = [-.include]
LIBDIR = [-.lib]
CFLAGS = /nowarn/include=$(INCDIR)/prefix=all
CFLAGS = /include=($(INCDIR),[])/define=(FBIND=1)/name=(as_is,short)
SOURCES = \
glut_8x13.c \
glut_9x15.c \
glut_bitmap.c \
glut_bwidth.c \
glut_cindex.c \
glut_cmap.c \
glut_cursor.c \
glut_dials.c \
glut_dstr.c \
glut_event.c \
glut_ext.c \
glut_fullscrn.c \
glut_gamemode.c \
glut_get.c \
glut_glxext.c \
glut_hel10.c \
glut_hel12.c \
glut_hel18.c \
glut_init.c \
glut_input.c \
glut_joy.c \
glut_key.c \
glut_keyctrl.c \
glut_keyup.c \
glut_menu.c \
glut_menu2.c \
glut_mesa.c \
glut_modifier.c \
glut_mroman.c \
glut_overlay.c \
glut_roman.c \
glut_shapes.c \
glut_space.c \
glut_stroke.c \
glut_swap.c \
glut_swidth.c \
glut_tablet.c \
glut_teapot.c \
glut_tr10.c \
glut_tr24.c \
glut_util.c \
glut_vidresize.c \
glut_warp.c \
glut_win.c \
glut_winmisc.c \
layerutil.c
CORE_SOURCES = aatriangle.c accum.c alpha.c alphabuf.c attrib.c \
bitmap.c blend.c buffers.c clip.c colortab.c context.c copypix.c depth.c \
dispatch.c \
dlist.c drawpix.c enable.c eval.c feedback.c fog.c \
get.c hash.c hint.c image.c imaging.c light.c lines.c logic.c masking.c matrix.c \
mem.c glapi.c glapinoop.c \
mmath.c pb.c pixel.c points.c polygon.c \
quads.c rastpos.c readpix.c rect.c scissor.c shade.c span.c \
stencil.c teximage.c texobj.c texstate.c texture.c translate.c triangle.c \
varray.c winpos.c vb.c vbcull.c vbfill.c vbrender.c vbxform.c xform.c \
zoom.c bbox.c cva.c vector.c vbindirect.c config.c enums.c extensions.c \
pipeline.c stages.c state.c vertices.c [.x86]x86.c
OBJECTS = \
glut_8x13.obj,\
glut_9x15.obj,\
glut_bitmap.obj,\
glut_bwidth.obj,\
glut_cindex.obj,\
glut_cmap.obj,\
glut_cursor.obj,\
glut_dials.obj,\
glut_dstr.obj,\
glut_event.obj,\
glut_ext.obj,\
glut_fullscrn.obj,\
glut_gamemode.obj
DRIVER_SOURCES = [.x]glxapi.c [.x]fakeglx.c [.x]xfonts.c \
[.x]xmesa1.c [.x]xmesa2.c [.x]xmesa3.c [.x]xmesa4.c \
[.osmesa]osmesa.c \
[.svga]svgamesa.c \
[.fx]fxapi.c [.fx]fxdd.c [.fx]fxddtex.c [.fx]fxvsetup.c [.fx]fxsetup.c \
[.fx]fxtrifuncs.c [.fx]fxclip.c [.fx]fxfastpath.c [.fx]fxpipeline.c\
[.fx]fxrender.c [.fx]fxtexman.c [.fx]fxddspan.c [.fx]fxcva.c [.fx]fxsanity.c\
[.fx]fxglidew.c
OBJECTS1=glut_get.obj,\
glut_glxext.obj,\
glut_hel10.obj,\
glut_hel12.obj,\
glut_hel18.obj,\
glut_init.obj,\
glut_input.obj,\
glut_joy.obj,\
glut_key.obj,\
glut_keyctrl.obj,\
glut_keyup.obj,\
glut_menu.obj,\
glut_menu2.obj,\
glut_mesa.obj,\
glut_modifier.obj
ASM_SOURCES =
OBJECTS2=glut_mroman.obj,\
glut_overlay.obj,\
glut_roman.obj,\
glut_shapes.obj,\
glut_space.obj,\
glut_stroke.obj,\
glut_swap.obj,\
glut_swidth.obj,\
glut_tablet.obj,\
glut_teapot.obj,\
glut_tr10.obj,\
glut_tr24.obj,\
glut_util.obj,\
glut_vidresize.obj
OBJECTS =aatriangle.obj,\
accum.obj,alpha.obj,alphabuf.obj,attrib.obj,\
bitmap.obj,blend.obj,buffers.obj,clip.obj,colortab.obj,context.obj,copypix.obj,depth.obj,\
dlist.obj,drawpix.obj,enable.obj,eval.obj,feedback.obj,fog.obj
OBJECTS3=glut_warp.obj,\
glut_win.obj,\
glut_winmisc.obj,\
layerutil.obj
OBJECTS3=get.obj,hash.obj,hint.obj,image.obj,light.obj,lines.obj,logic.obj,masking.obj,\
matrix.obj,glapi.obj,glapinoop.obj,dispatch.obj,imaging.obj,mem.obj,\
mmath.obj,pb.obj,pixel.obj,points.obj
OBJECTS7=polygon.obj,\
quads.obj,rastpos.obj,readpix.obj,rect.obj,scissor.obj,shade.obj,span.obj,\
pixeltex.obj
OBJECTS4=stencil.obj,teximage.obj,texobj.obj,texstate.obj,texture.obj,translate.obj,\
triangle.obj,varray.obj,winpos.obj,vb.obj,vbcull.obj,vbfill.obj,vbrender.obj
OBJECTS6=vbxform.obj,xform.obj,zoom.obj,bbox.obj,cva.obj,vector.obj,vbindirect.obj,\
config.obj,enums.obj,extensions.obj,pipeline.obj,stages.obj,state.obj,\
vertices.obj,[.x86]x86.obj
OBJECTS2=[.x]glxapi.obj,[.x]fakeglx.obj,[.x]xfonts.obj,\
[.x]xmesa1.obj,[.x]xmesa2.obj,[.x]xmesa3.obj,[.x]xmesa4.obj,\
[.osmesa]osmesa.obj,\
[.svga]svgamesa.obj
OBJECTS5=[.fx]fxapi.obj,[.fx]fxdd.obj,[.fx]fxddtex.obj,[.fx]fxvsetup.obj,\
[.fx]fxsetup.obj,[.fx]fxclip.obj,[.fx]fxfastpath.obj,[.fx]fxpipeline.obj
OBJECTS8=[.fx]fxtrifuncs.obj,[.fx]fxsanity.obj,[.fx]fxglidew.obj,\
[.fx]fxrender.obj,[.fx]fxtexman.obj,[.fx]fxddspan.obj,[.fx]fxcva.obj
##### RULES #####
VERSION=Glut V3.7
VERSION=Mesa V3.1
##### TARGETS #####
# Make the library:
$(LIBDIR)$(GLUT_LIB) : $(OBJECTS) $(OBJECTS1) $(OBJECTS2) $(OBJECTS3)
# Make the library
$(LIBDIR)$(GL_LIB) : $(OBJECTS),$(OBJECTS2) $(OBJECTS3) $(OBJECTS4)\
$(OBJECTS5) $(OBJECTS8) $(OBJECTS7) $(OBJECTS6)
.ifdef SHARE
@ WRITE_ SYS$OUTPUT " generating mesagl1.opt"
@ OPEN_/WRITE FILE mesagl1.opt
@@ -130,14 +86,15 @@ $(LIBDIR)$(GLUT_LIB) : $(OBJECTS) $(OBJECTS1) $(OBJECTS2) $(OBJECTS3)
@ WRITE_ FILE "! mesagl1.opt generated by DESCRIP.$(MMS_EXT)"
@ WRITE_ FILE "!"
@ WRITE_ FILE "IDENTIFICATION=""$(VERSION)"""
@ WRITE_ FILE "GSMATCH=LEQUAL,3,7
@ WRITE_ FILE "GSMATCH=LEQUAL,3,1
@ WRITE_ FILE "$(OBJECTS)"
@ WRITE_ FILE "$(OBJECTS1)"
@ WRITE_ FILE "$(OBJECTS2)"
@ WRITE_ FILE "$(OBJECTS3)"
@ WRITE_ FILE "[-.lib]libmesaglu.exe/SHARE"
@ WRITE_ FILE "[-.lib]libmesagl.exe/SHARE"
@ write file "sys$library:decw$xmulibshr.exe/share"
@ WRITE_ FILE "$(OBJECTS4)"
@ WRITE_ FILE "$(OBJECTS7)"
@ WRITE_ FILE "$(OBJECTS6)"
@ WRITE_ FILE "$(OBJECTS2)"
@ WRITE_ FILE "$(OBJECTS5)"
@ WRITE_ FILE "$(OBJECTS8)"
@ WRITE_ FILE "SYS$SHARE:DECW$XEXTLIBSHR/SHARE"
@ WRITE_ FILE "SYS$SHARE:DECW$XLIBSHR/SHARE"
@ CLOSE_ FILE
@@ -145,18 +102,79 @@ $(LIBDIR)$(GLUT_LIB) : $(OBJECTS) $(OBJECTS1) $(OBJECTS2) $(OBJECTS3)
@ LINK_/NODEB/NOSHARE/NOEXE/MAP=mesagl.map/FULL mesagl1.opt/OPT
@ WRITE_ SYS$OUTPUT " analyzing mesagl.map ..."
@ @[-.vms]ANALYZE_MAP.COM mesagl.map mesagl.opt
@ WRITE_ SYS$OUTPUT " linking $(GLUT_LIB) ..."
@ LINK_/NODEB/SHARE=$(GLUT_LIB)/MAP=mesagl.map/FULL mesagl1.opt/opt,mesagl.opt/opt
@ WRITE_ SYS$OUTPUT " linking $(GL_LIB) ..."
@ LINK_/NODEB/SHARE=$(GL_LIB)/MAP=mesagl.map/FULL mesagl1.opt/opt,mesagl.opt/opt
.else
@ $(MAKELIB) $(GLUT_LIB) $(OBJECTS)
@ library $(GLUT_LIB) $(OBJECTS1)
@ library $(GLUT_LIB) $(OBJECTS2)
@ library $(GLUT_LIB) $(OBJECTS3)
@ $(MAKELIB) $(GL_LIB) $(OBJECTS)
@ library $(GL_LIB) $(OBJECTS2)
@ library $(GL_LIB) $(OBJECTS3)
@ library $(GL_LIB) $(OBJECTS4)
@ library $(GL_LIB) $(OBJECTS5)
@ library $(GL_LIB) $(OBJECTS8)
@ library $(GL_LIB) $(OBJECTS7)
@ library $(GL_LIB) $(OBJECTS6)
.endif
@ rename $(GLUT_LIB)* $(LIBDIR)
@ rename $(GL_LIB)* $(LIBDIR)
clean :
delete *.obj;*
purge
delete *.obj;*
include mms_depend.
aatriangle.obj : aatriangle.c
triangle.obj : triangle.c
pixeltex.obj : pixeltex.c
[.x86]x86.obj : [.x86]x86.c
$(CC) $(CFLAGS) /obj=[.x86]x86.obj [.x86]x86.c
[.x]glxapi.obj : [.x]glxapi.c
$(CC) $(CFLAGS) /obj=[.x]glxapi.obj [.x]glxapi.c
[.x]fakeglx.obj : [.x]fakeglx.c
$(CC) $(CFLAGS) /obj=[.x]fakeglx.obj [.x]fakeglx.c
[.x]xfonts.obj : [.x]xfonts.c
$(CC) $(CFLAGS) /obj=[.x]xfonts.obj [.x]xfonts.c
[.x]xmesa1.obj : [.x]xmesa1.c
$(CC) $(CFLAGS) /obj=[.x]xmesa1.obj [.x]xmesa1.c
[.x]xmesa2.obj : [.x]xmesa2.c
$(CC) $(CFLAGS) /obj=[.x]xmesa2.obj [.x]xmesa2.c
[.x]xmesa3.obj : [.x]xmesa3.c
$(CC) $(CFLAGS) /obj=[.x]xmesa3.obj [.x]xmesa3.c
[.x]xmesa4.obj : [.x]xmesa4.c
$(CC) $(CFLAGS) /obj=[.x]xmesa4.obj [.x]xmesa4.c
[.osmesa]osmesa.obj : [.osmesa]osmesa.c
$(CC) $(CFLAGS) /obj=[.osmesa]osmesa.obj [.osmesa]osmesa.c
[.svga]svgamesa.obj : [.svga]svgamesa.c
$(CC) $(CFLAGS) /obj=[.svga]svgamesa.obj [.svga]svgamesa.c
[.fx]fxapi.obj : [.fx]fxapi.c
$(CC) $(CFLAGS) /obj=[.fx]fxapi.obj [.fx]fxapi.c
[.fx]fxclip.obj : [.fx]fxclip.c
$(CC) $(CFLAGS) /obj=[.fx]fxclip.obj [.fx]fxclip.c
[.fx]fxcva.obj : [.fx]fxcva.c
$(CC) $(CFLAGS) /obj=[.fx]fxcva.obj [.fx]fxcva.c
[.fx]fxdd.obj : [.fx]fxdd.c
$(CC) $(CFLAGS) /obj=[.fx]fxdd.obj [.fx]fxdd.c
[.fx]fxddtex.obj : [.fx]fxddtex.c
$(CC) $(CFLAGS) /obj=[.fx]fxddtex.obj [.fx]fxddtex.c
[.fx]fxfastpath.obj : [.fx]fxfastpath.c
$(CC) $(CFLAGS) /obj=[.fx]fxfastpath.obj [.fx]fxfastpath.c
[.fx]fxpipeline.obj : [.fx]fxpipeline.c
$(CC) $(CFLAGS) /obj=[.fx]fxpipeline.obj [.fx]fxpipeline.c
[.fx]fxsanity.obj : [.fx]fxsanity.c
$(CC) $(CFLAGS) /obj=[.fx]fxsanity.obj [.fx]fxsanity.c
[.fx]fxvsetup.obj : [.fx]fxvsetup.c
$(CC) $(CFLAGS) /obj=[.fx]fxvsetup.obj [.fx]fxvsetup.c
[.fx]fxsetup.obj : [.fx]fxsetup.c
$(CC) $(CFLAGS) /obj=[.fx]fxsetup.obj [.fx]fxsetup.c
[.fx]fxtrifuncs.obj : [.fx]fxtrifuncs.c
$(CC) $(CFLAGS) /obj=[.fx]fxtrifuncs.obj [.fx]fxtrifuncs.c
[.fx]fxrender.obj : [.fx]fxrender.c
$(CC) $(CFLAGS) /obj=[.fx]fxrender.obj [.fx]fxrender.c
[.fx]fxtexman.obj : [.fx]fxtexman.c
$(CC) $(CFLAGS) /obj=[.fx]fxtexman.obj [.fx]fxtexman.c
[.fx]fxddspan.obj : [.fx]fxddspan.c
$(CC) $(CFLAGS) /obj=[.fx]fxddspan.obj [.fx]fxddspan.c
[.fx]fxglidew.obj : [.fx]fxglidew.c
$(CC) $(CFLAGS) /obj=[.fx]fxglidew.obj [.fx]fxglidew.c
.include mms_depend.

View File

@@ -118,7 +118,7 @@ void
__glutSetCursor(GLUTwindow *window)
{
int cursor = window->cursor;
Cursor xcursor;
Cursor xcursor = 0;
if (cursor >= 0 &&
cursor < sizeof(cursorTable) / sizeof(cursorTable[0])) {

View File

@@ -630,7 +630,7 @@ findMatch(FrameBufferMode * fbmodes, int nfbmodes,
{
FrameBufferMode *found;
int *bestScore, *thisScore;
int i, j, numok, result, worse, better;
int i, j, numok, result = 0, worse, better;
found = NULL;
numok = 1; /* "num" capability is indexed from 1,
@@ -760,7 +760,7 @@ parseCriteria(char *word, Criterion * criterion, int *mask,
Bool * allowDoubleAsSingle)
{
char *cstr, *vstr, *response;
int comparator, value;
int comparator, value = 0;
int rgb, rgba, acc, acca, count, i;
cstr = strpbrk(word, "=><!~");

View File

@@ -158,7 +158,7 @@ findMatch(DisplayMode * dmodes, int ndmodes,
{
DisplayMode *found;
int *bestScore, *thisScore;
int i, j, numok, result, worse, better;
int i, j, numok, result = 0, worse, better;
found = NULL;
numok = 1; /* "num" capability is indexed from 1,
@@ -382,7 +382,7 @@ static int
parseCriteria(char *word, Criterion * criterion)
{
char *cstr, *vstr, *response;
int comparator, value;
int comparator, value = 0;
cstr = strpbrk(word, "=><!~");
if (cstr) {

View File

@@ -311,7 +311,7 @@ probeDevices(void)
XButtonInfoPtr b;
XValuatorInfoPtr v;
XAxisInfoPtr a;
int num_dev, btns, dials;
int num_dev = 0, btns = 0, dials = 0;
int i, j, k;
#endif /* !_WIN32 */

View File

@@ -99,8 +99,8 @@ ifSunCreator(void)
{
char *xvendor, *glvendor, *renderer;
int isSunCreator = 0; /* Until proven that it is. */
int savedDisplayMode;
char *savedDisplayString;
int savedDisplayMode = 0;
char *savedDisplayString = 0;
GLUTwindow *window;
#define VENDOR_SUN "Sun Microsystems"
@@ -154,7 +154,7 @@ menuVisualSetup(void)
Bool presumablyMesa;
int layer, nVisuals, i, dummy;
unsigned long *placeHolders = NULL;
int numPlaceHolders;
int numPlaceHolders = 0;
Bool allocateHigh;
allocateHigh = ifSunCreator();

View File

@@ -1511,7 +1511,7 @@ static void SetRenderStates( GLcontext *ctx )
/*================================================*/
/* Check too see if there are new TEXTURE states. */
/*================================================*/
if ( ctx->Texture.Enabled )
if ( ctx->Texture.ReallyEnabled )
{
switch( ctx->Texture.Set[ctx->Texture.CurrentSet].EnvMode )
{
@@ -1871,9 +1871,9 @@ static void DebugRenderStates( GLcontext *ctx, BOOL bForce )
/*================================================*/
/* Check too see if there are new TEXTURE states. */
/*================================================*/
if ( texture != ctx->Texture.Enabled )
if ( texture != ctx->Texture.ReallyEnabled )
{
texture = ctx->Texture.Enabled;
texture = ctx->Texture.ReallyEnabled;
DPF(( 0, "\tTexture\t\t%s", (texture) ? "ENABLED" : "--------" ));
}

View File

@@ -389,7 +389,7 @@ triangle_func ggiGetTriangleFunc(GLcontext *ctx)
if (ctx->Stencil.Enabled) return NULL;
if (ctx->Polygon.SmoothFlag) return NULL;
if (ctx->Polygon.StippleFlag) return NULL;
if (ctx->Texture.Enabled) return NULL;
if (ctx->Texture.ReallyEnabled) return NULL;
if (ctx->Light.ShadeModel==GL_SMOOTH) return NULL;
if (ctx->Depth.Test && ctx->Depth.Func != GL_LESS) return NULL;

View File

@@ -1,4 +1,4 @@
/* $Id: fbdev_mode.c,v 1.4 2000/01/07 08:34:44 jtaylor Exp $
/* $Id: fbdev_mode.c,v 1.4.4.1 2000/11/15 10:27:44 jtaylor Exp $
******************************************************************************
display-fbdev-mesa
@@ -80,7 +80,7 @@ static int do_setmode(ggi_visual *vis)
priv->have_accel = 0;
for (id = 1; GGIMesa_fbdev_getapi(vis, id, libname, libargs) == 0; id++)
{
if (_ggiOpenDL(vis, libname, libargs, NULL) == NULL)
if (_ggiOpenDL(vis, libname, libargs, NULL) == 0)
{
fprintf(stderr, "display-fbdev-mesa: Error opening the "
"%s (%s) library.\n", libname, libargs);
@@ -91,7 +91,7 @@ static int do_setmode(ggi_visual *vis)
}
if (priv->oldpriv->accel &&
_ggiOpenDL(vis, priv->accel, NULL, NULL) != NULL) {
_ggiOpenDL(vis, priv->accel, NULL, NULL) != 0) {
priv->have_accel = 1;
}
else

View File

@@ -14,7 +14,7 @@ struct fbdev_priv_mesa
char *accel;
int have_accel;
void *accelpriv;
fbdev_hook *oldpriv; /* Hooks back to the LibGGI fbdev target's private data */
ggi_fbdev_priv *oldpriv; /* Hooks back to the LibGGI fbdev target's private data */
};
#endif /* _GGIMESA_DISPLAY_FBDEV_H */

View File

@@ -725,6 +725,8 @@ void GLAPIENTRY gl3DfxSetPaletteEXT(GLuint *pal)
static GrScreenResolution_t fxBestResolution(int width, int height, int aux)
{
static int resolutions[][5]={
{ 320, 200, GR_RESOLUTION_320x200, 2, 2 },
{ 320, 240, GR_RESOLUTION_320x240, 2, 2 },
{ 512, 384, GR_RESOLUTION_512x384, 2, 2 },
{ 640, 400, GR_RESOLUTION_640x400, 2, 2 },
{ 640, 480, GR_RESOLUTION_640x480, 2, 2 },
@@ -734,15 +736,15 @@ static GrScreenResolution_t fxBestResolution(int width, int height, int aux)
,{ 1024, 768, GR_RESOLUTION_1024x768, 8, 4 }
#endif
#ifdef GR_RESOLUTION_1280x1024
,{ 1024, 768, GR_RESOLUTION_1280x1024, 8, 8 }
,{ 1280, 1024, GR_RESOLUTION_1280x1024, 8, 8 }
#endif
#ifdef GR_RESOLUTION_1600x1200
,{ 1024, 768, GR_RESOLUTION_1600x1200, 16, 8 }
,{ 1600, 1200, GR_RESOLUTION_1600x1200, 16, 8 }
#endif
};
int NUM_RESOLUTIONS = sizeof(resolutions) / (sizeof(int)*5);
int i,fbmem;
GrScreenResolution_t lastvalidres=resolutions[1][2];
GrScreenResolution_t lastvalidres=resolutions[4][2];
fxQueryHardware();
@@ -943,7 +945,7 @@ fxMesaContext GLAPIENTRY fxMesaCreateContext(GLuint win,
fxMesa->haveDoubleBuffer=doubleBuffer;
fxMesa->haveAlphaBuffer=alphaBuffer;
fxMesa->haveGlobalPaletteTexture=GL_FALSE;
fxMesa->haveZBuffer=depthSize ? 1 : 0;
fxMesa->haveZBuffer=depthSize ? 16 : 0;
fxMesa->verbose=verbose;
fxMesa->board=glbCurrentBoard;

View File

@@ -274,6 +274,8 @@ static GLbitfield fxDDClear(GLcontext *ctx, GLbitfield mask, GLboolean all,
FX_grColorMask(FXTRUE, ctx->Color.ColorMask[ACOMP] && fxMesa->haveAlphaBuffer);
if (ctx->Color.DrawDestMask & FRONT_LEFT_BIT)
FX_grRenderBuffer(GR_BUFFER_FRONTBUFFER);
if (!ctx->Depth.Test || !ctx->Depth.Mask)
FX_grDepthMask(FXFALSE);
break;
default:
/* error */

View File

@@ -274,7 +274,7 @@ typedef struct {
} tfxMipMapLevel;
typedef struct tfxTexInfo_t {
struct tfxTexInfo *next;
struct tfxTexInfo_t *next;
struct gl_texture_object *tObj;
GLuint lastTimeUsed;

View File

@@ -1,21 +1,21 @@
/* $Id: osmesa.c,v 1.19 2000/06/27 21:42:14 brianp Exp $ */
/* $Id: osmesa.c,v 1.19.4.4 2001/02/08 23:51:27 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
@@ -103,7 +103,7 @@ OSMesaCreateContext( GLenum format, OSMesaContext sharelist )
OSMesaContext osmesa;
GLint rshift, gshift, bshift, ashift;
GLint rind, gind, bind;
GLint indexBits, alphaBits;
GLint indexBits, alphaBits = 0;
GLboolean rgbmode;
GLboolean swalpha;
GLuint i4 = 1;
@@ -227,6 +227,7 @@ OSMesaCreateContext( GLenum format, OSMesaContext sharelist )
gl_extensions_enable(&(osmesa->gl_ctx),"GL_HP_occlusion_test");
gl_extensions_enable(&(osmesa->gl_ctx), "GL_ARB_texture_cube_map");
gl_extensions_enable(&(osmesa->gl_ctx), "GL_EXT_texture_env_combine");
gl_extensions_enable(&(osmesa->gl_ctx), "GL_EXT_texture_env_dot3");
osmesa->gl_buffer = gl_create_framebuffer( osmesa->gl_visual,
osmesa->gl_visual->DepthBits > 0,
@@ -489,7 +490,10 @@ OSMesaGetDepthBuffer( OSMesaContext c, GLint *width, GLint *height,
else {
*width = c->gl_buffer->Width;
*height = c->gl_buffer->Height;
*bytesPerValue = sizeof(GLdepth);
if (c->gl_visual->DepthBits <= 16)
*bytesPerValue = sizeof(GLushort);
else
*bytesPerValue = sizeof(GLuint);
*buffer = c->gl_buffer->DepthBuffer;
return GL_TRUE;
}
@@ -1357,7 +1361,7 @@ static line_func choose_line_function( GLcontext *ctx )
OSMesaContext osmesa = (OSMesaContext) ctx;
if (ctx->Line.SmoothFlag) return NULL;
if (ctx->Texture.Enabled) return NULL;
if (ctx->Texture.ReallyEnabled) return NULL;
if (ctx->Light.ShadeModel!=GL_FLAT) return NULL;
if (ctx->Line.Width==1.0F
@@ -1543,7 +1547,7 @@ static triangle_func choose_triangle_function( GLcontext *ctx )
if (ctx->Polygon.SmoothFlag) return NULL;
if (ctx->Polygon.StippleFlag) return NULL;
if (ctx->Texture.Enabled) return NULL;
if (ctx->Texture.ReallyEnabled) return NULL;
if (ctx->RasterMask==DEPTH_BIT
&& ctx->Depth.Func==GL_LESS

View File

@@ -1,4 +1,4 @@
/* $Id: wgl.c,v 1.2 1999/09/19 09:59:20 tjump Exp $ */
/* $Id: wgl.c,v 1.2.6.1 2000/08/02 20:28:19 brianp Exp $ */
/*
* This library is free software; you can redistribute it and/or
@@ -30,8 +30,9 @@ extern "C" {
#endif
#include <windows.h>
#define GL_GLEXT_PROTOTYPES
#include <GL/gl.h>
#include <GL/glext.h>
//#include <GL/glu.h>
#ifdef __cplusplus
@@ -90,7 +91,7 @@ struct __extensions__ ext[] = {
{ (PROC)glGetColorTableParameterivEXT, "glGetColorTableParameterivEXT" },
{ (PROC)glPointParameterfEXT, "glPointParameterfEXT" },
{ (PROC)glPointParameterfvEXT, "glPointParameterfvEXT" },
{ (PROC)glBlendFuncSeparateINGR, "glBlendFuncSeparateINGR" },
{ (PROC)glBlendFuncSeparateEXT, "glBlendFuncSeparateEXT" },
{ (PROC)glLockArraysEXT, "glLockArraysEXT" },
{ (PROC)glUnlockArraysEXT, "glUnlockArraysEXT" }
};

View File

@@ -1,69 +1,20 @@
/* $Id: wmesa.c,v 1.3 2000/03/03 23:21:57 brianp Exp $ */
/* $Id: wmesa.c,v 1.3.4.3 2000/09/28 22:39:43 brianp Exp $ */
/*
* File name : wmesa.c
* Version : 2.3
*
* Display driver for Mesa 2.3 under
* Windows95 and WindowsNT
*
* Copyright (C) 1996- Li Wei
* Address : Institute of Artificial Intelligence
* : & Robotics
* : Xi'an Jiaotong University
* Email : liwei@aiar.xjtu.edu.cn
* Web page : http://sun.aiar.xjtu.edu.cn
*
* This file and its associations are partially borrowed from the
* Windows NT driver for Mesa 1.8 , written by Mark Leaming
* (mark@rsinc.com).
*/
/*
* $Log: wmesa.c,v $
* Revision 1.3 2000/03/03 23:21:57 brianp
* removed obsolete logicop function
* Windows (Win32) device driver for Mesa 3.4
*
* Revision 1.2 2000/02/17 20:52:02 brianp
* replaced renderer_string() with get_string() func
* Original author:
*
* Revision 1.1.1.1 1999/08/19 00:55:42 jtg
* Imported sources
*
* Revision 3.10 1999/06/15 01:35:06 brianp
* small change to wmSetPixel() from TWILMOT@cpr.fr
*
* Revision 3.9 1999/05/11 19:06:01 brianp
* fixed a few VB->Index bugs (mikec@ensoniq.com)
*
* Revision 3.8 1999/05/08 15:15:23 brianp
* various updates from mikec@ensoniq.com
*
* Revision 3.7 1999/04/01 01:27:34 brianp
* always flip Y coord in read_rgba_span()
*
* Revision 3.6 1999/03/28 21:17:27 brianp
* updated SetBuffer driver function
*
* Revision 3.5 1999/03/16 01:36:42 brianp
* patched dither() to check if Current is NULL, per xzhou@nyx.net
*
* Revision 3.4 1999/02/25 14:12:33 keithw
* Merged in kw3 patch
*
* Revision 3.3 1999/01/03 03:08:57 brianp
* Ted Jump's changes
*
* Revision 3.2 1998/08/29 00:26:01
* updated for Mesa 3.0 to accomodate EGCS-Mingw32 build
*
* Revision 3.1 1998/06/11 01:42:08 brianp
* updated for Mesa 3.0 device driver interface (but not tested)
*
* Revision 3.0 1998/06/11 01:18:25 brianp
* initial revision
* Copyright (C) 1996- Li Wei
* Address : Institute of Artificial Intelligence
* : & Robotics
* : Xi'an Jiaotong University
* Email : liwei@aiar.xjtu.edu.cn
* Web page : http://sun.aiar.xjtu.edu.cn
*
* This file and its associations are partially borrowed from the
* Windows NT driver for Mesa 1.8 , written by Mark Leaming
* (mark@rsinc.com).
*/
@@ -84,7 +35,7 @@
#include "depth.h"
#include "wmesadef.h"
#pragma warning ( disable : 4133 4761 )
#pragma warning ( disable : 4100 4133 4761 )
#ifdef PROFILE
// #include "profile.h"
@@ -430,9 +381,9 @@ static void clear_color( GLcontext* ctx, GLubyte r, GLubyte g, GLubyte b, GLubyt
*/
//static void clear(GLcontext* ctx,
// GLboolean all,GLint x, GLint y, GLint width, GLint height )
// TODO: I modified this function to match the prototype in dd.h. (swansma@geocities.com)
// dd.h does not explain what the return type is so I could not set this to the proper
// value.
// TODO: I modified this function to match the prototype in
// dd.h. (swansma@geocities.com)
static GLbitfield clear(GLcontext* ctx, GLbitfield mask,
GLboolean all, GLint x, GLint y, GLint width, GLint height)
{
@@ -599,7 +550,7 @@ static void dither( GLcontext* ctx, GLboolean enable )
static GLboolean set_buffer( GLcontext* ctx, GLenum mode )
static GLboolean set_draw_buffer( GLcontext* ctx, GLenum mode )
{
STARTPROFILE
/* TODO: this could be better */
@@ -609,7 +560,15 @@ static GLboolean set_buffer( GLcontext* ctx, GLenum mode )
else {
return GL_FALSE;
}
ENDPROFILE(set_buffer)
ENDPROFILE(set_draw_buffer)
}
static void set_read_buffer(GLcontext *ctx, GLframebuffer *colorBuffer,
GLenum buffer )
{
/* XXX todo */
return;
}
@@ -711,7 +670,7 @@ extern points_func choose_points_function( GLcontext* ctx )
{
STARTPROFILE
if (ctx->Point.Size==1.0 && !ctx->Point.SmoothFlag && ctx->RasterMask==0
&& !ctx->Texture.Enabled && ctx->Visual->RGBAflag) {
&& !ctx->Texture.ReallyEnabled && ctx->Visual->RGBAflag) {
ENDPROFILE(choose_points_function)
return fast_rgb_points;
}
@@ -769,7 +728,7 @@ static line_func choose_line_function( GLcontext* ctx )
STARTPROFILE
if (ctx->Line.Width==1.0 && !ctx->Line.SmoothFlag && !ctx->Line.StippleFlag
&& ctx->Light.ShadeModel==GL_FLAT && ctx->RasterMask==0
&& !ctx->Texture.Enabled && Current->rgb_flag) {
&& !ctx->Texture.ReallyEnabled && Current->rgb_flag) {
ENDPROFILE(choose_line_function)
return fast_flat_rgb_line;
}
@@ -1176,7 +1135,8 @@ void setup_DD_pointers( GLcontext* ctx )
ctx->Driver.Dither = dither;
ctx->Driver.SetBuffer = set_buffer;
ctx->Driver.SetDrawBuffer = set_draw_buffer;
ctx->Driver.SetReadBuffer = set_read_buffer;
ctx->Driver.GetBufferSize = buffer_size;
ctx->Driver.PointsFunc = choose_points_function(ctx);
@@ -1364,7 +1324,11 @@ WMesaContext WMesaCreateContext( HWND hWnd, HPALETTE* Pal,
return NULL;
}
c->gl_buffer = gl_create_framebuffer( c->gl_visual );
c->gl_buffer = gl_create_framebuffer( c->gl_visual,
c->gl_visual->DepthBits > 0,
c->gl_visual->StencilBits > 0,
c->gl_visual->AccumRedBits > 0,
c->gl_visual->AlphaBits > 0 );
if (!c->gl_buffer) {
gl_destroy_visual( c->gl_visual );
gl_destroy_context( c->gl_ctx );
@@ -2153,6 +2117,7 @@ static void smooth_8A8B8G8R_z_triangle( GLcontext *ctx,
{
WMesaContext wmesa = (WMesaContext) ctx->DriverCtx;
#define INTERP_Z 1
#define DEPTH_TYPE DEFAULT_SOFTWARE_DEPTH_TYPE
#define INTERP_RGB 1
#define PIXEL_ADDRESS(X,Y) PIXELADDR4(X,Y)
#define PIXEL_TYPE GLuint
@@ -2907,7 +2872,7 @@ static triangle_func choose_triangle_function( GLcontext *ctx )
int depth = wmesa->cColorBits;
if (ctx->Polygon.SmoothFlag) return NULL;
if (ctx->Texture.Enabled) return NULL;
if (ctx->Texture.ReallyEnabled) return NULL;
if (!wmesa->db_flag) return NULL;
/*if (wmesa->xm_buffer->buffer==XIMAGE)*/ {
if ( ctx->Light.ShadeModel==GL_SMOOTH

View File

@@ -458,7 +458,7 @@ extern points_func choose_points_function( GLcontext* ctx )
{
STARTPROFILE
if (ctx->Point.Size==1.0 && !ctx->Point.SmoothFlag && ctx->RasterMask==0
&& !ctx->Texture.Enabled && ctx->Visual->RGBAflag) {
&& !ctx->Texture.ReallyEnabled && ctx->Visual->RGBAflag) {
ENDPROFILE(choose_points_function)
return fast_rgb_points;
}
@@ -516,7 +516,7 @@ static line_func choose_line_function( GLcontext* ctx )
STARTPROFILE
if (ctx->Line.Width==1.0 && !ctx->Line.SmoothFlag && !ctx->Line.StippleFlag
&& ctx->Light.ShadeModel==GL_FLAT && ctx->RasterMask==0
&& !ctx->Texture.Enabled && Current->rgb_flag) {
&& !ctx->Texture.ReallyEnabled && Current->rgb_flag) {
ENDPROFILE(choose_line_function)
return fast_flat_rgb_line;
}
@@ -627,7 +627,7 @@ static triangle_func choose_triangle_function( GLcontext *ctx )
{
if (ctx->Polygon.SmoothFlag) return NULL;
if (ctx->Polygon.StippleFlag) return NULL;
if (ctx->Texture.Enabled) return NULL;
if (ctx->Texture.ReallyEnabled) return NULL;
if (ctx->RasterMask==DEPTH_BIT
&& ctx->Depth.Func==GL_LESS
@@ -698,7 +698,7 @@ static polygon_func choose_polygon_function( GLcontext* ctx )
STARTPROFILE
if (!ctx->Polygon.SmoothFlag && !ctx->Polygon.StippleFlag
&& ctx->Light.ShadeModel==GL_FLAT && ctx->RasterMask==0
&& !ctx->Texture.Enabled && Current->rgb_flag==GL_TRUE) {
&& !ctx->Texture.ReallyEnabled && Current->rgb_flag==GL_TRUE) {
ENDPROFILE(choose_polygon_function)
return fast_flat_rgb_polygon;
}

View File

@@ -1,8 +1,8 @@
/* $Id: fakeglx.c,v 1.34 2000/06/08 22:50:28 brianp Exp $ */
/* $Id: fakeglx.c,v 1.34.4.7 2001/01/24 04:49:27 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
* Version: 3.4
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
@@ -31,7 +31,7 @@
*
* Thanks to the contributors:
*
* Initial version: Philip Brown (philb@CSUA.Berkeley.EDU)
* Initial version: Philip Brown (phil@bolthole.com)
* Better glXGetConfig() support: Armin Liebchen (liebchen@asylum.cs.utah.edu)
* Further visual-handling refinements: Wolfram Gloger
* (wmglo@Dent.MED.Uni-Muenchen.DE).
@@ -65,7 +65,7 @@
#define SERVER_MINOR_VERSION 3
/* This is appended onto the glXGetClient/ServerString version strings. */
#define MESA_GLX_VERSION "Mesa 3.3"
#define MESA_GLX_VERSION "Mesa 3.4.1"
/* Who implemented this GLX? */
#define VENDOR "Brian Paul"
@@ -561,7 +561,7 @@ static XVisualInfo *choose_x_visual( Display *dpy, int screen,
int preferred_class )
{
XVisualInfo *vis;
int xclass, visclass;
int xclass, visclass = 0;
int depth;
if (rgba) {
@@ -858,7 +858,7 @@ Fake_glXChooseVisual( Display *dpy, int screen, int *list )
int *parselist;
XVisualInfo *vis;
int min_ci = 0;
int min_red=0, min_green=0, min_blue=0;
int min_red=0, min_green=0, min_blue=0, min_alpha=0;
GLboolean rgb_flag = GL_FALSE;
GLboolean alpha_flag = GL_FALSE;
GLboolean double_flag = GL_FALSE;
@@ -922,10 +922,8 @@ Fake_glXChooseVisual( Display *dpy, int screen, int *list )
break;
case GLX_ALPHA_SIZE:
parselist++;
{
GLint size = *parselist++;
alpha_flag = size>0 ? 1 : 0;
}
min_alpha = *parselist++;
alpha_flag = (min_alpha > 0);
break;
case GLX_DEPTH_SIZE:
parselist++;
@@ -1004,6 +1002,16 @@ Fake_glXChooseVisual( Display *dpy, int screen, int *list )
}
}
/* DEBUG
printf("glXChooseVisual:\n");
printf(" GLX_RED_SIZE = %d\n", min_red);
printf(" GLX_GREEN_SIZE = %d\n", min_green);
printf(" GLX_BLUE_SIZE = %d\n", min_blue);
printf(" GLX_ALPHA_SIZE = %d\n", min_alpha);
printf(" GLX_DEPTH_SIZE = %d\n", depth_size);
printf(" GLX_STENCIL_SIZE = %d\n", stencil_size);
*/
/*
* Since we're only simulating the GLX extension this function will never
* find any real GL visuals. Instead, all we can do is try to find an RGB
@@ -1050,15 +1058,32 @@ Fake_glXChooseVisual( Display *dpy, int screen, int *list )
if (vis) {
/* Note: we're not exactly obeying the glXChooseVisual rules here.
* When GLX_DEPTH_SIZE = 1 is specified we're supposed to choose the
* largest depth buffer size, which is 32bits/value. However, we
* largest depth buffer size, which is 32bits/value. Instead, we
* return 16 to maintain performance with earlier versions of Mesa.
*/
if (depth_size == 1)
depth_size = DEFAULT_SOFTWARE_DEPTH_BITS;
else if (depth_size > 24)
depth_size = 31;
if (depth_size > 24)
depth_size = 31; /* 32 causes int overflow problems */
else if (depth_size > 16)
depth_size = 24;
else if (depth_size > 0)
depth_size = DEFAULT_SOFTWARE_DEPTH_BITS; /*16*/
/* If using Glide, make sure we don't try to setup an impossible
* visual. This fixes the Q3 bug in which 24-bit Z was being reported.
*/
{
const char *fx = getenv("MESA_GLX_FX");
if (fx && fx[0] != 'd')
if (depth_size > 16 ||
stencil_size > 0 ||
(min_red > 1 && min_red > 5) ||
(min_green > 1 && min_green > 6) ||
(min_blue > 1 && min_blue > 5) ||
alpha_flag)
return NULL;
}
/* we only support one size of stencil and accum buffers. */
if (stencil_size > 0)
stencil_size = STENCIL_BITS;
@@ -1838,7 +1863,7 @@ struct _glxapi_table *_mesa_GetGLXDispatchTable(void)
{
int size = sizeof(struct _glxapi_table) / sizeof(void *);
(void) size;
assert(_glxapi_get_dispatch_table_size() >= size);
assert((GLint) _glxapi_get_dispatch_table_size() >= size);
}
/* initialize the whole table to no-ops */

View File

@@ -1,4 +1,4 @@
/* $Id: glxheader.h,v 1.1 1999/11/11 01:29:28 brianp Exp $ */
/* $Id: glxheader.h,v 1.1.4.1 2001/02/09 08:25:18 joukj Exp $ */
/*
* Mesa 3-D graphics library
@@ -28,6 +28,10 @@
#ifndef GLX_HEADER_H
#define GLX_HEADER_H
#ifdef VMS
#include <vms_x_fix.h>
#endif
#ifdef HAVE_CONFIG_H
#include "conf.h"

View File

@@ -1,8 +1,8 @@
/* $Id: xfonts.c,v 1.6 2000/04/19 01:44:02 brianp Exp $ */
/* $Id: xfonts.c,v 1.6.4.4 2001/02/09 08:25:18 joukj Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
* Version: 3.4
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
@@ -34,6 +34,11 @@
#include "conf.h"
#endif
#ifdef VMS
#include <GL/vms_x_fix.h>
#endif
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -41,11 +46,9 @@
#include <X11/Xutil.h>
#include "GL/gl.h"
#include "GL/glx.h"
#include "GL/xmesa.h"
#include "context.h"
#include "mem.h"
#include "xfonts.h"
#include "xmesaP.h"
/* Some debugging info. */
@@ -182,7 +185,7 @@ fill_bitmap (Display *dpy, Window win, GC gc,
static XCharStruct *isvalid(XFontStruct *fs, int which)
{
unsigned int rows,pages;
int byte1,byte2;
int byte1 = 0,byte2 = 0;
int i,valid = 1;
rows = fs->max_byte1 - fs->min_byte1 + 1;
@@ -223,7 +226,6 @@ static XCharStruct *isvalid(XFontStruct *fs, int which)
void Fake_glXUseXFont( Font font, int first, int count, int listbase )
{
XMesaContext CC;
Display *dpy;
Window win;
Pixmap pixmap;
@@ -231,26 +233,23 @@ void Fake_glXUseXFont( Font font, int first, int count, int listbase )
XGCValues values;
unsigned long valuemask;
XFontStruct *fs;
GLint swapbytes, lsbfirst, rowlength;
GLint skiprows, skippixels, alignment;
unsigned int max_width, max_height, max_bm_width, max_bm_height;
GLubyte *bm;
int i;
CC = XMesaGetCurrentContext();
dpy = CC->display;
win = CC->xm_buffer->frontbuffer;
dpy = glXGetCurrentDisplay();
if (!dpy)
return; /* I guess glXMakeCurrent wasn't called */
win = RootWindow(dpy, DefaultScreen(dpy));
fs = XQueryFont (dpy, font);
if (!fs)
{
gl_error (CC->gl_ctx, GL_INVALID_VALUE,
"Couldn't get font structure information");
if (!fs) {
gl_error(NULL, GL_INVALID_VALUE,
"Couldn't get font structure information");
return;
}
}
/* Allocate a bitmap that can fit all characters. */
max_width = fs->max_bounds.rbearing - fs->min_bounds.lbearing;
@@ -262,10 +261,10 @@ void Fake_glXUseXFont( Font font, int first, int count, int listbase )
(GLubyte));
if (!bm) {
XFreeFontInfo( NULL, fs, 0 );
gl_error (CC->gl_ctx, GL_OUT_OF_MEMORY,
gl_error(NULL, GL_OUT_OF_MEMORY,
"Couldn't allocate bitmap in glXUseXFont()");
return;
}
}
#if 0
/* get the page info */
@@ -387,16 +386,3 @@ bm_height);
glPixelStorei(GL_UNPACK_SKIP_PIXELS, skippixels);
glPixelStorei(GL_UNPACK_ALIGNMENT, alignment);
}
extern void xmesa_xfonts_dummy( void );
void xmesa_xfonts_dummy( void )
{
/* silence unused var warnings */
(void) kernel8;
(void) DitherValues;
(void) HPCR_DRGB;
(void) kernel1;
}
/* The End. */

View File

@@ -1,4 +1,4 @@
/* $Id: xfonts.h,v 1.1 2000/04/19 01:44:02 brianp Exp $ */
/* $Id: xfonts.h,v 1.1.4.1 2001/02/09 08:25:18 joukj Exp $ */
/*
* Mesa 3-D graphics library
@@ -28,6 +28,10 @@
#ifndef XFONTS_H
#define XFONTS_H
#ifdef VMS
#include <vms_x_fix.h>
#endif
#include <X11/Xlib.h>

View File

@@ -1,8 +1,8 @@
/* $Id: glapi.c,v 1.42 2000/05/24 17:53:30 brianp Exp $ */
/* $Id: glapi.c,v 1.42.4.2 2000/11/05 21:24:00 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
* Version: 3.4
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
@@ -1479,11 +1479,13 @@ get_static_proc_offset(const char *funcName)
static GLvoid *
get_static_proc_address(const char *funcName)
{
GLint i = get_static_proc_offset(funcName);
if (i >= 0)
return static_functions[i].Address;
else
return NULL;
GLint i;
for (i = 0; static_functions[i].Name; i++) {
if (strcmp(static_functions[i].Name, funcName) == 0) {
return static_functions[i].Address;
}
}
return NULL;
}
@@ -1563,7 +1565,7 @@ _glapi_add_entrypoint(const char *funcName, GLuint offset)
{
GLint index = get_static_proc_offset(funcName);
if (index >= 0) {
return (GLboolean) (index == offset); /* bad offset! */
return (GLboolean) (index == (GLint) offset); /* bad offset! */
}
}
@@ -1671,7 +1673,7 @@ GLint
_glapi_get_proc_offset(const char *funcName)
{
/* search extension functions first */
GLint i;
GLuint i;
for (i = 0; i < NumExtEntryPoints; i++) {
if (strcmp(ExtEntryTable[i].Name, funcName) == 0) {
return ExtEntryTable[i].Offset;
@@ -1691,7 +1693,7 @@ const GLvoid *
_glapi_get_proc_address(const char *funcName)
{
/* search extension functions first */
GLint i;
GLuint i;
for (i = 0; i < NumExtEntryPoints; i++) {
if (strcmp(ExtEntryTable[i].Name, funcName) == 0) {
return ExtEntryTable[i].Address;

View File

@@ -1,9 +1,9 @@
#!/usr/bin/env python
# $Id: glx86asm.py,v 1.1 2000/05/11 23:14:57 brianp Exp $
# $Id: glx86asm.py,v 1.1.4.1 2000/09/06 17:33:32 brianp Exp $
# Mesa 3-D graphics library
# Version: 3.3
# Version: 3.4
#
# Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
#
@@ -48,9 +48,9 @@ def PrintHead():
print '#ifndef __WIN32__'
print ''
print '#if defined(USE_MGL_NAMESPACE)'
print '#define GL_PREFIX(n) GLNAME(mgl ## n)'
print '#define GL_PREFIX(n) GLNAME(CONCAT(mgl,n))'
print '#else'
print '#define GL_PREFIX(n) GLNAME(gl ## n)'
print '#define GL_PREFIX(n) GLNAME(CONCAT(gl,n))'
print '#endif'
print ''
print '#define GL_OFFSET(x) CODEPTR(REGOFF(4 * x, EAX))'

View File

@@ -1,8 +1,8 @@
/* $Id: accum.c,v 1.23 2000/07/15 03:14:25 brianp Exp $ */
/* $Id: accum.c,v 1.23.2.2 2000/11/05 21:24:00 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
* Version: 3.4
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
@@ -235,6 +235,8 @@ _mesa_Accum( GLenum op, GLfloat value )
if (ctx->IntegerAccumMode && value != ctx->IntegerAccumScaler)
rescale_accum(ctx);
RENDER_START(ctx);
if (ctx->IntegerAccumMode) {
/* simply add integer color values into accum buffer */
GLuint j;
@@ -278,6 +280,7 @@ _mesa_Accum( GLenum op, GLfloat value )
/* restore read buffer = draw buffer (the default) */
(*ctx->Driver.SetReadBuffer)( ctx, ctx->DrawBuffer,
ctx->Color.DriverDrawBuffer );
RENDER_FINISH(ctx);
break;
case GL_LOAD:
@@ -298,6 +301,7 @@ _mesa_Accum( GLenum op, GLfloat value )
ctx->IntegerAccumScaler = 0.0;
}
RENDER_START(ctx);
if (ctx->IntegerAccumMode) {
/* just copy values into accum buffer */
GLuint j;
@@ -341,6 +345,7 @@ _mesa_Accum( GLenum op, GLfloat value )
/* restore read buffer = draw buffer (the default) */
(*ctx->Driver.SetReadBuffer)( ctx, ctx->DrawBuffer,
ctx->Color.DriverDrawBuffer );
RENDER_FINISH(ctx);
break;
case GL_RETURN:
@@ -348,16 +353,18 @@ _mesa_Accum( GLenum op, GLfloat value )
if (ctx->IntegerAccumMode && value != 1.0)
rescale_accum(ctx);
RENDER_START(ctx);
if (ctx->IntegerAccumMode && ctx->IntegerAccumScaler > 0) {
/* build lookup table to avoid many floating point multiplies */
const GLfloat mult = ctx->IntegerAccumScaler;
static GLchan multTable[32768];
static GLfloat prevMult = 0.0;
GLuint j;
const GLint max = MIN2((GLint) (256 / mult), 32767);
GLint k;
const GLint max = MIN2((GLuint) (256 / mult), 32767);
if (mult != prevMult) {
for (j = 0; j < max; j++)
multTable[j] = (GLint) ((GLfloat) j * mult + 0.5F);
for (k = 0; k < max; k++)
multTable[k] = (GLint) ((GLfloat) k * mult + 0.5F);
prevMult = mult;
}
@@ -380,7 +387,7 @@ _mesa_Accum( GLenum op, GLfloat value )
_mesa_mask_rgba_span( ctx, width, xpos, ypos, rgba );
}
(*ctx->Driver.WriteRGBASpan)( ctx, width, xpos, ypos,
(const GLubyte (*)[4])rgba, NULL );
(CONST GLubyte (*)[4]) rgba, NULL );
ypos++;
}
}
@@ -407,10 +414,11 @@ _mesa_Accum( GLenum op, GLfloat value )
_mesa_mask_rgba_span( ctx, width, xpos, ypos, rgba );
}
(*ctx->Driver.WriteRGBASpan)( ctx, width, xpos, ypos,
(const GLubyte (*)[4])rgba, NULL );
(CONST GLubyte (*)[4]) rgba, NULL );
ypos++;
}
}
RENDER_FINISH(ctx);
break;
default:

View File

@@ -1,8 +1,8 @@
/* $Id: attrib.c,v 1.25 2000/07/19 18:34:00 brianp Exp $ */
/* $Id: attrib.c,v 1.25.2.3 2001/01/29 22:15:36 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
* Version: 3.4.1
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
@@ -29,13 +29,29 @@
#include "all.h"
#else
#include "glheader.h"
#include "accum.h"
#include "alpha.h"
#include "attrib.h"
#include "blend.h"
#include "buffers.h"
#include "clip.h"
#include "context.h"
#include "depth.h"
#include "enable.h"
#include "enums.h"
#include "fog.h"
#include "hint.h"
#include "light.h"
#include "lines.h"
#include "logic.h"
#include "masking.h"
#include "matrix.h"
#include "mem.h"
#include "points.h"
#include "polygon.h"
#include "scissor.h"
#include "simple_list.h"
#include "stencil.h"
#include "texstate.h"
#include "types.h"
#endif
@@ -213,8 +229,8 @@ _mesa_PushAttrib(GLbitfield mask)
attr->RescaleNormals = ctx->Transform.RescaleNormals;
attr->Scissor = ctx->Scissor.Enabled;
attr->Stencil = ctx->Stencil.Enabled;
attr->Texture = ctx->Texture.Enabled;
for (i=0; i<MAX_TEXTURE_UNITS; i++) {
attr->Texture[i] = ctx->Texture.Unit[i].Enabled;
attr->TexGen[i] = ctx->Texture.Unit[i].TexGenEnabled;
}
newnode = new_attrib_node( GL_ENABLE_BIT );
@@ -393,6 +409,148 @@ _mesa_PushAttrib(GLbitfield mask)
static void
pop_enable_group(GLcontext *ctx, const struct gl_enable_attrib *enable)
{
GLuint i;
#define TEST_AND_UPDATE(VALUE, NEWVALUE, ENUM) \
if ((VALUE) != (NEWVALUE)) { \
_mesa_set_enable( ctx, ENUM, (NEWVALUE) ); \
}
TEST_AND_UPDATE(ctx->Color.AlphaEnabled, enable->AlphaTest, GL_ALPHA_TEST);
TEST_AND_UPDATE(ctx->Transform.Normalize, enable->AutoNormal, GL_NORMALIZE);
TEST_AND_UPDATE(ctx->Color.BlendEnabled, enable->Blend, GL_BLEND);
for (i=0;i<MAX_CLIP_PLANES;i++) {
if (ctx->Transform.ClipEnabled[i] != enable->ClipPlane[i])
_mesa_set_enable(ctx, (GLenum) (GL_CLIP_PLANE0 + i),
enable->ClipPlane[i]);
}
TEST_AND_UPDATE(ctx->Light.ColorMaterialEnabled, enable->ColorMaterial,
GL_COLOR_MATERIAL);
TEST_AND_UPDATE(ctx->Polygon.CullFlag, enable->CullFace, GL_CULL_FACE);
TEST_AND_UPDATE(ctx->Depth.Test, enable->DepthTest, GL_DEPTH_TEST);
TEST_AND_UPDATE(ctx->Color.DitherFlag, enable->Dither, GL_DITHER);
TEST_AND_UPDATE(ctx->Pixel.Convolution1DEnabled, enable->Convolution1D,
GL_CONVOLUTION_1D);
TEST_AND_UPDATE(ctx->Pixel.Convolution2DEnabled, enable->Convolution2D,
GL_CONVOLUTION_2D);
TEST_AND_UPDATE(ctx->Pixel.Separable2DEnabled, enable->Separable2D,
GL_SEPARABLE_2D);
TEST_AND_UPDATE(ctx->Fog.Enabled, enable->Fog, GL_FOG);
TEST_AND_UPDATE(ctx->Light.Enabled, enable->Lighting, GL_LIGHTING);
TEST_AND_UPDATE(ctx->Line.SmoothFlag, enable->LineSmooth, GL_LINE_SMOOTH);
TEST_AND_UPDATE(ctx->Line.StippleFlag, enable->LineStipple,
GL_LINE_STIPPLE);
TEST_AND_UPDATE(ctx->Color.IndexLogicOpEnabled, enable->IndexLogicOp,
GL_INDEX_LOGIC_OP);
TEST_AND_UPDATE(ctx->Color.ColorLogicOpEnabled, enable->ColorLogicOp,
GL_COLOR_LOGIC_OP);
TEST_AND_UPDATE(ctx->Eval.Map1Color4, enable->Map1Color4, GL_MAP1_COLOR_4);
TEST_AND_UPDATE(ctx->Eval.Map1Index, enable->Map1Index, GL_MAP1_INDEX);
TEST_AND_UPDATE(ctx->Eval.Map1Normal, enable->Map1Normal, GL_MAP1_NORMAL);
TEST_AND_UPDATE(ctx->Eval.Map1TextureCoord1, enable->Map1TextureCoord1,
GL_MAP1_TEXTURE_COORD_1);
TEST_AND_UPDATE(ctx->Eval.Map1TextureCoord2, enable->Map1TextureCoord2,
GL_MAP1_TEXTURE_COORD_2);
TEST_AND_UPDATE(ctx->Eval.Map1TextureCoord3, enable->Map1TextureCoord3,
GL_MAP1_TEXTURE_COORD_3);
TEST_AND_UPDATE(ctx->Eval.Map1TextureCoord4, enable->Map1TextureCoord4,
GL_MAP1_TEXTURE_COORD_4);
TEST_AND_UPDATE(ctx->Eval.Map1Vertex3, enable->Map1Vertex3,
GL_MAP1_VERTEX_3);
TEST_AND_UPDATE(ctx->Eval.Map1Vertex4, enable->Map1Vertex4,
GL_MAP1_VERTEX_4);
TEST_AND_UPDATE(ctx->Eval.Map2Color4, enable->Map2Color4, GL_MAP2_COLOR_4);
TEST_AND_UPDATE(ctx->Eval.Map2Index, enable->Map2Index, GL_MAP2_INDEX);
TEST_AND_UPDATE(ctx->Eval.Map2Normal, enable->Map2Normal, GL_MAP2_NORMAL);
TEST_AND_UPDATE(ctx->Eval.Map2TextureCoord1, enable->Map2TextureCoord1,
GL_MAP2_TEXTURE_COORD_1);
TEST_AND_UPDATE(ctx->Eval.Map2TextureCoord2, enable->Map2TextureCoord2,
GL_MAP2_TEXTURE_COORD_2);
TEST_AND_UPDATE(ctx->Eval.Map2TextureCoord3, enable->Map2TextureCoord3,
GL_MAP2_TEXTURE_COORD_3);
TEST_AND_UPDATE(ctx->Eval.Map2TextureCoord4, enable->Map2TextureCoord4,
GL_MAP2_TEXTURE_COORD_4);
TEST_AND_UPDATE(ctx->Eval.Map2Vertex3, enable->Map2Vertex3,
GL_MAP2_VERTEX_3);
TEST_AND_UPDATE(ctx->Eval.Map2Vertex4, enable->Map2Vertex4,
GL_MAP2_VERTEX_4);
TEST_AND_UPDATE(ctx->Transform.Normalize, enable->Normalize, GL_NORMALIZE);
TEST_AND_UPDATE(ctx->Transform.RescaleNormals, enable->RescaleNormals,
GL_RESCALE_NORMAL_EXT);
TEST_AND_UPDATE(ctx->Pixel.PixelTextureEnabled, enable->PixelTexture,
GL_POINT_SMOOTH);
TEST_AND_UPDATE(ctx->Point.SmoothFlag, enable->PointSmooth,
GL_POINT_SMOOTH);
TEST_AND_UPDATE(ctx->Polygon.OffsetPoint, enable->PolygonOffsetPoint,
GL_POLYGON_OFFSET_POINT);
TEST_AND_UPDATE(ctx->Polygon.OffsetLine, enable->PolygonOffsetLine,
GL_POLYGON_OFFSET_LINE);
TEST_AND_UPDATE(ctx->Polygon.OffsetFill, enable->PolygonOffsetFill,
GL_POLYGON_OFFSET_FILL);
TEST_AND_UPDATE(ctx->Polygon.SmoothFlag, enable->PolygonSmooth,
GL_POLYGON_SMOOTH);
TEST_AND_UPDATE(ctx->Polygon.StippleFlag, enable->PolygonStipple,
GL_POLYGON_STIPPLE);
TEST_AND_UPDATE(ctx->Scissor.Enabled, enable->Scissor, GL_SCISSOR_TEST);
TEST_AND_UPDATE(ctx->Stencil.Enabled, enable->Stencil, GL_STENCIL_TEST);
#undef TEST_AND_UPDATE
/* texture unit enables */
for (i = 0; i < ctx->Const.MaxTextureUnits; i++) {
if (ctx->Texture.Unit[i].Enabled != enable->Texture[i]) {
ctx->Texture.Unit[i].Enabled = enable->Texture[i];
if (ctx->Driver.Enable) {
if (ctx->Driver.ActiveTexture) {
(*ctx->Driver.ActiveTexture)(ctx, i);
}
(*ctx->Driver.Enable)( ctx, GL_TEXTURE_1D,
(GLboolean) (enable->Texture[i] & TEXTURE0_1D) );
(*ctx->Driver.Enable)( ctx, GL_TEXTURE_2D,
(GLboolean) (enable->Texture[i] & TEXTURE0_2D) );
(*ctx->Driver.Enable)( ctx, GL_TEXTURE_3D,
(GLboolean) (enable->Texture[i] & TEXTURE0_3D) );
}
}
if (ctx->Texture.Unit[i].TexGenEnabled != enable->TexGen[i]) {
ctx->Texture.Unit[i].TexGenEnabled = enable->TexGen[i];
if (ctx->Driver.Enable) {
if (ctx->Driver.ActiveTexture) {
(*ctx->Driver.ActiveTexture)(ctx, i);
}
if (enable->TexGen[i] & S_BIT)
(*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_S, GL_TRUE);
else
(*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_S, GL_FALSE);
if (enable->TexGen[i] & T_BIT)
(*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_T, GL_TRUE);
else
(*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_T, GL_FALSE);
if (enable->TexGen[i] & R_BIT)
(*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_R, GL_TRUE);
else
(*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_R, GL_FALSE);
if (enable->TexGen[i] & Q_BIT)
(*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_Q, GL_TRUE);
else
(*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_Q, GL_FALSE);
}
}
}
if (ctx->Driver.ActiveTexture) {
(*ctx->Driver.ActiveTexture)(ctx, ctx->Texture.CurrentUnit);
}
}
/*
* This function is kind of long just because we have to call a lot
* of device driver functions to update device driver state.
@@ -421,52 +579,49 @@ _mesa_PopAttrib(void)
switch (attr->kind) {
case GL_ACCUM_BUFFER_BIT:
MEMCPY( &ctx->Accum, attr->data, sizeof(struct gl_accum_attrib) );
{
const struct gl_accum_attrib *accum;
accum = (const struct gl_accum_attrib *) attr->data;
_mesa_ClearAccum(accum->ClearColor[0],
accum->ClearColor[1],
accum->ClearColor[2],
accum->ClearColor[3]);
}
break;
case GL_COLOR_BUFFER_BIT:
{
GLenum oldDrawBuffer = ctx->Color.DrawBuffer;
GLenum oldAlphaFunc = ctx->Color.AlphaFunc;
GLubyte oldAlphaRef = ctx->Color.AlphaRef;
GLenum oldBlendSrc = ctx->Color.BlendSrcRGB;
GLenum oldBlendDst = ctx->Color.BlendDstRGB;
GLenum oldLogicOp = ctx->Color.LogicOp;
MEMCPY( &ctx->Color, attr->data,
sizeof(struct gl_colorbuffer_attrib) );
if (ctx->Color.DrawBuffer != oldDrawBuffer) {
_mesa_DrawBuffer( ctx->Color.DrawBuffer);
}
if ((ctx->Color.BlendSrcRGB != oldBlendSrc ||
ctx->Color.BlendDstRGB != oldBlendDst) &&
ctx->Driver.BlendFunc)
(*ctx->Driver.BlendFunc)( ctx, ctx->Color.BlendSrcRGB,
ctx->Color.BlendDstRGB);
if (ctx->Color.LogicOp != oldLogicOp &&
ctx->Driver.LogicOpcode) {
ctx->Driver.LogicOpcode( ctx, ctx->Color.LogicOp );
}
if (ctx->Visual->RGBAflag) {
GLubyte r = (GLint) (ctx->Color.ClearColor[0] * 255.0F);
GLubyte g = (GLint) (ctx->Color.ClearColor[1] * 255.0F);
GLubyte b = (GLint) (ctx->Color.ClearColor[2] * 255.0F);
GLubyte a = (GLint) (ctx->Color.ClearColor[3] * 255.0F);
(*ctx->Driver.ClearColor)( ctx, r, g, b, a );
if ((ctx->Color.AlphaFunc != oldAlphaFunc ||
ctx->Color.AlphaRef != oldAlphaRef) &&
ctx->Driver.AlphaFunc)
(*ctx->Driver.AlphaFunc)( ctx, ctx->Color.AlphaFunc,
ctx->Color.AlphaRef / 255.0F);
if (ctx->Driver.ColorMask) {
(*ctx->Driver.ColorMask)(ctx,
ctx->Color.ColorMask[0],
ctx->Color.ColorMask[1],
ctx->Color.ColorMask[2],
ctx->Color.ColorMask[3]);
}
}
else {
(*ctx->Driver.ClearIndex)( ctx, ctx->Color.ClearIndex);
}
const struct gl_colorbuffer_attrib *color;
color = (const struct gl_colorbuffer_attrib *) attr->data;
_mesa_ClearIndex(color->ClearIndex);
_mesa_ClearColor(color->ClearColor[0],
color->ClearColor[1],
color->ClearColor[2],
color->ClearColor[3]);
_mesa_IndexMask(color->IndexMask);
_mesa_ColorMask((GLboolean) (color->ColorMask[0] != 0),
(GLboolean) (color->ColorMask[1] != 0),
(GLboolean) (color->ColorMask[2] != 0),
(GLboolean) (color->ColorMask[3] != 0));
_mesa_DrawBuffer(color->DrawBuffer);
_mesa_set_enable(ctx, GL_ALPHA_TEST, color->AlphaEnabled);
_mesa_AlphaFunc(color->AlphaFunc,
UBYTE_TO_FLOAT(color->AlphaRef));
_mesa_set_enable(ctx, GL_BLEND, color->BlendEnabled);
_mesa_BlendFuncSeparateEXT(color->BlendSrcRGB,
color->BlendDstRGB,
color->BlendSrcA,
color->BlendDstA);
_mesa_BlendEquation(color->BlendEquation);
_mesa_BlendColor(color->BlendColor[0],
color->BlendColor[1],
color->BlendColor[2],
color->BlendColor[3]);
_mesa_LogicOp(color->LogicOp);
_mesa_set_enable(ctx, GL_COLOR_LOGIC_OP,
color->ColorLogicOpEnabled);
_mesa_set_enable(ctx, GL_INDEX_LOGIC_OP,
color->IndexLogicOpEnabled);
_mesa_set_enable(ctx, GL_DITHER, color->DitherFlag);
}
break;
case GL_CURRENT_BIT:
@@ -475,136 +630,23 @@ _mesa_PopAttrib(void)
break;
case GL_DEPTH_BUFFER_BIT:
{
GLboolean oldDepthTest = ctx->Depth.Test;
GLenum oldDepthFunc = ctx->Depth.Func;
GLboolean oldDepthMask = ctx->Depth.Mask;
GLfloat oldDepthClear = ctx->Depth.Clear;
MEMCPY( &ctx->Depth, attr->data,
sizeof(struct gl_depthbuffer_attrib) );
if (ctx->Depth.Test != oldDepthTest && ctx->Driver.Enable)
(*ctx->Driver.Enable)( ctx, GL_DEPTH_TEST, ctx->Depth.Test);
if (ctx->Depth.Func != oldDepthFunc && ctx->Driver.DepthFunc)
(*ctx->Driver.DepthFunc)( ctx, ctx->Depth.Func );
if (ctx->Depth.Mask != oldDepthMask && ctx->Driver.DepthMask)
(*ctx->Driver.DepthMask)( ctx, ctx->Depth.Mask );
if (ctx->Depth.Clear != oldDepthClear && ctx->Driver.ClearDepth)
(*ctx->Driver.ClearDepth)( ctx, ctx->Depth.Clear );
const struct gl_depthbuffer_attrib *depth;
depth = (const struct gl_depthbuffer_attrib *) attr->data;
_mesa_DepthFunc(depth->Func);
_mesa_ClearDepth(depth->Clear);
_mesa_set_enable(ctx, GL_DEPTH_TEST, depth->Test);
_mesa_DepthMask(depth->Mask);
if (ctx->Extensions.HaveHpOcclusionTest)
_mesa_set_enable(ctx, GL_OCCLUSION_TEST_HP,
depth->OcclusionTest);
}
break;
case GL_ENABLE_BIT:
{
const struct gl_enable_attrib *enable;
enable = (const struct gl_enable_attrib *) attr->data;
#define TEST_AND_UPDATE(VALUE, NEWVALUE, ENUM) \
if ((VALUE) != (NEWVALUE)) { \
_mesa_set_enable( ctx, ENUM, (NEWVALUE) ); \
}
TEST_AND_UPDATE(ctx->Color.AlphaEnabled, enable->AlphaTest, GL_ALPHA_TEST);
TEST_AND_UPDATE(ctx->Transform.Normalize, enable->AutoNormal, GL_NORMALIZE);
TEST_AND_UPDATE(ctx->Color.BlendEnabled, enable->Blend, GL_BLEND);
{
GLuint i;
for (i=0;i<MAX_CLIP_PLANES;i++) {
if (ctx->Transform.ClipEnabled[i] != enable->ClipPlane[i])
_mesa_set_enable( ctx, (GLenum) (GL_CLIP_PLANE0 + i), enable->ClipPlane[i] );
}
}
TEST_AND_UPDATE(ctx->Light.ColorMaterialEnabled, enable->ColorMaterial, GL_COLOR_MATERIAL);
TEST_AND_UPDATE(ctx->Polygon.CullFlag, enable->CullFace, GL_CULL_FACE);
TEST_AND_UPDATE(ctx->Depth.Test, enable->DepthTest, GL_DEPTH_TEST);
TEST_AND_UPDATE(ctx->Color.DitherFlag, enable->Dither, GL_DITHER);
TEST_AND_UPDATE(ctx->Pixel.Convolution1DEnabled, enable->Convolution1D, GL_CONVOLUTION_1D);
TEST_AND_UPDATE(ctx->Pixel.Convolution2DEnabled, enable->Convolution2D, GL_CONVOLUTION_2D);
TEST_AND_UPDATE(ctx->Pixel.Separable2DEnabled, enable->Separable2D, GL_SEPARABLE_2D);
TEST_AND_UPDATE(ctx->Fog.Enabled, enable->Fog, GL_FOG);
TEST_AND_UPDATE(ctx->Light.Enabled, enable->Lighting, GL_LIGHTING);
TEST_AND_UPDATE(ctx->Line.SmoothFlag, enable->LineSmooth, GL_LINE_SMOOTH);
TEST_AND_UPDATE(ctx->Line.StippleFlag, enable->LineStipple, GL_LINE_STIPPLE);
TEST_AND_UPDATE(ctx->Color.IndexLogicOpEnabled, enable->IndexLogicOp, GL_INDEX_LOGIC_OP);
TEST_AND_UPDATE(ctx->Color.ColorLogicOpEnabled, enable->ColorLogicOp, GL_COLOR_LOGIC_OP);
TEST_AND_UPDATE(ctx->Eval.Map1Color4, enable->Map1Color4, GL_MAP1_COLOR_4);
TEST_AND_UPDATE(ctx->Eval.Map1Index, enable->Map1Index, GL_MAP1_INDEX);
TEST_AND_UPDATE(ctx->Eval.Map1Normal, enable->Map1Normal, GL_MAP1_NORMAL);
TEST_AND_UPDATE(ctx->Eval.Map1TextureCoord1, enable->Map1TextureCoord1, GL_MAP1_TEXTURE_COORD_1);
TEST_AND_UPDATE(ctx->Eval.Map1TextureCoord2, enable->Map1TextureCoord2, GL_MAP1_TEXTURE_COORD_2);
TEST_AND_UPDATE(ctx->Eval.Map1TextureCoord3, enable->Map1TextureCoord3, GL_MAP1_TEXTURE_COORD_3);
TEST_AND_UPDATE(ctx->Eval.Map1TextureCoord4, enable->Map1TextureCoord4, GL_MAP1_TEXTURE_COORD_4);
TEST_AND_UPDATE(ctx->Eval.Map1Vertex3, enable->Map1Vertex3, GL_MAP1_VERTEX_3);
TEST_AND_UPDATE(ctx->Eval.Map1Vertex4, enable->Map1Vertex4, GL_MAP1_VERTEX_4);
TEST_AND_UPDATE(ctx->Eval.Map2Color4, enable->Map2Color4, GL_MAP2_COLOR_4);
TEST_AND_UPDATE(ctx->Eval.Map2Index, enable->Map2Index, GL_MAP2_INDEX);
TEST_AND_UPDATE(ctx->Eval.Map2Normal, enable->Map2Normal, GL_MAP2_NORMAL);
TEST_AND_UPDATE(ctx->Eval.Map2TextureCoord1, enable->Map2TextureCoord1, GL_MAP2_TEXTURE_COORD_1);
TEST_AND_UPDATE(ctx->Eval.Map2TextureCoord2, enable->Map2TextureCoord2, GL_MAP2_TEXTURE_COORD_2);
TEST_AND_UPDATE(ctx->Eval.Map2TextureCoord3, enable->Map2TextureCoord3, GL_MAP2_TEXTURE_COORD_3);
TEST_AND_UPDATE(ctx->Eval.Map2TextureCoord4, enable->Map2TextureCoord4, GL_MAP2_TEXTURE_COORD_4);
TEST_AND_UPDATE(ctx->Eval.Map2Vertex3, enable->Map2Vertex3, GL_MAP2_VERTEX_3);
TEST_AND_UPDATE(ctx->Eval.Map2Vertex4, enable->Map2Vertex4, GL_MAP2_VERTEX_4);
TEST_AND_UPDATE(ctx->Transform.Normalize, enable->Normalize, GL_NORMALIZE);
TEST_AND_UPDATE(ctx->Transform.RescaleNormals, enable->RescaleNormals, GL_RESCALE_NORMAL_EXT);
TEST_AND_UPDATE(ctx->Pixel.PixelTextureEnabled, enable->PixelTexture, GL_POINT_SMOOTH);
TEST_AND_UPDATE(ctx->Point.SmoothFlag, enable->PointSmooth, GL_POINT_SMOOTH);
TEST_AND_UPDATE(ctx->Polygon.OffsetPoint, enable->PolygonOffsetPoint, GL_POLYGON_OFFSET_POINT);
TEST_AND_UPDATE(ctx->Polygon.OffsetLine, enable->PolygonOffsetLine, GL_POLYGON_OFFSET_LINE);
TEST_AND_UPDATE(ctx->Polygon.OffsetFill, enable->PolygonOffsetFill, GL_POLYGON_OFFSET_FILL);
TEST_AND_UPDATE(ctx->Polygon.SmoothFlag, enable->PolygonSmooth, GL_POLYGON_SMOOTH);
TEST_AND_UPDATE(ctx->Polygon.StippleFlag, enable->PolygonStipple, GL_POLYGON_STIPPLE);
TEST_AND_UPDATE(ctx->Scissor.Enabled, enable->Scissor, GL_SCISSOR_TEST);
TEST_AND_UPDATE(ctx->Stencil.Enabled, enable->Stencil, GL_STENCIL_TEST);
if (ctx->Texture.Enabled != enable->Texture) {
ctx->Texture.Enabled = enable->Texture;
if (ctx->Driver.Enable) {
if (ctx->Driver.ActiveTexture)
(*ctx->Driver.ActiveTexture)( ctx, 0 );
(*ctx->Driver.Enable)( ctx, GL_TEXTURE_1D, (GLboolean) (enable->Texture & TEXTURE0_1D) );
(*ctx->Driver.Enable)( ctx, GL_TEXTURE_2D, (GLboolean) (enable->Texture & TEXTURE0_2D) );
(*ctx->Driver.Enable)( ctx, GL_TEXTURE_3D, (GLboolean) (enable->Texture & TEXTURE0_3D) );
if (ctx->Driver.ActiveTexture)
(*ctx->Driver.ActiveTexture)( ctx, 1 );
(*ctx->Driver.Enable)( ctx, GL_TEXTURE_1D, (GLboolean) (enable->Texture & TEXTURE1_1D) );
(*ctx->Driver.Enable)( ctx, GL_TEXTURE_2D, (GLboolean) (enable->Texture & TEXTURE1_2D) );
(*ctx->Driver.Enable)( ctx, GL_TEXTURE_3D, (GLboolean) (enable->Texture & TEXTURE1_3D) );
if (ctx->Driver.ActiveTexture)
(*ctx->Driver.ActiveTexture)( ctx, ctx->Texture.CurrentUnit );
}
}
#undef TEST_AND_UPDATE
{
GLuint i;
for (i=0; i<MAX_TEXTURE_UNITS; i++) {
if (ctx->Texture.Unit[i].TexGenEnabled != enable->TexGen[i]) {
ctx->Texture.Unit[i].TexGenEnabled = enable->TexGen[i];
/* ctx->Enabled recalculated in state change
processing */
if (ctx->Driver.Enable) {
if (ctx->Driver.ActiveTexture)
(*ctx->Driver.ActiveTexture)( ctx, i );
if (enable->TexGen[i] & S_BIT)
(*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_S, GL_TRUE);
else
(*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_S, GL_FALSE);
if (enable->TexGen[i] & T_BIT)
(*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_T, GL_TRUE);
else
(*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_T, GL_FALSE);
if (enable->TexGen[i] & R_BIT)
(*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_R, GL_TRUE);
else
(*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_R, GL_FALSE);
if (enable->TexGen[i] & Q_BIT)
(*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_Q, GL_TRUE);
else
(*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_Q, GL_FALSE);
}
}
}
if (ctx->Driver.ActiveTexture)
(*ctx->Driver.ActiveTexture)( ctx, ctx->Texture.CurrentUnit );
}
pop_enable_group(ctx, enable);
_mesa_set_enable(ctx, GL_POINT_SMOOTH, enable->PointSmooth);
}
break;
case GL_EVAL_BIT:
@@ -612,70 +654,81 @@ _mesa_PopAttrib(void)
break;
case GL_FOG_BIT:
{
GLboolean anyChange = (GLboolean) (memcmp( &ctx->Fog, attr->data, sizeof(struct gl_fog_attrib) ) != 0);
MEMCPY( &ctx->Fog, attr->data, sizeof(struct gl_fog_attrib) );
if (anyChange && ctx->Driver.Fogfv) {
const GLfloat mode = (GLfloat) ctx->Fog.Mode;
const GLfloat density = ctx->Fog.Density;
const GLfloat start = ctx->Fog.Start;
const GLfloat end = ctx->Fog.End;
const GLfloat index = ctx->Fog.Index;
(*ctx->Driver.Fogfv)( ctx, GL_FOG_MODE, &mode);
(*ctx->Driver.Fogfv)( ctx, GL_FOG_DENSITY, &density );
(*ctx->Driver.Fogfv)( ctx, GL_FOG_START, &start );
(*ctx->Driver.Fogfv)( ctx, GL_FOG_END, &end );
(*ctx->Driver.Fogfv)( ctx, GL_FOG_INDEX, &index );
(*ctx->Driver.Fogfv)( ctx, GL_FOG_COLOR, ctx->Fog.Color );
}
ctx->Enabled &= ~ENABLE_FOG;
if (ctx->Fog.Enabled) ctx->Enabled |= ENABLE_FOG;
const struct gl_fog_attrib *fog;
fog = (const struct gl_fog_attrib *) attr->data;
_mesa_set_enable(ctx, GL_FOG, fog->Enabled);
_mesa_Fogfv(GL_FOG_COLOR, fog->Color);
_mesa_Fogf(GL_FOG_DENSITY, fog->Density);
_mesa_Fogf(GL_FOG_START, fog->Start);
_mesa_Fogf(GL_FOG_END, fog->End);
_mesa_Fogf(GL_FOG_INDEX, fog->Index);
_mesa_Fogi(GL_FOG_MODE, fog->Mode);
}
break;
case GL_HINT_BIT:
MEMCPY( &ctx->Hint, attr->data, sizeof(struct gl_hint_attrib) );
if (ctx->Driver.Hint) {
(*ctx->Driver.Hint)( ctx, GL_PERSPECTIVE_CORRECTION_HINT,
ctx->Hint.PerspectiveCorrection );
(*ctx->Driver.Hint)( ctx, GL_POINT_SMOOTH_HINT,
ctx->Hint.PointSmooth);
(*ctx->Driver.Hint)( ctx, GL_LINE_SMOOTH_HINT,
ctx->Hint.LineSmooth );
(*ctx->Driver.Hint)( ctx, GL_POLYGON_SMOOTH_HINT,
ctx->Hint.PolygonSmooth );
(*ctx->Driver.Hint)( ctx, GL_FOG_HINT, ctx->Hint.Fog );
{
const struct gl_hint_attrib *hint;
hint = (const struct gl_hint_attrib *) attr->data;
/* XXX this memcpy is temporary: */
MEMCPY(&ctx->Hint, hint, sizeof(struct gl_hint_attrib));
_mesa_Hint(GL_PERSPECTIVE_CORRECTION_HINT,
hint->PerspectiveCorrection );
_mesa_Hint(GL_POINT_SMOOTH_HINT, hint->PointSmooth);
_mesa_Hint(GL_LINE_SMOOTH_HINT, hint->LineSmooth);
_mesa_Hint(GL_POLYGON_SMOOTH_HINT, hint->PolygonSmooth);
_mesa_Hint(GL_FOG_HINT, hint->Fog);
_mesa_Hint(GL_CLIP_VOLUME_CLIPPING_HINT_EXT,
hint->ClipVolumeClipping);
if (ctx->Extensions.HaveTextureCompression)
_mesa_Hint(GL_TEXTURE_COMPRESSION_HINT_ARB,
hint->TextureCompression);
/* XXX keep PGI_misc_hints? */
}
break;
case GL_LIGHTING_BIT:
MEMCPY( &ctx->Light, attr->data, sizeof(struct gl_light_attrib) );
if (ctx->Driver.Enable) {
{
GLuint i;
const struct gl_light_attrib *light;
light = (const struct gl_light_attrib *) attr->data;
/* lighting enable */
_mesa_set_enable(ctx, GL_LIGHTING, light->Enabled);
/* per-light state */
for (i = 0; i < MAX_LIGHTS; i++) {
GLenum light = (GLenum) (GL_LIGHT0 + i);
(*ctx->Driver.Enable)( ctx, light, ctx->Light.Light[i].Enabled );
GLenum lgt = (GLenum) (GL_LIGHT0 + i);
_mesa_set_enable(ctx, lgt, light->Light[i].Enabled);
MEMCPY(&ctx->Light.Light[i], &light->Light[i],
sizeof(struct gl_light));
}
(*ctx->Driver.Enable)( ctx, GL_LIGHTING, ctx->Light.Enabled );
/* light model */
_mesa_LightModelfv(GL_LIGHT_MODEL_AMBIENT,
light->Model.Ambient);
_mesa_LightModelf(GL_LIGHT_MODEL_LOCAL_VIEWER,
(GLfloat) light->Model.LocalViewer);
_mesa_LightModelf(GL_LIGHT_MODEL_TWO_SIDE,
(GLfloat) light->Model.TwoSide);
_mesa_LightModelf(GL_LIGHT_MODEL_COLOR_CONTROL,
(GLfloat) light->Model.ColorControl);
/* materials */
MEMCPY(ctx->Light.Material, light->Material,
2 * sizeof(struct gl_material));
/* shade model */
_mesa_ShadeModel(light->ShadeModel);
/* color material */
_mesa_ColorMaterial(light->ColorMaterialFace,
light->ColorMaterialMode);
_mesa_set_enable(ctx, GL_COLOR_MATERIAL,
light->ColorMaterialEnabled);
}
if (ctx->Light.ShadeModel == GL_FLAT)
ctx->TriangleCaps |= DD_FLATSHADE;
else
ctx->TriangleCaps &= ~DD_FLATSHADE;
if (ctx->Driver.ShadeModel)
(*ctx->Driver.ShadeModel)(ctx, ctx->Light.ShadeModel);
ctx->Enabled &= ~ENABLE_LIGHT;
if (ctx->Light.Enabled && !is_empty_list(&ctx->Light.EnabledList))
ctx->Enabled |= ENABLE_LIGHT;
break;
case GL_LINE_BIT:
MEMCPY( &ctx->Line, attr->data, sizeof(struct gl_line_attrib) );
if (ctx->Driver.Enable) {
(*ctx->Driver.Enable)( ctx, GL_LINE_SMOOTH, ctx->Line.SmoothFlag );
(*ctx->Driver.Enable)( ctx, GL_LINE_STIPPLE, ctx->Line.StippleFlag );
{
const struct gl_line_attrib *line;
line = (const struct gl_line_attrib *) attr->data;
_mesa_set_enable(ctx, GL_LINE_SMOOTH, line->SmoothFlag);
_mesa_set_enable(ctx, GL_LINE_STIPPLE, line->StippleFlag);
_mesa_LineStipple(line->StippleFactor, line->StipplePattern);
_mesa_LineWidth(line->Width);
}
if (ctx->Driver.LineStipple)
(*ctx->Driver.LineStipple)(ctx, ctx->Line.StippleFactor,
ctx->Line.StipplePattern);
if (ctx->Driver.LineWidth)
(*ctx->Driver.LineWidth)(ctx, ctx->Line.Width);
break;
case GL_LIST_BIT:
MEMCPY( &ctx->List, attr->data, sizeof(struct gl_list_attrib) );
@@ -684,30 +737,38 @@ _mesa_PopAttrib(void)
MEMCPY( &ctx->Pixel, attr->data, sizeof(struct gl_pixel_attrib) );
break;
case GL_POINT_BIT:
MEMCPY( &ctx->Point, attr->data, sizeof(struct gl_point_attrib) );
if (ctx->Driver.Enable)
(*ctx->Driver.Enable)( ctx, GL_POINT_SMOOTH, ctx->Point.SmoothFlag );
{
const struct gl_point_attrib *point;
point = (const struct gl_point_attrib *) attr->data;
_mesa_PointSize(point->Size);
_mesa_set_enable(ctx, GL_POINT_SMOOTH, point->SmoothFlag);
_mesa_PointParameterfvEXT(GL_DISTANCE_ATTENUATION_EXT,
point->Params);
_mesa_PointParameterfEXT(GL_POINT_SIZE_MIN_EXT, point->MinSize);
_mesa_PointParameterfEXT(GL_POINT_SIZE_MAX_EXT, point->MaxSize);
_mesa_PointParameterfEXT(GL_POINT_FADE_THRESHOLD_SIZE_EXT,
point->Threshold);
}
break;
case GL_POLYGON_BIT:
{
GLenum oldFrontMode = ctx->Polygon.FrontMode;
GLenum oldBackMode = ctx->Polygon.BackMode;
MEMCPY( &ctx->Polygon, attr->data,
sizeof(struct gl_polygon_attrib) );
if ((ctx->Polygon.FrontMode != oldFrontMode ||
ctx->Polygon.BackMode != oldBackMode) &&
ctx->Driver.PolygonMode) {
(*ctx->Driver.PolygonMode)( ctx, GL_FRONT, ctx->Polygon.FrontMode);
(*ctx->Driver.PolygonMode)( ctx, GL_BACK, ctx->Polygon.BackMode);
}
if (ctx->Driver.CullFace)
ctx->Driver.CullFace( ctx, ctx->Polygon.CullFaceMode );
if (ctx->Driver.FrontFace)
ctx->Driver.FrontFace( ctx, ctx->Polygon.FrontFace );
if (ctx->Driver.Enable)
(*ctx->Driver.Enable)( ctx, GL_POLYGON_SMOOTH, ctx->Polygon.SmoothFlag );
const struct gl_polygon_attrib *polygon;
polygon = (const struct gl_polygon_attrib *) attr->data;
_mesa_CullFace(polygon->CullFaceMode);
_mesa_FrontFace(polygon->FrontFace);
_mesa_PolygonMode(GL_FRONT, polygon->FrontMode);
_mesa_PolygonMode(GL_BACK, polygon->BackMode);
_mesa_PolygonOffset(polygon->OffsetFactor,
polygon->OffsetUnits);
_mesa_set_enable(ctx, GL_POLYGON_SMOOTH, polygon->SmoothFlag);
_mesa_set_enable(ctx, GL_POLYGON_STIPPLE, polygon->StippleFlag);
_mesa_set_enable(ctx, GL_CULL_FACE, polygon->CullFlag);
_mesa_set_enable(ctx, GL_POLYGON_OFFSET_POINT,
polygon->OffsetPoint);
_mesa_set_enable(ctx, GL_POLYGON_OFFSET_LINE,
polygon->OffsetLine);
_mesa_set_enable(ctx, GL_POLYGON_OFFSET_FILL,
polygon->OffsetFill);
}
break;
case GL_POLYGON_STIPPLE_BIT:
@@ -716,48 +777,53 @@ _mesa_PopAttrib(void)
ctx->Driver.PolygonStipple( ctx, (const GLubyte *) attr->data );
break;
case GL_SCISSOR_BIT:
MEMCPY( &ctx->Scissor, attr->data,
sizeof(struct gl_scissor_attrib) );
if (ctx->Driver.Enable)
(*ctx->Driver.Enable)( ctx, GL_SCISSOR_TEST, ctx->Scissor.Enabled );
if (ctx->Driver.Scissor)
ctx->Driver.Scissor( ctx, ctx->Scissor.X, ctx->Scissor.Y,
ctx->Scissor.Width, ctx->Scissor.Height );
{
const struct gl_scissor_attrib *scissor;
scissor = (const struct gl_scissor_attrib *) attr->data;
_mesa_Scissor(scissor->X, scissor->Y,
scissor->Width, scissor->Height);
_mesa_set_enable(ctx, GL_SCISSOR_TEST, scissor->Enabled);
}
break;
case GL_STENCIL_BUFFER_BIT:
MEMCPY( &ctx->Stencil, attr->data,
sizeof(struct gl_stencil_attrib) );
if (ctx->Driver.StencilFunc)
(*ctx->Driver.StencilFunc)( ctx, ctx->Stencil.Function,
ctx->Stencil.Ref, ctx->Stencil.ValueMask);
if (ctx->Driver.StencilMask)
(*ctx->Driver.StencilMask)( ctx, ctx->Stencil.WriteMask );
if (ctx->Driver.StencilOp)
(*ctx->Driver.StencilOp)( ctx, ctx->Stencil.FailFunc,
ctx->Stencil.ZFailFunc, ctx->Stencil.ZPassFunc);
if (ctx->Driver.ClearStencil)
(*ctx->Driver.ClearStencil)( ctx, ctx->Stencil.Clear );
if (ctx->Driver.Enable)
(*ctx->Driver.Enable)( ctx, GL_STENCIL_TEST, ctx->Stencil.Enabled );
ctx->TriangleCaps &= ~DD_STENCIL;
if (ctx->Stencil.Enabled)
ctx->TriangleCaps |= DD_STENCIL;
{
const struct gl_stencil_attrib *stencil;
stencil = (const struct gl_stencil_attrib *) attr->data;
_mesa_set_enable(ctx, GL_STENCIL_TEST, stencil->Enabled);
_mesa_ClearStencil(stencil->Clear);
_mesa_StencilFunc(stencil->Function, stencil->Ref,
stencil->ValueMask);
_mesa_StencilMask(stencil->WriteMask);
_mesa_StencilOp(stencil->FailFunc, stencil->ZFailFunc,
stencil->ZPassFunc);
}
break;
case GL_TRANSFORM_BIT:
MEMCPY( &ctx->Transform, attr->data,
sizeof(struct gl_transform_attrib) );
if (ctx->Driver.Enable) {
(*ctx->Driver.Enable)( ctx, GL_NORMALIZE, ctx->Transform.Normalize );
(*ctx->Driver.Enable)( ctx, GL_RESCALE_NORMAL_EXT, ctx->Transform.RescaleNormals );
{
GLuint i;
const struct gl_transform_attrib *xform;
xform = (const struct gl_transform_attrib *) attr->data;
_mesa_MatrixMode(xform->MatrixMode);
/* clip planes */
MEMCPY(ctx->Transform.EyeUserPlane, xform->EyeUserPlane,
sizeof(xform->EyeUserPlane));
MEMCPY(ctx->Transform.ClipUserPlane, xform->ClipUserPlane,
sizeof(xform->EyeUserPlane));
/* clip plane enable flags */
for (i = 0; i < MAX_CLIP_PLANES; i++) {
_mesa_set_enable(ctx, GL_CLIP_PLANE0 + i,
xform->ClipEnabled[i]);
}
/* normalize/rescale */
_mesa_set_enable(ctx, GL_NORMALIZE, ctx->Transform.Normalize);
_mesa_set_enable(ctx, GL_RESCALE_NORMAL_EXT,
ctx->Transform.RescaleNormals);
}
ctx->Enabled &= ~(ENABLE_NORMALIZE|ENABLE_RESCALE);
if (ctx->Transform.Normalize) ctx->Enabled |= ENABLE_NORMALIZE;
if (ctx->Transform.RescaleNormals) ctx->Enabled |= ENABLE_RESCALE;
break;
case GL_TEXTURE_BIT:
/* Take care of texture object reference counters */
{
/* XXX call _mesa_Tex*() functions directly? */
GLuint u;
for (u = 0; u < ctx->Const.MaxTextureUnits; u++) {
ctx->Texture.Unit[u].CurrentD[1]->RefCount--;
@@ -786,14 +852,13 @@ _mesa_PopAttrib(void)
}
break;
case GL_VIEWPORT_BIT:
{
struct gl_viewport_attrib *v =
(struct gl_viewport_attrib *)attr->data;
_mesa_Viewport( v->X, v->Y, v->Width, v->Height );
_mesa_DepthRange( v->Near, v->Far );
break;
}
{
const struct gl_viewport_attrib *vp;
vp = (const struct gl_viewport_attrib *)attr->data;
_mesa_Viewport(vp->X, vp->Y, vp->Width, vp->Height);
_mesa_DepthRange(vp->Near, vp->Far);
}
break;
default:
gl_problem( ctx, "Bad attrib flag in PopAttrib");
break;

View File

@@ -1,21 +1,21 @@
/* $Id: blend.c,v 1.16 2000/06/29 22:06:22 brianp Exp $ */
/* $Id: blend.c,v 1.16.4.3 2000/11/05 21:24:00 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
* Copyright (C) 1999 Brian Paul All Rights Reserved.
*
* Version: 3.4
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
@@ -289,7 +289,7 @@ _mesa_BlendEquation( GLenum mode )
ctx->Color.BlendFunc = NULL;
ctx->NewState |= NEW_RASTER_OPS;
if (ctx->Driver.BlendEquation)
ctx->Driver.BlendEquation( ctx, mode );
}
@@ -339,11 +339,31 @@ blend_transparency( GLcontext *ctx, GLuint n, const GLubyte mask[],
/* 100% alpha, no-op */
}
else {
#if 0
/* This is pretty close, but Glean complains */
const GLint s = CHAN_MAX - t;
const GLint r = (rgba[i][RCOMP] * t + dest[i][RCOMP] * s) >> 8;
const GLint g = (rgba[i][GCOMP] * t + dest[i][GCOMP] * s) >> 8;
const GLint b = (rgba[i][BCOMP] * t + dest[i][BCOMP] * s) >> 8;
const GLint a = (rgba[i][ACOMP] * t + dest[i][ACOMP] * s) >> 8;
const GLint r = (rgba[i][RCOMP] * t + dest[i][RCOMP] * s + 1) >> 8;
const GLint g = (rgba[i][GCOMP] * t + dest[i][GCOMP] * s + 1) >> 8;
const GLint b = (rgba[i][BCOMP] * t + dest[i][BCOMP] * s + 1) >> 8;
const GLint a = (rgba[i][ACOMP] * t + dest[i][ACOMP] * s + 1) >> 8;
#elif 0
/* This is slower but satisfies Glean */
const GLint s = CHAN_MAX - t;
const GLint r = (rgba[i][RCOMP] * t + dest[i][RCOMP] * s) / 255;
const GLint g = (rgba[i][GCOMP] * t + dest[i][GCOMP] * s) / 255;
const GLint b = (rgba[i][BCOMP] * t + dest[i][BCOMP] * s) / 255;
const GLint a = (rgba[i][ACOMP] * t + dest[i][ACOMP] * s) / 255;
#else
/* This satisfies Glean and should be reasonably fast */
/* Contributed by Nathan Hand */
#define DIV255(X) (((X) << 8) + (X) + 256) >> 16
const GLint s = CHAN_MAX - t;
const GLint r = DIV255(rgba[i][RCOMP] * t + dest[i][RCOMP] * s);
const GLint g = DIV255(rgba[i][GCOMP] * t + dest[i][GCOMP] * s);
const GLint b = DIV255(rgba[i][BCOMP] * t + dest[i][BCOMP] * s);
const GLint a = DIV255(rgba[i][ACOMP] * t + dest[i][ACOMP] * s);
#undef DIV255
#endif
ASSERT(r <= CHAN_MAX);
ASSERT(g <= CHAN_MAX);
ASSERT(b <= CHAN_MAX);
@@ -755,22 +775,22 @@ blend_general( GLcontext *ctx, GLuint n, const GLubyte mask[],
/* compute blended color */
if (ctx->Color.BlendEquation==GL_FUNC_ADD_EXT) {
r = Rs * sR + Rd * dR;
g = Gs * sG + Gd * dG;
b = Bs * sB + Bd * dB;
a = As * sA + Ad * dA;
r = Rs * sR + Rd * dR + 0.5F;
g = Gs * sG + Gd * dG + 0.5F;
b = Bs * sB + Bd * dB + 0.5F;
a = As * sA + Ad * dA + 0.5F;
}
else if (ctx->Color.BlendEquation==GL_FUNC_SUBTRACT_EXT) {
r = Rs * sR - Rd * dR;
g = Gs * sG - Gd * dG;
b = Bs * sB - Bd * dB;
a = As * sA - Ad * dA;
r = Rs * sR - Rd * dR + 0.5F;
g = Gs * sG - Gd * dG + 0.5F;
b = Bs * sB - Bd * dB + 0.5F;
a = As * sA - Ad * dA + 0.5F;
}
else if (ctx->Color.BlendEquation==GL_FUNC_REVERSE_SUBTRACT_EXT) {
r = Rd * dR - Rs * sR;
g = Gd * dG - Gs * sG;
b = Bd * dB - Bs * sB;
a = Ad * dA - As * sA;
r = Rd * dR - Rs * sR + 0.5F;
g = Gd * dG - Gs * sG + 0.5F;
b = Bd * dB - Bs * sB + 0.5F;
a = Ad * dA - As * sA + 0.5F;
}
else {
/* should never get here */
@@ -791,7 +811,7 @@ blend_general( GLcontext *ctx, GLuint n, const GLubyte mask[],
#if defined(USE_MMX_ASM)
#include "X86/mmx.h"
#include "X86/common_x86asm.h"
#include "X86/common_x86_asm.h"
#endif
@@ -811,8 +831,8 @@ static void set_blend_function( GLcontext *ctx )
/* Hmm. A table here would have 12^4 == way too many entries.
* Provide a hook for MMX instead.
*/
if (gl_x86_cpu_features & GL_CPU_MMX) {
gl_mmx_set_blend_function (ctx);
if ( cpu_has_mmx ) {
gl_mmx_set_blend_function( ctx );
}
else
#endif
@@ -870,7 +890,7 @@ _mesa_blend_span( GLcontext *ctx, GLuint n, GLint x, GLint y,
if (!ctx->Color.BlendFunc)
set_blend_function(ctx);
(*ctx->Color.BlendFunc)( ctx, n, mask, rgba, (const GLubyte (*)[4])dest );
(*ctx->Color.BlendFunc)( ctx, n, mask, rgba, (CONST GLubyte (*)[4])dest );
}
@@ -905,5 +925,5 @@ _mesa_blend_pixels( GLcontext *ctx,
if (!ctx->Color.BlendFunc)
set_blend_function(ctx);
(*ctx->Color.BlendFunc)( ctx, n, mask, rgba, (const GLubyte (*)[4])dest );
(*ctx->Color.BlendFunc)( ctx, n, mask, rgba, (CONST GLubyte (*)[4])dest );
}

View File

@@ -1,7 +1,8 @@
/* $Id: buffers.c,v 1.9.4.3 2000/11/05 21:24:00 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
* Version: 3.4
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
@@ -167,7 +168,7 @@ clear_color_buffer(GLcontext *ctx)
}
else {
/* Color index mode */
ASSERT(ctx->Color.IndexMask == ~0);
ASSERT(ctx->Color.IndexMask == (GLuint) ~0);
if (ctx->Visual->IndexBits == 8) {
/* 8-bit clear */
GLubyte span[MAX_WIDTH];
@@ -208,15 +209,19 @@ clear_color_buffers(GLcontext *ctx)
if (bufferBit & ctx->Color.DrawDestMask) {
if (bufferBit == FRONT_LEFT_BIT) {
(void) (*ctx->Driver.SetDrawBuffer)( ctx, GL_FRONT_LEFT);
(void) (*ctx->Driver.SetReadBuffer)( ctx, ctx->DrawBuffer, GL_FRONT_LEFT);
}
else if (bufferBit == FRONT_RIGHT_BIT) {
(void) (*ctx->Driver.SetDrawBuffer)( ctx, GL_FRONT_RIGHT);
(void) (*ctx->Driver.SetReadBuffer)( ctx, ctx->DrawBuffer, GL_FRONT_RIGHT);
}
else if (bufferBit == BACK_LEFT_BIT) {
(void) (*ctx->Driver.SetDrawBuffer)( ctx, GL_BACK_LEFT);
(void) (*ctx->Driver.SetReadBuffer)( ctx, ctx->DrawBuffer, GL_BACK_LEFT);
}
else {
(void) (*ctx->Driver.SetDrawBuffer)( ctx, GL_BACK_RIGHT);
(void) (*ctx->Driver.SetReadBuffer)( ctx, ctx->DrawBuffer, GL_BACK_RIGHT);
}
if (ctx->Color.SWmasking) {
@@ -228,8 +233,9 @@ clear_color_buffers(GLcontext *ctx)
}
}
/* restore default dest buffer */
/* restore default read/draw buffers */
(void) (*ctx->Driver.SetDrawBuffer)( ctx, ctx->Color.DriverDrawBuffer );
(void) (*ctx->Driver.SetReadBuffer)( ctx, ctx->ReadBuffer, ctx->Pixel.DriverReadBuffer );
}
@@ -287,6 +293,8 @@ _mesa_Clear( GLbitfield mask )
}
#endif
RENDER_START(ctx);
/* do software clearing here */
if (newMask) {
if (newMask & ctx->Color.DrawDestMask) clear_color_buffers(ctx);
@@ -302,6 +310,8 @@ _mesa_Clear( GLbitfield mask )
_mesa_clear_alpha_buffers( ctx );
}
RENDER_FINISH(ctx);
#ifdef PROFILE
ctx->ClearTime += gl_time() - t0;
ctx->ClearCount++;

View File

@@ -1,10 +1,10 @@
/* $Id: clip.c,v 1.8 2000/04/17 18:18:00 keithw Exp $ */
/* $Id: clip.c,v 1.8.4.1 2001/02/09 16:46:56 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
* Version: 3.4.1
*
* Copyright (C) 1999 Brian Paul All Rights Reserved.
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -301,14 +301,8 @@ GLuint gl_userclip_point( GLcontext* ctx, const GLfloat v[] )
#if 0
#define NEGATIVE(x) ((*(int *)&x)<0)
#define DIFFERENT_SIGNS(a,b) ((a*b) < 0)
#else
#define NEGATIVE(x) (x < 0)
#define DIFFERENT_SIGNS(a,b) ((a*b) < 0)
#endif
#define NEGATIVE(x) ((x) < 0.0)
#define DIFFERENT_SIGNS(a, b) (((a) * (b)) <= 0.0 && ((a) != (b)))
static clip_poly_func gl_poly_clip_tab[2][5];

View File

@@ -1,4 +1,4 @@
/* $Id: colortab.c,v 1.20 2000/06/29 18:54:29 brianp Exp $ */
/* $Id: colortab.c,v 1.20.4.3 2000/11/21 23:00:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -325,17 +325,14 @@ _mesa_ColorTable( GLenum target, GLenum internalFormat,
return;
}
if (width > ctx->Const.MaxColorTableSize) {
if (width > (GLsizei) ctx->Const.MaxColorTableSize) {
if (proxy) {
table->Size = 0;
table->IntFormat = (GLenum) 0;
table->Format = (GLenum) 0;
}
else {
if (width > ctx->Const.MaxColorTableSize)
gl_error(ctx, GL_TABLE_TOO_LARGE, "glColorTable(width)");
else
gl_error(ctx, GL_INVALID_VALUE, "glColorTable(width)");
gl_error(ctx, GL_TABLE_TOO_LARGE, "glColorTable(width)");
}
return;
}
@@ -356,12 +353,12 @@ _mesa_ColorTable( GLenum target, GLenum internalFormat,
if (floatTable) {
GLfloat tempTab[MAX_COLOR_TABLE_SIZE * 4];
GLfloat *tableF;
GLuint i;
GLint i;
_mesa_unpack_float_color_span(ctx, width, table->Format,
tempTab, /* dest */
format, type, data,
&ctx->Unpack, GL_TRUE, GL_FALSE);
&ctx->Unpack, GL_FALSE, GL_FALSE);
table->TableType = GL_FLOAT;
table->Table = MALLOC(comps * width * sizeof(GLfloat));
@@ -423,9 +420,9 @@ _mesa_ColorTable( GLenum target, GLenum internalFormat,
return;
}
_mesa_unpack_ubyte_color_span(ctx, width, table->Format,
table->Table, /* dest */
(GLubyte *) table->Table, /* dest */
format, type, data,
&ctx->Unpack, GL_TRUE);
&ctx->Unpack, GL_FALSE);
} /* floatTable */
} /* proxy */
@@ -524,7 +521,7 @@ _mesa_ColorSubTable( GLenum target, GLsizei start,
comps = _mesa_components_in_format(table->Format);
assert(comps > 0); /* error should have been caught sooner */
if (start + count > table->Size) {
if (start + count > (GLint) table->Size) {
gl_error(ctx, GL_INVALID_VALUE, "glColorSubTable(count)");
return;
}
@@ -537,19 +534,19 @@ _mesa_ColorSubTable( GLenum target, GLsizei start,
if (table->TableType == GL_UNSIGNED_BYTE) {
GLubyte *dest = (GLubyte *) table->Table + start * comps * sizeof(GLubyte);
_mesa_unpack_ubyte_color_span(ctx, count, table->Format, dest,
format, type, data, &ctx->Unpack, GL_TRUE);
format, type, data, &ctx->Unpack, GL_FALSE);
}
else {
GLfloat tempTab[MAX_COLOR_TABLE_SIZE * 4];
GLfloat *tableF;
GLuint i;
GLint i;
ASSERT(table->TableType == GL_FLOAT);
_mesa_unpack_float_color_span(ctx, count, table->Format,
tempTab, /* dest */
format, type, data,
&ctx->Unpack, GL_TRUE, GL_FALSE);
&ctx->Unpack, GL_FALSE, GL_FALSE);
tableF = (GLfloat *) table->Table;
@@ -629,7 +626,9 @@ _mesa_CopyColorTable(GLenum target, GLenum internalformat,
width = MAX_WIDTH;
/* read the data from framebuffer */
RENDER_START(ctx);
gl_read_rgba_span( ctx, ctx->ReadBuffer, width, x, y, data );
RENDER_FINISH(ctx);
/* Restore reading from draw buffer (the default) */
(*ctx->Driver.SetReadBuffer)( ctx, ctx->DrawBuffer,
@@ -658,7 +657,9 @@ _mesa_CopyColorSubTable(GLenum target, GLsizei start,
width = MAX_WIDTH;
/* read the data from framebuffer */
RENDER_START(ctx);
gl_read_rgba_span( ctx, ctx->ReadBuffer, width, x, y, data );
RENDER_FINISH(ctx);
/* Restore reading from draw buffer (the default) */
(*ctx->Driver.SetReadBuffer)( ctx, ctx->DrawBuffer,
@@ -677,7 +678,7 @@ _mesa_GetColorTable( GLenum target, GLenum format,
struct gl_texture_unit *texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
struct gl_color_table *table = NULL;
GLubyte rgba[MAX_COLOR_TABLE_SIZE][4];
GLint i;
GLuint i;
ASSERT_OUTSIDE_BEGIN_END(ctx, "glGetColorTable");
@@ -836,7 +837,7 @@ _mesa_GetColorTable( GLenum target, GLenum format,
return;
}
_mesa_pack_rgba_span(ctx, table->Size, (const GLubyte (*)[]) rgba,
_mesa_pack_rgba_span(ctx, table->Size, (CONST GLubyte (*)[4]) rgba,
format, type, data, &ctx->Pack, GL_FALSE);
}

View File

@@ -1,8 +1,7 @@
/* $Id: context.c,v 1.79 2000/07/19 20:58:59 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
* Version: 3.4
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
@@ -211,10 +210,11 @@ _mesa_initialize_visual( GLvisual *vis,
if (depthBits == 0) {
/* Special case. Even if we don't have a depth buffer we need
* good values for DepthMax for Z vertex transformation purposes.
* good values for DepthMax for Z vertex transformation purposes
* and for per-fragment fog computation.
*/
vis->DepthMax = 1;
vis->DepthMaxF = 1.0F;
vis->DepthMax = 1 << 16;
vis->DepthMaxF = (GLfloat) vis->DepthMax;
}
else if (depthBits < 32) {
vis->DepthMax = (1 << depthBits) - 1;
@@ -412,10 +412,10 @@ one_time_init( void )
_mesa_init_fog();
_mesa_init_math();
gl_init_lists();
gl_init_shade();
gl_init_texture();
gl_init_transformation();
gl_init_translate();
gl_init_shade();
gl_init_vbrender();
gl_init_vbxform();
gl_init_vertices();
@@ -452,9 +452,13 @@ alloc_shared_state( void )
if (!ss)
return NULL;
ss->DisplayList = _mesa_NewHashTable();
_glthread_INIT_MUTEX(ss->Mutex);
ss->DisplayList = _mesa_NewHashTable();
ss->TexObjects = _mesa_NewHashTable();
#ifdef VAO
ss->ArrayObjects = _mesa_NewHashTable();
#endif
/* Default Texture objects */
outOfMemory = GL_FALSE;
@@ -593,6 +597,8 @@ init_texture_unit( GLcontext *ctx, GLuint unit )
{
struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit];
texUnit->Enabled = 0;
texUnit->ReallyEnabled = 0;
texUnit->EnvMode = GL_MODULATE;
texUnit->CombineModeRGB = GL_MODULATE;
texUnit->CombineModeA = GL_MODULATE;
@@ -1149,9 +1155,10 @@ init_attrib_groups( GLcontext *ctx )
/* Texture group */
ctx->Texture.CurrentUnit = 0; /* multitexture */
ctx->Texture.CurrentTransformUnit = 0; /* multitexture */
ctx->Texture.Enabled = 0;
ctx->Texture.ReallyEnabled = 0;
for (i=0; i<MAX_TEXTURE_UNITS; i++)
init_texture_unit( ctx, i );
ctx->Texture.SharedPalette = GL_FALSE;
_mesa_init_colortable(&ctx->Texture.Palette);
/* Transformation group */
@@ -1184,6 +1191,13 @@ init_attrib_groups( GLcontext *ctx )
ctx->Viewport.WindowMap.type = MATRIX_3D_NO_ROT;
/* Vertex arrays */
#ifdef VAO
{
struct gl_array_object *arrayObj;
arrayObj = _mesa_alloc_vertex_array_object(ctx, 0);
ctx->Array.Current = arrayObj;
}
#else
ctx->Array.Vertex.Size = 4;
ctx->Array.Vertex.Type = GL_FLOAT;
ctx->Array.Vertex.Stride = 0;
@@ -1219,6 +1233,7 @@ init_attrib_groups( GLcontext *ctx )
ctx->Array.EdgeFlag.StrideB = 0;
ctx->Array.EdgeFlag.Ptr = NULL;
ctx->Array.EdgeFlag.Enabled = GL_FALSE;
#endif
ctx->Array.ActiveTexture = 0; /* GL_ARB_multitexture */
/* Pixel transfer */
@@ -1376,7 +1391,8 @@ alloc_proxy_textures( GLcontext *ctx )
/*
* Initialize a GLcontext struct.
* Initialize a GLcontext struct. This includes allocating all the
* other structs and arrays which hang off of the context by pointers.
*/
GLboolean
_mesa_initialize_context( GLcontext *ctx,
@@ -1399,7 +1415,6 @@ _mesa_initialize_context( GLcontext *ctx,
ctx->VB = gl_vb_create_for_immediate( ctx );
if (!ctx->VB) {
FREE( ctx );
return GL_FALSE;
}
ctx->input = ctx->VB->IM;
@@ -1407,7 +1422,6 @@ _mesa_initialize_context( GLcontext *ctx,
ctx->PB = gl_alloc_pb();
if (!ctx->PB) {
ALIGN_FREE( ctx->VB );
FREE( ctx );
return GL_FALSE;
}
@@ -1421,7 +1435,6 @@ _mesa_initialize_context( GLcontext *ctx,
if (!ctx->Shared) {
ALIGN_FREE( ctx->VB );
FREE( ctx->PB );
FREE( ctx );
return GL_FALSE;
}
}
@@ -1453,7 +1466,6 @@ _mesa_initialize_context( GLcontext *ctx,
free_shared_state(ctx, ctx->Shared);
ALIGN_FREE( ctx->VB );
FREE( ctx->PB );
FREE( ctx );
return GL_FALSE;
}
@@ -1484,7 +1496,6 @@ _mesa_initialize_context( GLcontext *ctx,
FREE( ctx->PB );
if (ctx->Exec)
FREE( ctx->Exec );
FREE( ctx );
}
_mesa_init_exec_table(ctx->Exec, dispatchSize);
_mesa_init_dlist_table(ctx->Save, dispatchSize);

View File

@@ -1,7 +1,8 @@
/* $Id: dd.h,v 1.26.4.4 2000/09/28 18:25:00 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
* Version: 3.4
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
@@ -640,18 +641,31 @@ struct dd_function_table {
* Core Mesa will perform any image format/type conversions that are needed.
*/
GLboolean (*TestProxyTexImage)(GLcontext *ctx, GLenum target,
GLint level, GLint internalFormat,
GLenum format, GLenum type,
GLint width, GLint height,
GLint depth, GLint border);
/* Called by glTexImage[123]D when user specifies a proxy texture
* target. Return GL_TRUE if the proxy test passes, return GL_FALSE
* if the test fails.
*/
GLboolean (*CompressedTexImage1D)( GLcontext *ctx, GLenum target,
GLint level, const GLvoid *data,
GLint level, GLsizei imageSize,
const GLvoid *data,
struct gl_texture_object *texObj,
struct gl_texture_image *texImage,
GLboolean *retainInternalCopy);
GLboolean (*CompressedTexImage2D)( GLcontext *ctx, GLenum target,
GLint level, const GLvoid *data,
GLint level, GLsizei imageSize,
const GLvoid *data,
struct gl_texture_object *texObj,
struct gl_texture_image *texImage,
GLboolean *retainInternalCopy);
GLboolean (*CompressedTexImage3D)( GLcontext *ctx, GLenum target,
GLint level, const GLvoid *data,
GLint level, GLsizei imageSize,
const GLvoid *data,
struct gl_texture_object *texObj,
struct gl_texture_image *texImage,
GLboolean *retainInternalCopy);
@@ -699,6 +713,49 @@ struct dd_function_table {
* should do the job.
*/
GLint (*BaseCompressedTexFormat)(GLcontext *ctx,
GLint internalFormat);
/* Called to compute the base format for a specific compressed
* format. Return -1 if the internalFormat is not a specific
* compressed format that the driver recognizes. Note the
* return value differences between this function and
* SpecificCompressedTexFormat below.
*/
GLint (*SpecificCompressedTexFormat)(GLcontext *ctx,
GLint internalFormat,
GLint numDimensions,
GLint *levelp,
GLsizei *widthp,
GLsizei *heightp,
GLsizei *depthp,
GLint *borderp,
GLenum *formatp,
GLenum *typep);
/* Called to turn a generic texture format into a specific
* texture format. For example, if a driver implements
* GL_3DFX_texture_compression_FXT1, this would map
* GL_COMPRESSED_RGBA_ARB to GL_COMPRESSED_RGBA_FXT1_3DFX.
*
* If the driver does not know how to handle the compressed
* format, then just return the generic format, and Mesa will
* do the right thing with it.
*/
GLboolean (*IsCompressedFormat)(GLcontext *ctx, GLint internalFormat);
/* Called to tell if a format is a compressed format.
*/
GLsizei (*CompressedImageSize)(GLcontext *ctx,
GLenum internalFormat,
GLuint numDimensions,
GLuint width,
GLuint height,
GLuint depth);
/* Calculate the size of a compressed image, given the image's
* format and dimensions.
*/
void (*GetCompressedTexImage)( GLcontext *ctx, GLenum target,
GLint lod, void *image,
const struct gl_texture_object *texObj,
@@ -759,7 +816,7 @@ struct dd_function_table {
/***
*** Accelerated point, line, polygon, glDrawPixels and glBitmap functions:
*** Accelerated point, line, polygon, quad and rect functions:
***/
points_func PointsFunc;
@@ -906,6 +963,16 @@ struct dd_function_table {
void (*StencilMask)(GLcontext *ctx, GLuint mask);
void (*StencilOp)(GLcontext *ctx, GLenum fail, GLenum zfail, GLenum zpass);
void (*Viewport)(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h);
/* State-query functions
*
* Return GL_TRUE if query was completed, GL_FALSE otherwise.
*/
GLboolean (*GetBooleanv)(GLcontext *ctx, GLenum pname, GLboolean *result);
GLboolean (*GetDoublev)(GLcontext *ctx, GLenum pname, GLdouble *result);
GLboolean (*GetFloatv)(GLcontext *ctx, GLenum pname, GLfloat *result);
GLboolean (*GetIntegerv)(GLcontext *ctx, GLenum pname, GLint *result);
GLboolean (*GetPointerv)(GLcontext *ctx, GLenum pname, GLvoid **result);
};

View File

@@ -1,4 +1,4 @@
/* $Id: depth.c,v 1.17 2000/04/11 20:42:22 brianp Exp $ */
/* $Id: depth.c,v 1.17.4.2 2001/02/08 15:54:33 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -1458,14 +1458,14 @@ _mesa_read_depth_span( GLcontext *ctx,
/* read from software depth buffer */
if (ctx->Visual->DepthBits <= 16) {
const GLushort *zptr = Z_ADDRESS16( ctx, x, y );
GLuint i;
GLint i;
for (i = 0; i < n; i++) {
depth[i] = zptr[i];
}
}
else {
const GLuint *zptr = Z_ADDRESS32( ctx, x, y );
GLuint i;
GLint i;
for (i = 0; i < n; i++) {
depth[i] = zptr[i];
}
@@ -1530,14 +1530,14 @@ _mesa_read_depth_span_float( GLcontext *ctx,
/* read from software depth buffer */
if (ctx->Visual->DepthBits <= 16) {
const GLushort *zptr = Z_ADDRESS16( ctx, x, y );
GLuint i;
GLint i;
for (i = 0; i < n; i++) {
depth[i] = (GLfloat) zptr[i] * scale;
}
}
else {
const GLuint *zptr = Z_ADDRESS32( ctx, x, y );
GLuint i;
GLint i;
for (i = 0; i < n; i++) {
depth[i] = (GLfloat) zptr[i] * scale;
}
@@ -1546,7 +1546,7 @@ _mesa_read_depth_span_float( GLcontext *ctx,
else if (ctx->Driver.ReadDepthSpan) {
/* read from hardware depth buffer */
GLdepth d[MAX_WIDTH];
GLuint i;
GLint i;
assert(n <= MAX_WIDTH);
(*ctx->Driver.ReadDepthSpan)( ctx, n, x, y, d );
for (i = 0; i < n; i++) {
@@ -1630,29 +1630,31 @@ _mesa_clear_depth_buffer( GLcontext *ctx )
if (ctx->Visual->DepthBits <= 16) {
const GLushort clearValue = (GLushort) (ctx->Depth.Clear * ctx->Visual->DepthMax);
const GLint rows = ctx->DrawBuffer->Ymax - ctx->DrawBuffer->Ymin + 1;
const GLint width = ctx->DrawBuffer->Width;
const GLint cols = ctx->DrawBuffer->Xmax - ctx->DrawBuffer->Xmin + 1;
const GLint rowStride = ctx->DrawBuffer->Width;
GLushort *dRow = (GLushort *) ctx->DrawBuffer->DepthBuffer
+ ctx->DrawBuffer->Ymin * width + ctx->DrawBuffer->Xmin;
+ ctx->DrawBuffer->Ymin * rowStride + ctx->DrawBuffer->Xmin;
GLint i, j;
for (i = 0; i < rows; i++) {
for (j = 0; j < width; j++) {
for (j = 0; j < cols; j++) {
dRow[j] = clearValue;
}
dRow += width;
dRow += rowStride;
}
}
else {
const GLuint clearValue = (GLuint) (ctx->Depth.Clear * ctx->Visual->DepthMax);
const GLint rows = ctx->DrawBuffer->Ymax - ctx->DrawBuffer->Ymin + 1;
const GLint width = ctx->DrawBuffer->Width;
const GLint cols = ctx->DrawBuffer->Xmax - ctx->DrawBuffer->Xmin + 1;
const GLint rowStride = ctx->DrawBuffer->Width;
GLuint *dRow = (GLuint *) ctx->DrawBuffer->DepthBuffer
+ ctx->DrawBuffer->Ymin * width + ctx->DrawBuffer->Xmin;
+ ctx->DrawBuffer->Ymin * rowStride + ctx->DrawBuffer->Xmin;
GLint i, j;
for (i = 0; i < rows; i++) {
for (j = 0; j < width; j++) {
for (j = 0; j < cols; j++) {
dRow[j] = clearValue;
}
dRow += width;
dRow += rowStride;
}
}
}

View File

@@ -13,7 +13,7 @@ VPATH = RCS
INCDIR = [-.include]
LIBDIR = [-.lib]
CFLAGS = /include=($(INCDIR),[])/define=(FBIND=1)
CFLAGS = /include=($(INCDIR),[])/define=(FBIND=1)/name=(as_is,short)
CORE_SOURCES = aatriangle.c accum.c alpha.c alphabuf.c attrib.c \
bitmap.c blend.c buffers.c clip.c colortab.c context.c copypix.c depth.c \

View File

@@ -1,8 +1,8 @@
/* $Id: drawpix.c,v 1.26 2000/06/30 22:19:41 brianp Exp $ */
/* $Id: drawpix.c,v 1.26.4.7 2000/11/05 21:24:00 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
* Version: 3.4
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
@@ -122,11 +122,10 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y,
&& ctx->ColorMatrix.type == MATRIX_IDENTITY
&& !ctx->Pixel.ColorTableEnabled
&& !ctx->Pixel.PostColorMatrixColorTableEnabled
&& ctx->Pixel.PostConvolutionColorTableEnabled
&& !ctx->Pixel.PostConvolutionColorTableEnabled
&& !ctx->Pixel.MinMaxEnabled
&& !ctx->Pixel.HistogramEnabled
&& ctx->Pixel.IndexShift==0 && ctx->Pixel.IndexOffset==0
&& ctx->Pixel.MapColorFlag==0
&& ctx->Texture.ReallyEnabled == 0
&& unpack->Alignment==1
&& !unpack->SwapBytes
@@ -140,7 +139,7 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y,
GLint skipRows = unpack->SkipRows;
GLint rowLength;
GLdepth zSpan[MAX_WIDTH]; /* only used when zooming */
GLint zoomY0;
GLint zoomY0 = 0;
if (unpack->RowLength > 0)
rowLength = unpack->RowLength;
@@ -173,14 +172,36 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y,
drawHeight -= (destY + drawHeight - ctx->DrawBuffer->Ymax - 1);
if (drawHeight <= 0)
return GL_TRUE;
}
else if (ctx->Pixel.ZoomX==1.0F && ctx->Pixel.ZoomY==-1.0F) {
/* upside-down image */
/* horizontal clipping */
if (destX < ctx->DrawBuffer->Xmin) {
skipPixels += (ctx->DrawBuffer->Xmin - destX);
drawWidth -= (ctx->DrawBuffer->Xmin - destX);
destX = ctx->DrawBuffer->Xmin;
}
if (destX + drawWidth > ctx->DrawBuffer->Xmax)
drawWidth -= (destX + drawWidth - ctx->DrawBuffer->Xmax - 1);
if (drawWidth <= 0)
return GL_TRUE;
zoomY0 = 0; /* not used - silence compiler warning */
/* vertical clipping */
if (destY > ctx->DrawBuffer->Ymax) {
skipRows += (destY - ctx->DrawBuffer->Ymax - 1);
drawHeight -= (destY - ctx->DrawBuffer->Ymax - 1);
destY = ctx->DrawBuffer->Ymax + 1;
}
if (destY - drawHeight < ctx->DrawBuffer->Ymin)
drawHeight -= (ctx->DrawBuffer->Ymin - (destY - drawHeight));
if (drawHeight <= 0)
return GL_TRUE;
}
else {
/* setup array of fragment Z value to pass to zoom function */
GLdepth z = (GLdepth) (ctx->Current.RasterPos[2] * ctx->Visual->DepthMaxF);
GLint i;
assert(drawWidth < MAX_WIDTH);
ASSERT(drawWidth < MAX_WIDTH);
for (i=0; i<drawWidth; i++)
zSpan[i] = z;
@@ -197,7 +218,8 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y,
* skip "skipRows" rows and skip "skipPixels" pixels/row.
*/
if (format==GL_RGBA && type==GL_UNSIGNED_BYTE) {
if (format==GL_RGBA && type==GL_UNSIGNED_BYTE
&& ctx->Pixel.MapColorFlag==0) {
if (ctx->Visual->RGBAflag) {
GLubyte *src = (GLubyte *) pixels
+ (skipRows * rowLength + skipPixels) * 4;
@@ -206,17 +228,27 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y,
GLint row;
for (row=0; row<drawHeight; row++) {
(*ctx->Driver.WriteRGBASpan)(ctx, drawWidth, destX, destY,
(void *) src, NULL);
(CONST GLubyte (*)[4]) src, NULL);
src += rowLength * 4;
destY++;
}
}
else if (ctx->Pixel.ZoomX==1.0F && ctx->Pixel.ZoomY==-1.0F) {
/* upside-down */
GLint row;
for (row=0; row<drawHeight; row++) {
destY--;
(*ctx->Driver.WriteRGBASpan)(ctx, drawWidth, destX, destY,
(CONST GLubyte (*)[4]) src, NULL);
src += rowLength * 4;
}
}
else {
/* with zooming */
GLint row;
for (row=0; row<drawHeight; row++) {
gl_write_zoomed_rgba_span(ctx, drawWidth, destX, destY,
zSpan, (void *) src, zoomY0);
zSpan, (CONST GLubyte (*)[4]) src, zoomY0);
src += rowLength * 4;
destY++;
}
@@ -224,7 +256,8 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y,
}
return GL_TRUE;
}
else if (format==GL_RGB && type==GL_UNSIGNED_BYTE) {
else if (format==GL_RGB && type==GL_UNSIGNED_BYTE
&& ctx->Pixel.MapColorFlag==0) {
if (ctx->Visual->RGBAflag) {
GLubyte *src = (GLubyte *) pixels
+ (skipRows * rowLength + skipPixels) * 3;
@@ -232,17 +265,27 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y,
GLint row;
for (row=0; row<drawHeight; row++) {
(*ctx->Driver.WriteRGBSpan)(ctx, drawWidth, destX, destY,
(void *) src, NULL);
(CONST GLubyte (*)[3]) src, NULL);
src += rowLength * 3;
destY++;
}
}
else if (ctx->Pixel.ZoomX==1.0F && ctx->Pixel.ZoomY==-1.0F) {
/* upside-down */
GLint row;
for (row=0; row<drawHeight; row++) {
destY--;
(*ctx->Driver.WriteRGBSpan)(ctx, drawWidth, destX, destY,
(CONST GLubyte (*)[3]) src, NULL);
src += rowLength * 3;
}
}
else {
/* with zooming */
GLint row;
for (row=0; row<drawHeight; row++) {
gl_write_zoomed_rgb_span(ctx, drawWidth, destX, destY,
zSpan, (void *) src, zoomY0);
zSpan, (CONST GLubyte (*)[3]) src, zoomY0);
src += rowLength * 3;
destY++;
}
@@ -250,14 +293,15 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y,
}
return GL_TRUE;
}
else if (format==GL_LUMINANCE && type==GL_UNSIGNED_BYTE) {
else if (format==GL_LUMINANCE && type==GL_UNSIGNED_BYTE
&& ctx->Pixel.MapColorFlag==0) {
if (ctx->Visual->RGBAflag) {
GLubyte *src = (GLubyte *) pixels
+ (skipRows * rowLength + skipPixels);
if (ctx->Pixel.ZoomX==1.0F && ctx->Pixel.ZoomY==1.0F) {
/* no zooming */
GLint row;
assert(drawWidth < MAX_WIDTH);
ASSERT(drawWidth < MAX_WIDTH);
for (row=0; row<drawHeight; row++) {
GLint i;
for (i=0;i<drawWidth;i++) {
@@ -266,15 +310,32 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y,
rgb[i][2] = src[i];
}
(*ctx->Driver.WriteRGBSpan)(ctx, drawWidth, destX, destY,
(void *) rgb, NULL);
(CONST GLubyte (*)[3]) rgb, NULL);
src += rowLength;
destY++;
}
}
else if (ctx->Pixel.ZoomX==1.0F && ctx->Pixel.ZoomY==-1.0F) {
/* upside-down */
GLint row;
ASSERT(drawWidth < MAX_WIDTH);
for (row=0; row<drawHeight; row++) {
GLint i;
for (i=0;i<drawWidth;i++) {
rgb[i][0] = src[i];
rgb[i][1] = src[i];
rgb[i][2] = src[i];
}
destY--;
(*ctx->Driver.WriteRGBSpan)(ctx, drawWidth, destX, destY,
(CONST GLubyte (*)[3]) rgb, NULL);
src += rowLength;
}
}
else {
/* with zooming */
GLint row;
assert(drawWidth < MAX_WIDTH);
ASSERT(drawWidth < MAX_WIDTH);
for (row=0; row<drawHeight; row++) {
GLint i;
for (i=0;i<drawWidth;i++) {
@@ -283,7 +344,7 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y,
rgb[i][2] = src[i];
}
gl_write_zoomed_rgb_span(ctx, drawWidth, destX, destY,
zSpan, (void *) rgb, zoomY0);
zSpan, (CONST GLubyte (*)[3]) rgb, zoomY0);
src += rowLength;
destY++;
}
@@ -291,14 +352,15 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y,
}
return GL_TRUE;
}
else if (format==GL_LUMINANCE_ALPHA && type==GL_UNSIGNED_BYTE) {
else if (format==GL_LUMINANCE_ALPHA && type==GL_UNSIGNED_BYTE
&& ctx->Pixel.MapColorFlag==0) {
if (ctx->Visual->RGBAflag) {
GLubyte *src = (GLubyte *) pixels
+ (skipRows * rowLength + skipPixels)*2;
if (ctx->Pixel.ZoomX==1.0F && ctx->Pixel.ZoomY==1.0F) {
/* no zooming */
GLint row;
assert(drawWidth < MAX_WIDTH);
ASSERT(drawWidth < MAX_WIDTH);
for (row=0; row<drawHeight; row++) {
GLint i;
GLubyte *ptr = src;
@@ -309,15 +371,34 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y,
rgba[i][3] = *ptr++;
}
(*ctx->Driver.WriteRGBASpan)(ctx, drawWidth, destX, destY,
(void *) rgba, NULL);
(CONST GLubyte (*)[4]) rgba, NULL);
src += rowLength*2;
destY++;
}
}
else if (ctx->Pixel.ZoomX==1.0F && ctx->Pixel.ZoomY==-1.0F) {
/* upside-down */
GLint row;
ASSERT(drawWidth < MAX_WIDTH);
for (row=0; row<drawHeight; row++) {
GLint i;
GLubyte *ptr = src;
for (i=0;i<drawWidth;i++) {
rgba[i][0] = *ptr;
rgba[i][1] = *ptr;
rgba[i][2] = *ptr++;
rgba[i][3] = *ptr++;
}
destY--;
(*ctx->Driver.WriteRGBASpan)(ctx, drawWidth, destX, destY,
(CONST GLubyte (*)[4]) rgba, NULL);
src += rowLength*2;
}
}
else {
/* with zooming */
GLint row;
assert(drawWidth < MAX_WIDTH);
ASSERT(drawWidth < MAX_WIDTH);
for (row=0; row<drawHeight; row++) {
GLubyte *ptr = src;
GLint i;
@@ -328,7 +409,7 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y,
rgba[i][3] = *ptr++;
}
gl_write_zoomed_rgba_span(ctx, drawWidth, destX, destY,
zSpan, (void *) rgba, zoomY0);
zSpan, (CONST GLubyte (*)[4]) rgba, zoomY0);
src += rowLength*2;
destY++;
}
@@ -344,24 +425,38 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y,
/* no zooming */
GLint row;
for (row=0; row<drawHeight; row++) {
assert(drawWidth < MAX_WIDTH);
ASSERT(drawWidth < MAX_WIDTH);
_mesa_map_ci8_to_rgba(ctx, drawWidth, src, rgba);
(*ctx->Driver.WriteRGBASpan)(ctx, drawWidth, destX, destY,
(const GLubyte (*)[4])rgba,
(CONST GLubyte (*)[4])rgba,
NULL);
src += rowLength;
destY++;
}
return GL_TRUE;
}
else if (ctx->Pixel.ZoomX==1.0F && ctx->Pixel.ZoomY==-1.0F) {
/* upside-down */
GLint row;
for (row=0; row<drawHeight; row++) {
ASSERT(drawWidth < MAX_WIDTH);
_mesa_map_ci8_to_rgba(ctx, drawWidth, src, rgba);
destY--;
(*ctx->Driver.WriteRGBASpan)(ctx, drawWidth, destX, destY,
(CONST GLubyte (*)[4])rgba,
NULL);
src += rowLength;
}
return GL_TRUE;
}
else {
/* with zooming */
GLint row;
for (row=0; row<drawHeight; row++) {
assert(drawWidth < MAX_WIDTH);
ASSERT(drawWidth < MAX_WIDTH);
_mesa_map_ci8_to_rgba(ctx, drawWidth, src, rgba);
gl_write_zoomed_rgba_span(ctx, drawWidth, destX, destY,
zSpan, (void *) rgba, zoomY0);
zSpan, (CONST GLubyte (*)[4]) rgba, zoomY0);
src += rowLength;
destY++;
}
@@ -551,8 +646,9 @@ draw_depth_pixels( GLcontext *ctx, GLint x, GLint y,
GLint row;
for (row = 0; row < height; row++, y++) {
GLdepth zspan[MAX_WIDTH];
const GLushort *zptr = _mesa_image_address(&ctx->Unpack,
pixels, width, height, GL_DEPTH_COMPONENT, type, 0, row, 0);
const GLushort *zptr = (const GLushort *)
_mesa_image_address(&ctx->Unpack, pixels, width, height,
GL_DEPTH_COMPONENT, type, 0, row, 0);
GLint i;
for (i = 0; i < width; i++)
zspan[i] = zptr[i];
@@ -564,8 +660,9 @@ draw_depth_pixels( GLcontext *ctx, GLint x, GLint y,
/* Special case: directly write 32-bit depth values */
GLint row;
for (row = 0; row < height; row++, y++) {
const GLuint *zptr = _mesa_image_address(&ctx->Unpack,
pixels, width, height, GL_DEPTH_COMPONENT, type, 0, row, 0);
const GLuint *zptr = (const GLuint *)
_mesa_image_address(&ctx->Unpack, pixels, width, height,
GL_DEPTH_COMPONENT, type, 0, row, 0);
gl_write_rgba_span( ctx, width, x, y, zptr, rgba, GL_BITMAP );
}
}
@@ -581,7 +678,7 @@ draw_depth_pixels( GLcontext *ctx, GLint x, GLint y,
if (ctx->Visual->RGBAflag) {
if (zoom) {
gl_write_zoomed_rgba_span(ctx, width, x, y, zspan,
(const GLubyte (*)[4])rgba, desty);
(CONST GLubyte (*)[4])rgba, desty);
}
else {
gl_write_rgba_span(ctx, width, x, y, zspan, rgba, GL_BITMAP);
@@ -616,6 +713,11 @@ draw_rgba_pixels( GLcontext *ctx, GLint x, GLint y,
GLdepth zspan[MAX_WIDTH];
GLboolean quickDraw;
if (!_mesa_is_legal_format_and_type(format, type)) {
gl_error(ctx, GL_INVALID_ENUM, "glDrawPixels(format or type)");
return;
}
/* Try an optimized glDrawPixels first */
if (simple_DrawPixels(ctx, x, y, width, height, format, type, pixels))
return;
@@ -652,8 +754,8 @@ draw_rgba_pixels( GLcontext *ctx, GLint x, GLint y,
for (row = 0; row < height; row++, y++) {
const GLvoid *source = _mesa_image_address(unpack,
pixels, width, height, format, type, 0, row, 0);
_mesa_unpack_ubyte_color_span(ctx, width, GL_RGBA, (void*) rgba,
format, type, source, unpack, GL_TRUE);
_mesa_unpack_ubyte_color_span(ctx, width, GL_RGBA,
(GLubyte *) rgba, format, type, source, unpack, GL_TRUE);
if ((ctx->Pixel.MinMaxEnabled && ctx->MinMax.Sink) ||
(ctx->Pixel.HistogramEnabled && ctx->Histogram.Sink))
continue;
@@ -667,7 +769,7 @@ draw_rgba_pixels( GLcontext *ctx, GLint x, GLint y,
MEMCPY(primary_rgba, rgba, 4 * width * sizeof(GLubyte));
for (unit = 0; unit < MAX_TEXTURE_UNITS; unit++) {
_mesa_pixeltexgen(ctx, width, (const GLubyte (*)[4]) rgba,
_mesa_pixeltexgen(ctx, width, (CONST GLubyte (*)[4]) rgba,
s, t, r, q);
gl_texture_pixels(ctx, unit, width, s, t, r, NULL,
primary_rgba, rgba);
@@ -676,11 +778,11 @@ draw_rgba_pixels( GLcontext *ctx, GLint x, GLint y,
if (quickDraw) {
(*ctx->Driver.WriteRGBASpan)( ctx, width, x, y,
(CONST GLubyte (*)[]) rgba, NULL);
(CONST GLubyte (*)[4]) rgba, NULL);
}
else if (zoom) {
gl_write_zoomed_rgba_span( ctx, width, x, y, zspan,
(CONST GLubyte (*)[]) rgba, desty );
(CONST GLubyte (*)[4]) rgba, desty );
}
else {
gl_write_rgba_span( ctx, (GLuint) width, x, y, zspan, rgba, GL_BITMAP);
@@ -723,6 +825,7 @@ _mesa_DrawPixels( GLsizei width, GLsizei height,
return;
}
RENDER_START(ctx);
switch (format) {
case GL_STENCIL_INDEX:
draw_stencil_pixels( ctx, x, y, width, height, type, pixels );
@@ -751,8 +854,8 @@ _mesa_DrawPixels( GLsizei width, GLsizei height,
break;
default:
gl_error( ctx, GL_INVALID_ENUM, "glDrawPixels(format)" );
return;
}
RENDER_FINISH(ctx);
}
else if (ctx->RenderMode==GL_FEEDBACK) {
if (ctx->Current.RasterPosValid) {

View File

@@ -1,10 +1,10 @@
/* $Id: enable.c,v 1.21 2000/05/23 15:17:12 brianp Exp $ */
/* $Id: enable.c,v 1.21.4.4 2001/02/12 17:21:24 brianp Exp $*/
/*
* Mesa 3-D graphics library
* Version: 3.3
* Version: 3.4
*
* Copyright (C) 1999 Brian Paul All Rights Reserved.
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -49,7 +49,7 @@
*/
void _mesa_set_enable( GLcontext *ctx, GLenum cap, GLboolean state )
{
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH( ctx, "gl_enable/disable" );
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH( ctx, state ? "glEnable" : "glDisable" );
if (MESA_VERBOSE & VERBOSE_API)
fprintf(stderr, "%s %s (newstate is %x)\n",
@@ -285,12 +285,14 @@ void _mesa_set_enable( GLcontext *ctx, GLenum cap, GLboolean state )
case GL_POINT_SMOOTH:
if (ctx->Point.SmoothFlag!=state) {
ctx->Point.SmoothFlag = state;
ctx->TriangleCaps ^= DD_POINT_SMOOTH;
ctx->NewState |= NEW_RASTER_OPS;
}
break;
case GL_POLYGON_SMOOTH:
if (ctx->Polygon.SmoothFlag!=state) {
ctx->Polygon.SmoothFlag = state;
ctx->TriangleCaps ^= DD_TRI_SMOOTH;
ctx->NewState |= NEW_RASTER_OPS;
}
break;
@@ -350,48 +352,39 @@ void _mesa_set_enable( GLcontext *ctx, GLenum cap, GLboolean state )
case GL_TEXTURE_1D:
if (ctx->Visual->RGBAflag) {
const GLuint curr = ctx->Texture.CurrentUnit;
const GLuint flag = TEXTURE0_1D << (curr * 4);
struct gl_texture_unit *texUnit = &ctx->Texture.Unit[curr];
ctx->NewState |= NEW_TEXTURE_ENABLE;
if (state) {
texUnit->Enabled |= TEXTURE0_1D;
ctx->Enabled |= flag;
}
else {
texUnit->Enabled &= ~TEXTURE0_1D;
ctx->Enabled &= ~flag;
}
}
break;
case GL_TEXTURE_2D:
if (ctx->Visual->RGBAflag) {
const GLuint curr = ctx->Texture.CurrentUnit;
const GLuint flag = TEXTURE0_2D << (curr * 4);
struct gl_texture_unit *texUnit = &ctx->Texture.Unit[curr];
ctx->NewState |= NEW_TEXTURE_ENABLE;
if (state) {
texUnit->Enabled |= TEXTURE0_2D;
ctx->Enabled |= flag;
}
else {
texUnit->Enabled &= ~TEXTURE0_2D;
ctx->Enabled &= ~flag;
}
}
break;
case GL_TEXTURE_3D:
if (ctx->Visual->RGBAflag) {
const GLuint curr = ctx->Texture.CurrentUnit;
const GLuint flag = TEXTURE0_3D << (curr * 4);
struct gl_texture_unit *texUnit = &ctx->Texture.Unit[curr];
ctx->NewState |= NEW_TEXTURE_ENABLE;
if (state) {
texUnit->Enabled |= TEXTURE0_3D;
ctx->Enabled |= flag;
}
else {
texUnit->Enabled &= ~TEXTURE0_3D;
ctx->Enabled &= ~flag;
}
}
break;
@@ -440,22 +433,46 @@ void _mesa_set_enable( GLcontext *ctx, GLenum cap, GLboolean state )
* CLIENT STATE!!!
*/
case GL_VERTEX_ARRAY:
#ifdef VAO
ctx->Array.Current->Vertex.Enabled = state;
#else
ctx->Array.Vertex.Enabled = state;
#endif
break;
case GL_NORMAL_ARRAY:
#ifdef VAO
ctx->Array.Current->Normal.Enabled = state;
#else
ctx->Array.Normal.Enabled = state;
#endif
break;
case GL_COLOR_ARRAY:
#ifdef VAO
ctx->Array.Current->Color.Enabled = state;
#else
ctx->Array.Color.Enabled = state;
#endif
break;
case GL_INDEX_ARRAY:
#ifdef VAO
ctx->Array.Current->Index.Enabled = state;
#else
ctx->Array.Index.Enabled = state;
#endif
break;
case GL_TEXTURE_COORD_ARRAY:
#ifdef VAO
ctx->Array.Current->TexCoord[ctx->Array.ActiveTexture].Enabled = state;
#else
ctx->Array.TexCoord[ctx->Array.ActiveTexture].Enabled = state;
#endif
break;
case GL_EDGE_FLAG_ARRAY:
#ifdef VAO
ctx->Array.Current->EdgeFlag.Enabled = state;
#else
ctx->Array.EdgeFlag.Enabled = state;
#endif
break;
/* GL_HP_occlusion_test */
@@ -511,35 +528,24 @@ void _mesa_set_enable( GLcontext *ctx, GLenum cap, GLboolean state )
if (ctx->Extensions.HaveTextureCubeMap) {
if (ctx->Visual->RGBAflag) {
const GLuint curr = ctx->Texture.CurrentUnit;
const GLuint flag = TEXTURE0_CUBE << (curr * 4);
struct gl_texture_unit *texUnit = &ctx->Texture.Unit[curr];
ctx->NewState |= NEW_TEXTURE_ENABLE;
if (state) {
texUnit->Enabled |= TEXTURE0_CUBE;
ctx->Enabled |= flag;
}
else {
texUnit->Enabled &= ~TEXTURE0_CUBE;
ctx->Enabled &= ~flag;
}
}
}
else {
if (state)
gl_error(ctx, GL_INVALID_ENUM, "glEnable");
else
gl_error(ctx, GL_INVALID_ENUM, "glDisable");
gl_error(ctx, GL_INVALID_ENUM, state ? "glEnable" : "glDisable");
return;
}
break;
default:
if (state) {
gl_error( ctx, GL_INVALID_ENUM, "glEnable" );
}
else {
gl_error( ctx, GL_INVALID_ENUM, "glDisable" );
}
gl_error(ctx, GL_INVALID_ENUM, state ? "glEnable" : "glDisable");
return;
}
@@ -719,17 +725,41 @@ _mesa_IsEnabled( GLenum cap )
* CLIENT STATE!!!
*/
case GL_VERTEX_ARRAY:
#ifdef VAO
return ctx->Array.Current->Vertex.Enabled;
#else
return ctx->Array.Vertex.Enabled;
#endif
case GL_NORMAL_ARRAY:
#ifdef VAO
return ctx->Array.Current->Normal.Enabled;
#else
return ctx->Array.Normal.Enabled;
#endif
case GL_COLOR_ARRAY:
#ifdef VAO
return ctx->Array.Current->Color.Enabled;
#else
return ctx->Array.Color.Enabled;
#endif
case GL_INDEX_ARRAY:
#ifdef VAO
return ctx->Array.Current->Index.Enabled;
#else
return ctx->Array.Index.Enabled;
#endif
case GL_TEXTURE_COORD_ARRAY:
#ifdef VAO
return ctx->Array.Current->TexCoord[ctx->Array.ActiveTexture].Enabled;
#else
return ctx->Array.TexCoord[ctx->Array.ActiveTexture].Enabled;
#endif
case GL_EDGE_FLAG_ARRAY:
#ifdef VAO
return ctx->Array.Current->EdgeFlag.Enabled;
#else
return ctx->Array.EdgeFlag.Enabled;
#endif
/* GL_HP_occlusion_test */
case GL_OCCLUSION_TEST_HP:
@@ -795,22 +825,46 @@ client_state( GLcontext *ctx, GLenum cap, GLboolean state )
switch (cap) {
case GL_VERTEX_ARRAY:
#ifdef VAO
ctx->Array.Current->Vertex.Enabled = state;
#else
ctx->Array.Vertex.Enabled = state;
#endif
break;
case GL_NORMAL_ARRAY:
#ifdef VAO
ctx->Array.Current->Normal.Enabled = state;
#else
ctx->Array.Normal.Enabled = state;
#endif
break;
case GL_COLOR_ARRAY:
#ifdef VAO
ctx->Array.Current->Color.Enabled = state;
#else
ctx->Array.Color.Enabled = state;
#endif
break;
case GL_INDEX_ARRAY:
#ifdef VAO
ctx->Array.Current->Index.Enabled = state;
#else
ctx->Array.Index.Enabled = state;
#endif
break;
case GL_TEXTURE_COORD_ARRAY:
#ifdef VAO
ctx->Array.Current->TexCoord[ctx->Array.ActiveTexture].Enabled = state;
#else
ctx->Array.TexCoord[ctx->Array.ActiveTexture].Enabled = state;
#endif
break;
case GL_EDGE_FLAG_ARRAY:
#ifdef VAO
ctx->Array.Current->EdgeFlag.Enabled = state;
#else
ctx->Array.EdgeFlag.Enabled = state;
#endif
break;
default:
gl_error( ctx, GL_INVALID_ENUM, "glEnable/DisableClientState" );

View File

@@ -1,21 +1,21 @@
/* $Id: enums.c,v 1.9 2000/06/27 21:42:13 brianp Exp $ */
/* $Id: enums.c,v 1.9.4.2 2001/01/06 22:43:00 gareth Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
@@ -34,12 +34,12 @@
#endif
typedef struct {
const char *c;
int n;
typedef struct {
const char *c;
int n;
} enum_elt;
enum_elt all_enums[] =
enum_elt all_enums[] =
{
/* Boolean values */
{ "GL_FALSE", 0 },
@@ -828,7 +828,11 @@ enum_elt all_enums[] =
{ "GL_INTERPOLATE_EXT", 0x8575 },
{ "GL_CONSTANT_EXT", 0x8576 },
{ "GL_PRIMARY_COLOR_EXT", 0x8577 },
{ "GL_PREVIOUS_EXT", 0x8578 }
{ "GL_PREVIOUS_EXT", 0x8578 },
/* GL_EXT_texture_env_dot3 */
{ "GL_DOT3_RGB_EXT", 0x8740 },
{ "GL_DOT3_RGBA_EXT", 0x8741 },
};
@@ -839,7 +843,7 @@ typedef int (GLWINAPIV *cfunc)(const void *, const void *);
static enum_elt **index1 = 0;
static int sorted = 0;
static int compar_name( const enum_elt *a, const enum_elt *b )
static int compar_name( const enum_elt *a, const enum_elt *b )
{
return strcmp(a->c, b->c);
}
@@ -847,7 +851,7 @@ static int compar_name( const enum_elt *a, const enum_elt *b )
/* note the extra level of indirection
*/
static int compar_nr( const enum_elt **a, const enum_elt **b )
static int compar_nr( const enum_elt **a, const enum_elt **b )
{
return (*a)->n - (*b)->n;
}
@@ -855,14 +859,14 @@ static int compar_nr( const enum_elt **a, const enum_elt **b )
static void sort_enums( void )
{
int i;
GLuint i;
index1 = (enum_elt **)MALLOC( Elements(all_enums) * sizeof(enum_elt *) );
sorted = 1;
qsort( all_enums, Elements(all_enums), sizeof(*all_enums),
qsort( all_enums, Elements(all_enums), sizeof(*all_enums),
(cfunc) compar_name );
for (i = 0 ; i < Elements(all_enums) ; i++)
for (i = 0 ; i < Elements(all_enums) ; i++)
index1[i] = &all_enums[i];
qsort( index1, Elements(all_enums), sizeof(*index1), (cfunc) compar_nr );
@@ -875,14 +879,14 @@ int gl_lookup_enum_by_name( const char *symbol )
enum_elt tmp;
enum_elt *e;
if (!sorted)
if (!sorted)
sort_enums();
if (!symbol)
if (!symbol)
return 0;
tmp.c = symbol;
e = (enum_elt *)bsearch( &tmp, all_enums, Elements(all_enums),
e = (enum_elt *)bsearch( &tmp, all_enums, Elements(all_enums),
sizeof(*all_enums), (cfunc) compar_name );
return e ? e->n : -1;
@@ -893,13 +897,13 @@ const char *gl_lookup_enum_by_nr( int nr )
{
enum_elt tmp, *e, **f;
if (!sorted)
if (!sorted)
sort_enums();
tmp.n = nr;
e = &tmp;
f = (enum_elt **)bsearch( &e, index1, Elements(all_enums),
f = (enum_elt **)bsearch( &e, index1, Elements(all_enums),
sizeof(*index1), (cfunc) compar_nr );
return f ? (*f)->c : "(unknown)";
@@ -920,6 +924,6 @@ int main()
for (i = 0 ; i < Elements(test) ; i++) {
int d = gl_lookup_enum_by_name( test[i] );
printf("%s --> %d --> %s\n", test[i], d, gl_lookup_enum_by_nr( d ));
}
}
}
#endif

View File

@@ -1,4 +1,4 @@
/* $Id: eval.c,v 1.10 2000/07/20 15:53:17 keithw Exp $ */
/* $Id: eval.c,v 1.10.2.1 2000/11/05 21:24:00 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -110,8 +110,8 @@ static void
horner_bezier_curve(const GLfloat *cp, GLfloat *out, GLfloat t,
GLuint dim, GLuint order)
{
GLfloat s, powert;
GLuint i, k, bincoeff;
GLfloat s, powert, bincoeff;
GLuint i, k;
if(order >= 2)
{
@@ -162,8 +162,8 @@ horner_bezier_surf(GLfloat *cn, GLfloat *out, GLfloat u, GLfloat v,
{
if(uorder >= 2)
{
GLfloat s, poweru;
GLuint j, k, bincoeff;
GLfloat s, poweru, bincoeff;
GLuint j, k;
/* Compute the control polygon for the surface-curve in u-direction */
for(j=0; j<vorder; j++)

View File

@@ -1,21 +1,21 @@
/* $Id: extensions.c,v 1.32 2000/06/27 21:42:13 brianp Exp $ */
/* $Id: extensions.c,v 1.32.4.2 2001/01/06 22:43:00 gareth Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
* Version: 3.4
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
@@ -43,7 +43,7 @@ struct extension {
struct extension *next, *prev;
GLint enabled;
char name[MAX_EXT_NAMELEN+1];
void (*notify)( GLcontext *, GLboolean );
void (*notify)( GLcontext *, GLboolean );
};
@@ -51,7 +51,7 @@ struct extension {
static struct { int enabled; const char *name; } default_extensions[] = {
{ DEFAULT_OFF, "GL_ARB_imaging" }, /* in progress */
{ DEFAULT_ON, "GL_ARB_multitexture" },
{ DEFAULT_OFF, "GL_ARB_texture_compression" }, /* in progress */
{ DEFAULT_OFF, "GL_ARB_texture_compression" },
{ DEFAULT_OFF, "GL_ARB_texture_cube_map" }, /* in progress */
{ ALWAYS_ENABLED, "GL_ARB_tranpose_matrix" },
{ ALWAYS_ENABLED, "GL_EXT_abgr" },
@@ -76,6 +76,7 @@ static struct { int enabled; const char *name; } default_extensions[] = {
{ DEFAULT_OFF, "GL_EXT_texture_env" },
{ DEFAULT_ON, "GL_EXT_texture_env_add" },
{ DEFAULT_OFF, "GL_EXT_texture_env_combine" },
{ DEFAULT_OFF, "GL_EXT_texture_env_dot3" },
{ ALWAYS_ENABLED, "GL_EXT_texture_object" },
{ DEFAULT_ON, "GL_EXT_texture_lod_bias" },
{ ALWAYS_ENABLED, "GL_EXT_vertex_array" },
@@ -105,6 +106,7 @@ update_extension_flags( GLcontext *ctx )
/* Update flags */
ctx->Extensions.HaveTextureEnvAdd = gl_extension_is_enabled(ctx, "GL_EXT_texture_env_add");
ctx->Extensions.HaveTextureEnvCombine = gl_extension_is_enabled(ctx, "GL_EXT_texture_env_combine");
ctx->Extensions.HaveTextureEnvDot3 = gl_extension_is_enabled(ctx, "GL_EXT_texture_env_dot3");
ctx->Extensions.HaveTextureLodBias = gl_extension_is_enabled(ctx, "GL_EXT_texture_lod_bias");
ctx->Extensions.HaveHpOcclusionTest = gl_extension_is_enabled(ctx, "GL_HP_occlusion_test");
ctx->Extensions.HaveTextureCubeMap = gl_extension_is_enabled(ctx, "GL_ARB_texture_cube_map");
@@ -116,14 +118,14 @@ update_extension_flags( GLcontext *ctx )
int gl_extensions_add( GLcontext *ctx,
int state,
const char *name,
int gl_extensions_add( GLcontext *ctx,
int state,
const char *name,
void (*notify)(void) )
{
(void) notify;
if (ctx->Extensions.ext_string == 0)
if (ctx->Extensions.ext_string == 0)
{
struct extension *t = MALLOC_STRUCT(extension);
t->enabled = state;
@@ -143,27 +145,27 @@ int gl_extensions_add( GLcontext *ctx,
static int set_extension( GLcontext *ctx, const char *name, GLint state )
{
struct extension *i;
foreach( i, ctx->Extensions.ext_list )
if (strncmp(i->name, name, MAX_EXT_NAMELEN) == 0)
foreach( i, ctx->Extensions.ext_list )
if (strncmp(i->name, name, MAX_EXT_NAMELEN) == 0)
break;
if (i == ctx->Extensions.ext_list)
return 1;
if (!(i->enabled & ALWAYS_ENABLED)) {
if (i->notify) i->notify( ctx, state );
if (i->notify) i->notify( ctx, state );
i->enabled = state;
}
update_extension_flags(ctx);
return 0;
}
}
int gl_extensions_enable( GLcontext *ctx, const char *name )
{
if (ctx->Extensions.ext_string == 0)
if (ctx->Extensions.ext_string == 0)
return set_extension( ctx, name, 1 );
return 1;
}
@@ -171,11 +173,11 @@ int gl_extensions_enable( GLcontext *ctx, const char *name )
int gl_extensions_disable( GLcontext *ctx, const char *name )
{
if (ctx->Extensions.ext_string == 0)
if (ctx->Extensions.ext_string == 0)
return set_extension( ctx, name, 0 );
return 1;
}
/*
* Test if the named extension is enabled in this context.
@@ -209,10 +211,10 @@ void gl_extensions_dtr( GLcontext *ctx )
remove_from_list( i );
FREE( i );
}
FREE(ctx->Extensions.ext_list);
ctx->Extensions.ext_list = 0;
}
}
}
@@ -225,7 +227,7 @@ void gl_extensions_ctr( GLcontext *ctx )
make_empty_list( ctx->Extensions.ext_list );
for (i = 0 ; i < Elements(default_extensions) ; i++) {
gl_extensions_add( ctx,
gl_extensions_add( ctx,
default_extensions[i].enabled,
default_extensions[i].name,
0 );
@@ -236,22 +238,22 @@ void gl_extensions_ctr( GLcontext *ctx )
const char *gl_extensions_get_string( GLcontext *ctx )
{
if (ctx->Extensions.ext_string == 0)
if (ctx->Extensions.ext_string == 0)
{
struct extension *i;
char *str;
GLuint len = 0;
foreach (i, ctx->Extensions.ext_list)
foreach (i, ctx->Extensions.ext_list)
if (i->enabled)
len += strlen(i->name) + 1;
if (len == 0)
if (len == 0)
return "";
str = (char *)MALLOC(len * sizeof(char));
ctx->Extensions.ext_string = str;
foreach (i, ctx->Extensions.ext_list)
foreach (i, ctx->Extensions.ext_list)
if (i->enabled) {
strcpy(str, i->name);
str += strlen(str);
@@ -260,6 +262,6 @@ const char *gl_extensions_get_string( GLcontext *ctx )
*(str-1) = 0;
}
return ctx->Extensions.ext_string;
}

View File

@@ -1,4 +1,4 @@
/* $Id: feedback.c,v 1.10 2000/05/09 23:54:09 brianp Exp $ */
/* $Id: feedback.c,v 1.10.4.1 2000/11/08 16:41:17 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -239,7 +239,7 @@ void gl_feedback_points( GLcontext *ctx, GLuint first, GLuint last )
const struct vertex_buffer *VB = ctx->VB;
GLuint i;
for (i=first;i<=last;i++) {
for (i=first;i<last;i++) {
if (VB->ClipMask[i]==0) {
FEEDBACK_TOKEN( ctx, (GLfloat) (GLint) GL_POINT_TOKEN );
feedback_vertex( ctx, i, i );

View File

@@ -1,8 +1,8 @@
/* $Id: fog.c,v 1.19 2000/07/07 15:10:35 keithw Exp $ */
/* $Id: fog.c,v 1.19.4.1 2000/10/17 00:24:11 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
* Version: 3.4
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
@@ -331,7 +331,7 @@ _mesa_fog_rgba_pixels( const GLcontext *ctx,
GLfloat eyez = d / (c+ndcz);
GLfloat f, g;
GLfloat tmp = negDensitySquared * eyez * eyez;
#ifdef __alpha__
#if defined(__alpha__) || defined(__alpha)
/* XXX this underflow check may be needed for other systems */
if (tmp < FLT_MIN_10_EXP)
f = exp( FLT_MIN_10_EXP );
@@ -410,7 +410,7 @@ _mesa_fog_ci_pixels( const GLcontext *ctx,
if (eyez < 0.0)
eyez = -eyez;
tmp = negDensitySquared * eyez * eyez;
#ifdef __alpha__
#if defined(__alpha__) || defined(__alpha)
/* XXX this underflow check may be needed for other systems */
if (tmp < FLT_MIN_10_EXP)
f = exp( FLT_MIN_10_EXP );

View File

@@ -1,8 +1,8 @@
/* $Id: get.c,v 1.30 2000/07/21 15:41:08 brianp Exp $ */
/* $Id: get.c,v 1.30.2.4 2001/01/24 04:49:27 brianp Exp $*/
/*
* Mesa 3-D graphics library
* Version: 3.3
* Version: 3.4
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
@@ -92,9 +92,16 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glGetBooleanv");
if (!params)
return;
if (MESA_VERBOSE & VERBOSE_API)
fprintf(stderr, "glGetBooleanv %s\n", gl_lookup_enum_by_nr(pname));
if (ctx->Driver.GetBooleanv
&& (*ctx->Driver.GetBooleanv)(ctx, pname, params))
return;
switch (pname) {
case GL_ACCUM_RED_BITS:
*params = INT_TO_BOOL(ctx->Visual->AccumRedBits);
@@ -724,6 +731,9 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
case GL_RENDER_MODE:
*params = ENUM_TO_BOOL(ctx->RenderMode);
break;
case GL_RESCALE_NORMAL:
*params = ctx->Transform.RescaleNormals;
break;
case GL_RGBA_MODE:
*params = ctx->Visual->RGBAflag;
break;
@@ -868,79 +878,159 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
*params = FLOAT_TO_BOOL(ctx->Pixel.ZoomY);
break;
case GL_VERTEX_ARRAY:
#ifdef VAO
*params = ctx->Array.Current->Vertex.Enabled;
#else
*params = ctx->Array.Vertex.Enabled;
#endif
break;
case GL_VERTEX_ARRAY_SIZE:
#ifdef VAO
*params = INT_TO_BOOL(ctx->Array.Current->Vertex.Size);
#else
*params = INT_TO_BOOL(ctx->Array.Vertex.Size);
#endif
break;
case GL_VERTEX_ARRAY_TYPE:
#ifdef VAO
*params = ENUM_TO_BOOL(ctx->Array.Current->Vertex.Type);
#else
*params = ENUM_TO_BOOL(ctx->Array.Vertex.Type);
#endif
break;
case GL_VERTEX_ARRAY_STRIDE:
#ifdef VAO
*params = INT_TO_BOOL(ctx->Array.Current->Vertex.Stride);
#else
*params = INT_TO_BOOL(ctx->Array.Vertex.Stride);
#endif
break;
case GL_VERTEX_ARRAY_COUNT_EXT:
*params = INT_TO_BOOL(0);
break;
case GL_NORMAL_ARRAY:
#ifdef VAO
*params = ctx->Array.Current->Normal.Enabled;
#else
*params = ctx->Array.Normal.Enabled;
#endif
break;
case GL_NORMAL_ARRAY_TYPE:
#ifdef VAO
*params = ENUM_TO_BOOL(ctx->Array.Current->Normal.Type);
#else
*params = ENUM_TO_BOOL(ctx->Array.Normal.Type);
#endif
break;
case GL_NORMAL_ARRAY_STRIDE:
#ifdef VAO
*params = INT_TO_BOOL(ctx->Array.Current->Normal.Stride);
#else
*params = INT_TO_BOOL(ctx->Array.Normal.Stride);
#endif
break;
case GL_NORMAL_ARRAY_COUNT_EXT:
*params = INT_TO_BOOL(0);
break;
case GL_COLOR_ARRAY:
#ifdef VAO
*params = ctx->Array.Current->Color.Enabled;
#else
*params = ctx->Array.Color.Enabled;
#endif
break;
case GL_COLOR_ARRAY_SIZE:
#ifdef VAO
*params = INT_TO_BOOL(ctx->Array.Current->Color.Size);
#else
*params = INT_TO_BOOL(ctx->Array.Color.Size);
#endif
break;
case GL_COLOR_ARRAY_TYPE:
#ifdef VAO
*params = ENUM_TO_BOOL(ctx->Array.Current->Color.Type);
#else
*params = ENUM_TO_BOOL(ctx->Array.Color.Type);
#endif
break;
case GL_COLOR_ARRAY_STRIDE:
#ifdef VAO
*params = INT_TO_BOOL(ctx->Array.Current->Color.Stride);
#else
*params = INT_TO_BOOL(ctx->Array.Color.Stride);
#endif
break;
case GL_COLOR_ARRAY_COUNT_EXT:
*params = INT_TO_BOOL(0);
break;
case GL_INDEX_ARRAY:
#ifdef VAO
*params = ctx->Array.Current->Index.Enabled;
#else
*params = ctx->Array.Index.Enabled;
#endif
break;
case GL_INDEX_ARRAY_TYPE:
#ifdef VAO
*params = ENUM_TO_BOOL(ctx->Array.Current->Index.Type);
#else
*params = ENUM_TO_BOOL(ctx->Array.Index.Type);
#endif
break;
case GL_INDEX_ARRAY_STRIDE:
#ifdef VAO
*params = INT_TO_BOOL(ctx->Array.Current->Index.Stride);
#else
*params = INT_TO_BOOL(ctx->Array.Index.Stride);
#endif
break;
case GL_INDEX_ARRAY_COUNT_EXT:
*params = INT_TO_BOOL(0);
break;
case GL_TEXTURE_COORD_ARRAY:
#ifdef VAO
*params = ctx->Array.Current->TexCoord[texUnit].Enabled;
#else
*params = ctx->Array.TexCoord[texUnit].Enabled;
#endif
break;
case GL_TEXTURE_COORD_ARRAY_SIZE:
#ifdef VAO
*params = INT_TO_BOOL(ctx->Array.Current->TexCoord[texUnit].Size);
#else
*params = INT_TO_BOOL(ctx->Array.TexCoord[texUnit].Size);
#endif
break;
case GL_TEXTURE_COORD_ARRAY_TYPE:
#ifdef VAO
*params = ENUM_TO_BOOL(ctx->Array.Current->TexCoord[texUnit].Type);
#else
*params = ENUM_TO_BOOL(ctx->Array.TexCoord[texUnit].Type);
#endif
break;
case GL_TEXTURE_COORD_ARRAY_STRIDE:
#ifdef VAO
*params = INT_TO_BOOL(ctx->Array.Current->TexCoord[texUnit].Stride);
#else
*params = INT_TO_BOOL(ctx->Array.TexCoord[texUnit].Stride);
#endif
break;
case GL_TEXTURE_COORD_ARRAY_COUNT_EXT:
*params = INT_TO_BOOL(0);
break;
case GL_EDGE_FLAG_ARRAY:
#ifdef VAO
*params = ctx->Array.Current->EdgeFlag.Enabled;
#else
*params = ctx->Array.EdgeFlag.Enabled;
#endif
break;
case GL_EDGE_FLAG_ARRAY_STRIDE:
#ifdef VAO
*params = INT_TO_BOOL(ctx->Array.Current->EdgeFlag.Stride);
#else
*params = INT_TO_BOOL(ctx->Array.EdgeFlag.Stride);
#endif
break;
/* GL_ARB_multitexture */
@@ -1051,10 +1141,18 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
/* GL_EXT_compiled_vertex_array */
case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT:
#ifdef VAO
*params = ctx->Array.Current->LockFirst ? GL_TRUE : GL_FALSE;
#else
*params = ctx->Array.LockFirst ? GL_TRUE : GL_FALSE;
#endif
break;
case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT:
#ifdef VAO
*params = ctx->Array.Current->LockCount ? GL_TRUE : GL_FALSE;
#else
*params = ctx->Array.LockCount ? GL_TRUE : GL_FALSE;
#endif
break;
/* GL_ARB_transpose_matrix */
@@ -1235,9 +1333,15 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params )
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glGetDoublev");
if (!params)
return;
if (MESA_VERBOSE & VERBOSE_API)
fprintf(stderr, "glGetDoublev %s\n", gl_lookup_enum_by_nr(pname));
if (ctx->Driver.GetDoublev && (*ctx->Driver.GetDoublev)(ctx, pname, params))
return;
switch (pname) {
case GL_ACCUM_RED_BITS:
*params = (GLdouble) ctx->Visual->AccumRedBits;
@@ -1867,6 +1971,9 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params )
case GL_RENDER_MODE:
*params = ENUM_TO_DOUBLE(ctx->RenderMode);
break;
case GL_RESCALE_NORMAL:
*params = (GLdouble) ctx->Transform.RescaleNormals;
break;
case GL_RGBA_MODE:
*params = (GLdouble) ctx->Visual->RGBAflag;
break;
@@ -2008,79 +2115,159 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params )
*params = (GLdouble) ctx->Pixel.ZoomY;
break;
case GL_VERTEX_ARRAY:
#ifdef VAO
*params = (GLdouble) ctx->Array.Current->Vertex.Enabled;
#else
*params = (GLdouble) ctx->Array.Vertex.Enabled;
#endif
break;
case GL_VERTEX_ARRAY_SIZE:
#ifdef VAO
*params = (GLdouble) ctx->Array.Current->Vertex.Size;
#else
*params = (GLdouble) ctx->Array.Vertex.Size;
#endif
break;
case GL_VERTEX_ARRAY_TYPE:
#ifdef VAO
*params = ENUM_TO_DOUBLE(ctx->Array.Current->Vertex.Type);
#else
*params = ENUM_TO_DOUBLE(ctx->Array.Vertex.Type);
#endif
break;
case GL_VERTEX_ARRAY_STRIDE:
#ifdef VAO
*params = (GLdouble) ctx->Array.Current->Vertex.Stride;
#else
*params = (GLdouble) ctx->Array.Vertex.Stride;
#endif
break;
case GL_VERTEX_ARRAY_COUNT_EXT:
*params = 0.0;
break;
case GL_NORMAL_ARRAY:
#ifdef VAO
*params = (GLdouble) ctx->Array.Current->Normal.Enabled;
#else
*params = (GLdouble) ctx->Array.Normal.Enabled;
#endif
break;
case GL_NORMAL_ARRAY_TYPE:
#ifdef VAO
*params = ENUM_TO_DOUBLE(ctx->Array.Current->Normal.Type);
#else
*params = ENUM_TO_DOUBLE(ctx->Array.Normal.Type);
#endif
break;
case GL_NORMAL_ARRAY_STRIDE:
#ifdef VAO
*params = (GLdouble) ctx->Array.Current->Normal.Stride;
#else
*params = (GLdouble) ctx->Array.Normal.Stride;
#endif
break;
case GL_NORMAL_ARRAY_COUNT_EXT:
*params = 0.0;
break;
case GL_COLOR_ARRAY:
#ifdef VAO
*params = (GLdouble) ctx->Array.Current->Color.Enabled;
#else
*params = (GLdouble) ctx->Array.Color.Enabled;
#endif
break;
case GL_COLOR_ARRAY_SIZE:
#ifdef VAO
*params = (GLdouble) ctx->Array.Current->Color.Size;
#else
*params = (GLdouble) ctx->Array.Color.Size;
#endif
break;
case GL_COLOR_ARRAY_TYPE:
#ifdef VAO
*params = ENUM_TO_DOUBLE(ctx->Array.Current->Color.Type);
#else
*params = ENUM_TO_DOUBLE(ctx->Array.Color.Type);
#endif
break;
case GL_COLOR_ARRAY_STRIDE:
#ifdef VAO
*params = (GLdouble) ctx->Array.Current->Color.Stride;
#else
*params = (GLdouble) ctx->Array.Color.Stride;
#endif
break;
case GL_COLOR_ARRAY_COUNT_EXT:
*params = 0.0;
break;
case GL_INDEX_ARRAY:
#ifdef VAO
*params = (GLdouble) ctx->Array.Current->Index.Enabled;
#else
*params = (GLdouble) ctx->Array.Index.Enabled;
#endif
break;
case GL_INDEX_ARRAY_TYPE:
#ifdef VAO
*params = ENUM_TO_DOUBLE(ctx->Array.Current->Index.Type);
#else
*params = ENUM_TO_DOUBLE(ctx->Array.Index.Type);
#endif
break;
case GL_INDEX_ARRAY_STRIDE:
#ifdef VAO
*params = (GLdouble) ctx->Array.Current->Index.Stride;
#else
*params = (GLdouble) ctx->Array.Index.Stride;
#endif
break;
case GL_INDEX_ARRAY_COUNT_EXT:
*params = 0.0;
break;
case GL_TEXTURE_COORD_ARRAY:
#ifdef VAO
*params = (GLdouble) ctx->Array.Current->TexCoord[texUnit].Enabled;
#else
*params = (GLdouble) ctx->Array.TexCoord[texUnit].Enabled;
#endif
break;
case GL_TEXTURE_COORD_ARRAY_SIZE:
#ifdef VAO
*params = (GLdouble) ctx->Array.Current->TexCoord[texUnit].Size;
#else
*params = (GLdouble) ctx->Array.TexCoord[texUnit].Size;
#endif
break;
case GL_TEXTURE_COORD_ARRAY_TYPE:
#ifdef VAO
*params = ENUM_TO_DOUBLE(ctx->Array.Current->TexCoord[texUnit].Type);
#else
*params = ENUM_TO_DOUBLE(ctx->Array.TexCoord[texUnit].Type);
#endif
break;
case GL_TEXTURE_COORD_ARRAY_STRIDE:
#ifdef VAO
*params = (GLdouble) ctx->Array.Current->TexCoord[texUnit].Stride;
#else
*params = (GLdouble) ctx->Array.TexCoord[texUnit].Stride;
#endif
break;
case GL_TEXTURE_COORD_ARRAY_COUNT_EXT:
*params = 0.0;
break;
case GL_EDGE_FLAG_ARRAY:
#ifdef VAO
*params = (GLdouble) ctx->Array.Current->EdgeFlag.Enabled;
#else
*params = (GLdouble) ctx->Array.EdgeFlag.Enabled;
#endif
break;
case GL_EDGE_FLAG_ARRAY_STRIDE:
#ifdef VAO
*params = (GLdouble) ctx->Array.Current->EdgeFlag.Stride;
#else
*params = (GLdouble) ctx->Array.EdgeFlag.Stride;
#endif
break;
case GL_EDGE_FLAG_ARRAY_COUNT_EXT:
*params = 0.0;
@@ -2194,10 +2381,18 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params )
/* GL_EXT_compiled_vertex_array */
case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT:
#ifdef VAO
*params = (GLdouble) ctx->Array.Current->LockFirst;
#else
*params = (GLdouble) ctx->Array.LockFirst;
#endif
break;
case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT:
#ifdef VAO
*params = (GLdouble) ctx->Array.Current->LockCount;
#else
*params = (GLdouble) ctx->Array.LockCount;
#endif
break;
/* GL_ARB_transpose_matrix */
@@ -2378,9 +2573,15 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glGetFloatv");
if (!params)
return;
if (MESA_VERBOSE & VERBOSE_API)
fprintf(stderr, "glGetFloatv %s\n", gl_lookup_enum_by_nr(pname));
if (ctx->Driver.GetFloatv && (*ctx->Driver.GetFloatv)(ctx, pname, params))
return;
switch (pname) {
case GL_ACCUM_RED_BITS:
*params = (GLfloat) ctx->Visual->AccumRedBits;
@@ -3009,6 +3210,9 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
case GL_RENDER_MODE:
*params = ENUM_TO_FLOAT(ctx->RenderMode);
break;
case GL_RESCALE_NORMAL:
*params = (GLfloat) ctx->Transform.RescaleNormals;
break;
case GL_RGBA_MODE:
*params = (GLfloat) ctx->Visual->RGBAflag;
break;
@@ -3150,79 +3354,159 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
*params = (GLfloat) ctx->Pixel.ZoomY;
break;
case GL_VERTEX_ARRAY:
#ifdef VAO
*params = (GLfloat) ctx->Array.Current->Vertex.Enabled;
#else
*params = (GLfloat) ctx->Array.Vertex.Enabled;
#endif
break;
case GL_VERTEX_ARRAY_SIZE:
#ifdef VAO
*params = (GLfloat) ctx->Array.Current->Vertex.Size;
#else
*params = (GLfloat) ctx->Array.Vertex.Size;
#endif
break;
case GL_VERTEX_ARRAY_TYPE:
#ifdef VAO
*params = ENUM_TO_FLOAT(ctx->Array.Current->Vertex.Type);
#else
*params = ENUM_TO_FLOAT(ctx->Array.Vertex.Type);
#endif
break;
case GL_VERTEX_ARRAY_STRIDE:
#ifdef VAO
*params = (GLfloat) ctx->Array.Current->Vertex.Stride;
#else
*params = (GLfloat) ctx->Array.Vertex.Stride;
#endif
break;
case GL_VERTEX_ARRAY_COUNT_EXT:
*params = 0.0;
break;
case GL_NORMAL_ARRAY:
#ifdef VAO
*params = (GLfloat) ctx->Array.Current->Normal.Enabled;
#else
*params = (GLfloat) ctx->Array.Normal.Enabled;
#endif
break;
case GL_NORMAL_ARRAY_TYPE:
#ifdef VAO
*params = ENUM_TO_FLOAT(ctx->Array.Current->Normal.Type);
#else
*params = ENUM_TO_FLOAT(ctx->Array.Normal.Type);
#endif
break;
case GL_NORMAL_ARRAY_STRIDE:
#ifdef VAO
*params = (GLfloat) ctx->Array.Current->Normal.Stride;
#else
*params = (GLfloat) ctx->Array.Normal.Stride;
#endif
break;
case GL_NORMAL_ARRAY_COUNT_EXT:
*params = 0.0;
break;
case GL_COLOR_ARRAY:
#ifdef VAO
*params = (GLfloat) ctx->Array.Current->Color.Enabled;
#else
*params = (GLfloat) ctx->Array.Color.Enabled;
#endif
break;
case GL_COLOR_ARRAY_SIZE:
#ifdef VAO
*params = (GLfloat) ctx->Array.Current->Color.Size;
#else
*params = (GLfloat) ctx->Array.Color.Size;
#endif
break;
case GL_COLOR_ARRAY_TYPE:
#ifdef VAO
*params = ENUM_TO_FLOAT(ctx->Array.Current->Color.Type);
#else
*params = ENUM_TO_FLOAT(ctx->Array.Color.Type);
#endif
break;
case GL_COLOR_ARRAY_STRIDE:
#ifdef VAO
*params = (GLfloat) ctx->Array.Current->Color.Stride;
#else
*params = (GLfloat) ctx->Array.Color.Stride;
#endif
break;
case GL_COLOR_ARRAY_COUNT_EXT:
*params = 0.0;
break;
case GL_INDEX_ARRAY:
#ifdef VAO
*params = (GLfloat) ctx->Array.Current->Index.Enabled;
#else
*params = (GLfloat) ctx->Array.Index.Enabled;
#endif
break;
case GL_INDEX_ARRAY_TYPE:
#ifdef VAO
*params = ENUM_TO_FLOAT(ctx->Array.Current->Index.Type);
#else
*params = ENUM_TO_FLOAT(ctx->Array.Index.Type);
#endif
break;
case GL_INDEX_ARRAY_STRIDE:
#ifdef VAO
*params = (GLfloat) ctx->Array.Current->Index.Stride;
#else
*params = (GLfloat) ctx->Array.Index.Stride;
#endif
break;
case GL_INDEX_ARRAY_COUNT_EXT:
*params = 0.0;
break;
case GL_TEXTURE_COORD_ARRAY:
#ifdef VAO
*params = (GLfloat) ctx->Array.Current->TexCoord[texUnit].Enabled;
#else
*params = (GLfloat) ctx->Array.TexCoord[texUnit].Enabled;
#endif
break;
case GL_TEXTURE_COORD_ARRAY_SIZE:
#ifdef VAO
*params = (GLfloat) ctx->Array.Current->TexCoord[texUnit].Size;
#else
*params = (GLfloat) ctx->Array.TexCoord[texUnit].Size;
#endif
break;
case GL_TEXTURE_COORD_ARRAY_TYPE:
#ifdef VAO
*params = ENUM_TO_FLOAT(ctx->Array.Current->TexCoord[texUnit].Type);
#else
*params = ENUM_TO_FLOAT(ctx->Array.TexCoord[texUnit].Type);
#endif
break;
case GL_TEXTURE_COORD_ARRAY_STRIDE:
#ifdef VAO
*params = (GLfloat) ctx->Array.Current->TexCoord[texUnit].Stride;
#else
*params = (GLfloat) ctx->Array.TexCoord[texUnit].Stride;
#endif
break;
case GL_TEXTURE_COORD_ARRAY_COUNT_EXT:
*params = 0.0;
break;
case GL_EDGE_FLAG_ARRAY:
#ifdef VAO
*params = (GLfloat) ctx->Array.Current->EdgeFlag.Enabled;
#else
*params = (GLfloat) ctx->Array.EdgeFlag.Enabled;
#endif
break;
case GL_EDGE_FLAG_ARRAY_STRIDE:
#ifdef VAO
*params = (GLfloat) ctx->Array.Current->EdgeFlag.Stride;
#else
*params = (GLfloat) ctx->Array.EdgeFlag.Stride;
#endif
break;
case GL_EDGE_FLAG_ARRAY_COUNT_EXT:
*params = 0.0;
@@ -3336,10 +3620,18 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
/* GL_EXT_compiled_vertex_array */
case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT:
#ifdef VAO
*params = (GLfloat) ctx->Array.Current->LockFirst;
#else
*params = (GLfloat) ctx->Array.LockFirst;
#endif
break;
case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT:
#ifdef VAO
*params = (GLfloat) ctx->Array.Current->LockCount;
#else
*params = (GLfloat) ctx->Array.LockCount;
#endif
break;
/* GL_ARB_transpose_matrix */
@@ -3492,9 +3784,16 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glGetIntegerv");
if (!params)
return;
if (MESA_VERBOSE & VERBOSE_API)
fprintf(stderr, "glGetIntegerv %s\n", gl_lookup_enum_by_nr(pname));
if (ctx->Driver.GetIntegerv
&& (*ctx->Driver.GetIntegerv)(ctx, pname, params))
return;
switch (pname) {
case GL_ACCUM_RED_BITS:
*params = (GLint) ctx->Visual->AccumRedBits;
@@ -4125,6 +4424,9 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
case GL_RENDER_MODE:
*params = (GLint) ctx->RenderMode;
break;
case GL_RESCALE_NORMAL:
*params = (GLint) ctx->Transform.RescaleNormals;
break;
case GL_RGBA_MODE:
*params = (GLint) ctx->Visual->RGBAflag;
break;
@@ -4266,79 +4568,159 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
*params = (GLint) ctx->Pixel.ZoomY;
break;
case GL_VERTEX_ARRAY:
#ifdef VAO
*params = (GLint) ctx->Array.Current->Vertex.Enabled;
#else
*params = (GLint) ctx->Array.Vertex.Enabled;
#endif
break;
case GL_VERTEX_ARRAY_SIZE:
#ifdef VAO
*params = ctx->Array.Current->Vertex.Size;
#else
*params = ctx->Array.Vertex.Size;
#endif
break;
case GL_VERTEX_ARRAY_TYPE:
#ifdef VAO
*params = ctx->Array.Current->Vertex.Type;
#else
*params = ctx->Array.Vertex.Type;
#endif
break;
case GL_VERTEX_ARRAY_STRIDE:
#ifdef VAO
*params = ctx->Array.Current->Vertex.Stride;
#else
*params = ctx->Array.Vertex.Stride;
#endif
break;
case GL_VERTEX_ARRAY_COUNT_EXT:
*params = 0;
break;
case GL_NORMAL_ARRAY:
#ifdef VAO
*params = (GLint) ctx->Array.Current->Normal.Enabled;
#else
*params = (GLint) ctx->Array.Normal.Enabled;
#endif
break;
case GL_NORMAL_ARRAY_TYPE:
#ifdef VAO
*params = ctx->Array.Current->Normal.Type;
#else
*params = ctx->Array.Normal.Type;
#endif
break;
case GL_NORMAL_ARRAY_STRIDE:
#ifdef VAO
*params = ctx->Array.Current->Normal.Stride;
#else
*params = ctx->Array.Normal.Stride;
#endif
break;
case GL_NORMAL_ARRAY_COUNT_EXT:
*params = 0;
break;
case GL_COLOR_ARRAY:
#ifdef VAO
*params = (GLint) ctx->Array.Current->Color.Enabled;
#else
*params = (GLint) ctx->Array.Color.Enabled;
#endif
break;
case GL_COLOR_ARRAY_SIZE:
#ifdef VAO
*params = ctx->Array.Current->Color.Size;
#else
*params = ctx->Array.Color.Size;
#endif
break;
case GL_COLOR_ARRAY_TYPE:
#ifdef VAO
*params = ctx->Array.Current->Color.Type;
#else
*params = ctx->Array.Color.Type;
#endif
break;
case GL_COLOR_ARRAY_STRIDE:
#ifdef VAO
*params = ctx->Array.Current->Color.Stride;
#else
*params = ctx->Array.Color.Stride;
#endif
break;
case GL_COLOR_ARRAY_COUNT_EXT:
*params = 0;
break;
case GL_INDEX_ARRAY:
#ifdef VAO
*params = (GLint) ctx->Array.Current->Index.Enabled;
#else
*params = (GLint) ctx->Array.Index.Enabled;
#endif
break;
case GL_INDEX_ARRAY_TYPE:
#ifdef VAO
*params = ctx->Array.Current->Index.Type;
#else
*params = ctx->Array.Index.Type;
#endif
break;
case GL_INDEX_ARRAY_STRIDE:
#ifdef VAO
*params = ctx->Array.Current->Index.Stride;
#else
*params = ctx->Array.Index.Stride;
#endif
break;
case GL_INDEX_ARRAY_COUNT_EXT:
*params = 0;
break;
case GL_TEXTURE_COORD_ARRAY:
#ifdef VAO
*params = (GLint) ctx->Array.Current->TexCoord[texUnit].Enabled;
#else
*params = (GLint) ctx->Array.TexCoord[texUnit].Enabled;
#endif
break;
case GL_TEXTURE_COORD_ARRAY_SIZE:
#ifdef VAO
*params = ctx->Array.Current->TexCoord[texUnit].Size;
#else
*params = ctx->Array.TexCoord[texUnit].Size;
#endif
break;
case GL_TEXTURE_COORD_ARRAY_TYPE:
#ifdef VAO
*params = ctx->Array.Current->TexCoord[texUnit].Type;
#else
*params = ctx->Array.TexCoord[texUnit].Type;
#endif
break;
case GL_TEXTURE_COORD_ARRAY_STRIDE:
#ifdef VAO
*params = ctx->Array.Current->TexCoord[texUnit].Stride;
#else
*params = ctx->Array.TexCoord[texUnit].Stride;
#endif
break;
case GL_TEXTURE_COORD_ARRAY_COUNT_EXT:
*params = 0;
break;
case GL_EDGE_FLAG_ARRAY:
#ifdef VAO
*params = (GLint) ctx->Array.Current->EdgeFlag.Enabled;
#else
*params = (GLint) ctx->Array.EdgeFlag.Enabled;
#endif
break;
case GL_EDGE_FLAG_ARRAY_STRIDE:
#ifdef VAO
*params = ctx->Array.Current->EdgeFlag.Stride;
#else
*params = ctx->Array.EdgeFlag.Stride;
#endif
break;
case GL_EDGE_FLAG_ARRAY_COUNT_EXT:
*params = 0;
@@ -4452,10 +4834,18 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
/* GL_EXT_compiled_vertex_array */
case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT:
#ifdef VAO
*params = ctx->Array.Current->LockFirst;
#else
*params = ctx->Array.LockFirst;
#endif
break;
case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT:
#ifdef VAO
*params = ctx->Array.Current->LockCount;
#else
*params = ctx->Array.LockCount;
#endif
break;
/* GL_ARB_transpose_matrix */
@@ -4629,29 +5019,61 @@ _mesa_GetPointerv( GLenum pname, GLvoid **params )
{
GET_CURRENT_CONTEXT(ctx);
GLuint texUnit = ctx->Texture.CurrentUnit;
/*GLuint texTransformUnit = ctx->Texture.CurrentTransformUnit;*/
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glGetPointerv");
if (!params)
return;
if (MESA_VERBOSE & VERBOSE_API)
fprintf(stderr, "glGetPointerv %s\n", gl_lookup_enum_by_nr(pname));
if (ctx->Driver.GetPointerv
&& (*ctx->Driver.GetPointerv)(ctx, pname, params))
return;
switch (pname) {
case GL_VERTEX_ARRAY_POINTER:
#ifdef VAO
*params = ctx->Array.Current->Vertex.Ptr;
#else
*params = ctx->Array.Vertex.Ptr;
#endif
break;
case GL_NORMAL_ARRAY_POINTER:
#ifdef VAO
*params = ctx->Array.Current->Normal.Ptr;
#else
*params = ctx->Array.Normal.Ptr;
#endif
break;
case GL_COLOR_ARRAY_POINTER:
#ifdef VAO
*params = ctx->Array.Current->Color.Ptr;
#else
*params = ctx->Array.Color.Ptr;
#endif
break;
case GL_INDEX_ARRAY_POINTER:
#ifdef VAO
*params = ctx->Array.Current->Index.Ptr;
#else
*params = ctx->Array.Index.Ptr;
#endif
break;
case GL_TEXTURE_COORD_ARRAY_POINTER:
#ifdef VAO
*params = ctx->Array.Current->TexCoord[texUnit].Ptr;
#else
*params = ctx->Array.TexCoord[texUnit].Ptr;
#endif
break;
case GL_EDGE_FLAG_ARRAY_POINTER:
#ifdef VAO
*params = ctx->Array.Current->EdgeFlag.Ptr;
#else
*params = ctx->Array.EdgeFlag.Ptr;
#endif
break;
case GL_FEEDBACK_BUFFER_POINTER:
*params = ctx->Feedback.Buffer;
@@ -4673,7 +5095,7 @@ _mesa_GetString( GLenum name )
GET_CURRENT_CONTEXT(ctx);
static const char *vendor = "Brian Paul";
static const char *renderer = "Mesa";
static const char *version = "1.2 Mesa 3.3";
static const char *version = "1.2 Mesa 3.4.1";
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH_WITH_RETVAL(ctx, "glGetString", 0);

View File

@@ -1,8 +1,8 @@
/* $Id: glheader.h,v 1.11 2000/06/12 15:40:47 brianp Exp $ */
/* $Id: glheader.h,v 1.11.4.4 2000/12/13 00:54:57 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
* Version: 3.4
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
@@ -39,15 +39,24 @@
* If you touch this file, everything gets recompiled!
*
* This file should be included before any other header in the .c files.
*
* Put compiler/OS/assembly pragmas and macros here to avoid
* cluttering other source files.
*/
#ifdef XFree86LOADER
#include "xf86_ansic.h"
#else
#include <assert.h>
#include <ctype.h>
/* If we can use Compaq's Fast Math Library on Alpha */
#if defined(__alpha__) && defined(CCPML)
#include <cpml.h>
#else
#include <math.h>
#endif
#include <limits.h>
#include <stdlib.h>
#include <stdio.h>
@@ -65,24 +74,11 @@
/*
* Put compiler/OS/assembly pragmas and macros here to avoid
* cluttering other source files.
*/
/*
* XXX move as many of these pragma's and MS Windows-isms into
* the new src/glheader.h file.
*/
#if defined(_WIN32) && !defined(__WIN32__)
#if defined(_WIN32) && !defined(__WIN32__) && !defined(__CYGWIN__)
# define __WIN32__
#endif
#if !defined(OPENSTEP) && (defined(__WIN32__) || defined(__CYGWIN__))
#if !defined(OPENSTEP) && (defined(__WIN32__) && !defined(__CYGWIN__))
# pragma warning( disable : 4068 ) /* unknown pragma */
# pragma warning( disable : 4710 ) /* function 'foo' not inlined */
# pragma warning( disable : 4711 ) /* function 'foo' selected for automatic inline expansion */
@@ -129,16 +125,21 @@
/* compatability guard so we don't need to change client code */
#if defined(_WIN32) && !defined(_WINDEF_) && !defined(_GNU_H_WINDOWS32_BASE) && !defined(OPENSTEP)
#if defined(_WIN32) && !defined(_WINDEF_) && !defined(_GNU_H_WINDOWS32_BASE) && !defined(OPENSTEP) && !defined(__CYGWIN__)
#if 0
# define CALLBACK GLCALLBACK
#endif
typedef int (GLAPIENTRY *PROC)();
typedef void *HGLRC;
typedef void *HDC;
#endif
typedef int (GLAPIENTRY *PROC)();
typedef unsigned long COLORREF;
#endif
/* Make sure we include glext.h from gl.h */
#define GL_GLEXT_PROTOTYPES
#if defined(_WIN32) && !defined(_WINGDI_) && !defined(_GNU_H_WINDOWS32_DEFINES) && !defined(OPENSTEP)
# define WGL_FONT_LINES 0
# define WGL_FONT_POLYGONS 1
@@ -154,14 +155,14 @@ typedef unsigned long COLORREF;
typedef struct tagLAYERPLANEDESCRIPTOR LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, *LPLAYERPLANEDESCRIPTOR;
typedef struct _GLYPHMETRICSFLOAT GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, *LPGLYPHMETRICSFLOAT;
typedef struct tagPIXELFORMATDESCRIPTOR PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR;
#if !defined(GLX_USE_MESA)
#include <gl/mesa_wgl.h>
#endif
#endif
/* Make sure we include glext.h */
#define GL_GLEXT_PROTOTYPES
#include "GL/gl.h"
#include "GL/glext.h"

View File

@@ -1,4 +1,4 @@
/* $Id: hash.c,v 1.9 2000/03/21 22:20:42 brianp Exp $ */
/* $Id: hash.c,v 1.9.4.1 2000/11/26 21:10:26 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -101,7 +101,6 @@ void *_mesa_HashLookup(const struct _mesa_HashTable *table, GLuint key)
const struct HashEntry *entry;
assert(table);
assert(key);
pos = key & (TABLE_SIZE-1);
entry = table->Table[pos];
@@ -130,7 +129,6 @@ void _mesa_HashInsert(struct _mesa_HashTable *table, GLuint key, void *data)
struct HashEntry *entry;
assert(table);
assert(key);
_glthread_LOCK_MUTEX(table->Mutex);
@@ -172,7 +170,6 @@ void _mesa_HashRemove(struct _mesa_HashTable *table, GLuint key)
struct HashEntry *entry, *prev;
assert(table);
assert(key);
_glthread_LOCK_MUTEX(table->Mutex);

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +1,8 @@
/* $Id: image.h,v 1.9 2000/05/10 14:39:53 brianp Exp $ */
/* $Id: image.h,v 1.9.4.1 2001/01/25 17:34:22 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
* Version: 3.4.1
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
@@ -79,6 +79,15 @@ _mesa_pack_polygon_stipple( const GLuint pattern[32], GLubyte *dest,
const struct gl_pixelstore_attrib *packing );
extern void
_mesa_pack_float_rgba_span( GLcontext *ctx,
GLuint n, CONST GLfloat rgba[][4],
GLenum dstFormat, GLenum dstType,
GLvoid *dstAddr,
const struct gl_pixelstore_attrib *dstPacking,
GLboolean applyTransferOps );
extern void
_mesa_pack_rgba_span( GLcontext *ctx,
GLuint n, CONST GLubyte rgba[][4],

View File

@@ -1,4 +1,4 @@
/* $Id: lines.c,v 1.12 2000/07/14 14:04:07 brianp Exp $ */
/* $Id: lines.c,v 1.12.2.1 2000/11/08 16:42:48 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -1058,7 +1058,7 @@ _mesa_print_line_function(GLcontext *ctx)
else if (ctx->Driver.LineFunc == null_line)
printf("null_line\n");
else
printf("Driver func %p\n", ctx->Driver.PointsFunc);
printf("Driver func %p\n", ctx->Driver.LineFunc);
}
#endif

View File

@@ -1,8 +1,8 @@
/* $Id: matrix.c,v 1.18 2000/06/27 22:10:00 brianp Exp $ */
/* $Id: matrix.c,v 1.18.4.2 2000/11/05 21:24:01 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
* Version: 3.4
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
@@ -597,7 +597,7 @@ void gl_rotation_matrix( GLfloat angle, GLfloat x, GLfloat y, GLfloat z,
mag = GL_SQRT( x*x + y*y + z*z );
if (mag == 0.0) {
if (mag <= 1.0e-4) {
/* generate an identity matrix and return */
MEMCPY(m, Identity, sizeof(GLfloat)*16);
return;
@@ -764,18 +764,16 @@ static void analyze_from_scratch( GLmatrix *mat )
/* Do the real work
*/
if (mask == MASK_IDENTITY) {
if (mask == (GLuint) MASK_IDENTITY) {
mat->type = MATRIX_IDENTITY;
}
else if ((mask & MASK_2D_NO_ROT) == MASK_2D_NO_ROT)
{
else if ((mask & MASK_2D_NO_ROT) == (GLuint) MASK_2D_NO_ROT) {
mat->type = MATRIX_2D_NO_ROT;
if ((mask & MASK_NO_2D_SCALE) != MASK_NO_2D_SCALE)
mat->flags = MAT_FLAG_GENERAL_SCALE;
}
else if ((mask & MASK_2D) == MASK_2D)
{
else if ((mask & MASK_2D) == (GLuint) MASK_2D) {
GLfloat mm = DOT2(m, m);
GLfloat m4m4 = DOT2(m+4,m+4);
GLfloat mm4 = DOT2(m,m+4);
@@ -794,8 +792,7 @@ static void analyze_from_scratch( GLmatrix *mat )
mat->flags |= MAT_FLAG_ROTATION;
}
else if ((mask & MASK_3D_NO_ROT) == MASK_3D_NO_ROT)
{
else if ((mask & MASK_3D_NO_ROT) == (GLuint) MASK_3D_NO_ROT) {
mat->type = MATRIX_3D_NO_ROT;
/* Check for scale */
@@ -806,8 +803,7 @@ static void analyze_from_scratch( GLmatrix *mat )
} else
mat->flags |= MAT_FLAG_GENERAL_SCALE;
}
else if ((mask & MASK_3D) == MASK_3D)
{
else if ((mask & MASK_3D) == (GLuint) MASK_3D) {
GLfloat c1 = DOT3(m,m);
GLfloat c2 = DOT3(m+4,m+4);
GLfloat c3 = DOT3(m+8,m+8);

View File

@@ -1,4 +1,4 @@
/* $Id: pixel.c,v 1.11 2000/05/07 20:41:30 brianp Exp $ */
/* $Id: pixel.c,v 1.11.4.1 2000/10/19 20:09:29 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -105,6 +105,14 @@ _mesa_PixelStorei( GLenum pname, GLint param )
ctx->Pack.SkipRows = param;
}
break;
case GL_PACK_SKIP_IMAGES:
if (param<0) {
gl_error( ctx, GL_INVALID_VALUE, "glPixelStore(param)" );
}
else {
ctx->Pack.SkipImages = param;
}
break;
case GL_PACK_ALIGNMENT:
if (param==1 || param==2 || param==4 || param==8) {
ctx->Pack.Alignment = param;
@@ -149,6 +157,14 @@ _mesa_PixelStorei( GLenum pname, GLint param )
ctx->Unpack.SkipRows = param;
}
break;
case GL_UNPACK_SKIP_IMAGES:
if (param < 0) {
gl_error( ctx, GL_INVALID_VALUE, "glPixelStore(param)" );
}
else {
ctx->Unpack.SkipImages = param;
}
break;
case GL_UNPACK_ALIGNMENT:
if (param==1 || param==2 || param==4 || param==8) {
ctx->Unpack.Alignment = param;

View File

@@ -1,8 +1,8 @@
/* $Id: points.c,v 1.11 2000/07/15 03:13:43 brianp Exp $ */
/* $Id: points.c,v 1.11.2.2 2000/11/08 16:41:17 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
* Version: 3.4
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
@@ -161,7 +161,7 @@ size1_ci_points( GLcontext *ctx, GLuint first, GLuint last )
GLuint i;
win = &VB->Win.data[first][0];
for (i = first; i <= last; i++) {
for (i = first; i < last; i++) {
if (VB->ClipMask[i] == 0) {
pbx[pbcount] = (GLint) win[0];
pby[pbcount] = (GLint) win[1];
@@ -187,7 +187,7 @@ size1_rgba_points( GLcontext *ctx, GLuint first, GLuint last )
struct pixel_buffer *PB = ctx->PB;
GLuint i;
for (i = first; i <= last; i++) {
for (i = first; i < last; i++) {
if (VB->ClipMask[i] == 0) {
GLint x, y, z;
GLint red, green, blue, alpha;
@@ -221,7 +221,7 @@ general_ci_points( GLcontext *ctx, GLuint first, GLuint last )
GLint radius = isize >> 1;
GLuint i;
for (i = first; i <= last; i++) {
for (i = first; i < last; i++) {
if (VB->ClipMask[i] == 0) {
GLint x0, x1, y0, y1;
GLint ix, iy;
@@ -270,7 +270,7 @@ general_rgba_points( GLcontext *ctx, GLuint first, GLuint last )
GLint radius = isize >> 1;
GLuint i;
for (i = first; i <= last; i++) {
for (i = first; i < last; i++) {
if (VB->ClipMask[i] == 0) {
GLint x0, x1, y0, y1;
GLint ix, iy;
@@ -323,7 +323,7 @@ textured_rgba_points( GLcontext *ctx, GLuint first, GLuint last )
struct pixel_buffer *PB = ctx->PB;
GLuint i;
for (i = first; i <= last; i++) {
for (i = first; i < last; i++) {
if (VB->ClipMask[i] == 0) {
GLint x0, x1, y0, y1;
GLint ix, iy, radius;
@@ -410,7 +410,7 @@ multitextured_rgba_points( GLcontext *ctx, GLuint first, GLuint last )
struct pixel_buffer *PB = ctx->PB;
GLuint i;
for (i = first; i <= last; i++) {
for (i = first; i < last; i++) {
if (VB->ClipMask[i] == 0) {
GLint x0, x1, y0, y1;
GLint ix, iy;
@@ -551,12 +551,12 @@ antialiased_rgba_points( GLcontext *ctx, GLuint first, GLuint last )
GLuint i;
if (ctx->Texture.ReallyEnabled) {
for (i = first; i <= last; i++) {
for (i = first; i < last; i++) {
if (VB->ClipMask[i] == 0) {
GLint x, y;
GLint red, green, blue, alpha;
GLfloat s, t, u;
GLfloat s1, t1, u1;
GLfloat s = 0.0F, t = 0.0F, u = 0.0F;
GLfloat s1 = 0.0F, t1 = 0.0F, u1 = 0.0F;
GLfloat vx = VB->Win.data[i][0];
GLfloat vy = VB->Win.data[i][1];
@@ -667,7 +667,7 @@ antialiased_rgba_points( GLcontext *ctx, GLuint first, GLuint last )
}
else {
/* Not texture mapped */
for (i=first;i<=last;i++) {
for (i=first;i<last;i++) {
if (VB->ClipMask[i]==0) {
GLint xmin, ymin, xmax, ymax;
GLint x, y, z;
@@ -738,7 +738,7 @@ dist3(GLfloat *out, GLuint first, GLuint last,
const GLfloat *p = VEC_ELT(v, GLfloat, first);
GLuint i;
for (i = first ; i <= last ; i++, STRIDE_F(p, stride) ) {
for (i = first ; i < last ; i++, STRIDE_F(p, stride) ) {
GLfloat dist = GL_SQRT(p[0]*p[0]+p[1]*p[1]+p[2]*p[2]);
out[i] = 1.0F / (ctx->Point.Params[0] +
dist * (ctx->Point.Params[1] +
@@ -755,7 +755,7 @@ dist2(GLfloat *out, GLuint first, GLuint last,
const GLfloat *p = VEC_ELT(v, GLfloat, first);
GLuint i;
for (i = first ; i <= last ; i++, STRIDE_F(p, stride) ) {
for (i = first ; i < last ; i++, STRIDE_F(p, stride) ) {
GLfloat dist = GL_SQRT(p[0]*p[0]+p[1]*p[1]);
out[i] = 1.0F / (ctx->Point.Params[0] +
dist * (ctx->Point.Params[1] +
@@ -795,7 +795,7 @@ clip_dist(GLfloat *out, GLuint first, GLuint last,
const GLfloat *from = (GLfloat *)clip_vec->start;
const GLuint stride = clip_vec->stride;
for (i = first ; i <= last ; i++ )
for (i = first ; i < last ; i++ )
{
GLfloat dist = win[i][2];
out[i] = 1/(ctx->Point.Params[0]+
@@ -824,7 +824,7 @@ dist_atten_general_ci_points( GLcontext *ctx, GLuint first, GLuint last )
else
clip_dist( dist, first, last, ctx, VB->ClipPtr );
for (i=first;i<=last;i++) {
for (i=first;i<last;i++) {
if (VB->ClipMask[i]==0) {
GLint x0, x1, y0, y1;
GLint ix, iy;
@@ -886,7 +886,7 @@ dist_atten_general_rgba_points( GLcontext *ctx, GLuint first, GLuint last )
else
clip_dist( dist, first, last, ctx, VB->ClipPtr );
for (i=first;i<=last;i++) {
for (i=first;i<last;i++) {
if (VB->ClipMask[i]==0) {
GLint x0, x1, y0, y1;
GLint ix, iy;
@@ -956,14 +956,14 @@ dist_atten_textured_rgba_points( GLcontext *ctx, GLuint first, GLuint last )
else
clip_dist( dist, first, last, ctx, VB->ClipPtr );
for (i=first;i<=last;i++) {
for (i=first;i<last;i++) {
if (VB->ClipMask[i]==0) {
GLint x0, x1, y0, y1;
GLint ix, iy;
GLint isize, radius;
GLint red, green, blue, alpha;
GLfloat s, t, u;
GLfloat s1, t1, u1;
GLfloat s = 0.0F, t = 0.0F, u = 0.0F;
GLfloat s1 = 0.0F, t1 = 0.0F, u1 = 0.0F;
GLint x = (GLint) VB->Win.data[i][0];
GLint y = (GLint) VB->Win.data[i][1];
@@ -1104,14 +1104,14 @@ dist_atten_antialiased_rgba_points( GLcontext *ctx, GLuint first, GLuint last )
clip_dist( dist, first, last, ctx, VB->ClipPtr );
if (ctx->Texture.ReallyEnabled) {
for (i=first;i<=last;i++) {
for (i=first;i<last;i++) {
if (VB->ClipMask[i]==0) {
GLfloat radius, rmin, rmax, rmin2, rmax2, cscale, alphaf;
GLint xmin, ymin, xmax, ymax;
GLint x, y, z;
GLint red, green, blue, alpha;
GLfloat s, t, u;
GLfloat s1, t1, u1;
GLfloat s = 0.0F, t = 0.0F, u = 0.0F;
GLfloat s1 = 0.0F, t1 = 0.0F, u1 = 0.0F;
GLfloat dsize = psize * dist[i];
if (dsize >= ctx->Point.Threshold) {
@@ -1232,7 +1232,7 @@ dist_atten_antialiased_rgba_points( GLcontext *ctx, GLuint first, GLuint last )
}
else {
/* Not texture mapped */
for (i = first; i <= last; i++) {
for (i = first; i < last; i++) {
if (VB->ClipMask[i] == 0) {
GLfloat radius, rmin, rmax, rmin2, rmax2, cscale, alphaf;
GLint xmin, ymin, xmax, ymax;

View File

@@ -1,8 +1,8 @@
/* $Id: state.c,v 1.21 2000/06/30 14:14:37 brianp Exp $ */
/* $Id: state.c,v 1.21.4.6 2000/12/09 19:21:01 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
* Version: 3.4
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
@@ -775,10 +775,10 @@ static void update_pixel_masking( GLcontext *ctx )
static void update_fog_mode( GLcontext *ctx )
{
int old_mode = ctx->FogMode;
const GLuint old_mode = ctx->FogMode;
if (ctx->Fog.Enabled) {
if (ctx->Texture.Enabled)
if (ctx->Texture.ReallyEnabled)
ctx->FogMode = FOG_FRAGMENT;
else if (ctx->Hint.Fog == GL_NICEST)
ctx->FogMode = FOG_FRAGMENT;
@@ -922,32 +922,38 @@ void gl_update_state( GLcontext *ctx )
gl_update_client_state( ctx );
if ((ctx->NewState & NEW_TEXTURE_ENABLE) &&
(ctx->Enabled & ENABLE_TEX_ANY) != ctx->Texture.Enabled)
(ctx->Enabled & ENABLE_TEX_ANY) != ctx->Texture.ReallyEnabled) {
ctx->NewState |= NEW_TEXTURING | NEW_RASTER_OPS;
}
/* XXX this is a hack, gone in 3.5 */
if (ctx->NewState & NEW_TEXTURE_ENV) {
if (ctx->Texture.Unit[0].EnvMode == ctx->Texture.Unit[0].LastEnvMode &&
ctx->Texture.Unit[1].EnvMode == ctx->Texture.Unit[1].LastEnvMode)
ctx->Texture.Unit[1].EnvMode == ctx->Texture.Unit[1].LastEnvMode &&
ctx->Texture.Unit[0].EnvMode != GL_COMBINE_EXT &&
ctx->Texture.Unit[1].EnvMode != GL_COMBINE_EXT)
ctx->NewState &= ~NEW_TEXTURE_ENV;
ctx->Texture.Unit[0].LastEnvMode = ctx->Texture.Unit[0].EnvMode;
ctx->Texture.Unit[1].LastEnvMode = ctx->Texture.Unit[1].EnvMode;
}
if (ctx->NewState & NEW_TEXTURE_MATRIX) {
ctx->Enabled &= ~(ENABLE_TEXMAT0|ENABLE_TEXMAT1);
/* Update ctx->Enabled's ENABLE_TEXMATn flags */
if (ctx->NewState & (NEW_TEXTURE_MATRIX | NEW_TEXTURE_ENABLE)) {
ctx->Enabled &= ~(ENABLE_TEXMAT0 | ENABLE_TEXMAT1);
for (i=0; i < MAX_TEXTURE_UNITS; i++) {
if (ctx->TextureMatrix[i].flags & MAT_DIRTY_ALL_OVER) {
gl_matrix_analyze( &ctx->TextureMatrix[i] );
ctx->TextureMatrix[i].flags &= ~MAT_DIRTY_DEPENDENTS;
if (ctx->Texture.Unit[i].Enabled &&
ctx->TextureMatrix[i].type != MATRIX_IDENTITY)
ctx->Enabled |= ENABLE_TEXMAT0 << i;
}
if (ctx->Texture.Unit[i].Enabled &&
ctx->TextureMatrix[i].type != MATRIX_IDENTITY) {
ctx->Enabled |= ENABLE_TEXMAT0 << i;
}
}
}
/* Update ctx->Enabled's ENABLE_TEXGENn and ENABLE_TEXn flags */
if (ctx->NewState & (NEW_TEXTURING | NEW_TEXTURE_ENABLE)) {
ctx->Texture.NeedNormals = GL_FALSE;
gl_update_dirty_texobjs(ctx);
@@ -974,9 +980,11 @@ void gl_update_state( GLcontext *ctx )
}
}
}
else {
ctx->Texture.Unit[i].ReallyEnabled = 0;
}
}
ctx->Texture.Enabled = ctx->Enabled & ENABLE_TEX_ANY;
ctx->Enabled = (ctx->Enabled & ~ENABLE_TEX_ANY) | ctx->Texture.ReallyEnabled;
ctx->NeedNormals = (ctx->Light.Enabled || ctx->Texture.NeedNormals);
}
@@ -1187,8 +1195,9 @@ void gl_update_state( GLcontext *ctx )
}
ctx->NeedEyeNormals = ctx->NeedEyeCoords;
}
if (ctx->Texture.Enabled || ctx->RenderMode==GL_FEEDBACK) {
if (ctx->Texture.NeedEyeCoords) ctx->NeedEyeCoords = GL_TRUE;
if (ctx->Texture.ReallyEnabled || ctx->RenderMode==GL_FEEDBACK) {
if (ctx->Texture.NeedEyeCoords)
ctx->NeedEyeCoords = GL_TRUE;
if (ctx->Texture.NeedNormals)
ctx->NeedNormals = ctx->NeedEyeNormals = GL_TRUE;
}

View File

@@ -1,8 +1,8 @@
/* $Id: stencil.c,v 1.16 2000/04/11 21:26:57 brianp Exp $ */
/* $Id: stencil.c,v 1.16.4.1 2000/11/28 21:30:44 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
* Version: 3.4
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
@@ -1351,11 +1351,11 @@ clear_hardware_stencil_buffer( GLcontext *ctx )
const GLstencil clearVal = (ctx->Stencil.Clear & mask);
GLstencil stencil[MAX_WIDTH];
GLint i;
(*ctx->Driver.ReadStencilSpan)(ctx, x, y, width, stencil);
(*ctx->Driver.ReadStencilSpan)(ctx, width, x, y, stencil);
for (i = 0; i < width; i++) {
stencil[i] = (stencil[i] & invMask) | clearVal;
}
(*ctx->Driver.WriteStencilSpan)(ctx, x, y, width, stencil, NULL);
(*ctx->Driver.WriteStencilSpan)(ctx, width, x, y, stencil, NULL);
}
}
else {
@@ -1366,7 +1366,7 @@ clear_hardware_stencil_buffer( GLcontext *ctx )
stencil[i] = ctx->Stencil.Clear;
}
for (y = ctx->DrawBuffer->Ymin; y <= ctx->DrawBuffer->Ymax; y++) {
(*ctx->Driver.WriteStencilSpan)(ctx, x, y, width, stencil, NULL);
(*ctx->Driver.WriteStencilSpan)(ctx, width, x, y, stencil, NULL);
}
}
}
@@ -1384,11 +1384,11 @@ clear_hardware_stencil_buffer( GLcontext *ctx )
for (y = 0; y < height; y++) {
GLstencil stencil[MAX_WIDTH];
GLuint i;
(*ctx->Driver.ReadStencilSpan)(ctx, x, y, width, stencil);
(*ctx->Driver.ReadStencilSpan)(ctx, width, x, y, stencil);
for (i = 0; i < width; i++) {
stencil[i] = (stencil[i] & invMask) | clearVal;
}
(*ctx->Driver.WriteStencilSpan)(ctx, x, y, width, stencil, NULL);
(*ctx->Driver.WriteStencilSpan)(ctx, width, x, y, stencil, NULL);
}
}
else {
@@ -1402,7 +1402,7 @@ clear_hardware_stencil_buffer( GLcontext *ctx )
stencil[i] = ctx->Stencil.Clear;
}
for (y = 0; y < height; y++) {
(*ctx->Driver.WriteStencilSpan)(ctx, x, y, width, stencil, NULL);
(*ctx->Driver.WriteStencilSpan)(ctx, width, x, y, stencil, NULL);
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +1,8 @@
/* $Id: teximage.h,v 1.11 2000/06/05 07:28:49 joukj Exp $ */
/* $Id: teximage.h,v 1.11.4.2 2000/10/16 23:37:16 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
* Version: 3.4
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
@@ -48,7 +48,9 @@ _mesa_free_texture_image( struct gl_texture_image *teximage );
extern GLuint
_mesa_compressed_image_size(GLenum internalFormat,
_mesa_compressed_image_size(GLcontext *ctx,
GLenum internalFormat,
GLint numDimensions,
GLint width, GLint height, GLint depth);
@@ -63,8 +65,14 @@ _mesa_select_tex_image(GLcontext *ctx, const struct gl_texture_unit *texUnit,
extern void
_mesa_get_teximage_from_driver( GLcontext *ctx, GLenum target, GLint level,
const struct gl_texture_object *texObj );
_mesa_get_teximage_from_driver(GLcontext *ctx, GLenum target, GLint level,
const struct gl_texture_object *texObj);
extern GLboolean
_mesa_get_teximages_from_driver(GLcontext *ctx,
struct gl_texture_object *texObj);
/*** API entry point functions ***/

View File

@@ -1,7 +1,8 @@
/* $Id: texobj.c,v 1.23.4.9 2000/12/14 23:10:39 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
* Version: 3.4
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
@@ -62,11 +63,14 @@ gl_alloc_texture_object( struct gl_shared_state *shared, GLuint name,
if (obj) {
/* init the non-zero fields */
_glthread_INIT_MUTEX(obj->Mutex);
obj->RefCount = 1;
obj->Name = name;
obj->Dimensions = dimensions;
obj->Priority = 1.0F;
obj->WrapS = GL_REPEAT;
obj->WrapT = GL_REPEAT;
obj->WrapR = GL_REPEAT;
obj->MinFilter = GL_NEAREST_MIPMAP_LINEAR;
obj->MagFilter = GL_LINEAR;
obj->MinLod = -1000.0;
@@ -155,6 +159,20 @@ void gl_free_texture_object( struct gl_shared_state *shared,
/*
* This is helpful to diagnose incomplete texture problems.
*/
#if 0
static void
incomplete(const struct gl_texture_object *t, const char *why)
{
printf("Texture Obj %d incomplete because: %s\n", t->Name, why);
}
#else
#define incomplete(a, b)
#endif
/*
* Examine a texture object to determine if it is complete or not.
* The t->Complete flag will be set to GL_TRUE or GL_FALSE accordingly.
@@ -169,6 +187,7 @@ _mesa_test_texobj_completeness( const GLcontext *ctx,
/* Always need level zero image */
if (!t->Image[baseLevel]) {
incomplete(t, "Image[baseLevel] == NULL");
t->Complete = GL_FALSE;
return;
}
@@ -188,8 +207,12 @@ _mesa_test_texobj_completeness( const GLcontext *ctx,
t->P = max;
}
t->P += baseLevel;
t->P = MIN2(t->P, t->MaxLevel);
t->P = MIN2(t->P, ctx->Const.MaxTextureLevels - 1);
/* Compute M (see the 1.2 spec) used during mipmapping */
t->M = (GLfloat) (MIN2(t->MaxLevel, t->P) - t->BaseLevel);
t->M = (GLfloat) (t->P - t->BaseLevel);
if (t->Dimensions == 6) {
@@ -212,6 +235,7 @@ _mesa_test_texobj_completeness( const GLcontext *ctx,
t->NegZ[baseLevel]->Width2 != w ||
t->NegZ[baseLevel]->Height2 != h) {
t->Complete = GL_FALSE;
incomplete(t, "Non-quare cubemap image");
return;
}
}
@@ -222,11 +246,11 @@ _mesa_test_texobj_completeness( const GLcontext *ctx,
*/
GLint i;
GLint minLevel = baseLevel;
GLint maxLevel = MIN2(t->P, ctx->Const.MaxTextureLevels-1);
maxLevel = MIN2(maxLevel, t->MaxLevel);
GLint maxLevel = t->P;
if (minLevel > maxLevel) {
t->Complete = GL_FALSE;
incomplete(t, "minLevel > maxLevel");
return;
}
@@ -235,10 +259,12 @@ _mesa_test_texobj_completeness( const GLcontext *ctx,
if (t->Image[i]) {
if (t->Image[i]->Format != t->Image[baseLevel]->Format) {
t->Complete = GL_FALSE;
incomplete(t, "Format[i] != Format[baseLevel]");
return;
}
if (t->Image[i]->Border != t->Image[baseLevel]->Border) {
t->Complete = GL_FALSE;
incomplete(t, "Border[i] != Border[baseLevel]");
return;
}
}
@@ -255,10 +281,12 @@ _mesa_test_texobj_completeness( const GLcontext *ctx,
if (i >= minLevel && i <= maxLevel) {
if (!t->Image[i]) {
t->Complete = GL_FALSE;
incomplete(t, "1D Image[i] == NULL");
return;
}
if (t->Image[i]->Width2 != width ) {
t->Complete = GL_FALSE;
incomplete(t, "1D Image[i] bad width");
return;
}
}
@@ -281,14 +309,17 @@ _mesa_test_texobj_completeness( const GLcontext *ctx,
if (i >= minLevel && i <= maxLevel) {
if (!t->Image[i]) {
t->Complete = GL_FALSE;
incomplete(t, "2D Image[i] == NULL");
return;
}
if (t->Image[i]->Width2 != width) {
t->Complete = GL_FALSE;
incomplete(t, "2D Image[i] bad width");
return;
}
if (t->Image[i]->Height2 != height) {
t->Complete = GL_FALSE;
incomplete(t, "2D Image[i] bad height");
return;
}
if (width==1 && height==1) {
@@ -314,19 +345,23 @@ _mesa_test_texobj_completeness( const GLcontext *ctx,
}
if (i >= minLevel && i <= maxLevel) {
if (!t->Image[i]) {
incomplete(t, "3D Image[i] == NULL");
t->Complete = GL_FALSE;
return;
}
if (t->Image[i]->Width2 != width) {
t->Complete = GL_FALSE;
incomplete(t, "3D Image[i] bad width");
return;
}
if (t->Image[i]->Height2 != height) {
t->Complete = GL_FALSE;
incomplete(t, "3D Image[i] bad height");
return;
}
if (t->Image[i]->Depth2 != depth) {
t->Complete = GL_FALSE;
incomplete(t, "3D Image[i] bad depth");
return;
}
}
@@ -352,6 +387,7 @@ _mesa_test_texobj_completeness( const GLcontext *ctx,
!t->PosY[i] || !t->NegY[i] ||
!t->PosZ[i] || !t->NegZ[i]) {
t->Complete = GL_FALSE;
incomplete(t, "CubeMap Image[i] == NULL");
return;
}
/* check that all six images have same size */
@@ -361,6 +397,7 @@ _mesa_test_texobj_completeness( const GLcontext *ctx,
t->PosZ[i]->Width2!=width || t->PosZ[i]->Height2!=height ||
t->NegZ[i]->Width2!=width || t->NegZ[i]->Height2!=height) {
t->Complete = GL_FALSE;
incomplete(t, "CubeMap Image[i] bad size");
return;
}
}
@@ -391,11 +428,13 @@ _mesa_GenTextures( GLsizei n, GLuint *texName )
GLint i;
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glGenTextures");
if (n<0) {
if (n < 0) {
gl_error( ctx, GL_INVALID_VALUE, "glGenTextures" );
return;
}
if (!texName)
return;
/*
* This must be atomic (generation and allocation of texture IDs)
@@ -432,6 +471,9 @@ _mesa_DeleteTextures( GLsizei n, const GLuint *texName)
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glDeleteTextures");
if (!texName)
return;
for (i=0;i<n;i++) {
struct gl_texture_object *t;
if (texName[i]>0) {
@@ -514,6 +556,8 @@ _mesa_BindTexture( GLenum target, GLuint texName )
return;
}
ctx->NewState |= NEW_TEXTURING;
if (oldTexObj->Name == texName)
return;
@@ -574,12 +618,9 @@ _mesa_BindTexture( GLenum target, GLuint texName )
|| (oldTexObj->Image[0] && newTexObj->Image[0] &&
(oldTexObj->Image[0]->Format!=newTexObj->Image[0]->Format))))
{
ctx->NewState |= (NEW_RASTER_OPS | NEW_TEXTURING);
ctx->NewState |= NEW_RASTER_OPS;
}
if (oldTexObj->Complete != newTexObj->Complete)
ctx->NewState |= NEW_TEXTURING;
/* Pass BindTexture call to device driver */
if (ctx->Driver.BindTexture) {
(*ctx->Driver.BindTexture)( ctx, target, newTexObj );
@@ -610,19 +651,20 @@ _mesa_PrioritizeTextures( GLsizei n, const GLuint *texName,
GLint i;
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glPrioritizeTextures");
if (n<0) {
if (n < 0) {
gl_error( ctx, GL_INVALID_VALUE, "glPrioritizeTextures" );
return;
}
for (i=0;i<n;i++) {
struct gl_texture_object *t;
if (texName[i]>0) {
t = (struct gl_texture_object *)
if (!priorities)
return;
for (i = 0; i < n; i++) {
if (texName[i] > 0) {
struct gl_texture_object *t = (struct gl_texture_object *)
_mesa_HashLookup(ctx->Shared->TexObjects, texName[i]);
if (t) {
t->Priority = CLAMP( priorities[i], 0.0F, 1.0F );
if (ctx->Driver.PrioritizeTexture)
ctx->Driver.PrioritizeTexture( ctx, t, t->Priority );
}
@@ -636,41 +678,47 @@ _mesa_PrioritizeTextures( GLsizei n, const GLuint *texName,
* Execute glAreTexturesResident
*/
GLboolean
_mesa_AreTexturesResident( GLsizei n, const GLuint *texName,
GLboolean *residences )
_mesa_AreTexturesResident(GLsizei n, const GLuint *texName,
GLboolean *residences)
{
GET_CURRENT_CONTEXT(ctx);
GLboolean resident = GL_TRUE;
GLboolean allResident = GL_TRUE;
GLint i;
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH_WITH_RETVAL(ctx,
"glAreTexturesResident",
GL_FALSE);
if (n<0) {
gl_error( ctx, GL_INVALID_VALUE, "glAreTexturesResident(n)" );
"glAreTexturesResident", GL_FALSE);
if (n < 0) {
gl_error(ctx, GL_INVALID_VALUE, "glAreTexturesResident(n)");
return GL_FALSE;
}
for (i=0;i<n;i++) {
if (!texName || !residences)
return GL_FALSE;
for (i = 0; i < n; i++) {
struct gl_texture_object *t;
if (texName[i]==0) {
gl_error( ctx, GL_INVALID_VALUE, "glAreTexturesResident(textures)" );
if (texName[i] == 0) {
gl_error(ctx, GL_INVALID_VALUE, "glAreTexturesResident(textures)");
return GL_FALSE;
}
t = (struct gl_texture_object *)
_mesa_HashLookup(ctx->Shared->TexObjects, texName[i]);
if (t) {
if (ctx->Driver.IsTextureResident)
residences[i] = ctx->Driver.IsTextureResident( ctx, t );
else
if (ctx->Driver.IsTextureResident) {
residences[i] = ctx->Driver.IsTextureResident(ctx, t);
if (!residences[i])
allResident = GL_FALSE;
}
else {
residences[i] = GL_TRUE;
}
}
else {
gl_error( ctx, GL_INVALID_VALUE, "glAreTexturesResident(textures)" );
gl_error(ctx, GL_INVALID_VALUE, "glAreTexturesResident(textures)");
return GL_FALSE;
}
}
return resident;
return allResident;
}
@@ -684,7 +732,7 @@ _mesa_IsTexture( GLuint texture )
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH_WITH_RETVAL(ctx, "glIsTextures",
GL_FALSE);
if (texture>0 && _mesa_HashLookup(ctx->Shared->TexObjects, texture)) {
if (texture > 0 && _mesa_HashLookup(ctx->Shared->TexObjects, texture)) {
return GL_TRUE;
}
else {

View File

@@ -1,21 +1,21 @@
/* $Id: texstate.c,v 1.15 2000/07/05 16:14:24 brianp Exp $ */
/* $Id: texstate.c,v 1.15.4.3 2001/01/06 22:43:00 gareth Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
* Version: 3.4
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
@@ -118,6 +118,14 @@ _mesa_TexEnvfv( GLenum target, GLenum pname, const GLfloat *param )
case GL_ADD:
case GL_ADD_SIGNED_EXT:
case GL_INTERPOLATE_EXT:
case GL_DOT3_RGB_EXT:
case GL_DOT3_RGBA_EXT:
if ((mode == GL_DOT3_RGB_EXT ||
mode == GL_DOT3_RGBA_EXT) &&
!ctx->Extensions.HaveTextureEnvDot3) {
gl_error(ctx, GL_INVALID_ENUM, "glTexEnv(param)");
return;
}
if (texUnit->CombineModeRGB == mode)
return; /* no change */
texUnit->CombineModeRGB = mode;
@@ -356,7 +364,7 @@ _mesa_TexEnvfv( GLenum target, GLenum pname, const GLfloat *param )
}
if (MESA_VERBOSE&(VERBOSE_API|VERBOSE_TEXTURE))
fprintf(stderr, "glTexEnv %s %s %.1f(%s) ...\n",
fprintf(stderr, "glTexEnv %s %s %.1f(%s) ...\n",
gl_lookup_enum_by_nr(target),
gl_lookup_enum_by_nr(pname),
*param,
@@ -620,7 +628,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params )
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glTexParameterfv");
if (MESA_VERBOSE&(VERBOSE_API|VERBOSE_TEXTURE))
fprintf(stderr, "texPARAM %s %s %d...\n",
fprintf(stderr, "texPARAM %s %s %d...\n",
gl_lookup_enum_by_nr(target),
gl_lookup_enum_by_nr(pname),
eparam);
@@ -971,7 +979,14 @@ _mesa_GetTexParameterfv( GLenum target, GLenum pname, GLfloat *params )
params[3] = obj->BorderColor[3] / 255.0F;
break;
case GL_TEXTURE_RESIDENT:
*params = ENUM_TO_FLOAT(GL_TRUE);
{
GLboolean resident;
if (ctx->Driver.IsTextureResident)
resident = ctx->Driver.IsTextureResident(ctx, obj);
else
resident = GL_TRUE;
*params = ENUM_TO_FLOAT(resident);
}
break;
case GL_TEXTURE_PRIORITY:
*params = obj->Priority;
@@ -1039,7 +1054,14 @@ _mesa_GetTexParameteriv( GLenum target, GLenum pname, GLint *params )
}
break;
case GL_TEXTURE_RESIDENT:
*params = (GLint) GL_TRUE;
{
GLboolean resident;
if (ctx->Driver.IsTextureResident)
resident = ctx->Driver.IsTextureResident(ctx, obj);
else
resident = GL_TRUE;
*params = (GLint) resident;
}
break;
case GL_TEXTURE_PRIORITY:
*params = (GLint) obj->Priority;
@@ -1078,7 +1100,7 @@ _mesa_TexGenfv( GLenum coord, GLenum pname, const GLfloat *params )
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glTexGenfv");
if (MESA_VERBOSE&(VERBOSE_API|VERBOSE_TEXTURE))
fprintf(stderr, "texGEN %s %s %x...\n",
fprintf(stderr, "texGEN %s %s %x...\n",
gl_lookup_enum_by_nr(coord),
gl_lookup_enum_by_nr(pname),
*(int *)params);
@@ -1228,7 +1250,7 @@ _mesa_TexGenfv( GLenum coord, GLenum pname, const GLfloat *params )
if (pname==GL_TEXTURE_GEN_MODE) {
GLenum mode = (GLenum) (GLint) *params;
switch (mode) {
case GL_OBJECT_LINEAR:
case GL_OBJECT_LINEAR:
texUnit->GenModeQ = GL_OBJECT_LINEAR;
texUnit->GenBitQ = TEXGEN_OBJ_LINEAR;
break;
@@ -1578,12 +1600,12 @@ void
_mesa_ActiveTextureARB( GLenum target )
{
GET_CURRENT_CONTEXT(ctx);
GLint maxUnits = ctx->Const.MaxTextureUnits;
const GLuint maxUnits = ctx->Const.MaxTextureUnits;
ASSERT_OUTSIDE_BEGIN_END( ctx, "glActiveTextureARB" );
if (MESA_VERBOSE & (VERBOSE_API|VERBOSE_TEXTURE))
fprintf(stderr, "glActiveTexture %s\n",
fprintf(stderr, "glActiveTexture %s\n",
gl_lookup_enum_by_nr(target));
if (target >= GL_TEXTURE0_ARB && target < GL_TEXTURE0_ARB + maxUnits) {
@@ -1605,7 +1627,7 @@ void
_mesa_ClientActiveTextureARB( GLenum target )
{
GET_CURRENT_CONTEXT(ctx);
GLint maxUnits = ctx->Const.MaxTextureUnits;
const GLuint maxUnits = ctx->Const.MaxTextureUnits;
ASSERT_OUTSIDE_BEGIN_END( ctx, "glClientActiveTextureARB" );

View File

@@ -1,7 +1,8 @@
/* $Id: texutil.c,v 1.5.4.5 2000/11/17 02:42:01 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
* Version: 3.4
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
@@ -80,7 +81,10 @@
* GL_RGBA GL_UNSIGNED_BYTE MESA_A4_R4_G4_B4
* GL_BGRA GL_UNSIGNED_SHORT_4_4_4_4_REV MESA_A4_R4_G4_B4
* GL_BGRA GL_UNSIGHED_SHORT_1_5_5_5_REV MESA_A1_R5_G5_B5
* GL_RGBA GL_UNSIGNED_BYTE MESA_A1_R5_G5_B5
* GL_BGRA GL_UNSIGNED_INT_8_8_8_8_REV MESA_A8_R8_G8_B8
* GL_RGBA GL_UNSIGNED_BYTE MESA_A8_R8_G8_B8
* GL_RGB GL_UNSIGNED_BYTE MESA_A8_R8_G8_B8
* more to be added for new drivers...
*
* Notes:
@@ -123,8 +127,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat,
/* store as 8-bit texels */
if (wScale == 1 && hScale == 1) {
/* no scaling needed - fast case */
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth, srcHeight,
srcFormat, srcType, 0, 0, 0);
const GLint srcStride = _mesa_image_row_stride(packing,
srcWidth, srcFormat, srcType);
GLubyte *dst = (GLubyte *) dstImage;
@@ -141,8 +146,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat,
GLint row;
for (row = 0; row < dstHeight; row++) {
GLint srcRow = row / hScale;
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth,
srcHeight, srcFormat, srcType, 0, srcRow, 0);
GLint col;
for (col = 0; col < dstWidth; col++) {
dst[col] = src[col / wScale];
@@ -160,8 +166,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat,
else {
/* store as 16-bit texels */
if (wScale == 1 && hScale == 1) {
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth, srcHeight,
srcFormat, srcType, 0, 0, 0);
const GLint srcStride = _mesa_image_row_stride(packing,
srcWidth, srcFormat, srcType);
GLushort *dst = (GLushort *) dstImage;
@@ -182,8 +189,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat,
GLint row, col;
for (row = 0; row < dstHeight; row++) {
GLint srcRow = row / hScale;
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth,
srcHeight, srcFormat, srcType, 0, srcRow, 0);
const GLint srcStride = _mesa_image_row_stride(packing,
srcWidth, srcFormat, srcType);
for (col = 0; col < dstWidth; col++) {
@@ -203,8 +211,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat,
if (srcFormat == GL_RGB && srcType == GL_UNSIGNED_SHORT_5_6_5) {
/* special, optimized case */
if (wScale == 1 && hScale == 1) {
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth, srcHeight,
srcFormat, srcType, 0, 0, 0);
const GLint srcStride = _mesa_image_row_stride(packing,
srcWidth, srcFormat, srcType);
GLushort *dst = (GLushort *) dstImage;
@@ -221,8 +230,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat,
GLint row;
for (row = 0; row < dstHeight; row++) {
GLint srcRow = row / hScale;
const GLushort *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0);
const GLushort *src = (const GLushort *)
_mesa_image_address(packing, srcImage, srcWidth,
srcHeight, srcFormat, srcType, 0, srcRow, 0);
GLint col;
for (col = 0; col < dstWidth; col++) {
dst[col] = src[col / wScale];
@@ -234,8 +244,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat,
else if (srcFormat == GL_RGB && srcType == GL_UNSIGNED_BYTE) {
/* general case */
if (wScale == 1 && hScale == 1) {
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth, srcHeight,
srcFormat, srcType, 0, 0, 0);
const GLint srcStride = _mesa_image_row_stride(packing,
srcWidth, srcFormat, srcType);
#ifdef DO_32BIT_STORES
@@ -286,8 +297,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat,
GLint row;
for (row = 0; row < dstHeight; row++) {
GLint srcRow = row / hScale;
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth,
srcHeight, srcFormat, srcType, 0, srcRow, 0);
GLint col;
for (col = 0; col < dstWidth; col++) {
GLint col3 = (col / wScale) * 3;
@@ -305,8 +317,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat,
else if (srcFormat == GL_RGBA && srcType == GL_UNSIGNED_BYTE) {
/* general case (used by Quake3) */
if (wScale == 1 && hScale == 1) {
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth, srcHeight,
srcFormat, srcType, 0, 0, 0);
const GLint srcStride = _mesa_image_row_stride(packing,
srcWidth, srcFormat, srcType);
#ifdef DO_32BIT_STORES
@@ -357,8 +370,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat,
GLint row;
for (row = 0; row < dstHeight; row++) {
GLint srcRow = row / hScale;
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth,
srcHeight, srcFormat, srcType, 0, srcRow, 0);
GLint col;
for (col = 0; col < dstWidth; col++) {
GLint col4 = (col / wScale) * 4;
@@ -384,8 +398,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat,
if (srcFormat == GL_BGRA && srcType == GL_UNSIGNED_SHORT_4_4_4_4_REV){
/* special, optimized case */
if (wScale == 1 && hScale == 1) {
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth, srcHeight,
srcFormat, srcType, 0, 0, 0);
const GLint srcStride = _mesa_image_row_stride(packing,
srcWidth, srcFormat, srcType);
GLushort *dst = (GLushort *) dstImage;
@@ -402,8 +417,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat,
GLint row;
for (row = 0; row < dstHeight; row++) {
GLint srcRow = row / hScale;
const GLushort *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0);
const GLushort *src = (const GLushort *)
_mesa_image_address(packing, srcImage, srcWidth,
srcHeight, srcFormat, srcType, 0, srcRow, 0);
GLint col;
for (col = 0; col < dstWidth; col++) {
dst[col] = src[col / wScale];
@@ -415,8 +431,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat,
else if (srcFormat == GL_RGBA && srcType == GL_UNSIGNED_BYTE) {
/* general case */
if (wScale == 1 && hScale == 1) {
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth, srcHeight,
srcFormat, srcType, 0, 0, 0);
const GLint srcStride = _mesa_image_row_stride(packing,
srcWidth, srcFormat, srcType);
#ifdef DO_32BIT_STORES
@@ -473,8 +490,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat,
GLint row;
for (row = 0; row < dstHeight; row++) {
GLint srcRow = row / hScale;
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth,
srcHeight, srcFormat, srcType, 0, srcRow, 0);
GLint col;
for (col = 0; col < dstWidth; col++) {
GLint col4 = (col / wScale) * 4;
@@ -499,11 +517,12 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat,
case MESA_A1_R5_G5_B5:
/* store as 16-bit texels (GR_TEXFMT_ARGB_1555) */
if (srcFormat == GL_RGBA && srcType == GL_UNSIGNED_SHORT_1_5_5_5_REV){
if (srcFormat == GL_BGRA && srcType == GL_UNSIGNED_SHORT_1_5_5_5_REV){
/* special, optimized case */
if (wScale == 1 && hScale == 1) {
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth, srcHeight,
srcFormat, srcType, 0, 0, 0);
const GLint srcStride = _mesa_image_row_stride(packing,
srcWidth, srcFormat, srcType);
GLushort *dst = (GLushort *) dstImage;
@@ -520,8 +539,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat,
GLint row;
for (row = 0; row < dstHeight; row++) {
GLint srcRow = row / hScale;
const GLushort *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0);
const GLushort *src = (const GLushort *)
_mesa_image_address(packing, srcImage, srcWidth,
srcHeight, srcFormat, srcType, 0, srcRow, 0);
GLint col;
for (col = 0; col < dstWidth; col++) {
dst[col] = src[col / wScale];
@@ -533,8 +553,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat,
else if (srcFormat == GL_RGBA && srcType == GL_UNSIGNED_BYTE) {
/* general case */
if (wScale == 1 && hScale == 1) {
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth, srcHeight,
srcFormat, srcType, 0, 0, 0);
const GLint srcStride = _mesa_image_row_stride(packing,
srcWidth, srcFormat, srcType);
GLushort *dst = (GLushort *) dstImage;
@@ -561,8 +582,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat,
GLint row;
for (row = 0; row < dstHeight; row++) {
GLint srcRow = row / hScale;
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth,
srcHeight, srcFormat, srcType, 0, srcRow, 0);
GLint col;
for (col = 0; col < dstWidth; col++) {
GLint col4 = (col / wScale) * 4;
@@ -586,15 +608,17 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat,
break;
case MESA_A8_R8_G8_B8:
case MESA_FF_R8_G8_B8:
/* 32-bit texels */
if (srcFormat == GL_BGRA && srcType == GL_UNSIGNED_INT_8_8_8_8_REV){
/* special, optimized case */
if (wScale == 1 && hScale == 1) {
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth, srcHeight,
srcFormat, srcType, 0, 0, 0);
const GLint srcStride = _mesa_image_row_stride(packing,
srcWidth, srcFormat, srcType);
GLuint *dst = dstImage;
GLuint *dst = (GLuint *) dstImage;
GLint row;
for (row = 0; row < dstHeight; row++) {
MEMCPY(dst, src, dstWidth * sizeof(GLuint));
@@ -604,12 +628,13 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat,
}
else {
/* must rescale image */
GLuint *dst = dstImage;
GLuint *dst = (GLuint *) dstImage;
GLint row;
for (row = 0; row < dstHeight; row++) {
GLint srcRow = row / hScale;
const GLuint *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0);
const GLuint *src = (const GLuint *)
_mesa_image_address(packing, srcImage, srcWidth,
srcHeight, srcFormat, srcType, 0, srcRow, 0);
GLint col;
for (col = 0; col < dstWidth; col++) {
dst[col] = src[col / wScale];
@@ -621,11 +646,12 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat,
else if (srcFormat == GL_RGBA && srcType == GL_UNSIGNED_BYTE) {
/* general case */
if (wScale == 1 && hScale == 1) {
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth, srcHeight,
srcFormat, srcType, 0, 0, 0);
const GLint srcStride = _mesa_image_row_stride(packing,
srcWidth, srcFormat, srcType);
GLuint *dst = dstImage;
GLuint *dst = (GLuint *) dstImage;
GLint row;
for (row = 0; row < dstHeight; row++) {
GLint col, col4;
@@ -642,12 +668,13 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat,
}
else {
/* must rescale image */
GLuint *dst = dstImage;
GLuint *dst = (GLuint *) dstImage;
GLint row;
for (row = 0; row < dstHeight; row++) {
GLint srcRow = row / hScale;
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth,
srcHeight, srcFormat, srcType, 0, srcRow, 0);
GLint col;
for (col = 0; col < dstWidth; col++) {
GLint col4 = (col / wScale) * 4;
@@ -661,13 +688,65 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat,
}
}
}
else if (srcFormat == GL_RGB && srcType == GL_UNSIGNED_BYTE) {
/* general case */
if (wScale == 1 && hScale == 1) {
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth, srcHeight,
srcFormat, srcType, 0, 0, 0);
const GLint srcStride = _mesa_image_row_stride(packing,
srcWidth, srcFormat, srcType);
GLuint *dst = (GLuint *) dstImage;
GLint row;
for (row = 0; row < dstHeight; row++) {
GLint col, col3;
for (col = col3 = 0; col < dstWidth; col++, col3 += 3) {
GLubyte r = src[col3 + 0];
GLubyte g = src[col3 + 1];
GLubyte b = src[col3 + 2];
GLubyte a = 255;
dst[col] = (a << 24) | (r << 16) | (g << 8) | b;
}
src += srcStride;
dst = (GLuint *) ((GLubyte *) dst + dstRowStride);
}
}
else {
/* must rescale image */
GLuint *dst = (GLuint *) dstImage;
GLint row;
for (row = 0; row < dstHeight; row++) {
GLint srcRow = row / hScale;
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth,
srcHeight, srcFormat, srcType, 0, srcRow, 0);
GLint col;
for (col = 0; col < dstWidth; col++) {
GLint col3 = (col / wScale) * 3;
GLubyte r = src[col3 + 0];
GLubyte g = src[col3 + 1];
GLubyte b = src[col3 + 2];
GLubyte a = 255;
dst[col] = (a << 24) | (r << 16) | (g << 8) | b;
}
dst = (GLuint *) ((GLubyte *) dst + dstRowStride);
}
}
}
else {
/* can't handle this source format/type combination */
return GL_FALSE;
}
if (dstFormat == MESA_FF_R8_G8_B8) {
/* set alpha bytes to 0xff */
GLint i;
GLubyte *dst = (GLubyte *) dstImage;
for (i = 0; i < dstWidth * dstHeight; i++) {
dst[i * 4 + 3] = 0xff;
}
}
break;
default:
/* unexpected internal format! */
return GL_FALSE;
@@ -681,11 +760,11 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat,
* Replace a subregion of a texture image with new data.
* Input:
* dstFormat - destination image format
* dstXoffset, dstYoffset - destination for new subregion
* dstWidth, dstHeight - total size of dest image
* dstXoffset, dstYoffset - destination for new subregion (in texels)
* dstWidth, dstHeight - total size of dest image (in texels)
* dstImage - pointer to dest image
* dstRowStride - bytes to jump between image rows
* width, height - size of region to copy/replace
* dstRowStride - bytes to jump between image rows (in bytes)
* width, height - size of region to copy/replace (in texels)
* srcWidth, srcHeight - size of the corresponding gl_texture_image
* srcFormat, srcType - source image format and datatype
* srcImage - source image
@@ -741,17 +820,24 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat,
/* store as 8-bit texels */
if (wScale == 1 && hScale == 1) {
/* no scaling needed - fast case */
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0);
const GLint srcStride = _mesa_image_row_stride(packing,
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth, srcHeight,
srcFormat, srcType, 0, 0, 0);
const GLint srcRowStride = _mesa_image_row_stride(packing,
width, srcFormat, srcType);
GLubyte *dst = (GLubyte *) dstImage
+ dstYoffset * dstRowStride + dstXoffset;
const GLint rowSize = width * sizeof(GLubyte);
GLint row;
for (row = 0; row < height; row++) {
MEMCPY(dst, src, width * sizeof(GLubyte));
dst += dstRowStride;
src += srcStride;
if (dstRowStride == srcRowStride && dstRowStride == rowSize) {
MEMCPY(dst, src, rowSize * height);
}
else {
for (row = 0; row < height; row++) {
MEMCPY(dst, src, rowSize);
dst += dstRowStride;
src += srcRowStride;
}
}
}
else {
@@ -761,8 +847,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat,
GLint row;
for (row = 0; row < height; row++) {
GLint srcRow = row / hScale;
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth,
srcHeight, srcFormat, srcType, 0, srcRow, 0);
GLint col;
for (col = 0; col < width; col++) {
dst[col] = src[col / wScale];
@@ -780,8 +867,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat,
else {
/* store as 16-bit texels */
if (wScale == 1 && hScale == 1) {
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth, srcHeight,
srcFormat, srcType, 0, 0, 0);
const GLint srcStride = _mesa_image_row_stride(packing,
width, srcFormat, srcType);
GLushort *dst = (GLushort *) ((GLubyte *) dstImage
@@ -804,8 +892,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat,
GLint row, col;
for (row = 0; row < height; row++) {
GLint srcRow = row / hScale;
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth,
srcHeight, srcFormat, srcType, 0, srcRow, 0);
const GLint srcStride = _mesa_image_row_stride(packing,
width, srcFormat, srcType);
for (col = 0; col < width; col++) {
@@ -825,8 +914,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat,
if (srcFormat == GL_RGB && srcType == GL_UNSIGNED_SHORT_5_6_5) {
/* special, optimized case */
if (wScale == 1 && hScale == 1) {
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth, srcHeight,
srcFormat, srcType, 0, 0, 0);
const GLint srcStride = _mesa_image_row_stride(packing,
width, srcFormat, srcType);
GLushort *dst = (GLushort *) ((GLubyte *) dstImage
@@ -845,8 +935,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat,
GLint row;
for (row = 0; row < height; row++) {
GLint srcRow = row / hScale;
const GLushort *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0);
const GLushort *src = (const GLushort *)
_mesa_image_address(packing, srcImage, srcWidth,
srcHeight, srcFormat, srcType, 0, srcRow, 0);
GLint col;
for (col = 0; col < width; col++) {
dst[col] = src[col / wScale];
@@ -858,8 +949,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat,
else if (srcFormat == GL_RGB && srcType == GL_UNSIGNED_BYTE) {
/* general case */
if (wScale == 1 && hScale == 1) {
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth, srcHeight,
srcFormat, srcType, 0, 0, 0);
const GLint srcStride = _mesa_image_row_stride(packing,
width, srcFormat, srcType);
GLushort *dst = (GLushort *) ((GLubyte *) dstImage
@@ -886,8 +978,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat,
GLint row;
for (row = 0; row < height; row++) {
GLint srcRow = row / hScale;
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth,
srcHeight, srcFormat, srcType, 0, srcRow, 0);
GLint col;
for (col = 0; col < width; col++) {
GLint col3 = (col / wScale) * 3;
@@ -905,8 +998,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat,
else if (srcFormat == GL_RGBA && srcType == GL_UNSIGNED_BYTE) {
/* general case (used by Quake3) */
if (wScale == 1 && hScale == 1) {
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth, srcHeight,
srcFormat, srcType, 0, 0, 0);
const GLint srcStride = _mesa_image_row_stride(packing,
width, srcFormat, srcType);
GLushort *dst = (GLushort *) ((GLubyte *) dstImage
@@ -933,8 +1027,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat,
GLint row;
for (row = 0; row < height; row++) {
GLint srcRow = row / hScale;
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth,
srcHeight, srcFormat, srcType, 0, srcRow, 0);
GLint col;
for (col = 0; col < width; col++) {
GLint col4 = (col / wScale) * 4;
@@ -960,8 +1055,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat,
if (srcFormat == GL_BGRA && srcType == GL_UNSIGNED_SHORT_4_4_4_4_REV){
/* special, optimized case */
if (wScale == 1 && hScale == 1) {
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth, srcHeight,
srcFormat, srcType, 0, 0, 0);
const GLint srcStride = _mesa_image_row_stride(packing,
width, srcFormat, srcType);
GLushort *dst = (GLushort *) ((GLubyte *) dstImage
@@ -980,8 +1076,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat,
GLint row;
for (row = 0; row < height; row++) {
GLint srcRow = row / hScale;
const GLushort *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0);
const GLushort *src = (const GLushort *)
_mesa_image_address(packing, srcImage, srcWidth,
srcHeight, srcFormat, srcType, 0, srcRow, 0);
GLint col;
for (col = 0; col < width; col++) {
dst[col] = src[col / wScale];
@@ -993,8 +1090,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat,
else if (srcFormat == GL_RGBA && srcType == GL_UNSIGNED_BYTE) {
/* general case */
if (wScale == 1 && hScale == 1) {
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth, srcHeight,
srcFormat, srcType, 0, 0, 0);
const GLint srcStride = _mesa_image_row_stride(packing,
width, srcFormat, srcType);
GLushort *dst = (GLushort *) ((GLubyte *) dstImage
@@ -1023,8 +1121,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat,
GLint row;
for (row = 0; row < height; row++) {
GLint srcRow = row / hScale;
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth,
srcHeight, srcFormat, srcType, 0, srcRow, 0);
GLint col;
for (col = 0; col < width; col++) {
GLint col4 = (col / wScale) * 4;
@@ -1049,11 +1148,12 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat,
case MESA_A1_R5_G5_B5:
/* store as 16-bit texels (GR_TEXFMT_ARGB_1555) */
if (srcFormat == GL_RGBA && srcType == GL_UNSIGNED_SHORT_1_5_5_5_REV){
if (srcFormat == GL_BGRA && srcType == GL_UNSIGNED_SHORT_1_5_5_5_REV){
/* special, optimized case */
if (wScale == 1 && hScale == 1) {
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth, srcHeight,
srcFormat, srcType, 0, 0, 0);
const GLint srcStride = _mesa_image_row_stride(packing,
width, srcFormat, srcType);
GLushort *dst = (GLushort *) ((GLubyte *) dstImage
@@ -1072,8 +1172,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat,
GLint row;
for (row = 0; row < height; row++) {
GLint srcRow = row / hScale;
const GLushort *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0);
const GLushort *src = (const GLushort *)
_mesa_image_address(packing, srcImage, srcWidth,
srcHeight, srcFormat, srcType, 0, srcRow, 0);
GLint col;
for (col = 0; col < width; col++) {
dst[col] = src[col / wScale];
@@ -1085,8 +1186,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat,
else if (srcFormat == GL_RGBA && srcType == GL_UNSIGNED_BYTE) {
/* general case */
if (wScale == 1 && hScale == 1) {
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth, srcHeight,
srcFormat, srcType, 0, 0, 0);
const GLint srcStride = _mesa_image_row_stride(packing,
width, srcFormat, srcType);
GLushort *dst = (GLushort *) ((GLubyte *) dstImage
@@ -1115,8 +1217,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat,
GLint row;
for (row = 0; row < height; row++) {
GLint srcRow = row / hScale;
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth,
srcHeight, srcFormat, srcType, 0, srcRow, 0);
GLint col;
for (col = 0; col < width; col++) {
GLint col4 = (col / wScale) * 4;
@@ -1140,12 +1243,14 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat,
break;
case MESA_A8_R8_G8_B8:
case MESA_FF_R8_G8_B8:
/* 32-bit texels */
if (srcFormat == GL_BGRA && srcType == GL_UNSIGNED_INT_8_8_8_8_REV){
if (srcFormat == GL_BGRA && srcType == GL_UNSIGNED_INT_8_8_8_8_REV) {
/* special, optimized case */
if (wScale == 1 && hScale == 1) {
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth, srcHeight,
srcFormat, srcType, 0, 0, 0);
const GLint srcStride = _mesa_image_row_stride(packing,
width, srcFormat, srcType);
GLuint *dst = (GLuint *) ((GLubyte *) dstImage
@@ -1164,8 +1269,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat,
GLint row;
for (row = 0; row < height; row++) {
GLint srcRow = row / hScale;
const GLuint *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0);
const GLuint *src = (const GLuint *)
_mesa_image_address(packing, srcImage, srcWidth,
srcHeight, srcFormat, srcType, 0, srcRow, 0);
GLint col;
for (col = 0; col < width; col++) {
dst[col] = src[col / wScale];
@@ -1173,12 +1279,27 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat,
dst = (GLuint *) ((GLubyte *) dst + dstRowStride);
}
}
if (dstFormat == MESA_FF_R8_G8_B8) {
/* set alpha bytes to 0xff */
GLint row, col;
GLubyte *dst = (GLubyte *) dstImage
+ dstYoffset * dstRowStride + dstXoffset * 4;
assert(wScale == 1 && hScale == 1); /* XXX not done */
for (row = 0; row < height; row++) {
for (col = 0; col < width; col++) {
dst[col * 4 + 3] = 0xff;
}
dst = dst + dstRowStride;
}
}
}
else if (srcFormat == GL_RGBA && srcType == GL_UNSIGNED_BYTE) {
/* general case */
const GLubyte aMask = (dstFormat==MESA_FF_R8_G8_B8) ? 0xff : 0x00;
if (wScale == 1 && hScale == 1) {
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth, srcHeight,
srcFormat, srcType, 0, 0, 0);
const GLint srcStride = _mesa_image_row_stride(packing,
width, srcFormat, srcType);
GLuint *dst = (GLuint *) ((GLubyte *) dstImage
@@ -1190,7 +1311,7 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat,
GLubyte r = src[col4 + 0];
GLubyte g = src[col4 + 1];
GLubyte b = src[col4 + 2];
GLubyte a = src[col4 + 3];
GLubyte a = src[col4 + 3] | aMask;
dst[col] = (a << 24) | (r << 16) | (g << 8) | b;
}
src += srcStride;
@@ -1204,15 +1325,16 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat,
GLint row;
for (row = 0; row < height; row++) {
GLint srcRow = row / hScale;
const GLubyte *src = _mesa_image_address(packing, srcImage,
srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0);
const GLubyte *src = (const GLubyte *)
_mesa_image_address(packing, srcImage, srcWidth,
srcHeight, srcFormat, srcType, 0, srcRow, 0);
GLint col;
for (col = 0; col < width; col++) {
GLint col4 = (col / wScale) * 4;
GLubyte r = src[col4 + 0];
GLubyte g = src[col4 + 1];
GLubyte b = src[col4 + 2];
GLubyte a = src[col4 + 3];
GLubyte a = src[col4 + 3] | aMask;
dst[col] = (a << 24) | (r << 16) | (g << 8) | b;
}
dst = (GLuint *) ((GLubyte *) dst + dstRowStride);
@@ -1491,6 +1613,7 @@ _mesa_unconvert_teximage(MesaIntTexFormat srcFormat,
}
break;
case MESA_A8_R8_G8_B8:
case MESA_FF_R8_G8_B8:
ASSERT(dstFormat == GL_RGBA);
if (wScale == 1 && hScale == 1) {
GLint i, n = dstWidth * dstHeight;
@@ -1546,6 +1669,7 @@ _mesa_set_teximage_component_sizes(MesaIntTexFormat mesaFormat,
{ MESA_A4_R4_G4_B4, 4, 4, 4, 4, 0, 0, 0 },
{ MESA_A1_R5_G5_B5, 5, 5, 5, 1, 0, 0, 0 },
{ MESA_A8_R8_G8_B8, 8, 8, 8, 8, 0, 0, 0 },
{ MESA_FF_R8_G8_B8, 8, 8, 8, 8, 0, 0, 0 },
{ -1, 0, 0, 0, 0, 0, 0, 0 }
};
GLint i;

View File

@@ -1,7 +1,8 @@
/* $Id: texutil.h,v 1.3.4.1 2000/08/29 22:58:33 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
* Version: 3.4
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
@@ -32,6 +33,9 @@
/*
* NOTE: "FF" means fill with byte value 0xff
*/
/* msb <------ TEXEL BITS -----------> lsb */
typedef enum { /* ---- ---- ---- ---- ---- ---- ---- ---- */
MESA_I8, /* IIII IIII */
@@ -42,7 +46,8 @@ typedef enum { /* ---- ---- ---- ---- ---- ---- ---- ---- */
MESA_R5_G6_B5, /* RRRR RGGG GGGB BBBB */
MESA_A4_R4_G4_B4, /* AAAA RRRR GGGG BBBB */
MESA_A1_R5_G5_B5, /* ARRR RRGG GGGB BBBB */
MESA_A8_R8_G8_B8 /* AAAA AAAA RRRR RRRR GGGG GGGG BBBB BBBB */
MESA_A8_R8_G8_B8, /* AAAA AAAA RRRR RRRR GGGG GGGG BBBB BBBB */
MESA_FF_R8_G8_B8 /* FFFF FFFF RRRR RRRR GGGG GGGG BBBB BBBB */
} MesaIntTexFormat;

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,3 @@
/* $Id: varray.h,v 1.7 2000/06/12 15:30:52 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -139,4 +138,9 @@ extern void gl_exec_array_elements( GLcontext *ctx,
extern void gl_update_client_state( GLcontext *ctx );
#ifdef VAO
struct gl_array_object *
_mesa_alloc_vertex_array_object(GLcontext *ctx, GLuint name);
#endif
#endif

View File

@@ -1,21 +1,21 @@
/* $Id: 3dnow.c,v 1.5 2000/06/27 22:10:01 brianp Exp $ */
/* $Id: 3dnow.c,v 1.5.4.4 2000/11/30 02:44:22 gareth Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
* Version: 3.4
*
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
@@ -24,175 +24,175 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/*
* 3DNow! optimizations contributed by
* Holger Waechtler <holger@akaflieg.extern.tu-berlin.de>
*/
#if defined(USE_3DNOW_ASM) && defined(USE_X86_ASM)
#include "3dnow.h"
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "glheader.h"
#include "context.h"
#include "shade.h"
#include "types.h"
#include "xform.h"
#include "vertices.h"
#include "xform.h"
#include "3dnow.h"
#ifdef DEBUG
#include "debug_xform.h"
#endif
#define XFORM_ARGS GLvector4f *to_vec, \
const GLfloat m[16], \
const GLvector4f *from_vec, \
const GLubyte *mask, \
const GLubyte flag
#define XFORM_ARGS GLvector4f *to_vec, \
const GLfloat m[16], \
const GLvector4f *from_vec, \
const GLubyte *mask, \
const GLubyte flag
#define DECLARE_XFORM_GROUP( pfx, sz, masked ) \
extern void _ASMAPI gl_##pfx##_transform_points##sz##_general_##masked( XFORM_ARGS ); \
extern void _ASMAPI gl_##pfx##_transform_points##sz##_identity_##masked( XFORM_ARGS ); \
extern void _ASMAPI gl_##pfx##_transform_points##sz##_3d_no_rot_##masked( XFORM_ARGS ); \
extern void _ASMAPI gl_##pfx##_transform_points##sz##_perspective_##masked( XFORM_ARGS ); \
extern void _ASMAPI gl_##pfx##_transform_points##sz##_2d_##masked( XFORM_ARGS ); \
extern void _ASMAPI gl_##pfx##_transform_points##sz##_2d_no_rot_##masked( XFORM_ARGS ); \
extern void _ASMAPI gl_##pfx##_transform_points##sz##_3d_##masked( XFORM_ARGS );
#define ASSIGN_XFORM_GROUP( pfx, cma, sz, masked ) \
gl_transform_tab[cma][sz][MATRIX_GENERAL] = \
gl_##pfx##_transform_points##sz##_general_##masked; \
gl_transform_tab[cma][sz][MATRIX_IDENTITY] = \
gl_##pfx##_transform_points##sz##_identity_##masked; \
gl_transform_tab[cma][sz][MATRIX_3D_NO_ROT] = \
gl_##pfx##_transform_points##sz##_3d_no_rot_##masked; \
gl_transform_tab[cma][sz][MATRIX_PERSPECTIVE] = \
gl_##pfx##_transform_points##sz##_perspective_##masked; \
gl_transform_tab[cma][sz][MATRIX_2D] = \
gl_##pfx##_transform_points##sz##_2d_##masked; \
gl_transform_tab[cma][sz][MATRIX_2D_NO_ROT] = \
gl_##pfx##_transform_points##sz##_2d_no_rot_##masked; \
gl_transform_tab[cma][sz][MATRIX_3D] = \
gl_##pfx##_transform_points##sz##_3d_##masked;
#define DECLARE_XFORM_GROUP(pfx, v, masked) \
extern void _ASMAPI gl##pfx##_transform_points##v##_general_##masked(XFORM_ARGS); \
extern void _ASMAPI gl##pfx##_transform_points##v##_identity_##masked(XFORM_ARGS); \
extern void _ASMAPI gl##pfx##_transform_points##v##_3d_no_rot_##masked(XFORM_ARGS); \
extern void _ASMAPI gl##pfx##_transform_points##v##_perspective_##masked(XFORM_ARGS);\
extern void _ASMAPI gl##pfx##_transform_points##v##_2d_##masked(XFORM_ARGS); \
extern void _ASMAPI gl##pfx##_transform_points##v##_2d_no_rot_##masked(XFORM_ARGS); \
extern void _ASMAPI gl##pfx##_transform_points##v##_3d_##masked(XFORM_ARGS);
#define NORM_ARGS const GLmatrix *mat, \
GLfloat scale, \
const GLvector3f *in, \
const GLfloat *lengths, \
const GLubyte mask[], \
GLvector3f *dest
#define ASSIGN_XFORM_GROUP( pfx, cma, vsize, masked ) \
gl_transform_tab[cma][vsize][MATRIX_GENERAL] \
= gl##pfx##_transform_points##vsize##_general_##masked; \
gl_transform_tab[cma][vsize][MATRIX_IDENTITY] \
= gl##pfx##_transform_points##vsize##_identity_##masked; \
gl_transform_tab[cma][vsize][MATRIX_3D_NO_ROT] \
= gl##pfx##_transform_points##vsize##_3d_no_rot_##masked; \
gl_transform_tab[cma][vsize][MATRIX_PERSPECTIVE] \
= gl##pfx##_transform_points##vsize##_perspective_##masked; \
gl_transform_tab[cma][vsize][MATRIX_2D] \
= gl##pfx##_transform_points##vsize##_2d_##masked; \
gl_transform_tab[cma][vsize][MATRIX_2D_NO_ROT] \
= gl##pfx##_transform_points##vsize##_2d_no_rot_##masked; \
gl_transform_tab[cma][vsize][MATRIX_3D] \
= gl##pfx##_transform_points##vsize##_3d_##masked;
#define DECLARE_NORM_GROUP( pfx, masked ) \
extern void _ASMAPI gl_##pfx##_rescale_normals_##masked( NORM_ARGS ); \
extern void _ASMAPI gl_##pfx##_normalize_normals_##masked( NORM_ARGS ); \
extern void _ASMAPI gl_##pfx##_transform_normals_##masked( NORM_ARGS ); \
extern void _ASMAPI gl_##pfx##_transform_normals_no_rot_##masked( NORM_ARGS ); \
extern void _ASMAPI gl_##pfx##_transform_rescale_normals_##masked( NORM_ARGS ); \
extern void _ASMAPI gl_##pfx##_transform_rescale_normals_no_rot_##masked( NORM_ARGS ); \
extern void _ASMAPI gl_##pfx##_transform_normalize_normals_##masked( NORM_ARGS ); \
extern void _ASMAPI gl_##pfx##_transform_normalize_normals_no_rot_##masked( NORM_ARGS );
#define ASSIGN_NORM_GROUP( pfx, cma, masked ) \
gl_normal_tab[NORM_RESCALE][cma] = \
gl_##pfx##_rescale_normals_##masked; \
gl_normal_tab[NORM_NORMALIZE][cma] = \
gl_##pfx##_normalize_normals_##masked; \
gl_normal_tab[NORM_TRANSFORM][cma] = \
gl_##pfx##_transform_normals_##masked; \
gl_normal_tab[NORM_TRANSFORM_NO_ROT][cma] = \
gl_##pfx##_transform_normals_no_rot_##masked; \
gl_normal_tab[NORM_TRANSFORM | NORM_RESCALE][cma] = \
gl_##pfx##_transform_rescale_normals_##masked; \
gl_normal_tab[NORM_TRANSFORM_NO_ROT | NORM_RESCALE][cma] = \
gl_##pfx##_transform_rescale_normals_no_rot_##masked; \
gl_normal_tab[NORM_TRANSFORM | NORM_NORMALIZE][cma] = \
gl_##pfx##_transform_normalize_normals_##masked; \
gl_normal_tab[NORM_TRANSFORM_NO_ROT | NORM_NORMALIZE][cma] = \
gl_##pfx##_transform_normalize_normals_no_rot_##masked;
#define NORM_ARGS const GLmatrix *mat, \
GLfloat scale, \
const GLvector3f *in, \
const GLfloat *lengths, \
const GLubyte mask[], \
GLvector3f *dest
#ifdef USE_3DNOW_ASM
DECLARE_XFORM_GROUP( 3dnow, 1, raw )
DECLARE_XFORM_GROUP( 3dnow, 2, raw )
DECLARE_XFORM_GROUP( 3dnow, 3, raw )
DECLARE_XFORM_GROUP( 3dnow, 4, raw )
DECLARE_XFORM_GROUP( 3dnow, 1, masked )
DECLARE_XFORM_GROUP( 3dnow, 2, masked )
DECLARE_XFORM_GROUP( 3dnow, 3, masked )
DECLARE_XFORM_GROUP( 3dnow, 4, masked )
DECLARE_NORM_GROUP( 3dnow, raw )
/*DECLARE_NORM_GROUP( 3dnow, masked )*/
#define DECLARE_NORM_GROUP(pfx, masked) \
extern void _ASMAPI gl##pfx##_rescale_normals_##masked## (NORM_ARGS); \
extern void _ASMAPI gl##pfx##_normalize_normals_##masked## (NORM_ARGS); \
extern void _ASMAPI gl##pfx##_transform_normals_##masked## (NORM_ARGS); \
extern void _ASMAPI gl##pfx##_transform_normals_no_rot_##masked## (NORM_ARGS); \
extern void _ASMAPI gl##pfx##_transform_rescale_normals_##masked## (NORM_ARGS); \
extern void _ASMAPI gl##pfx##_transform_rescale_normals_no_rot_##masked## (NORM_ARGS); \
extern void _ASMAPI gl##pfx##_transform_normalize_normals_##masked## (NORM_ARGS); \
extern void _ASMAPI gl##pfx##_transform_normalize_normals_no_rot_##masked## (NORM_ARGS);
#define ASSIGN_NORM_GROUP( pfx, cma, masked ) \
gl_normal_tab[NORM_RESCALE][cma] = \
gl##pfx##_rescale_normals_##masked##; \
gl_normal_tab[NORM_NORMALIZE][cma] = \
gl##pfx##_normalize_normals_##masked##; \
gl_normal_tab[NORM_TRANSFORM][cma] = \
gl##pfx##_transform_normals_##masked##; \
gl_normal_tab[NORM_TRANSFORM_NO_ROT][cma] = \
gl##pfx##_transform_normals_no_rot_##masked##; \
gl_normal_tab[NORM_TRANSFORM | NORM_RESCALE][cma] = \
gl##pfx##_transform_rescale_normals_##masked##; \
gl_normal_tab[NORM_TRANSFORM_NO_ROT | NORM_RESCALE][cma] = \
gl##pfx##_transform_rescale_normals_no_rot_##masked##; \
gl_normal_tab[NORM_TRANSFORM | NORM_NORMALIZE][cma] = \
gl##pfx##_transform_normalize_normals_##masked##; \
gl_normal_tab[NORM_TRANSFORM_NO_ROT | NORM_NORMALIZE][cma] = \
gl##pfx##_transform_normalize_normals_no_rot_##masked##;
extern void _ASMAPI gl_3dnow_project_vertices( GLfloat *first,
GLfloat *last,
const GLfloat *m,
GLuint stride );
extern void _ASMAPI gl_3dnow_project_clipped_vertices( GLfloat *first,
GLfloat *last,
const GLfloat *m,
GLuint stride,
const GLubyte *clipmask );
extern void _ASMAPI gl_v16_3dnow_general_xform( GLfloat *first_vert,
const GLfloat *m,
const GLfloat *src,
GLuint src_stride,
GLuint count );
const GLfloat *m,
const GLfloat *src,
GLuint src_stride,
GLuint count );
void gl_init_3dnow_asm_transforms (void)
extern void _ASMAPI gl_3dnow_project_vertices( GLfloat *first,
GLfloat *last,
const GLfloat *m,
GLuint stride );
extern void _ASMAPI gl_3dnow_project_clipped_vertices( GLfloat *first,
GLfloat *last,
const GLfloat *m,
GLuint stride,
const GLubyte *clipmask );
#endif
void gl_init_3dnow_transform_asm( void )
{
DECLARE_XFORM_GROUP( _3dnow, 1, raw )
DECLARE_XFORM_GROUP( _3dnow, 2, raw )
DECLARE_XFORM_GROUP( _3dnow, 3, raw )
DECLARE_XFORM_GROUP( _3dnow, 4, raw )
#ifdef USE_3DNOW_ASM
ASSIGN_XFORM_GROUP( 3dnow, 0, 1, raw );
ASSIGN_XFORM_GROUP( 3dnow, 0, 2, raw );
ASSIGN_XFORM_GROUP( 3dnow, 0, 3, raw );
ASSIGN_XFORM_GROUP( 3dnow, 0, 4, raw );
DECLARE_XFORM_GROUP( _3dnow, 1, masked )
DECLARE_XFORM_GROUP( _3dnow, 2, masked )
DECLARE_XFORM_GROUP( _3dnow, 3, masked )
DECLARE_XFORM_GROUP( _3dnow, 4, masked )
ASSIGN_XFORM_GROUP( 3dnow, CULL_MASK_ACTIVE, 1, masked );
ASSIGN_XFORM_GROUP( 3dnow, CULL_MASK_ACTIVE, 2, masked );
ASSIGN_XFORM_GROUP( 3dnow, CULL_MASK_ACTIVE, 3, masked );
ASSIGN_XFORM_GROUP( 3dnow, CULL_MASK_ACTIVE, 4, masked );
DECLARE_NORM_GROUP( _3dnow, raw )
/* DECLARE_NORM_GROUP( _3dnow, masked )
*/
ASSIGN_XFORM_GROUP( _3dnow, 0, 1, raw )
ASSIGN_XFORM_GROUP( _3dnow, 0, 2, raw )
ASSIGN_XFORM_GROUP( _3dnow, 0, 3, raw )
ASSIGN_XFORM_GROUP( _3dnow, 0, 4, raw )
ASSIGN_XFORM_GROUP( _3dnow, CULL_MASK_ACTIVE, 1, masked )
ASSIGN_XFORM_GROUP( _3dnow, CULL_MASK_ACTIVE, 2, masked )
ASSIGN_XFORM_GROUP( _3dnow, CULL_MASK_ACTIVE, 3, masked )
ASSIGN_XFORM_GROUP( _3dnow, CULL_MASK_ACTIVE, 4, masked )
ASSIGN_NORM_GROUP( _3dnow, 0, raw )
/* ASSIGN_NORM_GROUP( _3dnow, CULL_MASK_ACTIVE, masked )
*/
ASSIGN_NORM_GROUP( 3dnow, 0, raw );
/* ASSIGN_NORM_GROUP( 3dnow, CULL_MASK_ACTIVE, masked ); */
#ifdef DEBUG
gl_test_all_transform_functions("3Dnow!");
gl_test_all_normal_transform_functions("3Dnow!");
gl_test_all_transform_functions( "3DNow!" );
gl_test_all_normal_transform_functions( "3DNow!" );
#endif
#endif
/* Hook in some stuff for vertices.c.
*/
gl_xform_points3_v16_general = gl_v16_3dnow_general_xform;
gl_project_v16 = gl_3dnow_project_vertices;
gl_project_clipped_v16 = gl_3dnow_project_clipped_vertices;
}
#else
/* silence compiler warning */
extern void _mesa_3dnow_dummy_function(void);
void _mesa_3dnow_dummy_function(void)
{
}
void gl_init_3dnow_shade_asm( void )
{
#ifdef USE_3DNOW_ASM
/* When the time comes, initialize optimized lighting here.
*/
#if 0
gl_test_all_shade_functions( "3DNow!" );
#endif
#endif
}
void gl_init_3dnow_vertex_asm( void )
{
#ifdef USE_3DNOW_ASM
gl_xform_points3_v16_general = gl_v16_3dnow_general_xform;
gl_project_v16 = gl_3dnow_project_vertices;
gl_project_clipped_v16 = gl_3dnow_project_clipped_vertices;
#if 0
gl_test_all_vertex_functions( "3DNow!" );
#endif
#endif
}

Some files were not shown because too many files have changed in this diff Show More