Compare commits

...

334 Commits

Author SHA1 Message Date
Brian Paul
61b226a4f4 set planned release date (Oct 3) 2002-10-02 17:36:59 +00:00
Brian Paul
adc4d21dbb finished the spec 2002-10-02 17:31:05 +00:00
Brian Paul
efaa8be77f also test glTexSubImage2D() with YCbCr data 2002-10-02 17:26:18 +00:00
Brian Paul
ed7b3b61f5 better error checking related to YCbCr images 2002-10-02 17:24:40 +00:00
Brian Paul
17d73e49c8 disable GL_NV_texture_rectangle by default 2002-09-30 16:13:03 +00:00
Brian Paul
032341cbea fix bug in index_mask() (bug 609837) 2002-09-23 17:20:12 +00:00
Brian Paul
53170a3af0 gl_texture_image RowStride changes from DRI R200 branch 2002-09-23 16:39:43 +00:00
Brian Paul
57181b2c0a update from Daniel Borca 2002-09-21 22:45:30 +00:00
Keith Whitwell
00a1ff66e2 Spelling mistake meas --> mesa 2002-09-21 18:18:09 +00:00
Brian Paul
635e8c3459 documentation for GL_MESA_pack_invert extension 2002-09-21 18:12:17 +00:00
Brian Paul
6d99cffed3 fixed GL_MESA_pack_invert oversight 2002-09-21 17:36:08 +00:00
Brian Paul
9c16911e06 init pixelstore.Invert to GL_FALSE 2002-09-21 17:21:44 +00:00
Brian Paul
0de37dcc2e added GL_APPLE_client_storage GL_MESA_pack_invert 2002-09-21 17:20:02 +00:00
Brian Paul
a53dccf9c5 added GL_MESA_pack_invert 2002-09-21 17:12:10 +00:00
Brian Paul
3291a3c69c minor YCBCR fixes 2002-09-21 17:11:08 +00:00
Brian Paul
d2fba8a633 sync with DRI R200 branch (GL_APPLE_client_storage extension) 2002-09-20 19:40:52 +00:00
Brian Paul
8d7ed801a5 updated status to OBSOLETE 2002-09-20 19:14:11 +00:00
Brian Paul
689a803c90 first draft at spec'ing these new extensions 2002-09-20 19:11:33 +00:00
Karl Schultz
8365cbbc85 Add missing entries and clean up a bit. 2002-09-20 18:32:17 +00:00
Brian Paul
baa9451a93 finish-up AGP loose-ends 2002-09-20 17:37:13 +00:00
Brian Paul
79c9cca366 GLX_NV_vertex_array_range and GLX_MESA_agp_offset extensions 2002-09-20 17:36:33 +00:00
Brian Paul
14b30bace0 removed old MESA_TRACE stuff 2002-09-20 17:36:01 +00:00
Brian Paul
1c6b172c01 stub functions for AGP from 4.1 branch 2002-09-20 16:28:04 +00:00
Brian Paul
da1a6739fe updated BeOS driver 2002-09-19 16:37:29 +00:00
Brian Paul
15b418be49 added src/BeOS/*.h to file list 2002-09-19 16:36:35 +00:00
Brian Paul
33629a0d70 updated BeOS support (Philippe Houdoin) 2002-09-19 16:29:43 +00:00
Brian Paul
d8f5422a37 push and pop ESI (Daniel Borca) 2002-09-19 16:06:13 +00:00
Brian Paul
b83df71385 obsolete 2002-09-19 16:05:23 +00:00
Keith Whitwell
b7f6f84fc2 Doesn't find readpix.c without this -I../util 2002-09-17 16:55:38 +00:00
Brian Paul
50cd089a7f remove GLint t, pass target to _mesa_init_teximage_fields() 2002-09-17 14:13:43 +00:00
Brian Paul
7e22bad6da undo last check-in 2002-09-17 01:05:05 +00:00
Brian Paul
7d46390bd4 sync from r200 DRI branch (_swrast_render_start/finish() and tnl_dd changes 2002-09-17 01:01:21 +00:00
Brian Paul
3580b7a3d3 fix auto mipmap generation problem (backport from 4.1) 2002-09-16 20:29:22 +00:00
Brian Paul
c383ce0e0f removed unused teximage Width/Height/DepthScale 2002-09-15 17:35:05 +00:00
Brian Paul
a10727eedc fixed typo 2002-09-14 16:54:47 +00:00
Brian Paul
d4c7dd076c latest 4.0.4 updates 2002-09-14 16:54:04 +00:00
Brian Paul
1e57a87e6a new comments 2002-09-14 16:50:24 +00:00
Brian Paul
6080451f93 implemented glGetTexImage for YCRCB 2002-09-14 16:50:08 +00:00
Brian Paul
5419097b37 added GL_UNSIGNED_SHORT_8_8_APPLE 2002-09-14 16:49:42 +00:00
Brian Paul
889b6c4e7a fix YCbCr component ordering typos 2002-09-13 23:18:22 +00:00
Brian Paul
58be490b08 fix i/j typo and icr/icb transposition 2002-09-13 23:17:04 +00:00
Brian Paul
d314643448 fix typos 2002-09-13 19:39:45 +00:00
Brian Paul
a28d96bd0e added GL_MESA_ycbcr_texture and GL_APPLE_ycbcr_422 tokens 2002-09-13 19:38:56 +00:00
Brian Paul
6d3c1ec7cd test GL_MESA_ycbcr_texture and GL_NV_texture_rectangle 2002-09-13 19:36:46 +00:00
Brian Paul
aa80a17ad0 initial prototype of new GL_MESA_ycrcb_texture extension 2002-09-13 19:34:38 +00:00
Brian Paul
1509a4399a removed cvs log comments 2002-09-13 18:15:09 +00:00
Brian Paul
c2065e3ea5 removed unfinished GL_MESA_sprite_point extension 2002-09-13 17:34:01 +00:00
Brian Paul
ba35bb6897 added AIX compile fixes 2002-09-13 14:10:32 +00:00
Karl Schultz
eefdfddd3e Add #define GL_GLEXT_PROTOTYPES since this demo uses ARB extensions.
Windows needs them for correct linkage.
2002-09-12 17:04:22 +00:00
Karl Schultz
00068e6686 Mark the destroyed context as not current. (Frank Warmerdam) 2002-09-12 17:02:52 +00:00
Karl Schultz
1c1f60d437 silence compiler warnings 2002-09-11 00:06:23 +00:00
Karl Schultz
476c1fdbc6 Remove linker option to make a map file. 2002-09-11 00:04:24 +00:00
Karl Schultz
5613f469d7 Added cast to prevent compiler warnings. 2002-09-10 23:38:48 +00:00
Karl Schultz
6338c52cd4 Fix compiler warnings. 2002-09-10 23:35:38 +00:00
Karl Schultz
c4c5e26cc7 Backport gareth's 1.14 changes. 2002-09-10 23:32:13 +00:00
Brian Paul
b6454b19ae added compressed tex image error check fix 2002-09-06 14:42:40 +00:00
Brian Paul
84c56fef84 incorrect dimenstion passed to texture_error_check() in compressed teximage functions 2002-09-06 14:42:11 +00:00
Brian Paul
a2bb621983 latest 4.0.4 updates 2002-09-06 13:01:32 +00:00
Brian Paul
d057db7942 removed GL_MAX_CONVOLUTION_WIDTH/HEIGHT 2002-09-06 13:01:00 +00:00
Brian Paul
5c04890c5f don't query GL_MAX_CONVOLUTION_WIDTH/HEIGHT 2002-09-06 12:59:14 +00:00
Brian Paul
fb3475078d minor updates to sync with XFree86 2002-09-06 03:47:54 +00:00
Brian Paul
ea214a755b added -l option to print interesting OpenGL limits 2002-09-06 03:36:43 +00:00
Brian Paul
8af93aa529 glext.h version 17 2002-09-06 03:01:10 +00:00
Brian Paul
ab81956422 upgraded glext.h to version 17 2002-09-06 02:57:17 +00:00
Brian Paul
38a30cfef0 added latest 4.0.4 changes 2002-09-05 21:21:35 +00:00
Brian Paul
e95e02331e added GL_IBM_texture_mirrored_repeat (Ian Romanick) 2002-09-05 21:18:09 +00:00
Brian Paul
9636b9aa25 test for ARB_texture_cube_map when getting GL version(Ian Romanick) 2002-09-05 21:16:17 +00:00
Brian Paul
f610b8f418 updated wglGetProcAddress 2002-09-04 14:15:27 +00:00
Brian Paul
601fd74868 updated DOS file list 2002-09-03 18:14:22 +00:00
Brian Paul
36ee4317c2 updates from Daniel Borca 2002-09-03 17:58:36 +00:00
Brian Paul
9d4181cd56 version bumps for 4.0.4 2002-09-03 17:50:19 +00:00
Brian Paul
cf1dc9faf9 s/APIENTRY/GLAPIENTRY/ 2002-08-30 13:52:16 +00:00
Brian Paul
6fa2c761a1 added ARB_multitexture function pointers, glext.h updates 2002-08-29 14:45:31 +00:00
Brian Paul
d9c191f2ad version 16 2002-08-29 14:45:05 +00:00
Karl Schultz
36b477442f Don't call _mesa_initialize_context because we are using
_mesa_create_context.  This avoids calling initialize twice and fixes
memory leaks.  Add call to free the GL context because we are creating it
with _mesa_create_context, fixing another leak.
2002-08-28 17:08:37 +00:00
Brian Paul
95358c87ef Back-port of NV_texture_rectangle from Mesa 4.1. 2002-08-28 01:13:34 +00:00
Brian Paul
829ca52b1a define GLAPIENTRY and GLAPI if not defined in gl.h 2002-08-27 21:47:46 +00:00
Alan Hourihane
767b8b6b81 bring over VERTEX_COLOR change from DRI trunk (from PPC fixes) 2002-08-21 17:46:08 +00:00
Keith Whitwell
634d720426 update colormaterial state on swtcl wakeup 2002-08-21 10:39:41 +00:00
Brian Paul
72dcd2b1b0 fix problems in FXgetImage() 2002-08-21 02:57:38 +00:00
Brian Paul
b60335f125 fixed array index typo in VERT_SAVE_RGBA() macro 2002-08-21 02:56:31 +00:00
Karl Schultz
3e78e05a4c Add notes about needing to run VCVARS32.BAT before compiling.
Reword some notes about the build process.
2002-08-15 15:14:47 +00:00
Brian Paul
1099dcdc09 initialize SWvertex array to zeros 2002-08-08 00:42:23 +00:00
Brian Paul
a73bc7e9ce added fog factor clamping to GL_LINEAR case 2002-08-02 16:21:30 +00:00
Karl Schultz
19f17185bd export new symbol for osmesa lib 2002-07-29 15:58:08 +00:00
Brian Paul
22f431fc84 fix warnings (bug 580528) 2002-07-22 13:45:45 +00:00
Brian Paul
5538b98051 fix patching offsets (Sven Panne) (patch 544637) 2002-07-12 16:00:36 +00:00
Brian Paul
f2acb26f16 Pedantic compiler fixes (Sven Panne) 2002-07-12 15:50:46 +00:00
Brian Paul
6d0fd19a71 applied Eric Anholt's patch for Athlon SSE 2002-07-11 15:32:00 +00:00
Brian Paul
670ea9f590 Added divide by zero check (Jon Perry). Remove dead vars. Fix indentation. 2002-06-30 16:58:50 +00:00
Brian Paul
c3be87b84b CHAN_TYPE==GL_FLOAT clamping. call _tnl_MakeCurrent. (Gerk Huisma) 2002-06-30 16:07:12 +00:00
Brian Paul
a4d34a5688 blending fixes for CHAN_TYPE==GL_FLOAT (Gerk Huisma) 2002-06-30 15:57:52 +00:00
Brian Paul
e64e5f5529 fix CHAN_TYPE==GL_FLOAT compile problem 2002-06-26 14:57:08 +00:00
Brian Paul
4266ec91fe removed extra right-paren 2002-06-25 15:23:51 +00:00
Brian Paul
8a5bdd826a added glCullFace bug fix 2002-06-25 15:22:12 +00:00
Keith Whitwell
20cbbf8459 Check for GL_FRONT_AND_BACK culling before installing optimized tri
funcs.
2002-06-25 08:41:06 +00:00
Keith Whitwell
2847895a03 Check for FRONT_AND_BACK culling before installing an optimized tri func 2002-06-25 08:38:33 +00:00
Brian Paul
79d05b5649 version updates 2002-06-24 20:44:58 +00:00
Karl Schultz
a0ad8d5a8a Remove -Zi from CFLAGS. I probably left it in there during a debug
session.
2002-06-24 20:19:16 +00:00
Karl Schultz
1a9198f118 Set global "Current" context in WMesaMakeCurrent before calling
GetBufferSize, since GetBufferSize needs Current to be set.
2002-06-24 20:18:04 +00:00
Brian Paul
dd8fbed413 compilation fixes 2002-06-24 17:37:53 +00:00
Brian Paul
972cc7827f put XSync in get_buffer_size(), plus clean-up 2002-06-19 21:50:14 +00:00
Brian Paul
263d8ff8e3 new fix for initial window size problem 2002-06-17 23:32:43 +00:00
Brian Paul
363c8b9048 Fix glXCopyContext bug 2002-06-16 03:55:27 +00:00
Brian Paul
eb7b122807 added glXCopyContext bug fix 2002-06-16 03:33:33 +00:00
Brian Paul
6306085c69 Fixed a few bugs in _mesa_copy_context() related to pointer corruption.
Added _mesa_copy_texture_state() to texstate.c
Added _meas_copy_texture_object() to texobj.c, use it in attrib.c
2002-06-16 03:19:57 +00:00
Brian Paul
7e20f99f81 fixed window size initialization bug 2002-06-16 01:11:03 +00:00
Brian Paul
a79f7f8838 added updated GGI driver info 2002-06-15 03:17:28 +00:00
Brian Paul
d1d4f6bd34 Sync with Mesa changes in DRI trunk.
Updated device drivers since Driver->SetDrawBuffer() no longer returns bool.
2002-06-14 03:49:09 +00:00
Brian Paul
640f61ba13 Moved big/little endian code to glheader.h.
Define either MESA_BIG_ENDIAN or MESA_LITTLE_ENDIAN.
2002-06-12 00:28:55 +00:00
Brian Paul
07e3f72bf8 Added CPLUSPLUS for sunos5 entries 2002-06-10 17:01:30 +00:00
Brian Paul
d06d24f497 GGI driver updates (Filip Spacek) 2002-06-10 15:16:16 +00:00
Brian Paul
3fa786c175 fixed two texture target error checking conditions 2002-06-08 13:05:07 +00:00
Brian Paul
984bb590df tweaked a comment 2002-06-08 12:43:40 +00:00
Brian Paul
67c5effe5c added GL_TEXTURE_FILTER_CONTROL_EXT query to glGetTexEnv[if]v() 2002-06-08 12:43:05 +00:00
Brian Paul
fbe488cb76 glext.h version 15 2002-06-08 12:40:47 +00:00
Brian Paul
dbd36a0ca0 added missing texture cube map targets 2002-06-08 12:39:39 +00:00
Brian Paul
076870f384 version 15 of glext.h 2002-06-07 20:21:29 +00:00
Brian Paul
c1fba8241b added glext.h GL_MAX_RECTANGLE_TEXTURE_SIZE_NV fix 2002-06-07 19:38:06 +00:00
Brian Paul
690798ae3b s/GL_MAX_TEXTURE_RECTANGLE_SIZE_NV/GL_MAX_RECTANGLE_TEXTURE_SIZE_NV/ 2002-06-07 19:29:09 +00:00
Brian Paul
89e91fcc9a replaced hard-coded 4 with NUM_TEXTURE_TARGETS 2002-06-06 16:25:07 +00:00
Brian Paul
d5a8eeaeeb replaced 0xf and 0xf0 with TEXTURE0_ANY and TEXTURE1_ANY 2002-06-06 16:15:12 +00:00
Brian Paul
b118f433e1 NASM fix for *_CONTENT() macros (Josh Vanderhoof) 2002-06-06 15:33:15 +00:00
Brian Paul
fbbb780e1f more big-endian tweaks 2002-06-05 16:40:21 +00:00
Brian Paul
9429860763 use CONTENT() macro on line 205 (Josh Vanderhoof) 2002-06-04 21:29:01 +00:00
Brian Paul
531af3f17f bring over Michel Daenzer's DRI changes 2002-06-03 16:02:04 +00:00
Keith Whitwell
054f415f45 Fix FETCH(argb1555) mask values 2002-05-09 20:51:32 +00:00
Brian Paul
b1b4382283 remove -xK flag from linux-icc 2002-05-06 15:46:17 +00:00
Brian Paul
3aef708b56 added linux-icc config (Marc.Dietrich) 2002-05-05 15:57:09 +00:00
Alan Hourihane
d63730d087 glutSwapBuffers implicitly does a glFinish when swapping back to the front
buffer. We now issue a glFinish when not issuing SwapBuffers to ensure
the pipeline is complete.

(Problem found with Chromium).
2002-05-01 14:53:52 +00:00
Brian Paul
2469fc9672 bump version to 4.0.3 2002-04-26 13:57:15 +00:00
Brian Paul
86ab257a46 Mesa 4.0.3 updates 2002-04-26 13:54:47 +00:00
Brian Paul
d7e7d8ec74 bump version numbers to 4.0.3 2002-04-26 13:51:53 +00:00
Brian Paul
fe4edce605 added GL_TEXTURE_MAX_ANISOTROPY_EXT to glGetTexParameteriv() 2002-04-26 13:39:38 +00:00
Brian Paul
b0f477e5dd added GL_TEXTURE_MAX_ANISOTROPY_EXT to glGetTexParameter (bug 548812) 2002-04-25 22:11:24 +00:00
Brian Paul
ce4c38fe2e backport array bound checking in glPixelMap() from Mesa 4.1 2002-04-24 20:41:51 +00:00
Brian Paul
09760a9563 test mapsize against 1, not 0 in glPixelMap() 2002-04-24 20:11:56 +00:00
Brian Paul
d7abab5c67 added GL_EDGE_FLAG_ARRAY_COUNT_EXT to glGetBooleanv() (Bug 548277) 2002-04-24 20:06:28 +00:00
Karl Schultz
e900da049b Apply alpha buffer control fix to accum buffer too. 2002-04-23 18:38:00 +00:00
Karl Schultz
9def08ad3d Fix up alpha buffer handling for Windows.
- add two new Pixel Format Descriptors that do not have alpha bits to
mirror the two that do.
- add logic to wglChoosePixelFormat to match PFD's with respect to alpha.
- Create/clear software alpha buffer as required.
Now a wgl or GLUT program can control the creation of a software alpha
buffer via the PFD or GLUT parms, respectively.
2002-04-23 18:24:41 +00:00
Brian Paul
978731595d call _mesa_sizeof_packed_type() in _mesa_GetTexImage() (bug 547203) 2002-04-23 16:45:16 +00:00
Alan Hourihane
00e5cb4120 same NULL checks for 4_0 branch 2002-04-22 20:04:52 +00:00
Brian Paul
b338ee265a fixed Width/Height cut&paste typo 2002-04-20 17:59:43 +00:00
Alan Hourihane
8d3f06a565 Correct check for noop array state change (Raystonn) 2002-04-19 08:37:10 +00:00
Brian Paul
0d1785c6db back-port new casts and C++ fixes from trunk 2002-04-19 01:10:48 +00:00
Brian Paul
79474dc528 fixed problem with swap() function and GCC3 (patch 414404) 2002-04-17 19:30:19 +00:00
Brian Paul
43e90c0053 Disabled SPARC cliptest functions for now. See bug report 544665. 2002-04-17 19:08:37 +00:00
Karl Schultz
c748b6c3d8 Build demos/samples correctly on Windows (Robert Bergkvist) to sync up
with the main branch.  (I should have done this for 4.0.2)
2002-04-15 22:13:00 +00:00
Karl Schultz
2c109c15e0 update to match branch - performance measuring additions. 2002-04-15 21:22:36 +00:00
Brian Paul
22fcb86432 Jose's latest patch (GMBT_GEOMETRIC_CORRECTION) 2002-04-12 21:57:46 +00:00
Brian Paul
70c5d68365 fixes for corrected GL_DOT3_RGB[A]_EXT token values 2002-04-12 21:17:53 +00:00
Brian Paul
1b0fcb2124 version 13 of glext.h - fixes GL_EXT_texture_env_dot3 token values 2002-04-12 21:09:24 +00:00
Brian Paul
6668d2fcb1 new MMX blend code (Jose Fonseca) 2002-04-10 16:32:50 +00:00
Brian Paul
e3c2d6bd0c removed stray 'n' character at top of file 2002-04-09 13:33:34 +00:00
Keith Whitwell
655e0ad0c1 bring in changes from dri tcl branch 2002-04-09 12:13:06 +00:00
Brian Paul
d99fa29b94 tranforming display list normals by non-uniform scale didn't work (Carlos Pereira) 2002-04-08 15:36:03 +00:00
Brian Paul
7229861a46 Pass context pointer to _tnl_free_immediate() and don't rely on backref
pointer (fixes Allen Barnett's display list sharing problem).
2002-04-06 16:35:17 +00:00
Karl Schultz
f5130e3473 export another symbol for recent osmesa changes. 2002-04-05 17:13:10 +00:00
Brian Paul
a5ed2460e9 repair Array.NewState flags (Michael Fitzpatrick) 2002-04-04 23:57:58 +00:00
Brian Paul
e2130abf8f call _mesa_ResizeBuffersMESA() in OSMesaMakeCurrent() to reconcile buffer size changes 2002-04-04 17:12:47 +00:00
Brian Paul
bf6a6f1d59 fixed some 3D texture image stride bugs when using 16-bit channels 2002-04-04 17:05:59 +00:00
Brian Paul
abd10c99e5 fixed 16/32-bit channel problems in CopyColor[Sub]Table() 2002-04-04 17:04:56 +00:00
Brian Paul
c3bc8a9c1e Texture combine alpha subtraction was wrong. Fixed 16-bit channel glitches 2002-04-04 17:04:50 +00:00
Brian Paul
aa5698e8ed DJGPP fixes 2002-04-01 17:09:25 +00:00
Brian Paul
cf4c9ada0d another DOS driver update 2002-04-01 16:54:11 +00:00
Brian Paul
13c751a1c2 Use invert_matrix_general() instead of invert_matrix_perspective() because
the former fails for some projection matrices (ala Vis5D with Chromium).
2002-03-29 17:15:01 +00:00
Brian Paul
2af71a9acf added dmesadxe.h to tar file list 2002-03-29 14:42:29 +00:00
Brian Paul
5e0316f1a8 decrement Transform._AnyClip when clip planes are disabled 2002-03-28 22:45:50 +00:00
Brian Paul
2366fb3b89 popping of user-defined clip planes was broken 2002-03-28 22:42:34 +00:00
Karl Schultz
4ad3511865 (WIN32)Use _glapi_get_context to get the context in buffer_size() instead
of the GET_CURRENT_CONTEXT macro.  The macro tries to use the glapi_Context
variable which needs to be imported from the MesaGL DLL, which is too
problematic to do at the moment.
2002-03-25 23:52:34 +00:00
Karl Schultz
44f6191507 export _glapi_get_context for osmesa. 2002-03-25 23:41:49 +00:00
Brian Paul
aaf89c1cc7 re-adding a lost file 2002-03-23 02:36:52 +00:00
Brian Paul
7350dd7395 DOS/Mesa driver updates (Daniel Borca) 2002-03-23 02:23:06 +00:00
Brian Paul
972815c414 final? updates 2002-03-23 02:22:01 +00:00
Brian Paul
0bb0b4df73 latest extension headers from SGI 2002-03-23 01:49:09 +00:00
Brian Paul
e07b4252ad removed glSamplePass() 2002-03-20 22:06:57 +00:00
Brian Paul
b8855675ca latest bug fixes 2002-03-19 16:49:07 +00:00
Brian Paul
6bf823ac2d don't set plane mask for xm_buffer->gc, it causes an accum buffer conformance problem 2002-03-19 16:47:56 +00:00
Brian Paul
af3f3080f9 Use MESA_PBUFFER_ALLOC/FREE macros to allocate all framebuffer and texture
memory.  These can be overridden by applications which need to manage this
memory specially.  Contributed by Gerk Huisma.
2002-03-19 16:42:41 +00:00
Brian Paul
bb47715320 fix Intel C compiler warnings (Gerk Huisma) 2002-03-19 15:22:41 +00:00
Brian Paul
cef9cdf3bb undo previous check-in 2002-03-16 01:00:43 +00:00
Brian Paul
4493f41577 added XMesaResizeBuffers() 2002-03-16 00:50:36 +00:00
Brian Paul
a4f3130a7f Lots of changes related to framebuffer/window buffer resizing. Basically,
instead of passing a GLcontext* to ResizeBuffers(), pass a GLframebuffer*.
The idea is that a window can be resized without it being bound to a rendering
context.  This makes for a nice clean-up in the XFree86 server-side GLX code.
Renamed ctx->Driver.ResizeBuffersMESA() to ctx->Driver.ResizeBuffers().
2002-03-16 00:50:11 +00:00
Brian Paul
b2c3daa875 protect currentReadable reference with #ifndef GLX_BUILT_IN_XMESA 2002-03-15 19:11:37 +00:00
Brian Paul
3d6951c097 updated comments. removed dead code. 2002-03-15 18:32:54 +00:00
Brian Paul
db0ed6252b remove a debug printf 2002-03-15 18:24:34 +00:00
Brian Paul
e6c59e8d0c fixed typo in CONVERT_TEXEL_DWORD for convert_abgr8888_to_ai88 textures (Michael Fitzpatrick) 2002-03-15 17:57:42 +00:00
Brian Paul
378fcdb818 fixed pointer arithmetic error in glCopyPixels 2002-03-14 22:09:05 +00:00
Brian Paul
cd3f5d807a put lodbias loop inside test for non-NULL lambda array 2002-03-13 04:45:35 +00:00
Brian Paul
c3e908891c added thread rendering bug fix 2002-03-12 21:57:27 +00:00
Brian Paul
fdbaf407a7 Removed the xm_context field from XMesaBuffer. It was preventing N threads
from rendering into one window in parallel and wasn't really needed anyway.
2002-03-12 21:54:03 +00:00
Brian Paul
5a86d3852c tweak file list for tarballs 2002-03-11 14:59:12 +00:00
Brian Paul
96d0be5cf2 obsolete 2002-03-11 14:56:42 +00:00
Brian Paul
0bd26c3c55 fix some minor warnings 2002-03-08 19:43:36 +00:00
Brian Paul
9f7053e913 updates for 4.0.2 2002-03-08 19:28:57 +00:00
Brian Paul
9fa55ac457 DOS driver updates from Daniel Borca 2002-03-08 19:27:28 +00:00
Brian Paul
101092ea11 new DOS driver files from Daniel Borca 2002-03-08 19:24:36 +00:00
Brian Paul
da648d9afd minor patches from David Dawes 2002-03-07 21:50:53 +00:00
Brian Paul
7a3b7c9687 syntax fixes for Solaris (David Dawes) 2002-03-07 21:39:09 +00:00
Brian Paul
55f8fcba10 use -O3 for osmesa16/32 builds, disable FX and SVGA in debug builds 2002-03-01 19:38:53 +00:00
Brian Paul
7419597f2f return 'Mesa Offscreen16' or 'Mesa Offscreen32' if using deep color channels 2002-03-01 19:37:28 +00:00
Brian Paul
e784671997 silence gcc warnings (Marc La France) 2002-03-01 04:25:42 +00:00
Brian Paul
c2165e799c updated comments for CHAN_BITS=16 or 32 2002-03-01 04:23:16 +00:00
Brian Paul
40519b3eb3 DOS driver updates from Daniel Borca 2002-02-23 17:07:21 +00:00
Brian Paul
dcda68de33 Fixed out-of-bounds memory write problem (CONVERT_TEXEL_DWORD macro).
Renamed 'packing' to 'unpacking' since we're moving data from client -> GL.
Rnamed DST_ROW_WIDTH to DST_ROW_BYTES.
2002-02-21 15:11:15 +00:00
Brian Paul
8308199e5d added XMesaGarbageCollect item 2002-02-21 00:00:25 +00:00
Brian Paul
3b029b0c7d check for initialized XMesaBuffer in XMesaGarbageCollect() 2002-02-20 23:59:40 +00:00
Brian Paul
bff7677bd9 undo some debug changes mistakenly checked in earlier 2002-02-17 17:38:44 +00:00
Brian Paul
41796ecc25 added two latest bug fixes 2002-02-15 19:15:59 +00:00
Brian Paul
94865a95b1 use separate GC for SwapBuffers to avoid colormask problem 2002-02-15 19:15:08 +00:00
Karl Schultz
b8b23d4552 fix casts to quiet compiler warnings. 2002-02-15 18:50:48 +00:00
Brian Paul
3245cfdf41 obsolete 2002-02-15 14:04:57 +00:00
Brian Paul
69e043158a fixed float->int conversion. Fix conditional for 16-bit Z buffer path 2002-02-15 03:38:29 +00:00
Keith Whitwell
3ce17ffb84 Remove debug 2002-02-13 23:52:48 +00:00
Keith Whitwell
33b483f882 remove debug prints 2002-02-12 21:07:59 +00:00
Keith Whitwell
308a036114 More support for t&l drivers.
Fix reset_stipple calls.
Fix unsigned compare bugs.
2002-02-12 17:37:26 +00:00
Karl Schultz
4c97c84f7e silence compiler warning (windows) 2002-02-12 16:36:36 +00:00
Brian Paul
d7bde06097 silence compiler warnings 2002-02-12 16:07:15 +00:00
Brian Paul
a00292bcfe silence compiler warning 2002-02-12 16:06:16 +00:00
Brian Paul
7d729ffb58 release notes for 4.0.2 2002-02-12 15:54:47 +00:00
Brian Paul
aeb6c0af5e replace assertion with a test (avoid div by zero error) 2002-02-12 03:14:58 +00:00
Brian Paul
41110917d7 Prep for Mesa 4.0.2 release. 2002-02-12 03:13:41 +00:00
Brian Paul
a58b1ed0a3 Daniel Borca's GLUT for DOS/DJGPP. 2002-02-12 02:59:24 +00:00
Brian Paul
27b503cab8 Daniel Borca's new DOS/DJGPP driver. 2002-02-12 02:58:56 +00:00
Brian Paul
d38cdd33d0 removed GLUT reference 2002-01-30 21:54:47 +00:00
Brian Paul
851acc6ea7 added some handy debug code 2002-01-30 16:47:04 +00:00
Brian Paul
6115d784a7 don't use affine/persp_textured_triangle funcs when CHAN_BITS > 8 2002-01-30 16:45:29 +00:00
Brian Paul
fcca385bec replace GLushort w/ GLubyte in DEST_4US template (fixes 16-bit GLchan problem 2002-01-30 16:42:23 +00:00
Brian Paul
06743cf365 updated gl_mangle.h (Ray Tice) 2002-01-18 14:55:50 +00:00
Brian Paul
b372b40bd1 set PB->haveSpec in line functions that emit specular color 2002-01-16 18:24:31 +00:00
Karl Schultz
3e3bd40614 Fixes for 24-bit Windows devices. The old code was trying to do 3-byte
stores with a full DWORD store (yuk).  (Jeff Lewis)
2002-01-16 15:37:49 +00:00
Brian Paul
3fb6d0bfde added some missing error checks 2002-01-15 21:50:15 +00:00
Brian Paul
b36acc0423 removed API compat stuff 2002-01-15 20:17:59 +00:00
Karl Schultz
287d6127d2 Fixed pixel color component problem and clear code for 24-bit Windows
devices.  (Jeff Lewis)
2002-01-15 16:47:37 +00:00
Karl Schultz
a8290d3a95 Remove trailing CR's from most of the lines. No logical changes. 2002-01-15 16:12:15 +00:00
Brian Paul
b26f972618 don't apply scissor box in read_fast_rgba_pixels() 2002-01-12 16:12:42 +00:00
Brian Paul
5bd6bad38d fixed int->float conversion bug in _mesa_TexEnviv() 2002-01-09 02:14:50 +00:00
Brian Paul
1ae3437156 fixed GL_REPLACE / GL_RGB bug 2002-01-09 00:28:53 +00:00
Brian Paul
93665403aa texture env color wasn't used correctly in GL_BLEND mode 2002-01-09 00:12:37 +00:00
Brian Paul
04613cb0bc compile with -DNDEBUG 2002-01-08 15:58:11 +00:00
Brian Paul
e0a30e9d2d work-around for QNX compiler problem 2002-01-08 14:56:33 +00:00
Brian Paul
fd3da01ec3 fix typo (d'oh) 2002-01-04 14:36:58 +00:00
Brian Paul
40bbb8b7f3 fix bug 498555 - test for __GNUC__ 2002-01-04 14:35:34 +00:00
Brian Paul
00b7772bda fixes from Albert Chin 2002-01-03 16:29:07 +00:00
Karl Schultz
0fc4d7e46d Define finite as _finite for Windows. 2001-12-20 18:58:24 +00:00
Keith Whitwell
1261fed2c3 Further help with libGL version skew in dri drivers. 2001-12-20 15:29:15 +00:00
Keith Whitwell
4f4f542bd7 Fix clipping problem on mga 2001-12-20 09:53:57 +00:00
Brian Paul
550169ab62 added separate specular bug fix 2001-12-19 01:20:40 +00:00
Brian Paul
ad83c33a4d have to clamp color+specular in _swrast_add_spec_terms_triangle()! (fixes Chimera bug) 2001-12-19 01:13:12 +00:00
Brian Paul
a340c4f6ef disable blocks of GGI code so it at least compiles instead of bombing 2001-12-18 05:09:51 +00:00
Brian Paul
781f27575c added prototype glutGetProcAddress() function 2001-12-17 19:48:23 +00:00
Brian Paul
08e126fba6 Texture type is GLuint 2001-12-17 19:45:21 +00:00
Brian Paul
b03241a552 put the .type stuff on a separate line 2001-12-17 19:44:54 +00:00
Brian Paul
e4efc983bd minor update 2001-12-17 19:43:38 +00:00
Brian Paul
785bfd0c1e remove conditional in RESET_STIPPLE to fix conformance failure 2001-12-17 01:46:38 +00:00
Brian Paul
a0e4612f49 added normal length cache bug fix 2001-12-15 00:50:55 +00:00
Brian Paul
f6e1618f97 free the NormalLengthPtr if non-null in _tnl_free_immediate() 2001-12-15 00:48:41 +00:00
Karl Schultz
3a450fb4b0 Use $(MAKE) on the irix targets, instead of hard-coding pmake,
as suggested in SF bug 482149.  People can still use
pmake -v -f Makefile.X11 if they want to use pmake (works great for me).
Sorry, this should have been in the last check-in.
2001-12-14 17:46:20 +00:00
Karl Schultz
43daa03ac1 Add .cc as a valid suffix. 2001-12-14 17:18:08 +00:00
Karl Schultz
cb69912494 Cleanup for IRIX 6 platforms. Build src-glu instead of si-glu due
to problems with building the c++ code in the si-glu.
2001-12-14 17:11:46 +00:00
Karl Schultz
b4518ee5d4 Fix up targets for
irix6-o32, irix6-o32-dso, irix6-n32, irix6-n32-dso
2001-12-14 16:40:35 +00:00
Karl Schultz
6ef05c2817 Remove rules that were put into place to deal with compiling files that
are in subdirectories of this directory.  The list of rules that were here
was out of date for Mesa 4 and would likely get out of date again.  It is
better to have make handle it (e.g., use pmake -v on IRIX).
2001-12-14 16:33:06 +00:00
Brian Paul
26d31abd87 s/glxGetProcAddress/glXGetProcAddressARB/ 2001-12-14 11:39:39 +00:00
Brian Paul
7702362bda added GLX_SAMPLE_BUFFERS and GLX_SAMPLES 2001-12-14 03:20:57 +00:00
Karl Schultz
5141607357 Remove const from save_TexParameteri to match prototype for glTexParameteri.
Allows compilation on IRIX.
2001-12-13 19:55:00 +00:00
Brian Paul
a9e14e7bb9 added feedback bug fix item 2001-12-13 19:13:55 +00:00
Brian Paul
5196a16629 fixed errors in feedback for glDraw/CopyPixels and glBitmap 2001-12-13 19:12:30 +00:00
Karl Schultz
7f37280955 Add missing entry points 2001-12-13 19:07:28 +00:00
Brian Paul
986b7ec195 added optimized blending item 2001-12-13 16:24:28 +00:00
Brian Paul
9012185ae8 special case blend optmizations (Jeremy Fitzhardinge) 2001-12-13 16:14:17 +00:00
Brian Paul
2edf851932 added glTexParameter bug fix 2001-12-13 16:03:06 +00:00
Brian Paul
1703b67ee0 call FLUSH_VERTICES() in _mesaTexParameterfv() (bug 491832) 2001-12-13 16:02:32 +00:00
Brian Paul
9342fbe46e latest bug fixes 2001-12-13 14:18:46 +00:00
Keith Whitwell
2f88c5fbd4 fix primitive calculation in 1-line dlist immediates (molecules) 2001-12-13 10:57:55 +00:00
Keith Whitwell
dc35f387ca fix for ubyte colors 2001-12-13 10:57:41 +00:00
Keith Whitwell
597ec4040c fix glut tess lockup 2001-12-11 15:12:57 +00:00
Keith Whitwell
51aa3d2f30 Add INF_OR_NAN tests to swrast functions 2001-12-05 10:22:55 +00:00
Keith Whitwell
0c1f42ef29 further tweak to dlist change 2001-12-04 13:04:05 +00:00
Keith Whitwell
06ae58eebb remove debug 2001-12-03 17:59:36 +00:00
Keith Whitwell
d8deb468f7 guard ResetStipple calls 2001-12-03 17:49:01 +00:00
Keith Whitwell
4aac60f691 fx another place where PRIM_PARITY is calculated 2001-12-03 17:46:57 +00:00
Keith Whitwell
e20d35d74a correctly reset input after dlist execution 2001-12-03 17:44:02 +00:00
Keith Whitwell
ed26c2d950 remove debug 2001-12-03 17:40:43 +00:00
Keith Whitwell
95681b4a85 avoid side-effects in macro param 2001-12-03 17:39:09 +00:00
Karl Schultz
17a5135fee Add darwin target 2001-11-30 20:18:41 +00:00
Karl Schultz
69b71bc1ab malloc() prototype is in stdlib.h for darwin 2001-11-30 20:12:38 +00:00
Alan Hourihane
9f6957e702 Don't reset the _tnl_CurrentInput pointer on DestroyContext. 2001-11-30 15:42:32 +00:00
Karl Schultz
bf78731523 update version string to 4.0 2001-11-29 22:56:10 +00:00
Karl Schultz
c527df81df update updated date 2001-11-29 16:54:32 +00:00
Karl Schultz
ca2315d95b Update notes about si-glu NURBS code. 2001-11-29 16:53:16 +00:00
Karl Schultz
c4dd9e2a03 Fix compilation errors and warnings for NURBS support. (Robert Bergkvist) 2001-11-29 16:38:26 +00:00
Keith Whitwell
34174976c4 use smaller buffer when decomposing large drawarrays, for cache goodness 2001-11-29 15:15:11 +00:00
Brian Paul
ff23c15bdc updated comment about CHAN_BITS 2001-11-28 17:18:20 +00:00
Brian Paul
eb0ce107c7 use v2 color, not v0 in flat_ci_triangle() 2001-11-28 16:11:14 +00:00
Keith Whitwell
bfe6c71b99 update vendor string 2001-11-28 11:54:45 +00:00
Brian Paul
69f2ff5f38 added triangle parity bug fix and GLUT glXGetProcAddressARB item 2001-11-27 02:58:01 +00:00
Brian Paul
f28c19da41 use glXGetProcAddressARB to avoid extension linkage problems 2001-11-27 02:50:55 +00:00
Brian Paul
c132ca9774 don't directly call glSecondaryColor*EXT() or glFogCoord*EXT() 2001-11-26 23:45:36 +00:00
Brian Paul
8ca1772d4a fix some warnings 2001-11-26 17:21:24 +00:00
Keith Whitwell
ff5fe4836a Possible fix for vtk tristrip bug 2001-11-26 12:55:12 +00:00
Brian Paul
f88e0898a1 fixed some GLenum/GLuint mixups 2001-11-25 18:54:45 +00:00
Brian Paul
3f2eedd634 bump version to 4.0.1 2001-11-25 18:50:19 +00:00
Brian Paul
158c7413fb updates for 4.0.1 2001-11-23 20:47:25 +00:00
Brian Paul
0a96860e04 attempted fix for bug 474479 2001-11-23 20:43:32 +00:00
Keith Whitwell
37b10249e5 Fix decomposition of quads/quad-strips to indexed tris 2001-11-22 13:56:25 +00:00
Keith Whitwell
589cee71b8 Another locked drawarrays fix 2001-11-22 09:23:31 +00:00
Brian Paul
c6dcd5c4cf added CVA and glapi_sparc.S bug fixes 2001-11-20 00:08:17 +00:00
Brian Paul
e1ec4771f1 fixed Solaris/GCC compilation problems 2001-11-20 00:06:25 +00:00
Keith Whitwell
917e942fe2 3dnow normalize_normals function isn't working - disable it. 2001-11-19 13:50:35 +00:00
Keith Whitwell
f427427ca8 possible fix for cva ignore start index bug 2001-11-19 10:20:37 +00:00
Brian Paul
7ed97d4ef4 added latest bug fixes for 4.0.1 2001-11-18 23:25:35 +00:00
Brian Paul
267b9cc082 fixed a few missing entries for GetProcAddress() 2001-11-18 23:24:49 +00:00
Brian Paul
efb678da77 added missing const to glXGetContextIDEXT() prototype 2001-11-18 22:16:35 +00:00
Brian Paul
32aa05bfd6 added -Bsymbolic item 2001-11-15 19:50:24 +00:00
Brian Paul
299a71fe04 added better sub-pixel AA item 2001-11-13 00:26:07 +00:00
Brian Paul
63da26bd62 improved AA subpixel sample positions (Ray Tice) 2001-11-13 00:24:51 +00:00
Brian Paul
dfb7ebf8a0 added latest post-4.0 bug fixes 2001-11-09 22:05:10 +00:00
Brian Paul
64681c1f82 fix typedef problem found with MSDev 6.0 2001-11-09 22:03:54 +00:00
Brian Paul
8c3149f250 added GLX 1.4 function manglers 2001-11-09 22:00:26 +00:00
Brian Paul
53e284bda1 added 1.3 function manglers 2001-11-09 21:59:18 +00:00
Brian Paul
f46ce82219 define GL_VERSION_1_3 (doh!) 2001-11-09 21:54:05 +00:00
Brian Paul
4256cf0175 casts to silence warnings from gcc 2.96 2001-11-06 16:00:58 +00:00
Brian Paul
986749a4ea added GL_MAX_TEXTURE_LOD_BIAS_EXT fix 2001-11-06 15:53:25 +00:00
Brian Paul
07042d164b added missing GL_MAX_TEXTURE_LOD_BIAS_EXT query 2001-11-06 15:51:06 +00:00
Brian Paul
0739d6f158 fix error in error checking conditional (bug 476846) 2001-11-03 04:10:08 +00:00
Brian Paul
2fd7a602a7 added hash table mutex bug fix 2001-11-02 00:58:32 +00:00
Brian Paul
f97edb4ca3 init the hash table mutex in _mesa_NewHashTable (Won-Suk Chun) 2001-11-02 00:56:45 +00:00
Karl Schultz
3b0571dd5c Updates for improved DirectDraw support (Daniel Slater) 2001-11-01 22:52:18 +00:00
Brian Paul
c25f068355 added some (void *) casts to silence gcc 2.96 warnings 2001-11-01 00:38:37 +00:00
Keith Whitwell
3a05f42b28 add linux-x11-debug build target 2001-10-30 16:00:20 +00:00
Karl Schultz
2631c2a2de Change name of glut lib from glut32 to MesaGlut.
This helps avoid confusion with other gluts on the system that may be
lined with OpenGl32.dll and Glu32.dll.
2001-10-26 21:22:40 +00:00
Karl Schultz
b2728086ec Copy ../util/readtex.[ch] 2001-10-26 21:03:15 +00:00
Brian Paul
2e7644f13d bug fix: missing breaks in glGet*() 2001-10-25 23:21:52 +00:00
Brian Paul
9c3e7d2294 added a bunch of missing breaks for multisample gets 2001-10-25 23:21:11 +00:00
294 changed files with 23402 additions and 11345 deletions

View File

@@ -1,13 +1,13 @@
# $Id: Make-config,v 1.51 2001/10/22 22:45:18 brianp Exp $
# $Id: Make-config,v 1.50.2.11 2002/09/03 17:50:19 brianp Exp $
MESA_MAJOR=4
MESA_MINOR=1
MESA_TINY=0
MESA_MINOR=0
MESA_TINY=4
VERSION=$(MESA_MAJOR).$(MESA_MINOR)
# Mesa 3-D graphics library
#
# Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
# Copyright (C) 1999-2002 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"),
@@ -178,6 +178,25 @@ cygnus-linux:
"MAKELIB = ../bin/mklib.cygnus-linux" \
"WLIBS = ../lib/wing32.a -lkernel32 -luser32 -lgdi32"
darwin:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.dylib" \
"GLU_LIB = libGLU.dylib" \
"GLUT_LIB = libglut.dylib" \
"GLW_LIB = libGLw.dylib" \
"OSMESA_LIB = libOSMesa.dylib" \
"CC = cc" \
"CPLUSPLUS = cc" \
"CFLAGS = -I/usr/X11R6/include -O3 -fPIC -fno-common -ffast-math \
-funroll-loops -fexpensive-optimizations -no-cpp-precomp \
-dynamic -Ddarwin" \
"CCFLAGS = $(CFLAGS)" \
"MAKELIB = ../bin/mklib.darwin" \
"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"
dgux:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.a" \
@@ -344,7 +363,7 @@ hpux10-gcc-sl:
# For IRIX 4: don't use -fullwarn because it causes too much garbage
irix4:
pmake $(MFLAGS) -f Makefile.X11 targets \
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.a" \
"GLU_LIB = libGLU.a" \
"GLUT_LIB = libglut.a" \
@@ -357,7 +376,7 @@ irix4:
# On IRIX 5.3 -sopt causes a problem in drawpixels.c so we don't use it
irix5:
pmake $(MFLAGS) -f Makefile.X11 targets \
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.a" \
"GLU_LIB = libGLU.a" \
"GLUT_LIB = libglut.a" \
@@ -385,7 +404,7 @@ irix5-gcc:
# IRIX 5 using Dynamic Shared Objects (DSO)
irix5-dso:
pmake $(MFLAGS) -f Makefile.X11 targets \
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.so" \
"GLU_LIB = libGLU.so" \
"GLUT_LIB = libglut.so" \
@@ -396,34 +415,46 @@ irix5-dso:
"MAKELIB = ../bin/mklib.irix5" \
"APP_LIB_DEPS = -rpath ../lib -lX11 -lXmu -lXi -lm"
# IRIX 6 32-bit Targets
# Turn Warnings off for these errors (MIPSpro Compiler 7.30)
# 1521: A nonstandard preprocessing directive is used.
# 1552: The variable "" is set but never used.
# C++
# 3262: The variable "" was declared but never referenced.
# 3666: The variable "" is set but never used.
# Use -v if using pmake to compile files in subdirectories.
irix6-o32:
pmake $(MFLAGS) -f Makefile.X11 targets \
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.a" \
"GLU_LIB = libGLU.a" \
"GLUT_LIB = libglut.a" \
"GLW_LIB = libGLw.a" \
"OSMESA_LIB = libOSMesa.a" \
"LIBDIR = ../lib32" \
"CC = cc" \
"CFLAGS = -32 -mips2 -O2 -ansi -DUSE_XSHM -DNO_CONST" \
"CPLUSPLUS = CC" \
"CFLAGS = -32 -mips2 -O2 -ansi -woff 1521,1552 -DUSE_XSHM" \
"CCFLAGS = -32 -mips2 -O2 -ansi -woff 3262,3666" \
"MAKELIB = ../bin/mklib.ar-rcv" \
"APP_LIB_DEPS = -lX11 -lXext -lXmu -lXi -lm"
irix6-o32-dso:
pmake $(MFLAGS) -f Makefile.X11 targets \
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.so" \
"GLU_LIB = libGLU.so" \
"GLUT_LIB = libglut.so" \
"GLW_LIB = libGLw.so" \
"OSMESA_LIB = libOSMesa.so" \
"LIBDIR = ../lib32" \
"CC = cc" \
"CFLAGS = -32 -mips2 -O2 -ansi -DUSE_XSHM -DNO_CONST" \
"CPLUSPLUS = CC" \
"CFLAGS = -32 -mips2 -O2 -ansi -woff 1521,1552 -DUSE_XSHM" \
"CCFLAGS = -32 -mips2 -O2 -ansi -woff 3262,3666" \
"MAKELIB = ../bin/mklib.irix6-32" \
"APP_LIB_DEPS = -rpath ../lib -lX11 -lXext -lXmu -lXi -lm"
"APP_LIB_DEPS = -rpath ../lib32 -lX11 -lXext -lXmu -lXi -lm"
# For IRIX 6: -woff:
# 1209 - controlling expression is constant
irix6-n32:
pmake $(MFLAGS) -f Makefile.X11 targets \
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.a" \
"GLU_LIB = libGLU.a" \
"GLUT_LIB = libglut.a" \
@@ -431,20 +462,24 @@ irix6-n32:
"OSMESA_LIB = libOSMesa.a" \
"LIBDIR = ../lib32" \
"CC = cc" \
"CFLAGS = -n32 -mips3 -O3 -ansi -woff 1209,1521" \
"CPLUSPLUS = CC" \
"CFLAGS = -n32 -mips3 -O3 -ansi -woff 1174,1521,1552 -DUSE_XSHM" \
"CCFLAGS = -n32 -mips3 -O3 -ansi -woff 1174,1552" \
"MAKELIB = ../bin/mklib.ar-rcv" \
"APP_LIB_DEPS = -lX11 -lXext -lXmu -lXi -lm"
irix6-n32-dso:
pmake $(MFLAGS) -f Makefile.X11 targets \
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.so" \
"GLU_LIB = libGLU.so" \
"GLUT_LIB = libglut.so" \
"GLW_LIB = libGLw.a" \
"OSMESA_LIB = libOSMesa.a" \
"GLW_LIB = libGLw.so" \
"OSMESA_LIB = libOSMesa.so" \
"LIBDIR = ../lib32" \
"CC = cc" \
"CFLAGS = -n32 -mips3 -O3 -ansi -DUSE_XSHM -woff 1185,1521" \
"CPLUSPLUS = CC" \
"CFLAGS = -n32 -mips3 -O3 -ansi -woff 1174,1521,1552 -DUSE_XSHM" \
"CCFLAGS = -n32 -mips3 -O3 -ansi -woff 1174,1552" \
"MAKELIB = ../bin/mklib.irix6-n32" \
"APP_LIB_DEPS = -rpath ../lib32 -lX11 -lXmu -lXi -lfpe -lm"
@@ -472,7 +507,7 @@ irix6-gcc-n32-sl:
# 1474 - declaring a void parameter list with a typedef is nonstandard
# 1552 - variable was set but never used
irix6-64:
pmake $(MFLAGS) -f Makefile.X11 targets \
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.a" \
"GLU_LIB = libGLU.a" \
"GLUT_LIB = libglut.a" \
@@ -485,7 +520,7 @@ irix6-64:
"APP_LIB_DEPS = -lX11 -lXext -lXmu -lXi -lm"
irix6-64-dso:
pmake $(MFLAGS) -f Makefile.X11 targets \
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.so" \
"GLU_LIB = libGLU.so" \
"GLUT_LIB = libglut.so" \
@@ -571,6 +606,32 @@ linux-x86:
X86/sse_xform3.S X86/sse_xform4.S \
X86/sse_normal.S X86/sse_vertex.S"
linux-icc:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.so" \
"GLU_LIB = libGLU.so" \
"GLUT_LIB = libglut.so" \
"GLW_LIB = libGLw.so" \
"OSMESA_LIB = libOSMesa.so" \
"CC = icc" \
"CPLUSPLUS = g++" \
"CFLAGS = -O3 -tpp6 -KPIC -D_GCC_LIMITS_H_ -D__GNUC__ -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_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/common_x86_asm.S X86/glapi_x86.S \
X86/x86_xform2.S X86/x86_xform3.S X86/x86_xform4.S \
X86/x86_cliptest.S X86/x86_vertex.S \
X86/mmx_blend.S \
X86/3dnow_xform1.S X86/3dnow_xform2.S \
X86/3dnow_xform3.S X86/3dnow_xform4.S \
X86/3dnow_normal.S X86/3dnow_vertex.S \
X86/sse_xform1.S X86/sse_xform2.S \
X86/sse_xform3.S X86/sse_xform4.S \
X86/sse_normal.S X86/sse_vertex.S"
linux-x86-static:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.a" \
@@ -662,7 +723,7 @@ linux-386-glide:
"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 -lglut -lGLU -lGL"
"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -lglut -lGLU -lGL -lm" \
"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \
X86/x86_xform2.S X86/x86_xform3.S X86/x86_xform4.S \
X86/x86_cliptest.S X86/x86_vertex.S"
@@ -682,7 +743,7 @@ linux-386-opt-glide:
"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" \
"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -lglut -lGLU -lGL -lm" \
"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \
X86/x86_xform2.S X86/x86_xform3.S X86/x86_xform4.S \
X86/x86_cliptest.S X86/x86_vertex.S"
@@ -701,7 +762,7 @@ linux-x86-glide:
"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" \
"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -lglut -lGLU -lGL -lm" \
"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \
X86/x86_xform2.S X86/x86_xform3.S X86/x86_xform4.S \
X86/x86_cliptest.S X86/x86_vertex.S \
@@ -832,7 +893,7 @@ linux-osmesa16:
"OSMESA16_LIB = libOSMesa16.so" \
"CC = gcc" \
"CPLUSPLUS = g++" \
"CFLAGS = -g -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DDEBUG -DMESA_DEBUG -DCHAN_BITS=16 -DDEFAULT_SOFTWARE_DEPTH_BITS=31" \
"CFLAGS = -O3 -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DDEBUG -DMESA_DEBUG -DCHAN_BITS=16 -DDEFAULT_SOFTWARE_DEPTH_BITS=31" \
"CCFLAGS = $(CFLAGS)" \
"MAKELIB = ../bin/mklib.linux" \
"GL_LIB_DEPS = -lm -lpthread" \
@@ -844,7 +905,7 @@ linux-osmesa32:
"OSMESA16_LIB = libOSMesa32.so" \
"CC = gcc" \
"CPLUSPLUS = g++" \
"CFLAGS = -g -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DDEBUG -DMESA_DEBUG -DCHAN_BITS=32 -DDEFAULT_SOFTWARE_DEPTH_BITS=31" \
"CFLAGS = -O3 -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DDEBUG -DMESA_DEBUG -DCHAN_BITS=32 -DDEFAULT_SOFTWARE_DEPTH_BITS=31" \
"CCFLAGS = $(CFLAGS)" \
"MAKELIB = ../bin/mklib.linux" \
"GL_LIB_DEPS = -lm -lpthread" \
@@ -1177,6 +1238,7 @@ sunos5:
"GLW_LIB = libGLw.a" \
"OSMESA_LIB = libOSMesa.a" \
"CC = cc" \
"CPLUSPLUS = CC" \
"CFLAGS = -Xa -fast -xO4 -native -I/usr/openwin/include -I/usr/dt/include -DUSE_XSHM -DSOLARIS_2_4_BUG" \
"MAKELIB = ../bin/mklib.ar-ruv" \
"APP_LIB_DEPS = -L/usr/openwin/lib -L/usr/dt/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm"
@@ -1189,6 +1251,7 @@ sunos5-sl:
"GLW_LIB = libGLw.so" \
"OSMESA_LIB = libOSMesa.so" \
"CC = cc" \
"CPLUSPLUS = CC" \
"CFLAGS = -KPIC -Xa -O -I/usr/openwin/include -I/usr/dt/include -DUSE_XSHM -DSOLARIS_2_4_BUG" \
"MAKELIB = ../bin/mklib.sunos5" \
"APP_LIB_DEPS = -L/usr/openwin/lib -L/usr/dt/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm"
@@ -1201,6 +1264,7 @@ sunos5-ultra:
"GLW_LIB = libGLw.a" \
"OSMESA_LIB = libOSMesa.a" \
"CC = cc" \
"CPLUSPLUS = CC" \
"CFLAGS = -Xa -fast -xO5 -xtarget=ultra -I/usr/openwin/include -I/usr/dt/include -DUSE_XSHM -DSOLARIS_2_4_BUG" \
"MAKELIB = ../bin/mklib.ar-ruv" \
"APP_LIB_DEPS = -L/usr/openwin/lib -L/usr/dt/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm"
@@ -1213,6 +1277,7 @@ sunos5-ultra-sl:
"GLW_LIB = libGLw.so" \
"OSMESA_LIB = libOSMesa.so" \
"CC = cc" \
"CPLUSPLUS = CC" \
"CFLAGS = -KPIC -Xa -fast -xO5 -xtarget=ultra -I/usr/openwin/include -I/usr/dt/include -DUSE_XSHM -DSOLARIS_2_4_BUG" \
"MAKELIB = ../bin/mklib.sunos5" \
"APP_LIB_DEPS = -L/usr/openwin/lib -L/usr/dt/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm"
@@ -1418,7 +1483,7 @@ vistra:
# -woff 1521 = "nonstandard preprocessing directive is used"
# -woff 3496 = "bitwise operator precedence"
irix-debug:
pmake $(MFLAGS) -f Makefile.X11 targets \
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.a" \
"GLU_LIB = libGLU.a" \
"GLUT_LIB = libglut.a" \
@@ -1431,7 +1496,7 @@ irix-debug:
"APP_LIB_DEPS = -rpath ../lib32 -lX11 -lXext -lXmu -lXi -lfpe -lXext -lXmu -lXi -lm"
DEBUG:
pmake $(MFLAGS) -f Makefile.X11 targets \
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.a" \
"GLU_LIB = libGLU.a" \
"GLUT_LIB = libglut.a" \
@@ -1452,13 +1517,31 @@ linux-debug:
"OSMESA_LIB = libOSMesa.so" \
"CC = gcc" \
"CPLUSPLUS = g++" \
"CFLAGS = -g -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DDEBUG -DMESA_DEBUG -DSVGA -I/usr/include/glide -DFX -DMESA_TRACE" \
"CFLAGS = -g -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DDEBUG -DMESA_DEBUG -DSVGA_foo -I/usr/include/glide -DFX_foo -DMESA_TRACE" \
"CCFLAGS = $(CFLAGS)" \
"MAKELIB = ../bin/mklib.linux" \
"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -L/usr/local/glide/lib -lglide2x -lvga" \
"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 = -lglut -lGLU -lGL -L/usr/local/glide/lib -lglide2x"
"APP_LIB_DEPS = -lglut -lGLU -lGL"
linux-x11-debug:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.so" \
"GLU_LIB = libGLU.so" \
"GLUT_LIB = libglut.so" \
"GLW_LIB = libGLw.so" \
"OSMESA_LIB = libOSMesa.so" \
"CC = gcc" \
"CPLUSPLUS = g++" \
"CFLAGS = -g -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DDEBUG -DMESA_DEBUG -DMESA_TRACE" \
"CCFLAGS = $(CFLAGS)" \
"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 = -lglut -lGLU -lGL"
linux-static-debug:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \

View File

@@ -1,9 +1,9 @@
# $Id: Makefile.X11,v 1.57 2001/10/22 22:45:18 brianp Exp $
# $Id: Makefile.X11,v 1.56.2.13 2002/09/19 16:36:35 brianp Exp $
# Mesa 3-D graphics library
# Version: 4.1
# Version: 4.0.4
#
# Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
# Copyright (C) 1999-2002 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"),
@@ -42,6 +42,7 @@ default:
@echo " make bsdos4 for BSD/OS 4.x, dynamic libraries"
@echo " make cygnus for Win95/NT using Cygnus-Win32"
@echo " make cygnus-linux for Win95/NT using Cygnus-Win32 under Linux"
@echo " make darwin for Darwin - Mac OS X"
@echo " make dgux for Data General"
@echo " make freebsd for FreeBSD systems with GCC"
@echo " make freebsd-386 for FreeBSD systems with GCC, w/ Intel assembly"
@@ -86,6 +87,7 @@ default:
@echo " make linux-sparc-ultra for UltraSparc systems, make ELF shared libs"
@echo " make linux-osmesa16 for 16-bit/channel OSMesa"
@echo " make linux-osmesa32 for 32-bit/channel OSMesa"
@echo " make linux-icc for Linux with the Intel C/C++ compiler"
@echo " make lynxos for LynxOS systems with GCC"
@echo " make macintosh for Macintosh"
@echo " make machten-2.2 for Macs w/ MachTen 2.2 (68k w/ FPU)"
@@ -137,12 +139,12 @@ default:
# XXX we may have to split up this group of targets into those that
# have a C++ compiler and those that don't for the SI-GLU library.
aix aix-sl amix bsdos bsdos4 dgux freebsd freebsd-386 gcc \
aix aix-sl amix bsdos bsdos4 darwin 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 linux-static linux-debug linux-static-debug linux-prof \
linux-x86 linux-x86-static linux-x86-debug \
irix4 irix5 irix5-gcc irix5-dso \
linux linux-static linux-debug linux-x11-debug linux-static-debug linux-prof \
linux-x86 linux-icc linux-x86-static linux-x86-debug \
linux-glide linux-386-glide linux-386-opt-glide \
linux-x86-glide linux-glide-debug linux-glide-prof \
linux-alpha-static linux-alpha \
@@ -171,12 +173,11 @@ sunos5-x11r6-gcc-sl ultrix-gcc unicos unixware uwin vistra:
if [ -d book ] ; then cd book ; $(MAKE) -f Makefile.X11 $@ ; fi
if [ -d widgets-sgi ] ; then cd widgets-sgi; $(MAKE) -f Makefile.X11 $@ ; fi
irix6-n32 irix6-n32-dso irix6-gcc-n32-sl irix-debug:
irix6-o32 irix6-o32-dso irix6-n32 irix6-n32-dso irix6-gcc-n32-sl irix-debug:
-mkdir lib32
if [ -d src ] ; then touch src/depend ; fi
if [ -d src-glu ] ; then touch src-glu/depend ; fi
if [ -d src-glut ] ; then touch src-glut/depend ; fi
if [ -d src-glut ] ; then touch src-glut/depend ; fi
if [ -d widgets-sgi ] ; then touch widgets-sgi/depend ; fi
if [ -d src ] ; then cd src ; $(MAKE) -f Makefile.X11 $@ ; fi
if [ -d src-glu ] ; then cd src-glu ; $(MAKE) -f Makefile.X11 $@ ; fi
@@ -299,7 +300,6 @@ linux-osmesa16 linux-osmesa32:
-mkdir lib
if [ -d src ] ; then touch src/depend ; fi
if [ -d src ] ; then cd src ; $(MAKE) -f Makefile.OSMesa16 $@ ; fi
# Remove .o files, emacs backup files, etc.
clean:
@@ -322,20 +322,18 @@ clean:
# Remove everything that can be remade
realclean: clean
-rm -f lib/*
-rm -fr lib lib32 lib64
cd demos && $(MAKE) -f Makefile.X11 realclean || true
cd xdemos && $(MAKE) -f Makefile.X11 realclean || true
cd book && $(MAKE) -f Makefile.X11 realclean || true
cd samples && $(MAKE) -f Makefile.X11 realclean || true
cd ggi/demos && $(MAKE) -f Makefile.X11 realclean || true
cd src/GGI/default && $(MAKE) -f Makefile.X11 realclean || true
DIRECTORY = Mesa-4.0
LIB_NAME = MesaLib-4.0
DEMO_NAME = MesaDemos-4.0
GLU_NAME = MesaGLU-4.0
DIRECTORY = Mesa-4.0.4
LIB_NAME = MesaLib-4.0.4
DEMO_NAME = MesaDemos-4.0.4
GLU_NAME = MesaGLU-4.0.4
GLUT_NAME = GLUT-3.7
@@ -380,7 +378,7 @@ LIB_FILES = \
$(DIRECTORY)/include/GL/internal/glcore.h \
$(DIRECTORY)/include/GL/Makefile.in \
$(DIRECTORY)/include/GL/Makefile.am \
$(DIRECTORY)/include/GL/dosmesa.h \
$(DIRECTORY)/include/GL/dmesa.h \
$(DIRECTORY)/include/GL/amesa.h \
$(DIRECTORY)/include/GL/fxmesa.h \
$(DIRECTORY)/include/GL/ggimesa.h \
@@ -403,6 +401,7 @@ LIB_FILES = \
$(DIRECTORY)/include/GL/xmesa_x.h \
$(DIRECTORY)/include/GL/xmesa_xf86.h \
$(DIRECTORY)/include/GLView.h \
$(DIRECTORY)/include/dmesadxe.h \
$(DIRECTORY)/include/Makefile.in \
$(DIRECTORY)/include/Makefile.am \
$(DIRECTORY)/src/Makefile* \
@@ -433,6 +432,9 @@ LIB_FILES = \
$(DIRECTORY)/src/windml/tornado/*.cdf \
$(DIRECTORY)/src/windml/man3/*.3 \
$(DIRECTORY)/src/windml/man3/*.html \
$(DIRECTORY)/src/DOS/*.[chS] \
$(DIRECTORY)/src/DOS/vesa/*.[ch] \
$(DIRECTORY)/src/BeOS/*.h \
$(DIRECTORY)/src/BeOS/*.cpp \
$(DIRECTORY)/src/FX/Makefile.am \
$(DIRECTORY)/src/FX/Makefile.in \
@@ -581,7 +583,6 @@ OBSOLETE_LIB_FILES = \
$(DIRECTORY)/src/D3D/*bat \
$(DIRECTORY)/src/D3D/*DEF \
$(DIRECTORY)/src/DOS/DEPEND.DOS \
$(DIRECTORY)/src/DOS/*.c \
$(DIRECTORY)/src/S3/*.[ch] \
$(DIRECTORY)/src/S3/*.def \
$(DIRECTORY)/src/S3/*.mak \
@@ -614,6 +615,9 @@ DEMO_FILES = \
$(DIRECTORY)/src-glut/descrip.mms \
$(DIRECTORY)/src-glut/mms_depend \
$(DIRECTORY)/src-glut/*.[ch] \
$(DIRECTORY)/src-glut.dos/*.[ch] \
$(DIRECTORY)/src-glut.dos/Makefile.DJ \
$(DIRECTORY)/src-glut.dos/PC_HW/*.[chS] \
$(DIRECTORY)/images/* \
$(DIRECTORY)/demos/Makefile* \
$(DIRECTORY)/demos/descrip.mms \

94
docs/MESA_agp_offset.spec Normal file
View File

@@ -0,0 +1,94 @@
Name
MESA_agp_offset
Name Strings
GLX_MESA_agp_offset
Contact
Brian Paul, Tungsten Graphics, Inc. (brian 'at' tungstengraphics.com)
Keith Whitwell, Tungsten Graphics, Inc. (keith 'at' tungstengraphics.com)
Status
Shipping (Mesa 4.0.4 and later. Only implemented in particular
XFree86/DRI drivers.)
Version
1.0
Number
TBD
Dependencies
OpenGL 1.0 or later is required
GLX_NV_vertex_array_range is required.
This extensions is written against the OpenGL 1.4 Specification.
Overview
This extensions provides a way to convert pointers in an AGP memory
region into byte offsets into the AGP aperture.
Note, this extension depends on GLX_NV_vertex_array_range, for which
no real specification exists. See GL_NV_vertex_array_range for more
information.
IP Status
None
Issues
None
New Procedures and Functions
GLuint glXGetAGPOffsetMESA( const GLvoid *pointer )
New Tokens
None
Additions to the OpenGL 1.4 Specification
None
Additions to Chapter 3 the GLX 1.4 Specification (Functions and Errors)
Add a new section, 3.6 as follows:
3.6 AGP Memory Access
On "PC" computers, AGP memory can be allocated with glXAllocateMemoryNV
and freed with glXFreeMemoryNV. Sometimes it's useful to know where a
block of AGP memory is located with respect to the start of the AGP
aperature. The function
GLuint glXGetAGPOffsetMESA( const GLvoid *pointer )
Returns the offset of the given memory block from the start of AGP
memory in basic machine units (i.e. bytes). If pointer is invalid
the value ~0 will be returned.
GLX Protocol
None. This is a client side-only extension.
Errors
glXGetAGPOffsetMESA will return ~0 if the pointer does not point to
an AGP memory region.
New State
None
Revision History
20 September 2002 - Initial draft
2 October 2002 - finished GLX chapter 3 additions

138
docs/MESA_pack_invert.spec Normal file
View File

@@ -0,0 +1,138 @@
Name
MESA_pack_invert
Name Strings
GL_MESA_pack_invert
Contact
Brian Paul, Tungsten Graphics, Inc. (brian 'at' tungstengraphics.com)
Keith Whitwell, Tungsten Graphics, Inc. (keith 'at' tungstengraphics.com)
Status
Shipping (Mesa 4.0.4 and later)
Version
1.0
Number
TBD
Dependencies
OpenGL 1.0 or later is required
This extensions is written against the OpenGL 1.4 Specification.
Overview
This extension adds a new pixel storage parameter to indicate that
images are to be packed in top-to-bottom order instead of OpenGL's
conventional bottom-to-top order. Only pixel packing can be
inverted (i.e. for glReadPixels, glGetTexImage, glGetConvolutionFilter,
etc).
Almost all known image file formats store images in top-to-bottom
order. As it is, OpenGL reads images from the frame buffer in
bottom-to-top order. Thus, images usually have to be inverted before
writing them to a file with image I/O libraries. This extension
allows images to be read such that inverting isn't needed.
IP Status
None
Issues
1. Should we also defined UNPACK_INVERT_MESA for glDrawPixels, etc?
Resolved: No, we're only concerned with pixel packing. There are other
solutions for inverting images when using glDrawPixels (negative Y pixel
zoom) or glTexImage (invert the vertex T coordinates). It would be easy
enough to define a complementary extension for pixel packing in the
future if needed.
New Procedures and Functions
None
New Tokens
Accepted by the <pname> parameter of PixelStorei and PixelStoref
and the <pname> parameter of GetIntegerv, GetFloatv, GetDoublev
and GetBooleanv:
PACK_INVERT_MESA 0x8758
Additions to Chapter 2 of the OpenGL 1.4 Specification (OpenGL Operation)
None
Additions to Chapter 3 of the OpenGL 1.4 Specification (Rasterization)
None
Additions to Chapter 4 of the OpenGL 1.4 Specification (Per-Fragment
Operations and the Frame Buffer)
Add the following entry to table 4.4 (PixelStore parameters) on page 182:
Parameter Name Type Initial Value Valid Range
---------------------------------------------------------
PACK_INVERT_MESA boolean FALSE TRUE/FALSE
In the section labeled "Placement in Client Memory" on page 184
insert the following text into the paragraph before the sentence
that starts with "If the format is RED, GREEN, BLUE...":
"The parameter PACK_INVERT_MESA controls whether the image is packed
in bottom-to-top order (the default) or top-to-bottom order. Equation
3.8 is modified as follows:
... the first element of the Nth row is indicated by
p + Nk, if PACK_INVERT_MESA is false
p + k * (H - 1) - Nk, if PACK_INVERT_MESA is true, where H is the
image height
"
Additions to Chapter 5 of the OpenGL 1.4 Specification (Special Functions)
None
Additions to Chapter 6 of the OpenGL 1.4 Specification (State and
State Requests)
None
Additions to Appendix A of the OpenGL 1.4 Specification (Invariance)
None
Additions to the AGL/GLX/WGL Specifications
None
GLX Protocol
None
Errors
None
New State
Add the following entry to table 6.20 (Pixels) on page 235:
Get Value Type Get Cmd Initial Value Description Sec Attribute
--------------------------------------------------------------------------------------------------
PACK_INVERT_MESA boolean GetBoolean FALSE Value of PACK_INVERT_MESA 4.3.2 pixel-store
Revision History
21 September 2002 - Initial draft

View File

@@ -15,11 +15,11 @@ Contact
Status
Not yet shipping.
OBSOLETE - NEVER SHIPPED (use GL_NV_packed_depth_stencil)
Version
$Id: MESA_packed_depth_stencil.spec,v 1.1 2000/11/03 14:58:45 brianp Exp $
$Id: MESA_packed_depth_stencil.spec,v 1.1.2.1 2002/09/20 19:14:11 brianp Exp $
Number

View File

@@ -14,11 +14,11 @@ Contact
Status
Not yet shipping.
OBSOLETE - NEVER SHIPPED (use GL_NV_point_sprite)
Version
$Id: MESA_sprite_point.spec,v 1.1 2000/12/08 00:21:02 brianp Exp $
$Id: MESA_sprite_point.spec,v 1.1.2.1 2002/09/20 19:14:11 brianp Exp $
Number

View File

@@ -0,0 +1,197 @@
Name
MESA_ycbcr_texture
Name Strings
GL_MESA_ycbcr_texture
Contact
Brian Paul, Tungsten Graphics, Inc. (brian 'at' tungstengraphics.com)
Keith Whitwell, Tungsten Graphics, Inc. (keith 'at' tungstengraphics.com)
Status
Shipping (Mesa 4.0.4 and later)
Version
1.0
Number
TBD
Dependencies
OpenGL 1.0 or later is required
This extensions is written against the OpenGL 1.4 Specification.
NV_texture_rectangle effects the definition of this extension.
Overview
This extension supports texture images in the YCbCr format. There is
no support for converting YCbCr images to RGB or vice versa. The
intention is for YCbCr image data to be directly sent to the renderer
without any pixel transfer operations. Only 2D texture images are
supported (not glDrawPixels, glReadPixels, etc).
A YCbCr pixel (texel) is a 16-bit unsigned short with two components.
The first component is luminance (Y). For pixels in even-numbered
image columns, the second component is Cb. For pixels in odd-numbered
image columns, the second component is Cr. If one were to convert the
data to RGB one would need to examine two pixels from columns N and N+1
(where N is even) to deduce the RGB color.
IP Status
None
Issues
None
New Procedures and Functions
None
New Tokens
Accepted by the <internalFormat> and <format> parameters of
TexImage2D and TexSubImage2D:
GL_YCBCR_MESA 0x8757
Accepted by the <type> parameter of TexImage2D and TexSubImage2D:
GL_UNSIGNED_SHORT_8_8_MESA 0x85BA /* same as Apple's */
GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB /* same as Apple's */
Additions to Chapter 2 of the OpenGL 1.4 Specification (OpenGL Operation)
None
Additions to Chapter 3 of the OpenGL 1.4 Specification (Rasterization)
In section 3.6.4, Rasterization of Pixel Rectangles, on page 102,
add the following to Table 3.8 (Packed pixel formats):
type Parameter GL Data Number of Matching
Token Name Type Components Pixel Formats
-------------- ------- ---------- -------------
UNSIGNED_SHORT_8_8_MESA ushort 3 YCBCR_422_MESA
UNSIGNED_SHORT_8_8_REV_MESA ushort 3 YCBCR_422_MESA
In section 3.6.4, Rasterization of Pixel Rectangles, on page 102,
add the following to Table 3.10 (UNSIGNED_SHORT formats):
UNSIGNED_SHORT_8_8_MESA:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
+-------------------------------+-------------------------------+
| 1st | 2nd |
+-------------------------------+-------------------------------+
UNSIGNED_SHORT_8_8_REV_MESA:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
+-------------------------------+-------------------------------+
| 2nd | 1st |
+-------------------------------+-------------------------------+
In section 3.6.4, Rasterization of Pixel Rectangles, on page 102,
add the following to Table 3.12 (Packed pixel fiedl assignments):
First Second Third Fourth
Format Element Element Element Element
------ ------- ------- ------- -------
YCBCR_422_MESA luminance chroma
In section 3.8.1, Texture Image Specification, on page 125, add
another item to the list of TexImage2D and TexImage3D equivalence
exceptions:
* The value of internalformat and format may be YCBCR_MESA to
indicate that the image data is in YCbCr format. type must
be either UNSIGNED_SHORT_8_8_MESA or UNSIGNED_SHORT_8_8_REV_MESA
as seen in tables 3.8 and 3.10. Table 3.12 describes the mapping
between Y and Cb/Cr to the components.
If NV_texture_rectangle is supported target may also be
TEXTURE_RECTANGLE_NV or PROXY_TEXTURE_RECTANGLE_NV.
All pixel transfer operations are bypassed. The texture is stored as
YCbCr, not RGB. Queries of the texture's red, green and blue component
sizes will return zero.
In section 3.8.1, Texture Image Specification, on page 126, add
another item to the list of TexImage1D and TexImage2D equivalence
exceptions:
* The value of internalformat and format can not be YCBCR_MESA.
In section 3.8.2, Alternate Texture Image Specification Commands, on
page 129, insert this paragraph after the first full paragraph on the
page:
"If the internal storage format of the image being updated by
TexSubImage2D is YCBCR_MESA then format must be YCBCR_MESA.
The error INVALID_OPERATION will be generated otherwise."
Additions to Chapter 4 of the OpenGL 1.4 Specification (Per-Fragment
Operations and the Frame Buffer)
None
Additions to Chapter 5 of the OpenGL 1.4 Specification (Special Functions)
None
Additions to Chapter 6 of the OpenGL 1.4 Specification (State and
State Requests)
None
Additions to Appendix A of the OpenGL 1.4 Specification (Invariance)
None
Additions to the AGL/GLX/WGL Specifications
None
GLX Protocol
None
Errors
INVALID_ENUM is generated by TexImage2D if <internalFormat> is
MESA_YCBCR but <format> is not MESA_YCBCR.
INVALID_ENUM is generated by TexImage2D if <format> is MESA_YCBCR but
<internalFormat> is not MESA_YCBCR.
INVALID_VALUE is generated by TexImage2D if <format> is MESA_YCBCR and
<internalFormat> is MESA_YCBCR and <border> is not zero.
INVALID_OPERATION is generated by TexSubImage2D if the internal image
format is YCBCR_MESA and format is not YCBCR_MESA.
INVALID_OPERATION is generated by CopyTexSubImage2D if the internal
image is YCBCR_MESA.
New State
Edit table 6.16 on page 231: change the type of TEXTURE_INTERNAL_FORMAT
from n x Z42 to n x Z43 to indicate that internal format may also be
YCBCR_MESA.
Revision History
20 September 2002 - Initial draft

View File

@@ -1,102 +1,65 @@
Mesa-4.0.3 BeOS R5 driver patch
Version alpha v0.3
Mesa / BeOS Information
HOW TO BUILD:
1) You need gcc 2.95.3 to be installed:
http://www.bebits.com/app/2157
Check your installed gcc version by running this command from a Terminal:
gcc -v
2) Download Mesa-4.0.3 sources
http://prdownloads.sourceforge.net/mesa3d/MesaLib-4.0.3.tar.gz?download
Introduction
3) Extract official 4.0.3 sources code somewhere
Mesa 3.1 features a new driver for the BeOS. The new driver implements
a clone of the BGLView class. This class, derived from BView, allows
OpenGL rendering into a BeOS window.
4) Then, extract the BeOS driver patch at same place. This will
overwrite modified sources and add BeOS-specific ones.
Any application which uses the BGLView should be able to use Mesa
instead of Be's OpenGL without changing any code.
5) Open a new Terminal window:
$ cd /path/to/Mesa-4.0.3/src
$ make -f Makefile.BeOS-R5
Since Be's OpenGL implementation (as of R4) is basically just the
SGI sample implementation, it's pretty slow. You'll see that Mesa
is considerably faster.
6) Take a cup of coffee!
7) When done, you should find a obj.x86/libGL.so
8) To test this library as a Be Inc's one:
- rename /boot/beos/system/lib/libGL.so into libGL.so.r5
- put/copy obj.x86/libGL.so file into /boot/home/config/lib directory
- run GLTeapot...
Source Code
To see more information, run your(s) GL app(s) from Terminal:
$ export MESA_INFO=1
$ export MESA_DEBUG=1
$ myGLapp
MMX cpu detected.
Not testing OS support for SSE, leaving enabled.
SSE cpu detected.
Mesa GL_VERSION = 1.2 Mesa 4.0.3
Mesa GL_RENDERER = BGLView
Mesa GL_VENDOR = Brian Paul
Mesa GL_EXTENSIONS = GL_ARB_imaging GL_ARB_multitexture
[...]
GL_SGIX_shadow GL_SGIX_shadow_ambient
Mesa thread-safe: NO
Mesa x86-optimized: YES
Mesa sparc-optimized: NO
The source code for the driver is in Mesa-3.1/src/BeOS/GLView.cpp
It's not 100% finished at this time but many GLUT-based demos are
working. No optimizations have been made at this time.
BUILD ISSUES:
- If the build stop on math/m_*.c files, you're not using gcc 2.95.3.
- The Makefile.BeOS-R5 is set currently to build a non-debug x86/mmx/sse/3dnow optimized libGL.so.
It's a modified BeOS standard makefile, so editing it to follow your needs should be easy...
- NASM support instead of built-in gcc assembler (GAS) is not supported yet...
- "Mesa thread-safe: NO" is correct: the Mesa multithread support don't allow to share a gl context
between any thread, only give you one thread <-> one context, which is inaccurate under BeOS...
KNOWN LIMITATIONS & BUGS:
- BeOS driver only support software rendition ATM
- No BDirectWindow support yet, too. GLLife will not work for this reason.
- 3dnow support untested
- GLTeapot: object mouse control don't work
- GLTeapot: window resizing don't work
- many others: ALPHA VERSION, remember.
Compiling
In the Mesa-3.x directory type "make -f Makefile.X11 beos-r4".
When it finishes the libMesaGL.so and libMesaGLU.so libraries for
BeOS will be in the Mesa-3.x/lib/ directory.
Example Programs
Look in the Mesa-3.x/BeOS/ directory for one or two BGLView demo
programs. They should have been compiled along with the Mesa
library.
GLUT
A version of GLUT 2.5 for BeOS can be found in src-glut.beos/.
The original distribution can be obtained from
http://home.beoscentral.com/jehamby/Glut-3.5-x86.zip
This is a special version of GLUT adapted for the BeOS. I don't
believe Mark Kilgard's normal GLUT distribution includes BeOS
support.
It seems that you have to recompile GLUT with libMesaGL.so instead
of libGL.so in order for everything to work. I'm not sure why.
Special Features
Mesa's implementation of the BGLView class has an extra member
function: CopySubBufferMESA(). It basically works like SwapBuffers()
but it only copies a sub region from the back buffer to the front
buffer. This is a useful optimization for some applications.
If you use this method in your code be sure that you check at runtime
that you're actually using Mesa (with glGetString) so you don't
cause a fatal error when running with Be's OpenGL.
Work Left To Do
Color index mode is not implemented yet.
Reading pixels from the front buffer not implemented yet.
There is also a BGLScreen class in BeOS for full-screen OpenGL
rendering. This should also be implemented for Mesa.
Old BeOS Driver
Mesa 2.6 had an earlier BeOS driver. It was based on Mesa's Off-screen
rendering interface, not BGLView. If you're interested in the older
driver you should get Mesa 2.6.
BeOS and Glide
Mesa 3.0 supported the 3Dfx/Glide library on Beos. Download Mesa 3.0
if interested. Ideally, the 3Dfx/Glide support should be updated to
work with the new Mesa 3.1 BGLView implementation.
The Glide library hasn't been updated for BeOS R4, to my knowledge, as
of February, 1999.
----------------------------------------------------------------------
$Id: README.BEOS,v 1.6 1999/11/27 01:40:40 brianp Exp $
philippe.houdoin@free.fr

211
docs/README.DJ Normal file
View File

@@ -0,0 +1,211 @@
Mesa 4.0 DOS/DJGPP Port v1.1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Description:
~~~~~~~~~~~~
Well, guess what... this is the DOS port of Mesa 4.0.4, for DJGPP fans... Whoa!
The driver has its origins in ddsample.c, written by Brian Paul and found by me
in Mesa 3.4.2.
Legal:
~~~~~~
Mesa copyright applies, provided this package is used within Mesa. For anything
else, see GPL.
Installation:
~~~~~~~~~~~~~
Unzip and type:
make -f Makefile.DJ [OPTIONS...]
Available options:
Environment variables:
CPU optimize for the given processor.
default = k6
BIG_OPT=1 crazy optimizations; not very useful, though...
default = no
GLIDE absolute path to Glide library; used with FX.
default = $(TOP)/include/glide3
FX=1 build for 3dfx Glide3; use it if you have the Glide
SDK (designed for your platform), and, of course, a
3dfx card... Note that this disables compilation of
actual DMesa code, as Glide does all the stuff!
default = no
HAVE_X86=1 optimize for i386.
default = no
HAVE_MMX=1 MMX instructions; use only if you assembler/compiler
supports MMX instruction set; backwards compatibility
with older processors is still preserved.
default = no
HAVE_SSE=1 (see HAVE_MMX)
default = no
HAVE_3DNOW=1 (see HAVE_MMX)
default = no
Targets:
all: build everything
libgl: build GL
libglu: build GLU
libglut: build GLUT
clean: remove object files
realclean: remove all generated files
Tested on:
CPU: K6-2 (CXT) @500(412.5) MHz
Mainboard: ViA Apollo VP2/97 w/ 128 MB SDRAM
Video card: PowerColor Evil King3 (Voodoo3 3000) w/ 16384 kB SDRAM
DJGPP: djdev 2.03 + gcc v3.1 + make v3.79.1
FAQ:
~~~~
1. Compilation
Q) I tried to run `make' and it exits because `gcc' complains it cannot find
some stupid file.
A) You need LFN support.
A) When compiling for Glide (FX=1), pay attention to Glide path.
2. Dynamic modules
Q) What are you mumbling about dynamic modules?
A) You must have the DXE2 package (available on SimTel.Net, courtesy of
Andrew Zabolotny) installed in order to build the dynamic modules.
Q) I have DXE2, but I couln'd build the `dxe2gen.exe'.
Q) I built `dxe2gen.exe', but it doesn't do the job right.
A) There is a patched version on my web page.
Q) DXE2 modules give me headaches...
A) The DXE2 modules are not compulsory. The static libraries are still built
and you can use them in the old-fashioned, classic way. For example:
gcc -o OUT.exe IN.c -lglut -lglu -lgl
Q) Okay, DXE2 modules are built. How can I use them?
A) Usage of the dynamic modules requires three things:
- include DMESADXE.H in one of the sources, so references inside
dynamic modules will get resolved (or use `-include' directive).
- link against import libraries (libI*.a) and LIBDL.A, which will do
the dynamic linkage job for you
- put the DXEs somewhere along the library path (LD_LIBRARY_PATH) or
in the current directory
For example:
gcc -o OUT.exe -include dmesadxe.h IN.c -ligl -liglu -liglut -ldl
Q) The application dies with "Abort!" due to unresolved symbols.
A) This is bad! Extract the unresolved symbol list from this module. For
example:
dxe2gen --show-unres gl.dxe > u
Check DMESADXE.H; the symbols in `u' must either be present here or be
exported from another module that has to be loaded before your faulting
one. Then recompile.
3. Using Mesa for DJGPP
Q) Does this build work in Win9x?
A) Yes.
Q) Does it work under NT (W2k, XP) core?
A) Uh... probably not!
Q) I made a simple application and it does nothing. It exits right away. Not
even a blank screen.
A) The current version supports only RGB[A] modes, for it made no sense to
me to endorse color-index (aka palette) modes.
A) Single-buffered is not allowed at all. Until I can find a way to use
*REAL* hardware acceleration, it won't get implemented.
A) Another weird "feature" is that buffer width must be multiple of 4 (I'm a
lazy programmer and I found that the easiest way to keep buffer handling
at peak performance ;-).
Q) My demo doesn't display text. I know I used the glut font routines!
A) Then you probably use GLUT as a DXE. Well, there is no direct access to
variables due to the way DXE works. Read the documentation. The author of
GLUT took this into account for _WIN32 DLL's only; I don't want to modify
his headers. The only workaround is to link GLUT the old way :-(
Q) The DJGPP port of Mesa is so SLOOOW! The Win32 OpenGL performs so much
better...
A) Is that a question? If you have a Voodoo3/Banshee card, you're lucky. The
Glide port is on my web page. If you haven't, sorry; everything is done
in software. Suggestions?
Q) I have a super/mega/ultra monitor and all you can do is 60Hz? My eyes are
leaking from the orbits...
A) If you were compiling for Glide, see Glide info. If not, be aware that
refresh rate control works only for VESA 3.0. The environment variable
DMESA_REFRESH sets the default screen refresh. For example:
set DMESA_REFRESH=75
libGLUT (the toolkit):
~~~~~~~~~~~~~~~~~~~~~~
Well, this "skeletal" GLUT implementation is not mine. Thanks should go to
Bernhard Tschirren, Mark Kilgard, Brian Paul and probably others (or probably
not ;-). I only changed it to be self-standing (Allegro-free). The keyboard,
mouse and timer drivers were inspired from an old project of mine (D3Xl) and
fixed with many Allegro "infusions"; I deeply thank to Shawn Hargreaves et co.
My keyboard driver used only scancodes, but since GLUT requires ASCII values
for keys, I borrowed the translation tables (and maybe more) from Allegro.
Ctrl-Alt-Del (plus Ctrl-Alt-End, for Windows users) will shut down the GLUT
engine unconditionally: it will raise SIGINT, which in turn will call the
destructors (let's hope), thus cleaning up your/my mess ;-) NB: since the
DJGPP guys ensured signal handlers won't go beyond program's space (and since
dynamic modules shall) the SIGINT can't be hooked (well, it can, but it is
useless), therefore you must live with the 'Exiting due to signal SIGINT'
message...
The mouse driver is far from complete (lack of positioning, drawing, etc),
but is enough to make almost all the demos work.
The timer is pretty versatile for it supports multiple timers with different
frequencies. It may not be the most accurate timer in the known universe, but
I think it's OK. Take this example: you have timer A with a very high rate,
and then you have timer B with very low rate compared to A; now, A ticks OK,
but timer B will probably loose precision!
As an addition, stdout and stderr are redirected and dumped upon exit. This
means that printf can be safely called during graphics, but all messages come
in bulk! A bit of a hack, I know, but I think it's better than to miss them
at all. "Borrowed" from RHIDE (Robert Hoehne) or SETEDIT (Salvador Eduardo
Tropea)... I'm not sure.
Window creating defaults: 640x480x16 at (0,0), 8-bit stencil, 16-bit accum.
However, the video mode is chosen in such a way that first window will fit.
History:
~~~~~~~~
v1.0 mar-2002 initial release
v1.1 sep-2002 + added 3dfx Glide3 support
+ added refresh rate control
+ added fonts in glut
* lots of minor changes
Contact:
~~~~~~~~
Name: Borca Daniel
E-mail: dborca@yahoo.com
WWW: http://www.geocities.com/dborca/

View File

@@ -1,12 +1,13 @@
File: docs/README.WIN32
Last updated: Oct 15, 2001 - Karl Schultz - kschultz@users.sourceforge.net
Last updated: Aug 15, 2002 - Karl Schultz - kschultz@users.sourceforge.net
Quick Start
If you have Microsoft Visual C++ 6.0 installed, simply go to the top directory
of the Mesa distribution and type 'nmake -f Makefile.win NODEBUG=1' for
an optimized build.
an optimized build. Note that you may have to run ...VC98/BIN/VCVARS32.BAT
to set up the appropriate compiler environment variables.
Details and Notes
@@ -17,9 +18,12 @@ Details and Notes
demos a handful of demo executables.
- After building, you can copy the above DLL files to a place in your PATH
or to the demos directory if you just want to give the demos a try.
The DLL and LIB files are copied to the ./lib directory. The makefile
creates this directory if it does not already exist.
such as $SystemRoot/SYSTEM32. If you don't like putting things in a
system directory, place them in the same directory as the executable(s).
For example, you can copy the DLL files to the demos directory if you
just want to run the demos. The build process places the DLL and LIB files
in the ./lib directory. The makefile creates this directory if it does
not already exist.
- The make targets 'clean' and 'clobber' will remove objects and libraries.
But the files in ./lib are never cleaned.
@@ -52,10 +56,7 @@ Details and Notes
difficult to modify the makefiles to generate them.
- The si-glu sources are used to build the GLU libs. This was done
mainly to get the better tessellator code. However the C++ NURBS
code is not built. If you need NURBS, consider modifying the
makefiles to build the C++ code or try to build the older GLU
code in src-glu.
mainly to get the better tessellator code.
- The osmesa driver builds and should work on Windows as well as
any other platform.
@@ -68,11 +69,11 @@ Details and Notes
paths for the rasterizers. See src/osmesa/osmesa.c for some good
examples.
- There is DirectDraw support in the Windows driver, but I do not
know if it compiles or works. If you have an application that
does not draw much in a frame, but needs a higher framerate, then
it may pay to turn on the DirectDraw code, since DD often performs
the off-screen to on-screen blit faster than GDI.
- There is DirectDraw support in the Windows driver, updated by
Daniel Slater. You'll need to uncomment the #define DDRAW line
in src/Windows/wmesadef.h and add ddraw.lib to the list of libraries
in src/Makefile.win. On some systems, you will acheive significantly
higher framerates with DirectDraw.
- Some of the more specialized code like FX drivers, stereo, and
parallel support isn't compiled or tested. I left much of this

View File

@@ -1,5 +1,5 @@
Mesa 4.0 Unix/X11 Information
Mesa 4.0.4 Unix/X11 Information
@@ -25,7 +25,7 @@ There are two ways to compile Mesa on Unix/X11 systems:
The top-level makefile will execute the makefiles in a number of sub-
directories. When finished, the Mesa libraries will be in the Mesa-4.0/lib/
directories. When finished, the Mesa libraries will be in the Mesa-4.0.4/lib/
directory. A few GLUT demos in the demos/ directory should be ready to run.
If you also downloaded and unpacked the demos there should be executables
@@ -323,4 +323,4 @@ Summary of X-related environment variables:
----------------------------------------------------------------------
$Id: README.X11,v 3.8 2001/09/23 16:10:02 brianp Exp $
$Id: README.X11,v 3.8.2.4 2002/09/03 17:50:21 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.4.1 2002/03/23 02:36:52 brianp Exp $

22
docs/RELNOTES-4.0.1 Normal file
View File

@@ -0,0 +1,22 @@
Mesa 4.0.1 release notes
December 17, 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 4.0.1 only contains bug fixes since version 4.0.
See the docs/VERSIONS file for the list of bug fixes.
----------------------------------------------------------------------
$Id: RELNOTES-4.0.1,v 1.1.2.2 2001/12/17 19:43:38 brianp Exp $

50
docs/RELNOTES-4.0.2 Normal file
View File

@@ -0,0 +1,50 @@
Mesa 4.0.2 release notes
April 2, 2002
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 4.0.2 only contains bug fixes and a new DOS driver since version 4.0.1.
See the docs/VERSIONS file for the list of bug fixes.
Device Drivers
--------------
Mesa advertises itself as either OpenGL 1.2 or OpenGL 1.3 depending on the
device driver. If the driver enables all the ARB extensions which are part
of OpenGL 1.3 then glGetString(GL_VERSION) will return "1.3". Otherwise,
it'll return "1.2".
A number of Mesa's software drivers haven't been actively maintained for
some time. We rely on volunteers to maintain many of the drivers.
Here's the current status of all included drivers:
Driver Status
---------------------- ---------------------
XMesa (Xlib) implements OpenGL 1.3
OSMesa (off-screen) implements OpenGL 1.3
FX (3dfx Voodoo1/2) implements OpenGL 1.3
SVGA implements OpenGL 1.3
Wind River UGL implements OpenGL 1.3
Windows/Win32 implements OpenGL 1.3
DOS/DJGPP implements OpenGL 1.3 (new in Mesa 4.0.2)
GGI needs updating
BeOS needs updating
Allegro needs updating
D3D needs updating
----------------------------------------------------------------------
$Id: RELNOTES-4.0.2,v 1.1.2.3 2002/04/01 16:54:11 brianp Exp $

52
docs/RELNOTES-4.0.3 Normal file
View File

@@ -0,0 +1,52 @@
Mesa 4.0.3 release notes
June 25, 2002
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 4.0.3 basically just contains bug fixes version 4.0.2.
See the docs/VERSIONS file for the list of bug fixes.
The GGI driver has been updated, thanks to Filip Spacek.
Device Drivers
--------------
Mesa advertises itself as either OpenGL 1.2 or OpenGL 1.3 depending on the
device driver. If the driver enables all the ARB extensions which are part
of OpenGL 1.3 then glGetString(GL_VERSION) will return "1.3". Otherwise,
it'll return "1.2".
A number of Mesa's software drivers haven't been actively maintained for
some time. We rely on volunteers to maintain many of the drivers.
Here's the current status of all included drivers:
Driver Status
---------------------- ---------------------
XMesa (Xlib) implements OpenGL 1.3
OSMesa (off-screen) implements OpenGL 1.3
FX (3dfx Voodoo1/2) implements OpenGL 1.3
SVGA implements OpenGL 1.3
Wind River UGL implements OpenGL 1.3
Windows/Win32 implements OpenGL 1.3
DOS/DJGPP implements OpenGL 1.3 (new in Mesa 4.0.2)
GGI implements OpenGL 1.3
BeOS needs updating
Allegro needs updating
D3D needs updating
----------------------------------------------------------------------
$Id: RELNOTES-4.0.3,v 1.1.2.3 2002/06/24 20:44:58 brianp Exp $

View File

@@ -1,4 +1,4 @@
$Id: VERSIONS,v 1.74 2001/10/22 22:45:18 brianp Exp $
$Id: VERSIONS,v 1.73.2.41 2002/10/02 17:36:59 brianp Exp $
Mesa Version History
@@ -899,8 +899,114 @@ Mesa Version History
- fixed 3DNow! code to not read past end of arrays (Andrew Lewycky)
4.1 Month, ??, 2002
4.0.1 December 17, 2001
New:
-
- better sub-pixel sample positions for AA triangles (Ray Tice)
- slightly faster blending for (GL_ZERO, GL_ONE) and (GL_ONE, GL_ZERO)
Bug fixes:
-
- added missing break statements in glGet*() for multisample cases
- fixed uninitialized hash table mutex bug (display lists / texobjs)
- fixed bad teximage error check conditional (bug 476846)
- fixed demos readtex.c compilation problem on Windows (Karl Schultz)
- added missing glGet() query for GL_MAX_TEXTURE_LOD_BIAS_EXT
- silence some compiler warnings (gcc 2.96)
- enable the #define GL_VERSION_1_3 in GL/gl.h
- added GL 1.3 and GLX 1.4 entries to gl_mangle.h and glx_mangle.h
- fixed glu.h typedef problem found with MSDev 6.0
- build libGL.so with -Bsymbolic (fixes bug found with Chromium)
- added missing 'const' to glXGetContextIDEXT() in glxext.h
- fixed a few glXGetProcAddress() errors (texture compression, etc)
- fixed start index bug in compiled vertex arrays (Keith)
- fixed compilation problems in src/SPARC/glapi_sparc.S
- fixed triangle strip "parity" bug found in VTK medical1 demo (Keith)
- use glXGetProcAddressARB in GLUT to avoid extension linking problems
- provoking vertex of flat-shaded, color-index triangles was wrong
- fixed a few display list bugs (GLUT walker, molecule, etc) (Keith)
- glTexParameter didn't flush the vertex buffer (Ray Tice)
- feedback attributes for glDraw/CopyPixels and glBitmap were wrong
- fixed bug in normal length caching (ParaView lighting bug)
- fixed separate_specular color bug found in Chimera (18 Dec 2001)
4.0.2 April 2, 2002
New:
- New DOS (DJGPP) driver written by Daniel Borca
- New driver interface functions for TCL drivers (such as Radeon DRI)
- GL_RENDERER string returns "Mesa Offscreen16" or "Mesa Offscreen32"
if using deep color channels
- latest GL/glext.h and GL/glxext.h headers from SGI
Bug fixes:
- GL_BLEND with non-black texture env color wasn't always correct
- GL_REPLACE with GL_RGB texture format wasn't always correct (alpha)
- glTexEnviv( pname != GL_TEXTURE_ENV_COLOR ) was broken
- glReadPixels was sometimes mistakenly clipped by the scissor box
- glDraw/ReadPixels didn't catch all the errors that they should have
- Fixed 24bpp rendering problem in Windows driver (Karl Schultz)
- 16-bit GLchan mode fixes (m_trans_tmp.h, s_triangle.c)
- Fixed 1-bit float->int conversion bug in glDrawPixels(GL_DEPTH_COMP)
- glColorMask as sometimes effecting glXSwapBuffers()
- fixed a potential bug in XMesaGarbageCollect()
- N threads rendering into one window didn't work reliably
- glCopyPixels didn't work for deep color channels
- improved 8 -> 16bit/channel texture image conversion (Gerk Huisma)
- glPopAttrib() didn't correctly restore user clip planes
- user clip planes failed for some perspective projections (Chromium)
Known bugs:
- mipmap LOD computation
4.0.3 June 25, 2002
New:
- updated GL/glext.h file (version 15)
- corrected MMX blend code (Jose Fonseca)
- support for software-based alpha planes in Windows driver
- updated GGI driver (Filip Spacek)
Bug fixes:
- glext.h had wrong values for GL_DOT3_RGB[A]_EXT tokens
- OSMesaMakeCurrent() didn't recognize buffer size changes
- assorted conformance fixes for 16-bit/channel rendering
- texcombine alpha subtraction mode was broken
- fixed lighting bug with non-uniform scaling and display lists
- fixed bug when deleting shared display lists
- disabled SPARC cliptest assembly code (Mesa bug 544665)
- fixed a couple Solaris compilation/link problems
- blending clipped glDrawPixels didn't always work
- glGetTexImage() didn't accept packed pixel types
- glPixelMapu[is]v() could explode given too large of pixelmap
- glGetTexParameter[if]v() didn't accept GL_TEXTURE_MAX_ANISOTROPY_EXT
- glXCopyContext() could lead to segfaults
- glCullFace(GL_FRONT_AND_BACK) didn't work (bug 572665)
Changes:
- lots of C++ (g++) code clean-ups
- lots of T&L updates for the Radeon DRI driver
Known bugs:
- mipmap LOD computation (fixed for Mesa 4.1)
4.0.4 October 3, 2002
New:
- GL_NV_texture_rectangle extension
- updated glext.h header (version 17)
- updated DOS driver (Daniel Borca)
- updated BeOS R5 driver (Philippe Houdoin)
- added GL_IBM_texture_mirror_repeat
- glxinfo now takes -l option to print interesting OpenGL limits info
- GL_MESA_ycbcr_texture extension
- GL_APPLE_client_storage extension (for some DRI drivers only)
- GL_MESA_pack_invert extension
Bug fixes:
- fixed GL_LINEAR fog bug by adding clamping
- fixed FP exceptions found using Alpha CPU
- 3dfx MESA_GLX_FX=window (render to window) didn't work
- fixed memory leak in wglCreateContest (Karl Schultz)
- define GLAPIENTRY and GLAPI if undefined in glu.h
- wglGetProcAddress didn't handle all API functions
- when testing for OpenGL 1.2 vs 1.3, check for GL_ARB_texture_cube_map
- removed GL_MAX_CONVOLUTION_WIDTH/HEIGHT from glGetInteger/Float/etc()
- error checking in compressed tex image functions had some glitches
- fixed AIX compile problem in src/config.c
- glGetTexImage was using pixel unpacking instead of packing params
- auto-mipmap generation for cube maps was incorrect
Changes:
- max texture units reduced to six to accomodate texture rectangles
- removed unfinished GL_MESA_sprite_point extension code

77
include/GL/dmesa.h Normal file
View File

@@ -0,0 +1,77 @@
/*
* Mesa 3-D graphics library
* Version: 4.0
*
* Copyright (C) 1999 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
* BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/*
* DOS/DJGPP device driver v1.0 for Mesa 4.0
*
* Copyright (C) 2002 - Borca Daniel
* Email : dborca@yahoo.com
* Web : http://www.geocities.com/dborca
*/
#ifndef DMESA_included
#define DMESA_included
#define DMESA_MAJOR_VERSION 4
#define DMESA_MINOR_VERSION 0
typedef struct dmesa_context *DMesaContext;
typedef struct dmesa_visual *DMesaVisual;
typedef struct dmesa_buffer *DMesaBuffer;
#ifdef __cplusplus
extern "C" {
#endif
DMesaVisual DMesaCreateVisual (GLint width, GLint height, GLint colDepth,
GLboolean dbFlag, GLint depthSize,
GLint stencilSize,
GLint accumSize);
void DMesaDestroyVisual (DMesaVisual v);
DMesaBuffer DMesaCreateBuffer (DMesaVisual visual,
GLint xpos, GLint ypos,
GLint width, GLint height);
void DMesaDestroyBuffer (DMesaBuffer b);
DMesaContext DMesaCreateContext (DMesaVisual visual, DMesaContext share);
void DMesaDestroyContext (DMesaContext c);
GLboolean DMesaViewport (DMesaBuffer b,
GLint xpos, GLint ypos,
GLint width, GLint height);
GLboolean DMesaMakeCurrent (DMesaContext c, DMesaBuffer b);
void DMesaSwapBuffers (DMesaBuffer b);
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -1,10 +1,11 @@
/* $Id: ggimesa.h,v 1.3 2000/02/09 19:03:28 brianp Exp $ */
/* $Id: ggimesa.h,v 1.3.6.1 2002/06/10 15:16:16 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
* Mesa 3-D graphics library GGI bindings (GGIGL [giggle])
* Version: 4.0
* Copyright (C) 1995-2000 Brian Paul
* Copyright (C) 1998 Uwe Maurer
* Copyrigth (C) 2001 Filip Spacek
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -25,34 +26,59 @@
#ifndef GGIMESA_H
#define GGIMESA_H
#define GGIMESA_MAJOR_VERSION 3
#define GGIMESA_MINOR_VERSION 3
#define GGIMESA_MAJOR_VERSION 4
#define GGIMESA_MINOR_VERSION 0
#ifdef __cplusplus
extern "C" {
#endif
#include "GL/gl.h"
typedef struct ggi_mesa_context *GGIMesaContext;
#include <ggi/ggi.h>
#include "GL/gl.h"
typedef struct ggi_mesa_context *ggi_mesa_context_t;
extern GGIMesaContext GGIMesaCreateContext(void);
/*
* Initialize Mesa GGI extension
*/
int ggiMesaInit(void);
/*
* Clean up Mesa GGI exension
*/
int ggiMesaExit(void);
extern void GGIMesaDestroyContext(GGIMesaContext ctx);
/*
* Attach Mesa GGI extension to the visual 'vis'
*/
int ggiMesaAttach(ggi_visual_t vis);
/*
* Detach Mesa GGI extension from the visual 'vis'
*/
int ggiMesaDetach(ggi_visual_t vis);
extern void GGIMesaMakeCurrent(GGIMesaContext ctx);
int ggiMesaExtendVisual(ggi_visual_t vis, GLboolean alpha_flag,
GLboolean stereo_flag, GLint depth_size,
GLint stencil_size, GLint accum_red_size,
GLint accum_green_size, GLint accum_blue_size,
GLint accum_alpha_size, GLint num_samples);
extern GGIMesaContext GGIMesaGetCurrentContext(void);
/*
* Create a new context capable of displaying on the visual vis.
*/
ggi_mesa_context_t ggiMesaCreateContext(ggi_visual_t vis);
/*
* Destroy the context 'ctx'
*/
void ggiMesaDestroyContext(ggi_mesa_context_t ctx);
extern void GGIMesaSwapBuffers(void);
/*
* Make context 'ctx' the current context and bind it to visual 'vis'.
* Note that the context must have been created with respect to that visual.
*/
void ggiMesaMakeCurrent(ggi_mesa_context_t ctx, ggi_visual_t vis);
void ggiMesaSwapBuffers(void);
extern int GGIMesaSetVisual(GGIMesaContext ctx, ggi_visual_t vis,
GLboolean rgb_flag, GLboolean db_flag);
#ifdef __cplusplus
}

View File

@@ -1,10 +1,10 @@
/* $Id: gl.h,v 1.59 2001/09/23 16:06:13 brianp Exp $ */
/* $Id: gl.h,v 1.59.2.11 2002/09/21 17:12:10 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 4.0
* Version: 4.0.4
*
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
* Copyright (C) 1999-2002 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"),
@@ -63,6 +63,10 @@
# define GLAPIENTRY
#endif /* WIN32 / CYGWIN bracket */
#if (defined(__BEOS__) && defined(__POWERPC__)) || defined(__QUICKDRAW__)
# define PRAGMA_EXPORT_SUPPORTED 1
#endif
#if defined(_WIN32) && !defined(_WINGDI_) && !defined(_GNU_H_WINDOWS32_DEFINES) && !defined(OPENSTEP) && !defined(__CYGWIN__)
#include <gl/mesa_wgl.h>
#endif
@@ -84,7 +88,7 @@ extern "C" {
#define GL_VERSION_1_1 1
#define GL_VERSION_1_2 1
/*#define GL_VERSION_1_3 1 not yet */
#define GL_VERSION_1_3 1
#define GL_ARB_imaging 1
@@ -1912,7 +1916,8 @@ GLAPI void GLAPIENTRY glMultTransposeMatrixf( const GLfloat m[16] );
GLAPI void GLAPIENTRY glSampleCoverage( GLclampf value, GLboolean invert );
GLAPI void GLAPIENTRY glSamplePass( GLenum pass );
#if defined(GL_GLEXT_LEGACY)
/*
@@ -1992,14 +1997,45 @@ GLAPI void GLAPIENTRY glMultiTexCoord4ivARB(GLenum target, const GLint *v);
GLAPI void GLAPIENTRY glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
GLAPI void GLAPIENTRY glMultiTexCoord4svARB(GLenum target, const GLshort *v);
typedef void (GLAPIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum texture);
typedef void (GLAPIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v);
#endif /* GL_ARB_multitexture */
#if defined(GL_GLEXT_LEGACY)
/*
* 1. GL_EXT_abgr
*/
@@ -2372,8 +2408,6 @@ GLAPI void GLAPIENTRY glUnlockArraysEXT( void );
/*
* 197. GL_MESA_window_pos
*/
@@ -2488,21 +2522,50 @@ GLAPI void GLAPIENTRY glTracePointerRangeMESA( const GLvoid* first, const GLvoid
#endif /* GL_MESA_packed_depth_stencil */
/*
* ??. GL_MESA_sprite_point
*/
#ifndef GL_MESA_sprite_point
#define GL_MESA_sprite_point 1
#define GL_SPRITE_POINT_MESA 0x8757 /* XXX not finalized! */
#ifndef GL_MESA_ycbcr_texture
#define GL_MESA_ycbcr_texture 1
#endif
#define GL_YCBCR_MESA 0x8757
#define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA /* same as Apple */
#define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB /* same as Apple */
#endif /* GL_MESA_texture_ycbcr */
#ifndef GL_MESA_pack_invert
#define GL_MESA_pack_invert 1
#define GL_PACK_INVERT_MESA 0x8758
#endif /* GL_MESA_pack_invert */
#ifndef GL_APPLE_client_storage
#define GL_APPLE_client_storage 1
#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2
#endif /* GL_APPLE_client_storage */
#ifndef GL_APPLE_ycbcr_422
#define GL_APPLE_ycbcr_422 1
#define GL_YCBCR_422_APPLE 0x85B9
#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA
#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB
#endif /* GL_APPLE_ycbcr_422 */
/**********************************************************************
* Begin system-specific stuff
*/
#if defined(__BEOS__) || defined(__QUICKDRAW__)
#if defined(PRAGMA_EXPORT_SUPPORTED)
#pragma export off
#endif

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -36,6 +36,14 @@
#include <GL/gl.h>
#ifndef GLAPIENTRY
#define GLAPIENTRY
#endif
#ifndef GLAPI
#define GLAPI
#endif
#ifdef __cplusplus
extern "C" {
#endif
@@ -250,10 +258,10 @@ typedef struct GLUquadric GLUquadric;
typedef struct GLUtesselator GLUtesselator;
#endif
typedef struct GLUnurbs GLUnurbsObj;
typedef struct GLUquadric GLUquadricObj;
typedef struct GLUtesselator GLUtesselatorObj;
typedef struct GLUtesselator GLUtriangulatorObj;
typedef GLUnurbs GLUnurbsObj;
typedef GLUquadric GLUquadricObj;
typedef GLUtesselator GLUtesselatorObj;
typedef GLUtesselator GLUtriangulatorObj;
#define GLU_TESS_MAX_COORD 1.0e150

View File

@@ -1,10 +1,10 @@
/* $Id: glx.h,v 1.33 2001/09/24 14:15:58 brianp Exp $ */
/* $Id: glx.h,v 1.33.2.4 2002/09/20 17:36:33 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 4.0
* Version: 4.0.3
*
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
* Copyright (C) 1999-2002 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"),
@@ -172,8 +172,8 @@ extern "C" {
/*
* GLX 1.4 and later:
*/
#define GLX_SAMPLE_BUFFERS_SGIS 100000
#define GLX_SAMPLES_SGIS 100001
#define GLX_SAMPLE_BUFFERS 0x186a0 /*100000*/
#define GLX_SAMPLES 0x186a1 /*100001*/
@@ -297,7 +297,6 @@ extern void glXGetSelectedEvent( Display *dpy, GLXDrawable drawable,
extern void (*glXGetProcAddress(const GLubyte *procname))();
#ifndef GLX_GLXEXT_LEGACY
#include <GL/glxext.h>
@@ -453,6 +452,38 @@ extern void (*glXGetProcAddressARB(const GLubyte *procName))();
#endif /* GLX_GLXEXT_LEGACY */
/**
** The following aren't in glxext.h yet.
**/
/*
* ???. GLX_NV_vertex_array_range
*/
#ifndef GLX_NV_vertex_array_range
#define GLX_NV_vertex_array_range
extern void *glXAllocateMemoryNV(GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
extern void glXFreeMemoryNV(GLvoid *pointer);
typedef void * ( * PFNGLXALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
typedef void ( * PFNGLXFREEMEMORYNVPROC) (GLvoid *pointer);
#endif /* GLX_NV_vertex_array_range */
/*
* ???. GLX_MESA_agp_offset
*/
#ifndef GLX_MESA_agp_offset
#define GLX_MESA_agp_offset 1
extern GLuint glXGetAGPOffsetMESA(const GLvoid *pointer);
typedef GLuint (* PFNGLXGETAGPOFFSETMESAPROC) (const GLvoid *pointer);
#endif /* GLX_MESA_agp_offset */
#ifdef __cplusplus
}

View File

@@ -1,8 +1,8 @@
/* $Id: glx_mangle.h,v 1.1 1999/08/19 00:55:40 jtg Exp $ */
/* $Id: glx_mangle.h,v 1.1.1.1.8.2 2002/09/20 18:32:17 kschultz Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.0
* Version: 4.1
* Copyright (C) 1995-1998 Brian Paul
*
* This library is free software; you can redistribute it and/or
@@ -21,25 +21,6 @@
*/
/*
* $Log: glx_mangle.h,v $
* Revision 1.1 1999/08/19 00:55:40 jtg
* Initial revision
*
* Revision 3.3 1999/06/21 22:01:00 brianp
* added #ifndef GLX_MANGLE_H stuff, video sync extension functions
*
* Revision 3.2 1998/03/26 02:44:53 brianp
* removed ^M characters
*
* Revision 3.1 1998/03/17 02:41:19 brianp
* updated by Randy Frank
*
* Revision 3.0 1998/02/20 05:04:45 brianp
* initial rev
*
*/
#ifndef GLX_MANGLE_H
#define GLX_MANGLE_H
@@ -60,13 +41,133 @@
#define glXWaitGL mglXWaitGL
#define glXWaitX mglXWaitX
#define glXUseXFont mglXUseXFont
/* GLX 1.1 */
#define glXQueryExtensionsString mglXQueryExtensionsString
#define glXQueryServerString mglXQueryServerString
#define glXGetClientString mglXGetClientString
/* GLX 1.2 */
#define glXGetCurrentDisplay mglXGetCurrentDisplay
/* GLX 1.3 */
#define glXChooseFBConfig mglXChooseFBConfig
#define glXGetFBConfigAttrib mglXGetFBConfigAttrib
#define glXGetFBConfigs mglXGetFBConfigs
#define glXGetVisualFromFBConfig mglXGetVisualFromFBConfig
#define glXCreateWindow mglXCreateWindow
#define glXDestroyWindow mglXDestroyWindow
#define glXCreatePixmap mglXCreatePixmap
#define glXDestroyPixmap mglXDestroyPixmap
#define glXCreatePbuffer mglXCreatePbuffer
#define glXDestroyPbuffer mglXDestroyPbuffer
#define glXQueryDrawable mglXQueryDrawable
#define glXCreateNewContext mglXCreateNewContext
#define glXMakeContextCurrent mglXMakeContextCurrent
#define glXGetCurrentReadDrawable mglXGetCurrentReadDrawable
#define glXQueryContext mglXQueryContext
#define glXSelectEvent mglXSelectEvent
#define glXGetSelectedEvent mglXGetSelectedEvent
/* GLX 1.4 */
#define glXGetProcAddress mglXGetProcAddress
/*
* 41. GLX_SGI_video_sync
*/
#define glXGetVideoSyncSGI mglXGetVideoSyncSGI
#define glXWaitVideoSyncSGI mglXWaitVideoSyncSGI
/*
* 47. GLX_EXT_import_context
*/
#define glXFreeContextEXT mglXFreeContextEXT
#define glXGetContextIDEXT mglXGetContextIDEXT
#define glXGetCurrentDisplayEXT mglXGetCurrentDisplayEXT
#define glXImportContextEXT mglXImportContextEXT
#define glXQueryContextInfoEXT mglXQueryContextInfoEXT
/*
* 215. GLX_MESA_copy_sub_buffer
*/
#define glXCopySubBufferMESA mglXCopySubBufferMESA
/*
* 216. GLX_MESA_pixmap_colormap
*/
#define glXCreateGLXPixmapMESA mglXCreateGLXPixmapMESA
/*
* 217. GLX_MESA_release_buffers
*/
#define glXReleaseBuffersMESA mglXReleaseBuffersMESA
/*
* 218. GLX_MESA_set_3dfx_mode
*/
#define glXSet3DfxModeMESA mglXSet3DfxModeMESA
/*
* ARB 2. GLX_ARB_get_proc_address
*/
#define glXGetProcAddressARB mglXGetProcAddressARB
/**
** The following aren't in glxext.h yet.
**/
/*
* ???. GLX_NV_vertex_array_range
*/
#define glXAllocateMemoryNV mglXAllocateMemoryNV
#define glXFreeMemoryNV mglXFreeMemoryNV
/*
* ???. GLX_MESA_agp_offset
*/
#define glXGetAGPOffsetMESA mglXGetAGPOffsetMESA
/*
* Other extensions implemented and in glxext.h
*/
#define glXSwapIntervalSGI mglXSwapIntervalSGI
#define glXGetVideoSyncSGI mglXGetVideoSyncSGI
#define glXWaitVideoSyncSGI mglXWaitVideoSyncSGI
#define glXMakeCurrentReadSGI mglXMakeCurrentReadSGI
#define glXCushionSGI mglXCushionSGI
#define glXCreateGLXPixmapMESA mglXCreateGLXPixmapMESA
#define glXReleaseBuffersMESA mglXReleaseBuffersMESA
#define glXCopySubBufferMESA mglXCopySubBufferMESA
#define glXGetVideoSyncSGI mglXGetVideoSyncSGI
#define glXWaitVideoSyncSGI mglXWaitVideoSyncSGI
#define glXGetTransparentIndexSUN mglXGetTransparentIndexSUN
#define glXBindChannelToWindowSGIX mglXBindChannelToWindowSGIX
#define glXBindSwapBarrierSGIX mglXBindSwapBarrierSGIX
#define glXChannelRectSGIX mglXChannelRectSGIX
#define glXChannelRectSyncSGIX mglXChannelRectSyncSGIX
#define glXChooseFBConfigSGIX mglXChooseFBConfigSGIX
#define glXCreateContextWithConfigSGIX mglXCreateContextWithConfigSGIX
#define glXCreateGLXPbufferSGIX mglXCreateGLXPbufferSGIX
#define glXCreateGLXPixmapWithConfigSGIX mglXCreateGLXPixmapWithConfigSGIX
#define glXDestroyGLXPbufferSGIX mglXDestroyGLXPbufferSGIX
#define glXGetCurrentReadDrawableSGI mglXGetCurrentReadDrawableSGI
#define glXGetFBConfigAttribSGIX mglXGetFBConfigAttribSGIX
#define glXGetFBConfigFromVisualSGIX mglXGetFBConfigFromVisualSGIX
#define glXGetSelectedEventSGIX mglXGetSelectedEventSGIX
#define glXGetVisualFromFBConfigSGIX mglXGetVisualFromFBConfigSGIX
#define glXJoinSwapGroupSGIX mglXJoinSwapGroupSGIX
#define glXQueryChannelDeltasSGIX mglXQueryChannelDeltasSGIX
#define glXQueryChannelRectSGIX mglXQueryChannelRectSGIX
#define glXQueryGLXPbufferSGIX mglXQueryGLXPbufferSGIX
#define glXQueryMaxSwapBarriersSGIX mglXQueryMaxSwapBarriersSGIX
#define glXSelectEventSGIX mglXSelectEventSGIX
#endif

View File

@@ -42,12 +42,16 @@ extern "C" {
#ifndef APIENTRY
#define APIENTRY
#endif
#ifndef GLAPI
#define GLAPI extern
#endif
/*************************************************************/
/* Header file version number, required by OpenGL ABI for Linux */
/* glxext.h last updated 2001/09/26 */
#define GLX_GLXEXT_VERSION 3
/* glxext.h last updated 2002/03/22 */
/* Current version at http://oss.sgi.com/projects/ogl-sample/registry/ */
#define GLX_GLXEXT_VERSION 5
#ifndef GLX_VERSION_1_3
#define GLX_WINDOW_BIT 0x00000001
@@ -113,6 +117,9 @@ extern "C" {
#define GLX_SAMPLES 100001
#endif
#ifndef GLX_ARB_get_proc_address
#endif
#ifndef GLX_ARB_multisample
#define GLX_SAMPLE_BUFFERS_ARB 100000
#define GLX_SAMPLES_ARB 100001
@@ -276,7 +283,6 @@ extern "C" {
/*************************************************************/
#ifndef GLX_ARB_get_proc_address
/* XXX Added void parameter to silence many, many warnings (BrianP) */
typedef void (*__GLXextFuncPtr)(void);
#endif
@@ -348,6 +354,14 @@ typedef void ( * PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigne
typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask);
#endif
#ifndef GLX_VERSION_1_4
#define GLX_VERSION_1_4 1
#ifdef GLX_GLXEXT_PROTOTYPES
extern __GLXextFuncPtr glXGetProcAddress (const GLubyte *);
#endif /* GLX_GLXEXT_PROTOTYPES */
typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName);
#endif
#ifndef GLX_ARB_get_proc_address
#define GLX_ARB_get_proc_address 1
#ifdef GLX_GLXEXT_PROTOTYPES
@@ -356,6 +370,10 @@ extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *);
typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSARBPROC) (const GLubyte *procName);
#endif
#ifndef GLX_ARB_multisample
#define GLX_ARB_multisample 1
#endif
#ifndef GLX_SGIS_multisample
#define GLX_SGIS_multisample 1
#endif
@@ -413,13 +431,13 @@ typedef void ( * PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC) (Display *dpy, GLXVideoSou
#ifdef GLX_GLXEXT_PROTOTYPES
extern Display * glXGetCurrentDisplayEXT (void);
extern int glXQueryContextInfoEXT (Display *, GLXContext, int, int *);
extern GLXContextID glXGetContextIDEXT (GLXContext);
extern GLXContextID glXGetContextIDEXT (const GLXContext);
extern GLXContext glXImportContextEXT (Display *, GLXContextID);
extern void glXFreeContextEXT (Display *, GLXContext);
#endif /* GLX_GLXEXT_PROTOTYPES */
typedef Display * ( * PFNGLXGETCURRENTDISPLAYEXTPROC) (void);
typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display *dpy, GLXContext context, int attribute, int *value);
typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (GLXContext context);
typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (const GLXContext context);
typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display *dpy, GLXContextID contextID);
typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display *dpy, GLXContext context);
#endif
@@ -554,14 +572,33 @@ typedef Bool ( * PFNGLXSET3DFXMODEMESAPROC) (int mode);
#define GLX_SGIX_visual_select_group 1
#endif
#ifndef GLX_GLX_OML_swap_method
#define GLX_GLX_OML_swap_method 1
#ifndef GLX_OML_swap_method
#define GLX_OML_swap_method 1
#endif
#ifndef GLX_GLX_OML_sync_control
#define GLX_GLX_OML_sync_control 1
#if defined(__STDC_VERSION__)
#if __STDC_VERSION__ >= 199901L
/* Include ISO C99 integer types for OML_sync_control; need a better test */
#include <inttypes.h>
#ifndef GLX_OML_sync_control
#define GLX_OML_sync_control 1
#ifdef GLX_GLXEXT_PROTOTYPES
extern Bool glXGetSyncValuesOML (Display *, GLXDrawable, int64_t *, int64_t *, int64_t *);
extern Bool glXGetMscRateOML (Display *, GLXDrawable, int32_t *, int32_t *);
extern int64_t glXSwapBuffersMscOML (Display *, GLXDrawable, int64_t, int64_t, int64_t);
extern Bool glXWaitForMscOML (Display *, GLXDrawable, int64_t, int64_t, int64_t, int64_t *, int64_t *, int64_t *);
extern Bool glXWaitForSbcOML (Display *, GLXDrawable, int64_t, int64_t *, int64_t *, int64_t *);
#endif /* GLX_GLXEXT_PROTOTYPES */
typedef Bool ( * PFNGLXGETSYNCVALUESOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t *ust, int64_t *msc, int64_t *sbc);
typedef Bool ( * PFNGLXGETMSCRATEOMLPROC) (Display *dpy, GLXDrawable drawable, int32_t *numerator, int32_t *denominator);
typedef int64_t ( * PFNGLXSWAPBUFFERSMSCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder);
typedef Bool ( * PFNGLXWAITFORMSCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t *ust, int64_t *msc, int64_t *sbc);
typedef Bool ( * PFNGLXWAITFORSBCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_sbc, int64_t *ust, int64_t *msc, int64_t *sbc);
#endif
#endif /* C99 version test */
#endif /* STDC test */
#ifdef __cplusplus
}

View File

@@ -1,10 +1,10 @@
/* $Id: osmesa.h,v 1.9 2001/09/23 16:06:13 brianp Exp $ */
/* $Id: osmesa.h,v 1.9.2.1 2002/04/26 13:53:09 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 4.0
* Version: 4.0.3
*
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
* Copyright (C) 1999-2002 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"),
@@ -64,7 +64,7 @@ extern "C" {
#define OSMESA_MAJOR_VERSION 4
#define OSMESA_MINOR_VERSION 0
#define OSMESA_PATCH_VERSION 0
#define OSMESA_PATCH_VERSION 3

View File

@@ -1,4 +1,4 @@
/* $Id: wmesa.h,v 1.1 1999/08/19 00:55:40 jtg Exp $ */
/* $Id: wmesa.h,v 1.1.1.1.8.1 2002/04/23 18:24:41 kschultz Exp $ */
/*
* Mesa 3-D graphics library
@@ -24,8 +24,17 @@
/*
* $Log: wmesa.h,v $
* Revision 1.1 1999/08/19 00:55:40 jtg
* Initial revision
* Revision 1.1.1.1.8.1 2002/04/23 18:24:41 kschultz
* Fix up alpha buffer handling for Windows.
* - add two new Pixel Format Descriptors that do not have alpha bits to
* mirror the two that do.
* - add logic to wglChoosePixelFormat to match PFD's with respect to alpha.
* - Create/clear software alpha buffer as required.
* Now a wgl or GLUT program can control the creation of a software alpha
* buffer via the PFD or GLUT parms, respectively.
*
* Revision 1.1.1.1 1999/08/19 00:55:40 jtg
* Imported sources
*
* Revision 3.2 1999/01/03 02:54:45 brianp
* updated per Ted Jump
@@ -101,13 +110,17 @@ typedef struct wmesa_context *WMesaContext;
* GL_FALSE = color index mode
* db_flag - GL_TRUE = double-buffered,
* GL_FALSE = single buffered
* alpha_flag - GL_TRUE = create software alpha buffer,
* GL_FALSE = no software alpha buffer
*
* Note: Indexed mode requires double buffering under Windows.
*
* Return: a WMesa_context or NULL if error.
*/
extern WMesaContext WMesaCreateContext(HWND hWnd,HPALETTE* pPal,
GLboolean rgb_flag,GLboolean db_flag);
GLboolean rgb_flag,
GLboolean db_flag,
GLboolean alpha_flag);
/*

View File

@@ -1,10 +1,10 @@
/* $Id: xmesa.h,v 1.12 2001/09/23 16:06:13 brianp Exp $ */
/* $Id: xmesa.h,v 1.12.2.2 2002/04/26 13:53:09 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 4.0
* Version: 4.0.3
*
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
* Copyright (C) 1999-2003 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"),
@@ -365,6 +365,15 @@ extern GLboolean XMesaSetFXmode( GLint mode );
/*
* Reallocate the back/depth/stencil/accum/etc/ buffers associated with
* buffer <b> if its size has changed.
*
* New in Mesa 4.0.2
*/
extern void XMesaResizeBuffers( XMesaBuffer b );
#ifdef __cplusplus
}
#endif

View File

@@ -1,4 +1,4 @@
# $Id: Makefile.win,v 1.5 2001/10/04 19:13:36 kschultz Exp $
# $Id: Makefile.win,v 1.5.2.2 2002/04/15 22:14:09 kschultz Exp $
# Mesa 3-D graphics library
# Version: 3.5
@@ -67,34 +67,64 @@ SRCS = \
geartrain.c \
glinfo.c \
gloss.c \
gltestperf.c \
glutfx.c \
isosurf.c \
lodbias.c \
morph3d.c \
teapot.c
multiarb.c \
occlude.c \
paltex.c \
pixeltex.c \
pointblast.c \
ray.c \
readpix.c \
reflect.c \
renormal.c \
shadowtex.c \
spectex.c \
stex3d.c \
teapot.c \
terrain.c \
tessdemo.c \
texcyl.c \
texdown.c \
texenv.c \
texobj.c \
trispd.c \
tunnel.c \
tunnel2.c \
winpos.c
CXXSRCS = \
rain.cxx
OSMESASRCS = osdemo.c
IPERSSRCS = ipers.c
IPERSEXES = $(IPERSSRCS:.c=.exe)
!include "../mesawin32.mak"
##### TARGETS #####
clean::
realclean::
clobber::
@del readtex.c readtex.h
targets: readtex.c readtex.h $(PROGS)
# remove comments when we get non-osmesa pgm working
$(EXES) : $*.obj
$(EXES) : $*.obj readtex.c readtex.h
@echo $@
$(link) -out:$@ $** /LIBPATH:$(LIBDIR) $(LIBS)
$(link) -out:$@ $* /LIBPATH:$(LIBDIR) $(LIBS)
$(OSMESAEXES) : $*.obj
@echo $@
$(link) $(lcommon) -out:$@ $** /LIBPATH:$(LIBDIR) $(LIBS) $(EXTRALIBS)
$(link) $(lcommon) -out:$@ $* /LIBPATH:$(LIBDIR) $(LIBS) $(EXTRALIBS)
$(IPERSEXES) : $*.obj
@echo $@
$(link) -out:$@ $* /LIBPATH:$(LIBDIR) $(LIBS) winmm.lib
readtex.c:
@copy ../util/readtex.c .
-copy ..\util\readtex.c .
readtex.h:
@copy ../util/readtex.c .
-copy ..\util\readtex.h .

View File

@@ -1,4 +1,4 @@
/* $Id: drawpix.c,v 1.5 2000/12/24 22:53:54 pesco Exp $ */
/* $Id: drawpix.c,v 1.5.2.2 2002/09/13 18:15:09 brianp Exp $ */
/*
* glDrawPixels demo/test/benchmark
@@ -6,60 +6,6 @@
* Brian Paul September 25, 1997 This file is in the public domain.
*/
/*
* $Log: drawpix.c,v $
* Revision 1.5 2000/12/24 22:53:54 pesco
* * demos/Makefile.am (INCLUDES): Added -I$(top_srcdir)/util.
* * demos/Makefile.X11, demos/Makefile.BeOS-R4, demos/Makefile.cygnus:
* Essentially the same.
* Program files updated to include "readtex.c", not "../util/readtex.c".
* * demos/reflect.c: Likewise for "showbuffer.c".
*
*
* * Makefile.am (EXTRA_DIST): Added top-level regular files.
*
* * include/GL/Makefile.am (INC_X11): Added glxext.h.
*
*
* * src/GGI/include/ggi/mesa/Makefile.am (EXTRA_HEADERS): Include
* Mesa GGI headers in dist even if HAVE_GGI is not given.
*
* * configure.in: Look for GLUT and demo source dirs in $srcdir.
*
* * src/swrast/Makefile.am (libMesaSwrast_la_SOURCES): Set to *.[ch].
* More source list updates in various Makefile.am's.
*
* * Makefile.am (dist-hook): Remove CVS directory from distribution.
* (DIST_SUBDIRS): List all possible subdirs here.
* (SUBDIRS): Only list subdirs selected for build again.
* The above two applied to all subdir Makefile.am's also.
*
* Revision 1.4 2000/09/08 21:45:21 brianp
* added dither key option
*
* Revision 1.3 1999/10/28 18:23:29 brianp
* minor changes to Usage() function
*
* Revision 1.2 1999/10/21 22:13:58 brianp
* added f key to toggle front/back drawing
*
* Revision 1.1.1.1 1999/08/19 00:55:40 jtg
* Imported sources
*
* Revision 3.3 1999/03/28 18:18:33 brianp
* minor clean-up
*
* Revision 3.2 1998/11/05 04:34:04 brianp
* moved image files to ../images/ directory
*
* Revision 3.1 1998/02/22 16:43:17 brianp
* added a few casts to silence compiler warnings
*
* Revision 3.0 1998/02/14 18:42:29 brianp
* initial rev
*
*/
#include <stdio.h>
#include <stdlib.h>
@@ -287,7 +233,7 @@ static void Init( GLboolean ciMode )
if (ciMode) {
/* Convert RGB image to grayscale */
GLubyte *indexImage = malloc( ImgWidth * ImgHeight );
GLubyte *indexImage = (GLubyte *) malloc( ImgWidth * ImgHeight );
GLint i;
for (i=0; i<ImgWidth*ImgHeight; i++) {
int gray = Image[i*3] + Image[i*3+1] + Image[i*3+2];

View File

@@ -752,7 +752,7 @@ main(int ac, char **av)
glFogfv(GL_FOG_COLOR, fogcolor);
glFogf(GL_FOG_DENSITY, 0.1);
p = malloc(sizeof(part) * np);
p = (part *) malloc(sizeof(part) * np);
for (i = 0; i < np; i++)
setnewpart(&p[i]);

View File

@@ -11,7 +11,7 @@
#include <math.h>
#include <time.h>
#ifdef WIN32
#if defined (WIN32)|| defined(_WIN32)
#include <windows.h>
#include <mmsystem.h>
#endif

View File

@@ -1,4 +1,4 @@
/* $Id: isosurf.c,v 1.13 2001/10/04 19:14:26 kschultz Exp $ */
/* $Id: isosurf.c,v 1.13.2.2 2002/09/10 23:35:38 kschultz Exp $ */
/*
* Display an isosurface of 3-D wind speed volume.
@@ -32,6 +32,7 @@
#include <math.h>
#ifdef _WIN32
#include <windows.h>
#undef CLIP_MASK
#endif
#define GL_GLEXT_LEGACY
#include "GL/glut.h"
@@ -39,34 +40,36 @@
#include "readtex.c" /* I know, this is a hack. KW: me too. */
#define TEXTURE_FILE "../images/reflect.rgb"
#define LIT 0x1
#define UNLIT 0x2
#define REFLECT 0x10
#define POINT_FILTER 0x40
#define LINEAR_FILTER 0x80
#define GLVERTEX 0x100
#define DRAW_ELTS 0x4
#define DRAW_ARRAYS 0x200
#define ARRAY_ELT 0x400
#define LOCKED 0x800
#define UNLOCKED 0x8
#define IMMEDIATE 0x1000
#define DISPLAYLIST 0x2000000
#define SHADE_SMOOTH 0x2000
#define SHADE_FLAT 0x4000
#define TRIANGLES 0x8000
#define STRIPS 0x10000
#define POINTS 0x20000
#define USER_CLIP 0x40000
#define NO_USER_CLIP 0x80000
#define MATERIALS 0x100000
#define NO_MATERIALS 0x200000
#define FOG 0x400000
#define NO_FOG 0x800000
#define QUIT 0x1000000
#define GLINFO 0x4000000
#define STIPPLE 0x8000000
#define NO_STIPPLE 0x20
#define LIT 0x00000001
#define UNLIT 0x00000002
#define REFLECT 0x00000004
#define POINT_FILTER 0x00000008
#define LINEAR_FILTER 0x00000010
#define GLVERTEX 0x00000020
#define DRAW_ELTS 0x00000040
#define DRAW_ARRAYS 0x00000080
#define ARRAY_ELT 0x00000100
#define LOCKED 0x00000200
#define UNLOCKED 0x00000400
#define IMMEDIATE 0x00000800
#define DISPLAYLIST 0x00001000
#define SHADE_SMOOTH 0x00002000
#define SHADE_FLAT 0x00004000
#define TRIANGLES 0x00008000
#define STRIPS 0x00010000
#define POINTS 0x00020000
#define USER_CLIP 0x00040000
#define NO_USER_CLIP 0x00080000
#define MATERIALS 0x00100000
#define NO_MATERIALS 0x00200000
#define FOG 0x00400000
#define NO_FOG 0x00800000
#define QUIT 0x01000000
#define GLINFO 0x02000000
#define STIPPLE 0x04000000
#define NO_STIPPLE 0x08000000
#define POLYGON_FILL 0x10000000
#define POLYGON_LINE 0x20000000
#define LIGHT_MASK (LIT|UNLIT|REFLECT)
#define FILTER_MASK (POINT_FILTER|LINEAR_FILTER)
@@ -79,9 +82,10 @@
#define SHADE_MASK (SHADE_SMOOTH|SHADE_FLAT)
#define FOG_MASK (FOG|NO_FOG)
#define STIPPLE_MASK (STIPPLE|NO_STIPPLE)
#define POLYGON_MASK (POLYGON_FILL|POLYGON_LINE)
#define MAXVERTS 10000
static GLuint maxverts = MAXVERTS;
static GLint maxverts = MAXVERTS;
static float data[MAXVERTS][6];
static float compressed_data[MAXVERTS][6];
static float expanded_data[MAXVERTS*3][6];
@@ -144,7 +148,7 @@ static void read_surface( char *filename )
static void print_flags( const char *msg, GLuint flags )
{
fprintf(stderr,
"%s (0x%x): %s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\n",
"%s (0x%x): %s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\n",
msg, flags,
(flags & GLVERTEX) ? "glVertex, " : "",
(flags & DRAW_ARRAYS) ? "glDrawArrays, " : "",
@@ -162,7 +166,8 @@ static void print_flags( const char *msg, GLuint flags )
(flags & USER_CLIP) ? "user_clip, " : "",
(flags & MATERIALS) ? "materials, " : "",
(flags & FOG) ? "fog, " : "",
(flags & STIPPLE) ? "stipple, " : "");
(flags & STIPPLE) ? "stipple, " : "",
(flags & POLYGON_LINE) ? "polygon mode line, " : "");
}
@@ -333,7 +338,7 @@ static void make_tri_indices( void )
{
unsigned int *v = tri_indices;
unsigned int parity = 0;
unsigned int i, j;
int i, j;
for (j=2;j<numverts;j++,parity^=1) {
if (parity) {
@@ -363,9 +368,9 @@ static void make_tri_indices( void )
#define MIN(x,y) (x < y) ? x : y
static void draw_surface( int with_state )
static void draw_surface( unsigned int with_state )
{
GLuint i, j;
GLint i, j;
if (with_state & DISPLAYLIST) {
if ((with_state & (RENDER_STYLE_MASK|PRIMITIVE_MASK|MATERIAL_MASK)) !=
@@ -684,28 +689,34 @@ static void ModeMenu(int m)
if (CHANGED(state, m, FOG_MASK)) {
UPDATE(state, m, FOG_MASK);
if (m & FOG)
{
if (m & FOG) {
glEnable(GL_FOG);
}
else
{
else {
glDisable(GL_FOG);
}
}
if (CHANGED(state, m, STIPPLE_MASK)) {
UPDATE(state, m, STIPPLE_MASK);
if (m & STIPPLE)
{
if (m & STIPPLE) {
glEnable(GL_POLYGON_STIPPLE);
}
else
{
else {
glDisable(GL_POLYGON_STIPPLE);
}
}
if (CHANGED(state, m, POLYGON_MASK)) {
UPDATE(state, m, POLYGON_MASK);
if (m & POLYGON_FILL) {
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
}
else {
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
}
}
#ifdef GL_EXT_vertex_array
if (CHANGED(state, m, (LOCK_MASK|RENDER_STYLE_MASK|PRIMITIVE_MASK)))
{
@@ -1077,6 +1088,9 @@ int main(int argc, char **argv)
glutAddMenuEntry("Stipple", STIPPLE);
glutAddMenuEntry("No Stipple", NO_STIPPLE);
glutAddMenuEntry("", 0);
glutAddMenuEntry("Polygon Mode Fill", POLYGON_FILL);
glutAddMenuEntry("Polygon Mode Line", POLYGON_LINE);
glutAddMenuEntry("", 0);
glutAddMenuEntry("Point Filtered", POINT_FILTER);
glutAddMenuEntry("Linear Filtered", LINEAR_FILTER);
glutAddMenuEntry("", 0);

View File

@@ -40,7 +40,7 @@
static GLfloat Xrot = 0, Yrot = -30, Zrot = 0;
static GLboolean Anim = GL_TRUE;
static GLint Bias = 0, BiasStepSign = +1; /* ints avoid fp precision problem */
static GLint BiasMin = -200, BiasMax = 500;
static GLint BiasMin = -400, BiasMax = 400;
@@ -192,6 +192,8 @@ static void SpecialKey( int key, int x, int y )
static void Init( void )
{
const char *exten = (const char *) glGetString(GL_EXTENSIONS);
GLfloat maxBias;
if (!strstr(exten, "GL_EXT_texture_lod_bias")) {
printf("Sorry, GL_EXT_texture_lod_bias not supported by this renderer.\n");
exit(1);
@@ -207,6 +209,11 @@ static void Init( void )
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glGetFloatv(GL_MAX_TEXTURE_LOD_BIAS_EXT, &maxBias);
printf("LOD bias range: [%g, %g]\n", -maxBias, maxBias);
BiasMin = -100 * maxBias;
BiasMax = 100 * maxBias;
}

View File

@@ -1,4 +1,4 @@
/* $Id: multiarb.c,v 1.10 2001/06/20 19:12:30 brianp Exp $ */
/* $Id: multiarb.c,v 1.10.2.2 2002/09/13 18:15:09 brianp Exp $ */
/*
* GL_ARB_multitexture demo
@@ -10,77 +10,12 @@
* Brian Paul November 1998 This program is in the public domain.
*/
/*
* $Log: multiarb.c,v $
* Revision 1.10 2001/06/20 19:12:30 brianp
* also print GL_MAX_TEXTURE_SIZE
*
* Revision 1.9 2001/06/13 14:33:16 brianp
* moved glTexEnvi calls to better logical locations
*
* Revision 1.8 2000/12/24 22:53:54 pesco
* * demos/Makefile.am (INCLUDES): Added -I$(top_srcdir)/util.
* * demos/Makefile.X11, demos/Makefile.BeOS-R4, demos/Makefile.cygnus:
* Essentially the same.
* Program files updated to include "readtex.c", not "../util/readtex.c".
* * demos/reflect.c: Likewise for "showbuffer.c".
*
*
* * Makefile.am (EXTRA_DIST): Added top-level regular files.
*
* * include/GL/Makefile.am (INC_X11): Added glxext.h.
*
*
* * src/GGI/include/ggi/mesa/Makefile.am (EXTRA_HEADERS): Include
* Mesa GGI headers in dist even if HAVE_GGI is not given.
*
* * configure.in: Look for GLUT and demo source dirs in $srcdir.
*
* * src/swrast/Makefile.am (libMesaSwrast_la_SOURCES): Set to *.[ch].
* More source list updates in various Makefile.am's.
*
* * Makefile.am (dist-hook): Remove CVS directory from distribution.
* (DIST_SUBDIRS): List all possible subdirs here.
* (SUBDIRS): Only list subdirs selected for build again.
* The above two applied to all subdir Makefile.am's also.
*
* Revision 1.7 2000/11/01 16:02:01 brianp
* print number of texture units
*
* Revision 1.6 2000/05/23 23:21:00 brianp
* set default window pos
*
* Revision 1.5 2000/02/02 17:31:45 brianp
* changed > to >=
*
* Revision 1.4 2000/02/02 01:07:21 brianp
* limit Drift to [0, 1]
*
* Revision 1.3 1999/10/21 16:40:32 brianp
* added -info command line option
*
* Revision 1.2 1999/10/13 12:02:13 brianp
* use texture objects now
*
* Revision 1.1.1.1 1999/08/19 00:55:40 jtg
* Imported sources
*
* Revision 1.3 1999/03/28 18:20:49 brianp
* minor clean-up
*
* Revision 1.2 1998/11/05 04:34:04 brianp
* moved image files to ../images/ directory
*
* Revision 1.1 1998/11/03 01:36:33 brianp
* Initial revision
*
*/
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define GL_GLEXT_PROTOTYPES
#include <GL/glut.h>
#include "readtex.c" /* I know, this is a hack. */

View File

@@ -1,4 +1,4 @@
/* $Id: osdemo.c,v 1.7 2001/09/24 15:29:27 kschultz Exp $ */
/* $Id: osdemo.c,v 1.7.2.1 2002/04/15 21:22:36 kschultz Exp $ */
/*
* Demo of off-screen Mesa rendering
@@ -14,6 +14,11 @@
*
* PPM output provided by Joerg Schmalzl.
* ASCII PPM output added by Brian Paul.
*
* Usage: osdemo [-perf] [filename]
*
* -perf: Redraws the image 1000 times, displaying the FPS every 5 secs.
* filename: file to store the TGA or PPM output
*/
@@ -29,7 +34,9 @@
#define WIDTH 400
#define HEIGHT 400
static GLint T0 = 0;
static GLint Frames = 0;
static int perf = 0;
static void render_image( void )
{
@@ -76,7 +83,7 @@ static void render_image( void )
glPopMatrix();
#ifdef GL_HP_occlusion_test
{
if (perf == 0) {
GLboolean bRet;
glDepthMask(GL_FALSE);
glColorMask(GL_FALSE,GL_FALSE,GL_FALSE,GL_FALSE);
@@ -105,7 +112,7 @@ static void render_image( void )
glPopMatrix();
#ifdef GL_HP_occlusion_test
{
if (perf == 0){
GLboolean bRet;
glDepthMask(GL_FALSE);
@@ -130,6 +137,18 @@ static void render_image( void )
#endif
glPopMatrix();
Frames++;
if (perf) {
GLint t = glutGet(GLUT_ELAPSED_TIME);
if (t - T0 >= 5000) {
GLfloat seconds = (t - T0) / 1000.0;
GLfloat fps = Frames / seconds;
printf("%d frames in %6.3f seconds = %6.3f FPS\n", Frames, seconds, fps);
T0 = t;
Frames = 0;
}
}
}
@@ -224,6 +243,8 @@ write_ppm(const char *filename, const GLubyte *buffer, int width, int height)
int main( int argc, char *argv[] )
{
void *buffer;
int i;
char *filename = NULL;
/* Create an RGBA-mode context */
#if OSMESA_MAJOR_VERSION * 100 + OSMESA_MINOR_VERSION >= 305
@@ -237,6 +258,11 @@ int main( int argc, char *argv[] )
return 0;
}
for ( i=1; i<argc; i++ ) {
if (argv[i][0] != '-') filename = argv[i];
if (strcmp(argv[i], "-perf")==0) perf = 1;
}
/* Allocate the image buffer */
buffer = malloc( WIDTH * HEIGHT * 4 * sizeof(GLubyte) );
if (!buffer) {
@@ -256,16 +282,19 @@ int main( int argc, char *argv[] )
glGetIntegerv(GL_DEPTH_BITS, &z);
glGetIntegerv(GL_STENCIL_BITS, &s);
glGetIntegerv(GL_ACCUM_RED_BITS, &a);
printf("%d %d %d\n", z, s, a);
printf("Depth=%d Stencil=%d Accum=%d\n", z, s, a);
}
render_image();
if (perf)
for(i=0; i< 1000; i++)
render_image();
if (argc>1) {
if (filename != NULL) {
#ifdef SAVE_TARGA
write_targa(argv[1], buffer, WIDTH, HEIGHT);
write_targa(filename, buffer, WIDTH, HEIGHT);
#else
write_ppm(argv[1], buffer, WIDTH, HEIGHT);
write_ppm(filename, buffer, WIDTH, HEIGHT);
#endif
}
else {

View File

@@ -1,4 +1,4 @@
/* $Id: paltex.c,v 1.6 2000/10/05 07:17:43 joukj Exp $ */
/* $Id: paltex.c,v 1.6.2.3 2002/07/22 13:45:45 brianp Exp $ */
/*
* Paletted texture demo. Written by Brian Paul.
@@ -9,6 +9,9 @@
#include <stdlib.h>
#include <math.h>
#include <string.h>
#ifdef _WIN32
#include <windows.h>
#endif
#define GL_GLEXT_LEGACY
#include <GL/glut.h>
@@ -91,15 +94,16 @@ static void Init( void )
{
#define HEIGHT 8
#define WIDTH 32
static char texture[HEIGHT][WIDTH] = {
" ",
" MMM EEEE SSS AAA ",
" M M M E S S A A ",
" M M M EEEE SS A A ",
" M M M E SS AAAAA ",
" M M E S S A A ",
" M M EEEE SSS A A ",
" "
/* 257 = HEIGHT * WIDTH + 1 (for trailing '\0') */
static char texture[257] = {"\
\
MMM EEEE SSS AAA \
M M M E S S A A \
M M M EEEE SS A A \
M M M E SS AAAAA \
M M E S S A A \
M M EEEE SSS A A \
"
};
GLubyte table[256][4];
@@ -158,7 +162,7 @@ static void Init( void )
0, /* border */
GL_COLOR_INDEX, /* texture format */
GL_UNSIGNED_BYTE, /* texture type */
texture); /* teh texture */
texture); /* the texture */
#endif
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);

View File

@@ -13,6 +13,13 @@
/*
* $Log: pointblast.c,v $
* Revision 1.2.6.1 2002/04/15 22:14:09 kschultz
* Build demos/samples correctly on Windows (Robert Bergkvist) to sync up
* with the main branch. (I should have done this for 4.0.2)
*
* Revision 1.3 2002/01/16 00:48:43 kschultz
* Demo updates for Windows (Robert Bergkvist)
*
* Revision 1.2 2000/06/27 17:04:43 brianp
* fixed compiler warnings
*
@@ -38,6 +45,9 @@
#include <stdlib.h>
#include <string.h>
#include <math.h> /* for cos(), sin(), and sqrt() */
#ifdef _WIN32
#include <windows.h>
#endif
#define GL_GLEXT_LEGACY
#include <GL/glut.h>

View File

@@ -11,15 +11,20 @@
#include <math.h>
#include <time.h>
#include <GL/glut.h>
#ifndef M_PI
#define M_PI 3.14159265
#endif
#include "particles.h"
extern "C" {
#include "image.h"
#include "readtex.h"
}
#ifdef WIN32
#ifdef _WIN32
#include <windows.h>
#include <mmsystem.h>
#include "particles.cxx"
#include "readtex.c"
#endif
#ifdef XMESA
@@ -297,20 +302,21 @@ static void key(unsigned char key, int x, int y)
static void inittextures(void)
{
IMAGE *img;
GLubyte *img;
GLint width,height;
GLenum format;
GLenum gluerr;
glGenTextures(1,&groundid);
glBindTexture(GL_TEXTURE_2D,groundid);
if(!(img=ImageLoad("s128.rgb"))) {
fprintf(stderr,"Error reading a texture.\n");
exit(-1);
if(!(img=LoadRGBImage("../images/s128.rgb",&width,&height,&format))){
fprintf(stderr,"Error reading a texture.\n");
exit(-1);
}
glPixelStorei(GL_UNPACK_ALIGNMENT,4);
if((gluerr=(GLenum)gluBuild2DMipmaps(GL_TEXTURE_2D, 3, img->sizeX, img->sizeY, GL_RGB,
GL_UNSIGNED_BYTE, (GLvoid *)(img->data)))) {
if((gluerr=(GLenum)gluBuild2DMipmaps(GL_TEXTURE_2D, 3, width, height,GL_RGB,
GL_UNSIGNED_BYTE, (GLvoid *)(img)))) {
fprintf(stderr,"GLULib%s\n",gluErrorString(gluerr));
exit(-1);
}

View File

@@ -8,6 +8,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#ifdef WIN32

View File

@@ -1,4 +1,4 @@
/* $Id: readpix.c,v 1.4 2000/10/16 21:24:39 brianp Exp $ */
/* $Id: readpix.c,v 1.4.2.2 2002/07/12 15:50:46 brianp Exp $ */
/*
* glReadPixels and glCopyPixels test
@@ -8,6 +8,16 @@
/*
* $Log: readpix.c,v $
* Revision 1.4.2.2 2002/07/12 15:50:46 brianp
* Pedantic compiler fixes (Sven Panne)
*
* Revision 1.4.2.1 2002/05/01 14:53:52 alanh
* glutSwapBuffers implicitly does a glFinish when swapping back to the front
* buffer. We now issue a glFinish when not issuing SwapBuffers to ensure
* the pipeline is complete.
*
* (Problem found with Chromium).
*
* Revision 1.4 2000/10/16 21:24:39 brianp
* use gray background, memset TempImage to white to help with debugging
*
@@ -173,6 +183,8 @@ Display( void )
if (!DrawFront)
glutSwapBuffers();
else
glFinish();
}
@@ -234,7 +246,7 @@ Init( GLboolean ciMode )
if (ciMode) {
/* Convert RGB image to grayscale */
GLubyte *indexImage = malloc( ImgWidth * ImgHeight );
GLubyte *indexImage = (GLubyte *) malloc( ImgWidth * ImgHeight );
GLint i;
for (i=0; i<ImgWidth*ImgHeight; i++) {
int gray = Image[i*3] + Image[i*3+1] + Image[i*3+2];

View File

@@ -1,4 +1,4 @@
/* $Id: shadowtex.c,v 1.4 2001/02/28 18:41:50 brianp Exp $ */
/* $Id: shadowtex.c,v 1.4.2.1 2002/07/12 15:50:46 brianp Exp $ */
/*
* Shadow demo using the GL_SGIX_depth_texture, GL_SGIX_shadow and
@@ -257,8 +257,8 @@ Display(void)
*/
if (DisplayMode == SHOW_DEPTH_MAPPING) {
/* load depth image as gray-scale luminance texture */
GLfloat *depth = malloc(ShadowTexWidth * ShadowTexHeight
* sizeof(GLfloat));
GLfloat *depth = (GLfloat *) malloc(ShadowTexWidth * ShadowTexHeight
* sizeof(GLfloat));
if (depth) {
glReadPixels(0, 0, ShadowTexWidth, ShadowTexHeight,
GL_DEPTH_COMPONENT, GL_FLOAT, depth);

View File

@@ -11,6 +11,7 @@
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#ifdef WIN32

View File

@@ -1,4 +1,4 @@
/* $Id: tessdemo.c,v 1.11 2001/03/21 02:47:32 gareth Exp $ */
/* $Id: tessdemo.c,v 1.11.2.2 2002/09/11 00:09:01 kschultz Exp $ */
/*
* A demo of the GLU polygon tesselation functions written by Bogdan Sikorski.
@@ -90,7 +90,7 @@ static void GLCALLBACK edge_callback( GLenum flag )
static void GLCALLBACK end_callback()
{
GLint i;
GLuint i;
glBegin( GL_LINES );
@@ -165,6 +165,8 @@ static void set_screen_wh( GLsizei w, GLsizei h )
height = h;
}
typedef void (GLAPIENTRY *callback_t)();
static void tesse( void )
{
GLUtesselator *tobj;
@@ -177,11 +179,11 @@ static void tesse( void )
if ( tobj != NULL ) {
gluTessNormal( tobj, 0.0, 0.0, 1.0 );
gluTessCallback( tobj, GLU_TESS_BEGIN, glBegin );
gluTessCallback( tobj, GLU_TESS_VERTEX, glVertex2fv );
gluTessCallback( tobj, GLU_TESS_END, glEnd );
gluTessCallback( tobj, GLU_TESS_ERROR, error_callback );
gluTessCallback( tobj, GLU_TESS_COMBINE, combine_callback );
gluTessCallback( tobj, GLU_TESS_BEGIN, (callback_t) glBegin );
gluTessCallback( tobj, GLU_TESS_VERTEX, (callback_t) glVertex2fv );
gluTessCallback( tobj, GLU_TESS_END, (callback_t) glEnd );
gluTessCallback( tobj, GLU_TESS_ERROR, (callback_t) error_callback );
gluTessCallback( tobj, GLU_TESS_COMBINE, (callback_t) combine_callback );
glNewList( list_start, GL_COMPILE );
gluBeginPolygon( tobj );
@@ -201,10 +203,10 @@ static void tesse( void )
gluEndPolygon( tobj );
glEndList();
gluTessCallback( tobj, GLU_TESS_BEGIN, begin_callback );
gluTessCallback( tobj, GLU_TESS_VERTEX, vertex_callback );
gluTessCallback( tobj, GLU_TESS_END, end_callback );
gluTessCallback( tobj, GLU_TESS_EDGE_FLAG, edge_callback );
gluTessCallback( tobj, GLU_TESS_BEGIN, (callback_t) begin_callback );
gluTessCallback( tobj, GLU_TESS_VERTEX, (callback_t) vertex_callback );
gluTessCallback( tobj, GLU_TESS_END, (callback_t) end_callback );
gluTessCallback( tobj, GLU_TESS_EDGE_FLAG, (callback_t) edge_callback );
glNewList( list_start + 1, GL_COMPILE );
gluBeginPolygon( tobj );
@@ -308,6 +310,7 @@ static void mouse_clicked( int button, int state, int x, int y )
static void display( void )
{
GLuint i,j;
GLsizei ii, jj;
GLuint point_cnt;
glClear( GL_COLOR_BUFFER_BIT );
@@ -319,12 +322,12 @@ static void display( void )
glBegin( GL_LINES );
for ( i = 0 ; i < width ; i += 10 ) {
for ( j = 0 ; j < height ; j += 10 ) {
glVertex2i( 0, j );
glVertex2i( width, j );
glVertex2i( i, height );
glVertex2i( i, 0 );
for ( ii = 0 ; ii < width ; ii += 10 ) {
for ( jj = 0 ; jj < height ; jj += 10 ) {
glVertex2i( 0, jj );
glVertex2i( width, jj );
glVertex2i( ii, height );
glVertex2i( ii, 0 );
}
}

View File

@@ -1,4 +1,4 @@
/* $Id: trispd.c,v 1.2 2000/10/26 15:26:14 brianp Exp $ */
/* $Id: trispd.c,v 1.2.2.1 2002/07/12 15:50:46 brianp Exp $ */
/*
* Simple GLUT program to measure triangle strip rendering speed.
@@ -7,6 +7,9 @@
/*
* $Log: trispd.c,v $
* Revision 1.2.2.1 2002/07/12 15:50:46 brianp
* Pedantic compiler fixes (Sven Panne)
*
* Revision 1.2 2000/10/26 15:26:14 brianp
* added a glFinish() call
*
@@ -158,7 +161,7 @@ static void LoadTex(int comp, int filter)
{
GLubyte *pixels;
int x, y;
pixels = malloc(4*256*256);
pixels = (GLubyte *) malloc(4*256*256);
for (y = 0; y < 256; ++y)
for (x = 0; x < 256; ++x) {
pixels[(y*256+x)*4+0] = (int)(128.5 + 127.0 * cos(0.024544 * x));

View File

@@ -1,4 +1,4 @@
/* $Id: winpos.c,v 1.3 2000/12/24 22:53:54 pesco Exp $ */
/* $Id: winpos.c,v 1.3.2.1 2002/04/15 22:14:09 kschultz Exp $ */
/*
* Example of how to use the GL_MESA_window_pos extension.
@@ -8,6 +8,13 @@
/*
* $Log: winpos.c,v $
* Revision 1.3.2.1 2002/04/15 22:14:09 kschultz
* Build demos/samples correctly on Windows (Robert Bergkvist) to sync up
* with the main branch. (I should have done this for 4.0.2)
*
* Revision 1.4 2002/01/16 00:48:43 kschultz
* Demo updates for Windows (Robert Bergkvist)
*
* Revision 1.3 2000/12/24 22:53:54 pesco
* * demos/Makefile.am (INCLUDES): Added -I$(top_srcdir)/util.
* * demos/Makefile.X11, demos/Makefile.BeOS-R4, demos/Makefile.cygnus:
@@ -59,6 +66,9 @@
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#ifdef _WIN32
#include <windows.h>
#endif
#define GL_GLEXT_LEGACY
#include "GL/glut.h"

View File

@@ -19,6 +19,7 @@
ggi_visual_t vis;
char text[100];
int db_flag,vis_x, vis_y, vir_x, vir_y, gt;
/*
* Draw a gear wheel. You'll probably want to call this function when
@@ -157,6 +158,7 @@ static GLuint count = 1;
static void draw( void )
{
static int n = 0;
glClearColor(0,0,0,0);
glClearIndex(0);
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
@@ -197,12 +199,25 @@ static void draw( void )
ggiPuts(vis,0,ggiGetInfo(vis)->mode->visible.y+16,text);
#endif
GGIMesaSwapBuffers();
if(db_flag)
ggiMesaSwapBuffers();
count++;
if (count==limit) {
exit(1);
}
++n;
/*
if (!(n%10)){
ggi_color rgb = { 10000, 10000, 10000 };
ggiSetSimpleMode(vis,vis_x+(n/10),vis_y+(n/10),db_flag?2:1, gt);
glViewport(0, 0,vis_x+(n/10),vis_y+(n/10));
ggiSetGCForeground(vis, ggiMapColor(vis, &rgb));
ggiDrawBox(vis, 20, 20, 100, 100);
if(db_flag)
ggiSetWriteFrame(vis, 1);
}
*/
}
static void idle( void )
@@ -216,6 +231,10 @@ static void reshape( int width, int height )
{
GLfloat h = (GLfloat) height / (GLfloat) width;
if(db_flag)
glDrawBuffer(GL_BACK);
else
glDrawBuffer(GL_FRONT);
glViewport(0, 0, (GLint)width, (GLint)height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
@@ -231,8 +250,8 @@ static void reshape( int width, int height )
static void init( void )
{
static GLfloat pos[4] = {5.0, 5.0, 10.0, 0.0 };
static GLfloat red[4] = {0.8, 0.1, 0.0, 1.0 };
static GLfloat green[4] = {0.0, 0.8, 0.2, 1.0 };
static GLfloat red[4] = {0.9, 0.9, 0.9, 1.0 };
static GLfloat green[4] = {0.0, 0.8, 0.9, 1.0 };
static GLfloat blue[4] = {0.2, 0.2, 1.0, 1.0 };
glLightfv( GL_LIGHT0, GL_POSITION, pos );
@@ -276,9 +295,9 @@ static void usage(char *s)
int main( int argc, char *argv[] )
{
GGIMesaContext ctx;
int vis_x,vis_y,vir_x,vir_y,bpp,db_flag,gt;
ggi_mesa_context_t ctx;
ggi_mode mode;
int bpp;
limit=0;
@@ -313,13 +332,12 @@ int main( int argc, char *argv[] )
exit(1);
}
ctx=GGIMesaCreateContext();
if (ctx==NULL)
if (ggiMesaInit() < 0)
{
printf("GGIMesaCreateContext() failed\n");
printf("ggiMesaInit failed\n");
exit(1);
}
vis=ggiOpen(NULL);
if (vis==NULL)
{
@@ -327,29 +345,42 @@ int main( int argc, char *argv[] )
exit(1);
}
if (ggiSetGraphMode(vis,vis_x,vis_y,vir_x,vir_y,gt)<0)
if (ggiSetSimpleMode(vis,vis_x,vis_y,db_flag ? 2 : 1,gt)<0)
{
printf("%s: can't set graphmode (%i %i %i %i) %i BPP\n",
argv[0],vis_x,vis_y,vir_x,vir_y,bpp);
exit(1);
}
if (GGIMesaSetVisual(ctx,vis,GL_TRUE,db_flag)<0)
if (ggiMesaAttach(vis) < 0)
{
printf("ggiMesaAttach failed\n");
exit(1);
}
if (ggiMesaExtendVisual(vis, GL_FALSE, GL_FALSE, 16,
0, 0, 0, 0, 0, 1) < 0)
{
printf ("GGIMesaSetVisual() failed\n");
exit(1);
}
GGIMesaMakeCurrent(ctx);
ctx = ggiMesaCreateContext(vis);
if (ctx==NULL)
{
printf("GGIMesaCreateContext() failed\n");
exit(1);
}
ggiMesaMakeCurrent(ctx, vis);
ggiGetMode(vis,&mode);
reshape(mode.visible.x,mode.visible.y);
init();
while (!ggiKbhit(vis)) idle();
while (!ggiKbhit(vis)) { /*sleep(1);*/ idle(); }
GGIMesaDestroyContext(ctx);
ggiMesaDestroyContext(ctx);
ggiClose(vis);
printf("%s\n",text);

View File

@@ -1,62 +1,51 @@
# Makefile for Win32
TOP = ..
!include "$(TOP)/names.win"
TOP = ..
INCDIR = ..\include
LIBDIR = ..\lib
!include <win32.mak>
SRCS= \
aaindex.c \
aapoly.c \
aargb.c \
accanti.c \
accnot.c \
accum.c \
aim.c \
accpersp.c \
alpha.c \
alpha3D.c \
anti.c \
antiindex.c \
antipindex.c \
antipoint.c \
antipoly.c \
bezcurve.c \
bezmesh.c \
bezsurf.c \
checker.c \
checker2.c \
chess.c \
clip.c \
colormat.c \
cone.c \
cube.c \
curve.c \
depthcue.c \
disk.c \
dof.c \
dofnot.c \
double.c \
drawf.c \
feedback.c \
fog.c \
fogindex.c \
font.c \
hello.c \
image.c \
light.c \
linelist.c \
lines.c \
list.c \
list2.c \
maplight.c \
material.c \
mipmap.c \
model.c \
movelight.c \
nurbs.c \
pickdepth.c \
pickline.c \
picksquare.c \
plane.c \
planet.c \
planetup.c \
polyoff.c \
polys.c \
quadric.c \
robot.c \
sccolorlight.c \
scene.c \
@@ -64,18 +53,26 @@ SRCS= \
sceneflat.c \
select.c \
smooth.c \
sphere.c \
stencil.c \
stroke.c \
surface.c \
tea.c \
teaambient.c \
teapots.c \
tess.c \
tesswind.c \
texbind.c \
texgen.c \
texprox.c \
texsub.c \
texturesurf.c \
trim.c
EXTRALIBS = $(MESAGL).lib $(MESAGLU).lib $(MESATK).lib $(MESAAUX).lib
torus.c \
trim.c \
unproject.c \
varray.c \
wrap.c
!include "$(TOP)/mesawin32.mak"
$(EXES) : $*.obj
@echo $@
$(link) -out:$@ $* /LIBPATH:$(LIBDIR) $(LIBS)

View File

@@ -42,6 +42,7 @@
* two rectangles. This program clamps the texture, if
* the texture coordinates fall outside 0.0 and 1.0.
*/
#include <stdlib.h>
#include <GL/glut.h>
/* Create checkerboard texture */

View File

@@ -62,7 +62,7 @@ selectFog(int mode)
/* falls through */
case GL_EXP2:
case GL_EXP:
glFogi(GL_FOG_MODE, mode);
glFogiv(GL_FOG_MODE, (int *) &mode);
glutPostRedisplay();
break;
case 0:
@@ -190,7 +190,7 @@ main(int argc, char **argv)
glutDisplayFunc(display);
glutCreateMenu(selectFog);
glutAddMenuEntry("Fog EXP", GL_EXP);
glutAddMenuEntry("Fog EXP2", GL_EXP2);
glutAddMenuEntry("Fog EXP2", /*GL_EXP2*/ 0xffff);
glutAddMenuEntry("Fog LINEAR", GL_LINEAR);
glutAddMenuEntry("Quit", 0);
glutAttachMenu(GLUT_RIGHT_BUTTON);

View File

@@ -39,6 +39,7 @@
* hello.c
* This is a simple, introductory OpenGL program.
*/
#include <stdlib.h>
#include <GL/glut.h>
void display(void)

View File

@@ -103,8 +103,8 @@ drawRects(GLenum mode)
void
processHits(GLint hits, GLuint buffer[])
{
unsigned int i, j;
GLuint names, *ptr;
GLint i;
GLuint j, names, *ptr;
printf("hits = %d\n", hits);
ptr = (GLuint *) buffer;

View File

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

View File

@@ -44,6 +44,7 @@
#include <GL/glut.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef GL_VERSION_1_1
GLuint list;
@@ -149,7 +150,7 @@ static void Benchmark( float xdiff, float ydiff )
{
int startTime, endTime;
int draws;
double seconds, fps, triPerSecond;
double seconds, fps;
printf("Benchmarking...\n");

View File

@@ -124,8 +124,8 @@ void drawScene (void)
*/
void processHits (GLint hits, GLuint buffer[])
{
unsigned int i, j;
GLuint names, *ptr;
GLint i;
GLuint j, names, *ptr;
printf ("hits = %d\n", hits);
ptr = (GLuint *) buffer;

View File

@@ -41,6 +41,7 @@
* This program draws a NURBS surface in the shape of a
* symmetrical hill.
*/
#include <stdlib.h>
#include <GL/glut.h>
GLfloat ctlpoints[4][4][3];

View File

@@ -94,7 +94,7 @@ void CALLBACK vertexCallback(GLvoid *vertex)
pointer = (GLdouble *) vertex;
glColor3dv(pointer+3);
glVertex3dv(vertex);
glVertex3dv(pointer);
}
/* combineCallback is used to create a new vertex when edges

View File

@@ -0,0 +1,42 @@
# $Id: Makefile.win,v 1.1.2.1 2002/04/15 22:13:31 kschultz Exp $
# Mesa 3-D graphics library
# Version: 3.5
# Copyright (C) 1995-2001 Brian Paul
# Makefile for GLUT-based demo programs for Windows
!include <win32.mak>
##### MACROS #####
TOP = ..
INCDIR = ..\include
LIBDIR = ..\lib
PROGS = accum bitmap1 bitmap2 blendeq blendxor copy cursor depth eval fog \
font line logo nurb oglinfo olympic overlay point prim quad select \
shape sphere star stencil stretch texture tri wave
SRCS = \
accum.c \
bitmap1.c \
bitmap2.c \
blendeq.c \
blendxor.c \
copy.c \
cursor.c depth.c eval.c fog.c \
font.c line.c logo.c nurb.c olympic.c overlay.c point.c prim.c quad.c select.c \
shape.c sphere.c star.c stencil.c stretch.c texture.c tri.c wave.c
!include "../mesawin32.mak"
##### TARGETS #####
clean::
clobber::
$(EXES) : $*.obj
@echo $@
$(link) -out:$@ $* /LIBPATH:$(LIBDIR) $(LIBS)

View File

@@ -11,6 +11,10 @@
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#ifdef _WIN32
#include <windows.h>
#endif
#define GL_GLEXT_LEGACY
#include <GL/glut.h>

View File

@@ -10,6 +10,10 @@
#include <unistd.h>
#endif
#include <stdlib.h>
#ifdef _WIN32
#include <windows.h>
#endif
#define GL_GLEXT_LEGACY
#include <GL/glut.h>

View File

@@ -1,6 +1,6 @@
typedef struct {
int sizeX, sizeY;
size_t sizeX, sizeY;
GLubyte *data;
} PPMImage;
@@ -30,7 +30,7 @@ static PPMImage *LoadPPM(const char *filename)
exit(1);
}
result = malloc(sizeof(PPMImage));
result = (PPMImage *) malloc(sizeof(PPMImage));
if (!result)
{
fprintf(stderr, "Unable to allocate memory\n");
@@ -52,14 +52,15 @@ static PPMImage *LoadPPM(const char *filename)
while (fgetc(fp) != '\n')
;
result->data = malloc(3 * result->sizeX * result->sizeY);
result->data = (GLubyte *) malloc(3 * result->sizeX * result->sizeY);
if (!result)
{
fprintf(stderr, "Unable to allocate memory\n");
exit(1);
}
if (fread(result->data, 3 * result->sizeX, result->sizeY, fp) != result->sizeY)
if (fread(result->data, 3 * result->sizeX, result->sizeY, fp) !=
result->sizeY)
{
fprintf(stderr, "Error loading image `%s'\n", filename);
exit(1);

View File

@@ -216,11 +216,13 @@ static void CALLBACK ErrorCallback(GLenum which)
}
}
typedef void (GLAPIENTRY *callback_t)();
static void Init(void)
{
theNurbs = gluNewNurbsRenderer();
gluNurbsCallback(theNurbs, GLU_ERROR, ErrorCallback);
gluNurbsCallback(theNurbs, GLU_ERROR, (callback_t) ErrorCallback);
gluNurbsProperty(theNurbs, GLU_SAMPLING_TOLERANCE, 15.0);
gluNurbsProperty(theNurbs, GLU_DISPLAY_MODE, GLU_OUTLINE_PATCH);

View File

@@ -102,6 +102,8 @@ static void CALLBACK ErrorHandler(GLenum which)
fprintf(stderr, "Quad Error: %s\n", gluErrorString(which));
}
typedef void (GLAPIENTRY *callback_t)();
static void Init(void)
{
static GLint colorIndexes[3] = {0, 200, 255};
@@ -163,7 +165,7 @@ static void Init(void)
}
quadObj = gluNewQuadric();
gluQuadricCallback(quadObj, GLU_ERROR, ErrorHandler);
gluQuadricCallback(quadObj, GLU_ERROR, (callback_t) ErrorHandler);
radius1 = 10;
radius2 = 5;

View File

@@ -174,7 +174,7 @@ static void DeleteTri(GLint h)
static void GrowTri(GLint h)
{
float v[2];
float *oldV;
float *oldV = NULL;
GLint i;
v[0] = objects[h].v1[0] + objects[h].v2[0] + objects[h].v3[0];

View File

@@ -6,18 +6,17 @@
CC = gcc
CFLAGS = -g -I../include
CFLAGS = -g -I../include -I../util
LIBS = -L../lib -lglut -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXext -lm
PROGS = cva \
dinoshade \
fogcoord \
manytex \
multipal \
projtex \
seccolor \
sharedtex \
texline
seccolor \
texline texwrap fogcoord multiwindow
##### RULES #####

39
progs/tests/Makefile.win Normal file
View File

@@ -0,0 +1,39 @@
# $Id: Makefile.win,v 1.1.2.1 2002/04/15 22:13:00 kschultz Exp $
# Mesa 3-D graphics library
# Version: 3.5
# Copyright (C) 1995-2001 Brian Paul
# Makefile for GLUT-based demo programs for Windows
!include <win32.mak>
##### MACROS #####
TOP = ..
INCDIR = ..\include
LIBDIR = ..\lib
SRCS = cva.c \
dinoshade.c \
fogcoord.c \
manytex.c \
multipal.c \
projtex.c \
seccolor.c \
# sharedtex.c \
texline.c \
texwrap.c
!include "../mesawin32.mak"
##### TARGETS #####
clean::
clobber::
@del readtex.c readtex.h
$(EXES) :$*.obj
@echo $@
$(link) -out:$@ $* /LIBPATH:$(LIBDIR) $(LIBS)

View File

@@ -1,4 +1,4 @@
/* $Id: cva.c,v 1.3 2000/11/30 03:06:56 gareth Exp $ */
/* $Id: cva.c,v 1.3.2.1 2002/04/15 22:13:00 kschultz Exp $ */
/*
* Trivial CVA test, good for testing driver fastpaths (especially
@@ -11,6 +11,9 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#ifdef _WIN32
#include <windows.h>
#endif
#define GL_GLEXT_LEGACY
#include <GL/glut.h>
@@ -130,7 +133,7 @@ int main( int argc, char **argv )
*/
string = (char *) glGetString( GL_VERSION );
if ( !strstr( string, "1.2" ) ) {
if ( (!strstr( string, "1.2" ))&&(!strstr(string,"1.3"))) {
fprintf( stderr, "This program requires OpenGL 1.2 vertex arrays.\n" );
exit( -1 );
}

View File

@@ -38,6 +38,10 @@
#include <stdlib.h>
#include <string.h>
#include <math.h> /* for cos(), sin(), and sqrt() */
#ifdef _WIN32
#include <windows.h>
#endif
#define GL_GLEXT_LEGACY
#include <GL/glut.h> /* OpenGL Utility Toolkit header */
/* Some <math.h> files do not define M_PI... */

View File

@@ -1,4 +1,4 @@
/* $Id: multipal.c,v 1.1 2000/11/18 17:12:33 brianp Exp $ */
/* $Id: multipal.c,v 1.1.2.1 2002/04/15 22:13:00 kschultz Exp $ */
/*
* GL_ARB_multitexture demo
@@ -12,6 +12,13 @@
/*
* $Log: multipal.c,v $
* Revision 1.1.2.1 2002/04/15 22:13:00 kschultz
* Build demos/samples correctly on Windows (Robert Bergkvist) to sync up
* with the main branch. (I should have done this for 4.0.2)
*
* Revision 1.2 2002/01/16 01:03:25 kschultz
* get tests working on windows (Robert Bergkvist)
*
* Revision 1.1 2000/11/18 17:12:33 brianp
* test texture palettes with multitexture
*
@@ -52,6 +59,10 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef _WIN32
#include <windows.h>
#endif
#define GL_GLEXT_LEGACY
#include <GL/glut.h>
#include "../util/readtex.c" /* I know, this is a hack. */

237
progs/tests/yuv.c Normal file
View File

@@ -0,0 +1,237 @@
/*
* Test the GL_NV_texture_rectangle and GL_MESA_ycrcb_texture extensions.
*
* Brian Paul 13 September 2002
*/
#include <assert.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define GL_GLEXT_PROTOTYPES
#include <GL/glut.h>
#include "readtex.c" /* I know, this is a hack. */
#define TEXTURE_FILE "../images/girl.rgb"
static GLfloat Xrot = 0, Yrot = 0, Zrot = 0;
static GLint ImgWidth, ImgHeight;
static GLenum ImgFormat;
static GLubyte *Image = NULL;
static GLushort *ImageYUV = NULL;
static void DrawObject(void)
{
glBegin(GL_QUADS);
glTexCoord2f(0, 0);
glVertex2f(-1.0, -1.0);
glTexCoord2f(ImgWidth, 0);
glVertex2f(1.0, -1.0);
glTexCoord2f(ImgWidth, ImgHeight);
glVertex2f(1.0, 1.0);
glTexCoord2f(0, ImgHeight);
glVertex2f(-1.0, 1.0);
glEnd();
}
static void Display( void )
{
glClear( GL_COLOR_BUFFER_BIT );
glPushMatrix();
glRotatef(Xrot, 1.0, 0.0, 0.0);
glRotatef(Yrot, 0.0, 1.0, 0.0);
glRotatef(Zrot, 0.0, 0.0, 1.0);
DrawObject();
glPopMatrix();
glutSwapBuffers();
}
static void Reshape( int width, int height )
{
glViewport( 0, 0, width, height );
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
glFrustum( -1.0, 1.0, -1.0, 1.0, 10.0, 100.0 );
glMatrixMode( GL_MODELVIEW );
glLoadIdentity();
glTranslatef( 0.0, 0.0, -15.0 );
}
static void Key( unsigned char key, int x, int y )
{
(void) x;
(void) y;
switch (key) {
case 27:
exit(0);
break;
}
glutPostRedisplay();
}
static void SpecialKey( int key, int x, int y )
{
float step = 3.0;
(void) x;
(void) y;
switch (key) {
case GLUT_KEY_UP:
Xrot += step;
break;
case GLUT_KEY_DOWN:
Xrot -= step;
break;
case GLUT_KEY_LEFT:
Yrot += step;
break;
case GLUT_KEY_RIGHT:
Yrot -= step;
break;
}
glutPostRedisplay();
}
#define CLAMP( X, MIN, MAX ) ( (X)<(MIN) ? (MIN) : ((X)>(MAX) ? (MAX) : (X)) )
static void ConvertRGBtoYUV(GLint w, GLint h, const GLubyte *src,
GLushort *dest)
{
GLint i, j;
for (i = 0; i < h; i++) {
for (j = 0; j < w; j++) {
const GLfloat r = (*src++) / 255.0;
const GLfloat g = (*src++) / 255.0;
const GLfloat b = (*src++) / 255.0;
GLfloat y, cr, cb;
GLint iy, icr, icb;
y = r * 65.481 + g * 128.553 + b * 24.966 + 16;
cb = r * -37.797 + g * -74.203 + b * 112.0 + 128;
cr = r * 112.0 + g * -93.786 + b * -18.214 + 128;
/*printf("%f %f %f -> %f %f %f\n", r, g, b, y, cb, cr);*/
iy = (GLint) CLAMP(y, 0, 254);
icb = (GLint) CLAMP(cb, 0, 254);
icr = (GLint) CLAMP(cr, 0, 254);
if (j & 1) {
/* odd */
*dest = (iy << 8) | icr;
}
else {
/* even */
*dest = (iy << 8) | icb;
}
dest++;
}
}
}
static void Init( int argc, char *argv[] )
{
GLuint texObj = 100;
const char *file;
if (!glutExtensionSupported("GL_NV_texture_rectangle")) {
printf("Sorry, GL_NV_texture_rectangle is required\n");
exit(0);
}
if (!glutExtensionSupported("GL_MESA_ycbcr_texture")) {
printf("Sorry, GL_MESA_ycbcr_texture is required\n");
exit(0);
}
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glBindTexture(GL_TEXTURE_RECTANGLE_NV, texObj);
#ifdef LINEAR_FILTER
/* linear filtering looks much nicer but is much slower for Mesa */
glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
#else
glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
#endif
if (argc > 1)
file = argv[1];
else
file = TEXTURE_FILE;
Image = LoadRGBImage(file, &ImgWidth, &ImgHeight, &ImgFormat);
if (!Image) {
printf("Couldn't read %s\n", TEXTURE_FILE);
exit(0);
}
#if 0
glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0,
GL_RGB, ImgWidth, ImgHeight, 0,
ImgFormat, GL_UNSIGNED_BYTE, Image);
#else
ImageYUV = (GLushort *) malloc(ImgWidth * ImgHeight * sizeof(GLushort));
ConvertRGBtoYUV(ImgWidth, ImgHeight, Image, ImageYUV);
glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0,
GL_YCBCR_MESA, ImgWidth, ImgHeight, 0,
GL_YCBCR_MESA, GL_UNSIGNED_SHORT_8_8_MESA, ImageYUV);
assert(glGetError() == GL_NO_ERROR);
glTexSubImage2D(GL_TEXTURE_RECTANGLE_NV, 0,
0, 0, ImgWidth, ImgHeight,
GL_YCBCR_MESA, GL_UNSIGNED_SHORT_8_8_MESA, ImageYUV);
assert(glGetError() == GL_NO_ERROR);
#endif
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glEnable(GL_TEXTURE_RECTANGLE_NV);
glShadeModel(GL_FLAT);
glClearColor(0.3, 0.3, 0.4, 1.0);
if (argc > 1 && strcmp(argv[1], "-info")==0) {
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR));
printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS));
}
}
int main( int argc, char *argv[] )
{
glutInit( &argc, argv );
glutInitWindowSize( 300, 300 );
glutInitWindowPosition( 0, 0 );
glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
glutCreateWindow(argv[0] );
Init( argc, argv );
glutReshapeFunc( Reshape );
glutKeyboardFunc( Key );
glutSpecialFunc( SpecialKey );
glutDisplayFunc( Display );
glutMainLoop();
return 0;
}

View File

@@ -1,7 +1,7 @@
# $Id: Makefile.X11,v 1.11 2001/03/23 22:48:35 brianp Exp $
# $Id: Makefile.X11,v 1.11.2.1 2002/01/30 21:54:47 brianp Exp $
# Mesa 3-D graphics library
# Version: 3.5
# Version: 4.0.2
# Copyright (C) 1995-2001 Brian Paul
# Makefile for non-GLUT (X11, SVGA, etc) demo programs
@@ -12,9 +12,9 @@
INCDIR = ../include
LIBDIR = ../lib
GL_LIBS = -L$(LIBDIR) -lglut -lGLU -lGL $(APP_LIB_DEPS)
GL_LIBS = -L$(LIBDIR) -lGLU -lGL $(APP_LIB_DEPS)
LIB_DEP = $(LIBDIR)/$(GL_LIB) $(LIBDIR)/$(GLU_LIB) $(LIBDIR)/$(GLUT_LIB)
LIB_DEP = $(LIBDIR)/$(GL_LIB) $(LIBDIR)/$(GLU_LIB)
PROGS = glthreads \
glxdemo \
@@ -43,7 +43,7 @@ PROGS = glthreads \
##### TARGETS #####
default:
@echo "Specify a target configuration"
@echo "Specify a target configuration (i.e. make -f Makefile.X11 linux)"
clean:
-rm *.o *~

View File

@@ -1,4 +1,4 @@
/* $Id: glthreads.c,v 1.1 2000/07/20 20:12:17 brianp Exp $ */
/* $Id: glthreads.c,v 1.1.4.1 2002/03/08 19:43:36 brianp Exp $ */
/*
* Copyright (C) 2000 Brian Paul All Rights Reserved.
@@ -38,6 +38,7 @@
#include <GL/glx.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <pthread.h>

View File

@@ -1,4 +1,4 @@
/* $Id: glxheads.c,v 1.2 2000/11/10 17:23:07 brianp Exp $ */
/* $Id: glxheads.c,v 1.2.2.1 2002/03/08 19:43:36 brianp Exp $ */
/*
* Exercise multiple GLX connections on multiple X displays.
@@ -30,6 +30,7 @@
#include <GL/glx.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
@@ -247,9 +248,9 @@ static void
PrintInfo(const struct head *h)
{
printf("Name: %s\n", h->DisplayName);
printf(" Display: 0x%x\n", h->Dpy);
printf(" Window: 0x%x\n", h->Win);
printf(" Context: 0x%x\n", h->Context);
printf(" Display: 0x%x\n", (int) h->Dpy);
printf(" Window: 0x%x\n", (int) h->Win);
printf(" Context: 0x%x\n", (int) h->Context);
printf(" GL_VERSION: %s\n", h->Version);
printf(" GL_VENDOR: %s\n", h->Vendor);
printf(" GL_RENDERER: %s\n", h->Renderer);

View File

@@ -1,7 +1,7 @@
/* $Id: glxinfo.c,v 1.14 2001/04/24 20:57:36 brianp Exp $ */
/* $Id: glxinfo.c,v 1.14.2.5 2002/09/06 12:59:14 brianp Exp $ */
/*
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
* Copyright (C) 1999-2002 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"),
@@ -29,6 +29,8 @@
* -v print verbose information
* -display DisplayName specify the X display to interogate
* -b only print ID of "best" visual on screen 0
* -i use indirect rendering connection only
* -l print interesting OpenGL limits (added 5 Sep 2002)
*
* Brian Paul 26 January 2000
*/
@@ -148,7 +150,59 @@ print_display_info(Display *dpy)
static void
print_screen_info(Display *dpy, int scrnum, Bool allowDirect)
print_limits(void)
{
struct token_name {
GLuint count;
GLenum token;
const char *name;
};
static const struct token_name limits[] = {
{ 1, GL_MAX_ATTRIB_STACK_DEPTH, "GL_MAX_ATTRIB_STACK_DEPTH" },
{ 1, GL_MAX_CLIENT_ATTRIB_STACK_DEPTH, "GL_MAX_CLIENT_ATTRIB_STACK_DEPTH" },
{ 1, GL_MAX_CLIP_PLANES, "GL_MAX_CLIP_PLANES" },
{ 1, GL_MAX_COLOR_MATRIX_STACK_DEPTH, "GL_MAX_COLOR_MATRIX_STACK_DEPTH" },
{ 1, GL_MAX_ELEMENTS_VERTICES, "GL_MAX_ELEMENTS_VERTICES" },
{ 1, GL_MAX_ELEMENTS_INDICES, "GL_MAX_ELEMENTS_INDICES" },
{ 1, GL_MAX_EVAL_ORDER, "GL_MAX_EVAL_ORDER" },
{ 1, GL_MAX_LIGHTS, "GL_MAX_LIGHTS" },
{ 1, GL_MAX_LIST_NESTING, "GL_MAX_LIST_NESTING" },
{ 1, GL_MAX_MODELVIEW_STACK_DEPTH, "GL_MAX_MODELVIEW_STACK_DEPTH" },
{ 1, GL_MAX_NAME_STACK_DEPTH, "GL_MAX_NAME_STACK_DEPTH" },
{ 1, GL_MAX_PIXEL_MAP_TABLE, "GL_MAX_PIXEL_MAP_TABLE" },
{ 1, GL_MAX_PROJECTION_STACK_DEPTH, "GL_MAX_PROJECTION_STACK_DEPTH" },
{ 1, GL_MAX_TEXTURE_STACK_DEPTH, "GL_MAX_TEXTURE_STACK_DEPTH" },
{ 1, GL_MAX_TEXTURE_SIZE, "GL_MAX_TEXTURE_SIZE" },
{ 1, GL_MAX_3D_TEXTURE_SIZE, "GL_MAX_3D_TEXTURE_SIZE" },
{ 1, GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB, "GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB" },
{ 1, GL_MAX_RECTANGLE_TEXTURE_SIZE_NV, "GL_MAX_RECTANGLE_TEXTURE_SIZE_NV" },
{ 1, GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB, "GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB" },
{ 1, GL_MAX_TEXTURE_UNITS_ARB, "GL_MAX_TEXTURE_UNITS_ARB" },
{ 1, GL_MAX_TEXTURE_LOD_BIAS_EXT, "GL_MAX_TEXTURE_LOD_BIAS_EXT" },
{ 1, GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, "GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT" },
{ 2, GL_MAX_VIEWPORT_DIMS, "GL_MAX_VIEWPORT_DIMS" },
{ 2, GL_ALIASED_LINE_WIDTH_RANGE, "GL_ALIASED_LINE_WIDTH_RANGE" },
{ 2, GL_SMOOTH_LINE_WIDTH_RANGE, "GL_SMOOTH_LINE_WIDTH_RANGE" },
{ 2, GL_ALIASED_POINT_SIZE_RANGE, "GL_ALIASED_POINT_SIZE_RANGE" },
{ 2, GL_SMOOTH_POINT_SIZE_RANGE, "GL_SMOOTH_POINT_SIZE_RANGE" },
{ 0, (GLenum) 0, NULL }
};
GLint i, max[2];
printf("OpenGL limits:\n");
for (i = 0; limits[i].count; i++) {
glGetIntegerv(limits[i].token, max);
if (glGetError() == GL_NONE) {
if (limits[i].count == 1)
printf(" %s = %d\n", limits[i].name, max[0]);
else /* XXX fix if we ever query something with more than 2 values */
printf(" %s = %d, %d\n", limits[i].name, max[0], max[1]);
}
}
}
static void
print_screen_info(Display *dpy, int scrnum, Bool allowDirect, GLboolean limits)
{
Window win;
int attribSingle[] = {
@@ -218,7 +272,7 @@ print_screen_info(Display *dpy, int scrnum, Bool allowDirect)
const char *gluExtensions = (const char *) gluGetString(GLU_EXTENSIONS);
#endif
/* Strip the screen number from the display name, if present. */
if (!(displayName = malloc(strlen(DisplayString(dpy)) + 1))) {
if (!(displayName = (char *) malloc(strlen(DisplayString(dpy)) + 1))) {
fprintf(stderr, "Error: malloc() failed\n");
exit(1);
}
@@ -247,6 +301,8 @@ print_screen_info(Display *dpy, int scrnum, Bool allowDirect)
printf("OpenGL version string: %s\n", glVersion);
printf("OpenGL extensions:\n");
print_extension_list(glExtensions);
if (limits)
print_limits();
#ifdef DO_GLU
printf("glu version: %s\n", gluVersion);
printf("glu extensions:\n");
@@ -408,7 +464,7 @@ print_visual_attribs_short_header(void)
static void
print_visual_attribs_short(const struct visual_attribs *attribs)
{
char *caveat;
char *caveat = NULL;
#ifdef GLX_EXT_visual_rating
if (attribs->visualCaveat == GLX_NONE_EXT || attribs->visualCaveat == 0)
caveat = "None";
@@ -416,6 +472,8 @@ print_visual_attribs_short(const struct visual_attribs *attribs)
caveat = "Slow";
else if (attribs->visualCaveat == GLX_NON_CONFORMANT_VISUAL_EXT)
caveat = "Ncon";
else
caveat = "None";
#else
caveat = "None";
#endif
@@ -486,16 +544,16 @@ print_visual_attribs_long(const struct visual_attribs *attribs)
static void
print_visual_info(Display *dpy, int scrnum, InfoMode mode)
{
XVisualInfo template;
XVisualInfo theTemplate;
XVisualInfo *visuals;
int numVisuals;
long mask;
int i;
/* get list of all visuals on this screen */
template.screen = scrnum;
theTemplate.screen = scrnum;
mask = VisualScreenMask;
visuals = XGetVisualInfo(dpy, mask, &template, &numVisuals);
visuals = XGetVisualInfo(dpy, mask, &theTemplate, &numVisuals);
if (mode == Verbose) {
for (i = 0; i < numVisuals; i++) {
@@ -569,7 +627,7 @@ mesa_hack(Display *dpy, int scrnum)
static int
find_best_visual(Display *dpy, int scrnum)
{
XVisualInfo template;
XVisualInfo theTemplate;
XVisualInfo *visuals;
int numVisuals;
long mask;
@@ -577,9 +635,9 @@ find_best_visual(Display *dpy, int scrnum)
struct visual_attribs bestVis;
/* get list of all visuals on this screen */
template.screen = scrnum;
theTemplate.screen = scrnum;
mask = VisualScreenMask;
visuals = XGetVisualInfo(dpy, mask, &template, &numVisuals);
visuals = XGetVisualInfo(dpy, mask, &theTemplate, &numVisuals);
/* init bestVis with first visual info */
get_visual_attribs(dpy, &visuals[0], &bestVis);
@@ -627,6 +685,7 @@ usage(void)
printf("\t-h: This information.\n");
printf("\t-i: Force an indirect rendering context.\n");
printf("\t-b: Find the 'best' visual and print it's number.\n");
printf("\t-l: Print interesting OpenGLl imits.\n");
}
@@ -638,6 +697,7 @@ main(int argc, char *argv[])
int numScreens, scrnum;
InfoMode mode = Normal;
GLboolean findBest = GL_FALSE;
GLboolean limits = GL_FALSE;
Bool allowDirect = True;
int i;
@@ -658,6 +718,9 @@ main(int argc, char *argv[])
else if (strcmp(argv[i], "-i") == 0) {
allowDirect = False;
}
else if (strcmp(argv[i], "-l") == 0) {
limits = GL_TRUE;
}
else if (strcmp(argv[i], "-h") == 0) {
usage();
return 0;
@@ -686,7 +749,7 @@ main(int argc, char *argv[])
print_display_info(dpy);
for (scrnum = 0; scrnum < numScreens; scrnum++) {
mesa_hack(dpy, scrnum);
print_screen_info(dpy, scrnum, allowDirect);
print_screen_info(dpy, scrnum, allowDirect, limits);
printf("\n");
print_visual_info(dpy, scrnum, mode);
if (scrnum + 1 < numScreens)

View File

@@ -1,4 +1,4 @@
/* $Id: glxpixmap.c,v 1.2 2000/07/11 16:05:29 brianp Exp $ */
/* $Id: glxpixmap.c,v 1.2.6.1 2002/07/12 15:50:46 brianp Exp $ */
/*
@@ -10,6 +10,7 @@
#include <GL/gl.h>
#define GLX_GLXEXT_PROTOTYPES
#include <GL/glx.h>
#include <stdio.h>
#include <stdlib.h>

View File

@@ -1,4 +1,4 @@
/* $Id: manywin.c,v 1.4 2001/04/27 21:19:13 brianp Exp $ */
/* $Id: manywin.c,v 1.4.2.1 2001/11/26 17:21:24 brianp Exp $ */
/*
* Create N GLX windows/contexts and render to them in round-robin
@@ -29,6 +29,7 @@
#include <GL/glx.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
@@ -281,7 +282,7 @@ static void
PrintInfo(const struct head *h)
{
printf("Name: %s\n", h->DisplayName);
printf(" Display: %p\n", h->Dpy);
printf(" Display: %p\n", (void *) h->Dpy);
printf(" Window: 0x%x\n", (int) h->Win);
printf(" Context: 0x%x\n", (int) h->Context);
printf(" GL_VERSION: %s\n", h->Version);

99
src/glu/mesa/Makefile.DJ Normal file
View File

@@ -0,0 +1,99 @@
# Mesa 3-D graphics library
# Version: 4.0
#
# Copyright (C) 1999 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
# BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# DOS/DJGPP glu makefile v1.1 for Mesa 4.0
#
# Copyright (C) 2002 - Borca Daniel
# Email : dborca@yahoo.com
# Web : http://www.geocities.com/dborca
#
# Available options:
#
# Environment variables:
# CFLAGS
#
# Targets:
# all: build GLU
# clean: remove object files
#
.PHONY: all clean
TOP = ..
LIBDIR = $(TOP)/lib
GLU_LIB = libglu.a
GLU_DXE = glu.dxe
GLU_IMP = libiglu.a
CC = gcc
CFLAGS += -I$(TOP)/include
AR = ar
ARFLAGS = ru
ifneq ($(wildcard $(DJDIR)/lib/dxe2.ld),)
DXE2GEN = $(wildcard $(addsuffix /dxe2gen.exe,$(subst ;, ,$(PATH))))
endif
RM = del
CORE_SOURCES = \
glu.c \
mipmap.c \
nurbs.c \
nurbscrv.c \
nurbssrf.c \
nurbsutl.c \
polytest.c \
project.c \
quadric.c \
tess.c \
tesselat.c
SOURCES = $(CORE_SOURCES)
OBJECTS = $(SOURCES:.c=.o)
.c.o:
$(CC) -o $@ -c $(CFLAGS) $<
all: $(LIBDIR)/$(GLU_LIB) $(LIBDIR)/$(GLU_DXE) $(LIBDIR)/$(GLU_IMP)
$(LIBDIR)/$(GLU_LIB): $(OBJECTS)
$(AR) $(ARFLAGS) $(LIBDIR)/$(GLU_LIB) $(OBJECTS)
$(LIBDIR)/$(GLU_DXE) $(LIBDIR)/$(GLU_IMP): $(OBJECTS)
ifeq ($(DXE2GEN),)
$(warning Missing DXE2GEN and/or DXE2.LD! You must have DXE2GEN)
$(warning somewhere in PATH, and DXE2.LD in DJGPP/LIB directory.)
else
-dxe2gen -o $(LIBDIR)/$(GLU_DXE) -I $(LIBDIR)/$(GLU_IMP) $(OBJECTS) -E djgpp_ -E glu -D "Mesa DJGPP GLU" -U
endif
clean:
-$(RM) $(subst /,\,*.o)
-include depend

View File

@@ -1,9 +1,9 @@
/* $Id: glu.c,v 1.24 2001/03/20 17:56:10 brianp Exp $ */
/* $Id: glu.c,v 1.24.2.1 2002/02/12 03:13:42 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.5
* Copyright (C) 1995-2001 Brian Paul
* Version: 4.0.2
* Copyright (C) 1995-2002 Brian Paul
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -330,7 +330,7 @@ const GLubyte *GLAPIENTRY
gluGetString(GLenum name)
{
static char *extensions = "GL_EXT_abgr";
static char *version = "1.1 Mesa 3.5";
static char *version = "1.1 Mesa 4.0.2";
switch (name) {
case GLU_EXTENSIONS:

View File

@@ -1,11 +1,12 @@
# $Id: Makefile.X11,v 1.5 2001/08/13 16:51:08 brianp Exp $
# $Id: Makefile.X11,v 1.5.2.2 2002/01/08 15:58:11 brianp Exp $
# Mesa 3-D graphics library
# Version: 3.5
# Version: 4.0.1
# Copyright (C) 1995-2001 Brian Paul
# Makefile for SGI SI GLU library
.SUFFIXES : .cc
##### MACROS #####
@@ -121,11 +122,10 @@ OBJECTS = $(C_OBJECTS) $(CC_OBJECTS)
##### RULES #####
.c.o:
$(CC) -c $(INCDIRS) $(CFLAGS) -DLIBRARYBUILD $< -o $@
$(CC) -c $(INCDIRS) $(CFLAGS) -DNDEBUG -DLIBRARYBUILD $< -o $@
.cc.o:
$(CPLUSPLUS) -c $(INCDIRS) $(CCFLAGS) -DLIBRARYBUILD $< -o $@
$(CPLUSPLUS) -c $(INCDIRS) $(CCFLAGS) -DNDEBUG -DLIBRARYBUILD $< -o $@
##### TARGETS #####

View File

@@ -1,14 +1,5 @@
# Makefile for Win32
#
# Sept 12, 2001
# Note: The nurbs code is not being built at this time.
# If you want to work on it, uncomment the definitions
# noted below to try to compile the sources.
# There are numerous problems, some of which may be solved
# by setting some #defines.
#
!include <win32.mak>
.SUFFIXES : .cc
@@ -116,16 +107,14 @@ all : gludll
gludll : $(GLUDLL)
CFLAGS = $(cvarsdll) $(CFLAGS) -D_OPENGL32_ -Iinclude -DBUILD_GL32
CFLAGS = $(cvarsdll) $(CFLAGS) -D_OPENGL32_ -Iinclude -DBUILD_GL32 -DLIBRARYBUILD
LFLAGS = $(dlllflags) $(lcommon) $(LFLAGS)
OBJS = $(GLU_SRCS:.c=.obj)
LIBS = ../lib/$(MESALIB) winmm.lib $(guilibsdll)
# Uncomment these definitions to try to compile the NURBS code.
#OBJS = $(GLU_SRCS_CC:.cc=.obj) $(GLU_SRCS:.c=.obj)
#NURBSINC = -Ilibnurbs\interface -Ilibnurbs\internals -Ilibnurbs\nurbtess
#CFLAGS = $(CFLAGS) $(NURBSINC)
OBJS = $(GLU_SRCS_CC:.cc=.obj) $(GLU_SRCS:.c=.obj)
NURBSINC = -Ilibnurbs\interface -Ilibnurbs\internals -Ilibnurbs\nurbtess
CFLAGS = $(CFLAGS) $(NURBSINC)
$(GLUDLL): $(OBJS) glu.def
$(link) $(LFLAGS) -out:$(GLUDLL) -def:glu.def $(OBJS) $(LIBS)

View File

@@ -1,8 +1,11 @@
DESCRIPTION 'Mesa GLU (OpenGL work-alike) for Win32'
VERSION 3.5
VERSION 4.0
EXPORTS
gluBeginCurve
gluBeginPolygon
gluBeginSurface
gluBeginTrim
gluBuild1DMipmapLevels
gluBuild1DMipmaps
gluBuild2DMipmapLevels
@@ -11,22 +14,36 @@ EXPORTS
gluBuild3DMipmaps
gluCheckExtension
gluCylinder
gluDeleteNurbsRenderer
gluDeleteQuadric
gluDeleteTess
gluDisk
gluEndCurve
gluEndPolygon
gluEndSurface
gluEndTrim
gluErrorString
gluGetNurbsProperty
gluGetString
gluGetTessProperty
gluLoadSamplingMatrices
gluLookAt
gluNewNurbsRenderer
gluNewQuadric
gluNewTess
gluNextContour
gluNurbsCallback
gluNurbsCallbackData
gluNurbsCallbackDataEXT
gluNurbsCurve
gluNurbsProperty
gluNurbsSurface
gluOrtho2D
gluPartialDisk
gluPerspective
gluPickMatrix
gluProject
gluPwlCurve
gluQuadricCallback
gluQuadricDrawStyle
gluQuadricNormals

View File

@@ -31,10 +31,10 @@
** published by SGI, but has not been independently verified as being
** compliant with the OpenGL(R) version 1.2.1 Specification.
**
** $Date: 2001/03/17 00:25:40 $ $Revision: 1.1 $
** $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $
*/
/*
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/interface/bezierEval.cc,v 1.1 2001/03/17 00:25:40 brianp Exp $
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/interface/bezierEval.cc,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $
*/
#include <stdlib.h>
@@ -72,8 +72,8 @@ void bezierCurveEval(float u0, float u1, int order, float *ctlpoints, int stride
{
float uprime = (u-u0)/(u1-u0);
float *ctlptr = ctlpoints;
float oneMinusX = 1.0-uprime;
float XPower = 1.0;
float oneMinusX = 1.0f-uprime;
float XPower = 1.0f;
int i,k;
for(k=0; k<dimension; k++)
@@ -171,7 +171,7 @@ void bezierCurveEvalDerGen(int der, float u0, float u1, int order, float *ctlpoi
*/
void bezierSurfEvalDerGen(int uder, int vder, float u0, float u1, int uorder, float v0, float v1, int vorder, int dimension, float *ctlpoints, int ustride, int vstride, float u, float v, float ret[])
{
int i,j,k;
int i;
float newPoints[MAX_ORDER][MAX_DIMENSION];
for(i=0; i<uorder; i++){
@@ -229,7 +229,7 @@ void bezierSurfEvalNormal(float u0, float u1, int uorder, float v0, float v1, in
/*if size is 0, then nothing is done*/
static void normalize(float vec[3])
{
float size = sqrt(vec[0]*vec[0] + vec[1]*vec[1] + vec[2]*vec[2]);
float size = (float)sqrt(vec[0]*vec[0] + vec[1]*vec[1] + vec[2]*vec[2]);
if(size < TOLERANCE)
{

View File

@@ -31,10 +31,10 @@
** published by SGI, but has not been independently verified as being
** compliant with the OpenGL(R) version 1.2.1 Specification.
**
** $Date: 2001/03/17 00:25:40 $ $Revision: 1.1 $
** $Date: 2002/02/12 03:14:58 $ $Revision: 1.1.2.1 $
*/
/*
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/interface/insurfeval.cc,v 1.1 2001/03/17 00:25:40 brianp Exp $
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/interface/insurfeval.cc,v 1.1.2.1 2002/02/12 03:14:58 brianp Exp $
*/
#include "gluos.h"
@@ -528,11 +528,11 @@ void OpenGLSurfaceEvaluator::inComputeNormal2(REAL *pu, REAL *pv, REAL *n)
mag = sqrt(n[0]*n[0] + n[1]*n[1] + n[2]*n[2]);
assert(mag > 0.0); /*better be some threshold*/
n[0] /= mag;
n[1] /= mag;
n[2] /= mag;
if (mag > 0.0) {
n[0] /= mag;
n[1] /= mag;
n[2] /= mag;
}
}

View File

@@ -35,8 +35,8 @@
/*
* mapdesc.c++
*
* $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $
* $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/internals/mapdesc.cc,v 1.1 2001/03/17 00:25:41 brianp Exp $
* $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $
* $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/internals/mapdesc.cc,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $
*/
#include <stdio.h>
@@ -372,13 +372,13 @@ Mapdesc::xformAndCullCheck(
unsigned int bits = clipbits( cpts );
outbits |= bits;
inbits &= bits;
if( ( outbits == mask ) && ( inbits != mask ) ) return CULL_ACCEPT;
if( ( outbits == (unsigned int)mask ) && ( inbits != (unsigned int)mask ) ) return CULL_ACCEPT;
}
}
if( outbits != mask ) {
if( outbits != (unsigned int)mask ) {
return CULL_TRIVIAL_REJECT;
} else if( inbits == mask ) {
} else if( inbits == (unsigned int)mask ) {
return CULL_TRIVIAL_ACCEPT;
} else {
return CULL_ACCEPT;
@@ -404,13 +404,13 @@ Mapdesc::cullCheck( REAL *pts, int uorder, int ustride, int vorder, int vstride
unsigned int bits = clipbits( q );
outbits |= bits;
inbits &= bits;
if( ( outbits == mask ) && ( inbits != mask ) ) return CULL_ACCEPT;
if( ( outbits == (unsigned int)mask ) && ( inbits != (unsigned int)mask ) ) return CULL_ACCEPT;
}
}
if( outbits != mask ) {
if( outbits != (unsigned int)mask ) {
return CULL_TRIVIAL_REJECT;
} else if( inbits == mask ) {
} else if( inbits == (unsigned int)mask ) {
return CULL_TRIVIAL_ACCEPT;
} else {
return CULL_ACCEPT;
@@ -434,12 +434,12 @@ Mapdesc::cullCheck( REAL *pts, int order, int stride )
unsigned int bits = clipbits( p );
outbits |= bits;
inbits &= bits;
if( ( outbits == mask ) && ( inbits != mask ) ) return CULL_ACCEPT;
if( ( outbits == (unsigned int)mask ) && ( inbits != (unsigned int)mask ) ) return CULL_ACCEPT;
}
if( outbits != mask ) {
if( outbits != (unsigned int)mask ) {
return CULL_TRIVIAL_REJECT;
} else if( inbits == mask ) {
} else if( inbits == (unsigned int)mask ) {
return CULL_TRIVIAL_ACCEPT;
} else {
return CULL_ACCEPT;

View File

@@ -35,8 +35,8 @@
/*
* mesher.c++
*
* $Date: 2001/08/07 17:34:11 $ $Revision: 1.2 $
* $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/internals/mesher.cc,v 1.2 2001/08/07 17:34:11 brianp Exp $
* $Date: 2001/11/29 16:38:27 $ $Revision: 1.2.2.1 $
* $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/internals/mesher.cc,v 1.2.2.1 2001/11/29 16:38:27 kschultz Exp $
*/
#include "glimports.h"
@@ -82,7 +82,7 @@ Mesher::init( unsigned int npts )
inline void
Mesher::push( GridTrimVertex *gt )
{
assert( itop+1 != stacksize );
assert( itop+1 != (int)stacksize );
vdata[++itop] = gt;
}

View File

@@ -35,8 +35,8 @@
/*
* slicer.c++
*
* $Date: 2001/05/01 14:56:00 $ $Revision: 1.2 $
* $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/internals/slicer.cc,v 1.2 2001/05/01 14:56:00 brianp Exp $
* $Date: 2002/06/30 16:58:50 $ $Revision: 1.2.2.1 $
* $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/internals/slicer.cc,v 1.2.2.1 2002/06/30 16:58:50 brianp Exp $
*/
#include <stdlib.h>
@@ -309,7 +309,6 @@ static void triangulateRectAux(PwlArc* top, PwlArc* bot, PwlArc* left, PwlArc* r
static void triangulateRect(Arc_ptr loop, Backend& backend, int TB_or_LR, int ulinear, int vlinear)
{
int i;
//we know the loop is a rectangle, but not sure which is top
Arc_ptr top, bot, left, right;
if(loop->tail()[1] == loop->head()[1])
@@ -572,8 +571,6 @@ static void triangulateRectCenter(int n_ulines, REAL* u_val,
int n_vlines, REAL* v_val,
Backend& backend)
{
TrimVertex trimVert;
trimVert.nuid = 0;//????
// XXX this code was patched by Diego Santa Cruz <Diego.SantaCruz@epfl.ch>
// to fix a problem in which glMapGrid2f() was called with bad parameters.
@@ -1075,18 +1072,21 @@ void Slicer::slice_new(Arc_ptr loop)
mydu = (du>0)? du: -du;
mydv = (dv>0)? dv: -dv;
for(Arc_ptr jarc=loop->next; jarc != loop; jarc = jarc->next)
{
for(Arc_ptr jarc=loop->next; jarc != loop; jarc = jarc->next)
{
if(jarc->tail()[0] < uMin)
uMin = jarc->tail()[0];
if(jarc->tail()[0] > uMax)
uMax = jarc->tail()[0];
if(jarc->tail()[1] < vMin)
vMin = jarc->tail()[1];
if(jarc->tail()[1] > vMax)
vMax = jarc->tail()[1];
}
if(jarc->tail()[0] < uMin)
uMin = jarc->tail()[0];
if(jarc->tail()[0] > uMax)
uMax = jarc->tail()[0];
if(jarc->tail()[1] < vMin)
vMin = jarc->tail()[1];
if(jarc->tail()[1] > vMax)
vMax = jarc->tail()[1];
}
if (uMax == uMin)
return; // prevent divide-by-zero. Jon Perry. 17 June 2002
if(mydu > uMax - uMin)
num_ulines = 2;

View File

@@ -35,8 +35,8 @@
/*
* sorter.c++
*
* $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $
* $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/internals/sorter.cc,v 1.1 2001/03/17 00:25:41 brianp Exp $
* $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $
* $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/internals/sorter.cc,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $
*/
#include "glimports.h"
@@ -84,7 +84,7 @@ Sorter::qs1( char *a, char *l )
unsigned int n;
start:
if((n=l-a) <= es)
if((n=l-a) <= (unsigned int)es)
return;
n = es * (n / (2*es));
hp = lp = a+n;

View File

@@ -31,10 +31,10 @@
** published by SGI, but has not been independently verified as being
** compliant with the OpenGL(R) version 1.2.1 Specification.
**
** $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $
** $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $
*/
/*
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/directedLine.cc,v 1.1 2001/03/17 00:25:41 brianp Exp $
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/directedLine.cc,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $
*/
#include <stdlib.h>
@@ -596,7 +596,7 @@ Real directedLine::polyArea()
y2 = temp->next->head()[1];
ret += -( x2*y1-x1*y2);
}
return 0.5*ret;
return Real(0.5)*ret;
}
/*******************split or combine polygons begin********************/

View File

@@ -31,10 +31,10 @@
** published by SGI, but has not been independently verified as being
** compliant with the OpenGL(R) version 1.2.1 Specification.
**
** $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $
** $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $
*/
/*
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/partitionY.cc,v 1.1 2001/03/17 00:25:41 brianp Exp $
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/partitionY.cc,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $
*/
#include <stdlib.h>
@@ -231,7 +231,7 @@ Int sweepRangeEqual(sweepRange* src1, sweepRange* src2)
*/
inline/*static*/ Real intersectHoriz(Real x1, Real y1, Real x2, Real y2, Real y)
{
return ((y2==y1)? (x1+x2)*0.5 : x1 + ((y-y1)/(y2-y1)) * (x2-x1));
return ((y2==y1)? (x1+x2)*Real(0.5) : x1 + ((y-y1)/(y2-y1)) * (x2-x1));
/*
if(y2 == y1) return (x1+x2)*0.5;
else return x1 + ((y-y1)/(y2-y1)) * (x2-x1);
@@ -309,7 +309,7 @@ static Int compEdges(directedLine *e1, directedLine *e2)
Real Ymax = min(e1_Ymax, e2_Ymax);
Real Ymin = max(e1_Ymin, e2_Ymin);
Real y = 0.5*(Ymax + Ymin);
Real y = Real(0.5)*(Ymax + Ymin);
/* Real x1 = intersectHoriz(e1->head()[0], e1->head()[1], e1->tail()[0], e1->tail()[1], y);
Real x2 = intersectHoriz(e2->head()[0], e2->head()[1], e2->tail()[0], e2->tail()[1], y);

View File

@@ -31,10 +31,10 @@
** published by SGI, but has not been independently verified as being
** compliant with the OpenGL(R) version 1.2.1 Specification.
**
** $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $
** $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $
*/
/*
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/polyDBG.cc,v 1.1 2001/03/17 00:25:41 brianp Exp $
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/polyDBG.cc,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $
*/
#include <stdlib.h>
@@ -395,7 +395,7 @@ poly->printList();
*/
/*for debug purpose*/
assert( (DBG_rayIntersectPoly(v,1,0,poly) % 2 )
== (DBG_rayIntersectPoly(v,1,0.1234, poly) % 2 )
== (DBG_rayIntersectPoly(v,1,Real(0.1234), poly) % 2 )
);
if(DBG_rayIntersectPoly(v, 1, 0, poly) % 2 == 1)
return 1;

View File

@@ -31,20 +31,24 @@
** published by SGI, but has not been independently verified as being
** compliant with the OpenGL(R) version 1.2.1 Specification.
**
** $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $
** $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $
*/
/*
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/polyUtil.h,v 1.1 2001/03/17 00:25:41 brianp Exp $
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/polyUtil.h,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $
*/
#ifndef _POLYUTIL_H
#define _POLYUTIL_H
#include "definitions.h"
#ifdef __cplusplus
extern "C" {
#endif
Real area(Real A[2], Real B[2], Real C[2]);
Int pointLeftLine(Real A[2], Real B[2], Real P[2]);
Int pointLeft2Lines(Real A[2], Real B[2], Real C[2], Real P[2]);
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -31,16 +31,23 @@
** published by SGI, but has not been independently verified as being
** compliant with the OpenGL(R) version 1.2.1 Specification.
**
** $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $
** $Date: 2002/04/17 19:30:19 $ $Revision: 1.1.2.1 $
*/
/*
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/quicksort.cc,v 1.1 2001/03/17 00:25:41 brianp Exp $
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/quicksort.cc,v 1.1.2.1 2002/04/17 19:30:19 brianp Exp $
*/
#include <stdlib.h>
#include <stdio.h>
static void swap(void *v[], int i, int j);
static void swap(void *v[], int i, int j)
{
void *temp;
temp = v[i];
v[i] = v[j];
v[j] = temp;
}
/*as an example to use this function to
*sort integers, you need to supply the function
@@ -58,7 +65,6 @@ void quicksort(void *v[], int left, int right,
int (*comp) (void *, void *))
{
int i, last;
void swap(void *v[], int , int);
if(left >= right) /*do nothing if array contains */
return; /*fewer than two elements*/
@@ -71,12 +77,3 @@ void quicksort(void *v[], int left, int right,
quicksort(v, left, last-1, comp);
quicksort(v, last+1, right, comp);
}
void swap(void *v[], int i, int j)
{
void *temp;
temp = v[i];
v[i] = v[j];
v[j] = temp;
}

View File

@@ -31,10 +31,10 @@
** published by SGI, but has not been independently verified as being
** compliant with the OpenGL(R) version 1.2.1 Specification.
**
** $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $
** $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $
*/
/*
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompBot.cc,v 1.1 2001/03/17 00:25:41 brianp Exp $
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompBot.cc,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $
*/
#include <stdlib.h>
@@ -327,7 +327,7 @@ Int findBotSeparator(vertexArray* leftChain,
{
oldLeftI = leftCorner-1;
oldRightI = rightCorner;
leftMax = leftChain->getVertex(leftCorner)[0] - 1.0 ; //initilize to be left of leftCorner
leftMax = leftChain->getVertex(leftCorner)[0] - Real(1.0) ; //initilize to be left of leftCorner
rightMin = rightChain->getVertex(rightCorner)[0];
}
else //rightlower
@@ -335,7 +335,7 @@ Int findBotSeparator(vertexArray* leftChain,
oldLeftI = leftCorner;
oldRightI = rightCorner-1;
leftMax = leftChain->getVertex(leftCorner)[0];
rightMin = rightChain->getVertex(rightCorner)[0] + 1.0;
rightMin = rightChain->getVertex(rightCorner)[0] + Real(1.0);
}
//i: the current working leftChain Index

View File

@@ -31,10 +31,10 @@
** published by SGI, but has not been independently verified as being
** compliant with the OpenGL(R) version 1.2.1 Specification.
**
** $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $
** $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $
*/
/*
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompTop.cc,v 1.1 2001/03/17 00:25:41 brianp Exp $
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompTop.cc,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $
*/
#include <stdlib.h>
@@ -343,7 +343,7 @@ Int findTopSeparator(vertexArray* leftChain,
{
oldLeftI = leftEndIndex+1;
oldRightI = rightEndIndex;
leftMax = leftChain->getVertex(leftEndIndex)[0] - 1.0; //initilza to left of leftU
leftMax = leftChain->getVertex(leftEndIndex)[0] - Real(1.0); //initilza to left of leftU
rightMin = rightChain->getVertex(rightEndIndex)[0];
}
else
@@ -351,7 +351,7 @@ Int findTopSeparator(vertexArray* leftChain,
oldLeftI = leftEndIndex;
oldRightI = rightEndIndex+1;
leftMax = leftChain->getVertex(leftEndIndex)[0];
rightMin = rightChain->getVertex(rightEndIndex)[0] + 1.0;
rightMin = rightChain->getVertex(rightEndIndex)[0] + Real(1.0);
}
//i: the current working leftChain index,
@@ -826,19 +826,19 @@ static void sampleCompTopSimpleOpt(gridWrap* grid,
//find l in [j, k-1] so that dec_chain[l][0] 0 is closest to
// inc_chain[i]
int l;
Real tempI = j;
Real tempMin = fabs(inc_chain->getVertex(i)[0] - dec_chain->getVertex(j)[0]);
Real tempI = Real(j);
Real tempMin = (Real)fabs(inc_chain->getVertex(i)[0] - dec_chain->getVertex(j)[0]);
for(l=j+1; l<= k-1; l++)
{
if(fabs(inc_chain->getVertex(i)[0] - dec_chain->getVertex(l)[0])
<= tempMin)
{
tempMin = fabs(inc_chain->getVertex(i)[0] - dec_chain->getVertex(l)[0]);
tempI = l;
tempMin = (Real)fabs(inc_chain->getVertex(i)[0] - dec_chain->getVertex(l)[0]);
tempI = (Real)l;
}
}
//inc_chain[i] and dec_chain[tempI] are connected.
monoTriangulationRecGenOpt(dec_chain->getVertex(tempI),
monoTriangulationRecGenOpt(dec_chain->getVertex((int)tempI),
botVertex,
inc_chain, i, inc_end,
dec_chain, (int)(tempI+1), dec_end,
@@ -866,12 +866,12 @@ static void sampleCompTopSimpleOpt(gridWrap* grid,
//inc_chain[l][0] is the closet to dec_chain[j][0]
int tempI = i;
int l;
Real tempMin = fabs(inc_chain->getVertex(i)[0] - dec_chain->getVertex(j)[0]);
Real tempMin = (Real)fabs(inc_chain->getVertex(i)[0] - dec_chain->getVertex(j)[0]);
for(l=i+1; l<=k-1; l++)
{
if(fabs(inc_chain->getVertex(l)[0] - dec_chain->getVertex(j)[0]) <= tempMin)
{
tempMin = fabs(inc_chain->getVertex(l)[0] - dec_chain->getVertex(j)[0]);
tempMin = (Real)fabs(inc_chain->getVertex(l)[0] - dec_chain->getVertex(j)[0]);
tempI = l;
}
}

View File

@@ -31,10 +31,10 @@
** published by SGI, but has not been independently verified as being
** compliant with the OpenGL(R) version 1.2.1 Specification.
**
** $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $
** $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $
*/
/*
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/sampledLine.cc,v 1.1 2001/03/17 00:25:41 brianp Exp $
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/sampledLine.cc,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $
*/
#include <stdlib.h>
@@ -96,7 +96,6 @@ sampledLine::sampledLine(Int n_points, Real2 pts[])
sampledLine::sampledLine(Real pt1[2], Real pt2[2])
{
int i;
npoints = 2;
points = (Real2*) malloc(sizeof(Real2) * 2);
assert(points);

View File

@@ -35,14 +35,14 @@
/*
** Author: Eric Veach, July 1994.
**
** $Date: 2001/07/20 11:20:32 $ $Revision: 1.2 $
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libtess/memalloc.h,v 1.2 2001/07/20 11:20:32 joukj Exp $
** $Date: 2001/11/30 20:12:38 $ $Revision: 1.2.2.1 $
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libtess/memalloc.h,v 1.2.2.1 2001/11/30 20:12:38 kschultz Exp $
*/
#ifndef __memalloc_simple_h_
#define __memalloc_simple_h_
#ifdef __VMS
#if defined(__VMS) || defined(darwin)
# include <stdlib.h>
#else
# include <malloc.h>

136
src/glut/dos/Makefile.DJ Normal file
View File

@@ -0,0 +1,136 @@
# Mesa 3-D graphics library
# Version: 4.0
#
# Copyright (C) 1999 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
# BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# DOS/DJGPP glut makefile v1.1 for Mesa 4.0
#
# Copyright (C) 2002 - Borca Daniel
# Email : dborca@yahoo.com
# Web : http://www.geocities.com/dborca
#
# Available options:
#
# Environment variables:
# CFLAGS
#
# GLIDE absolute path to Glide SDK; used with FX.
# default = $(TOP)/include/glide3
# FX=1 build for 3dfx Glide3; use it if you have the glide
# SDK (designed for your platform), and, of course, a
# 3dfx card... Note that this disables compilation of
# actual DMesa code, as Glide does all the stuff!
# default = no
# MARK absolute path to original GLUT.
# default = $(TOP)/src-glut
#
# Targets:
# all: build GLUT
# clean: remove object files
#
.PHONY: all clean
TOP = ..
GLIDE ?= $(TOP)/include/glide3
MARK ?= $(TOP)/src-glut
LIBDIR = $(TOP)/lib
GLUT_LIB = libglut.a
GLUT_DXE = glut.dxe
GLUT_IMP = libiglut.a
CC = gcc
CFLAGS += -I$(TOP)/include -I$(MARK)
ifdef FX
CFLAGS += -D__DOS__ -I$(GLIDE) -DFX -DFX_GLIDE3 -DFXMESA_USE_ARGB
endif
AR = ar
ARFLAGS = ru
ifneq ($(wildcard $(DJDIR)/lib/dxe2.ld),)
DXE2GEN = $(wildcard $(addsuffix /dxe2gen.exe,$(subst ;, ,$(PATH))))
endif
RM = del
CORE_SOURCES = \
bitmap.c \
callback.c \
color.c \
globals.c \
init.c \
menu.c \
models.c \
overlay.c \
state.c \
teapot.c \
window.c
PC_HW_SOURCES = \
PC_HW/pc_hw.c \
PC_HW/pc_keyb.c \
PC_HW/pc_mouse.c \
PC_HW/pc_timer.c \
PC_HW/pc_irq.S
MARK_SOURCES = \
$(MARK)/glut_8x13.c \
$(MARK)/glut_9x15.c \
$(MARK)/glut_hel10.c \
$(MARK)/glut_hel12.c \
$(MARK)/glut_hel18.c \
$(MARK)/glut_tr10.c \
$(MARK)/glut_tr24.c
SOURCES = $(CORE_SOURCES) $(PC_HW_SOURCES) $(MARK_SOURCES)
OBJECTS = $(addsuffix .o,$(basename $(SOURCES)))
.c.o:
$(CC) -o $@ -c $(CFLAGS) $<
.S.o:
$(CC) -o $@ -c $(CFLAGS) $<
.s.o:
$(CC) -o $@ -c $(CFLAGS) -x assembler-with-cpp $<
all: $(LIBDIR)/$(GLUT_LIB) $(LIBDIR)/$(GLUT_DXE) $(LIBDIR)/$(GLUT_IMP)
$(LIBDIR)/$(GLUT_LIB): $(OBJECTS)
$(AR) $(ARFLAGS) $(LIBDIR)/$(GLUT_LIB) $(OBJECTS)
$(LIBDIR)/$(GLUT_DXE) $(LIBDIR)/$(GLUT_IMP): $(OBJECTS)
ifeq ($(DXE2GEN),)
$(warning Missing DXE2GEN and/or DXE2.LD! You must have DXE2GEN)
$(warning somewhere in PATH, and DXE2.LD in DJGPP/LIB directory.)
else
-dxe2gen -o $(LIBDIR)/$(GLUT_DXE) -I $(LIBDIR)/$(GLUT_IMP) $(OBJECTS) -E djgpp_ -E glut -D "Mesa DJGPP GLUT" -U
endif
clean:
-$(RM) $(subst /,\,*.o)
-$(RM) $(subst /,\,PC_HW/*.o)
-$(RM) $(subst /,\,$(MARK)/*.o)
-include depend

141
src/glut/dos/PC_HW/pc_hw.c Normal file
View File

@@ -0,0 +1,141 @@
/*
* PC/HW routine collection v1.0 for DOS/DJGPP
*
* Copyright (C) 2002 - Borca Daniel
* Email : dborca@yahoo.com
* Web : http://www.geocities.com/dborca
*/
#include <dpmi.h>
#include <fcntl.h>
#include <sys/stat.h> /* for mode definitions */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "pc_hw.h"
/*
* atexit
*/
#define MAX_ATEXIT 32
static volatile int atexitcnt;
static VFUNC atexittbl[MAX_ATEXIT];
static void __attribute__((destructor)) doexit (void)
{
while (atexitcnt) atexittbl[--atexitcnt]();
}
int pc_clexit (VFUNC f)
{
int i;
for (i=0;i<atexitcnt;i++) {
if (atexittbl[i]==f) {
for (atexitcnt--;i<atexitcnt;i++) atexittbl[i] = atexittbl[i+1];
atexittbl[i] = 0;
return 0;
}
}
return -1;
}
int pc_atexit (VFUNC f)
{
pc_clexit(f);
if (atexitcnt<MAX_ATEXIT) {
atexittbl[atexitcnt++] = f;
return 0;
}
return -1;
}
/*
* locked memory allocation
*/
void *pc_malloc (size_t size)
{
void *p = malloc(size);
if (p) {
if (_go32_dpmi_lock_data(p, size)) {
free(p);
return NULL;
}
}
return p;
}
/*
* standard redirection
*/
static char errname[L_tmpnam];
static char outname[L_tmpnam];
static int h_out, h_outbak;
static int h_err, h_errbak;
void pc_open_stderr (void)
{
if (tmpnam(errname)) {
h_err = open(errname, O_WRONLY |/* O_BINARY |*/ O_CREAT | O_TRUNC,
S_IREAD | S_IWRITE);
h_errbak = dup(2);
fflush(stderr);
dup2(h_err, 2);
}
}
void pc_close_stderr (void)
{
FILE *f;
char *line = alloca(512);
dup2(h_errbak, 2);
close(h_err);
close(h_errbak);
if ((f=fopen(errname, "r"))!=NULL) {
while (fgets(line, 512, f)) {
fputs(line, stderr);
}
fclose(f);
}
remove(errname);
}
void pc_open_stdout (void)
{
if (tmpnam(outname)) {
h_out = open(outname, O_WRONLY |/* O_BINARY |*/ O_CREAT | O_TRUNC,
S_IREAD | S_IWRITE);
h_outbak = dup(1);
fflush(stdout);
dup2(h_out, 1);
}
}
void pc_close_stdout (void)
{
FILE *f;
char *line = alloca(512);
dup2(h_outbak, 1);
close(h_out);
close(h_outbak);
if ((f=fopen(outname, "r"))!=NULL) {
while (fgets(line, 512, f)) {
fputs(line, stdout);
}
fclose(f);
}
remove(outname);
}

225
src/glut/dos/PC_HW/pc_hw.h Normal file
View File

@@ -0,0 +1,225 @@
/*
* PC/HW routine collection v1.1 for DOS/DJGPP
*
* Copyright (C) 2002 - Borca Daniel
* Email : dborca@yahoo.com
* Web : http://www.geocities.com/dborca
*/
#ifndef PC_HW_H_included
#define PC_HW_H_included
#include <dpmi.h>
#include <stdlib.h>
/*
* misc C definitions
*/
#define FALSE 0
#define TRUE !FALSE
#define MIN(x,y) (((x) < (y)) ? (x) : (y))
#define MAX(x,y) (((x) > (y)) ? (x) : (y))
#define MID(x,y,z) MAX((x), MIN((y), (z)))
typedef void (*VFUNC) (void);
typedef void (*PFUNC) (void *);
typedef void (*MFUNC) (int x, int y, int b);
/*
* atexit
*/
int pc_atexit (VFUNC f);
int pc_clexit (VFUNC f);
/*
* locked memory
*/
#define ENDOFUNC(x) static void x##_end() { }
#define LOCKFUNC(x) _go32_dpmi_lock_code((void *)x, (long)x##_end - (long)x)
#define LOCKDATA(x) _go32_dpmi_lock_data((void *)&x, sizeof(x))
void *pc_malloc (size_t size);
/*
* IRQ
*/
#define ENABLE() __asm __volatile ("sti")
#define DISABLE() __asm __volatile ("cli")
extern int pc_install_irq (int i, int (*handler) ());
extern int pc_remove_irq (int i);
/*
* keyboard
*/
#define KB_SHIFT_FLAG 0x0001
#define KB_CTRL_FLAG 0x0002
#define KB_ALT_FLAG 0x0004
#define KB_LWIN_FLAG 0x0008
#define KB_RWIN_FLAG 0x0010
#define KB_MENU_FLAG 0x0020
#define KB_SCROLOCK_FLAG 0x0100
#define KB_NUMLOCK_FLAG 0x0200
#define KB_CAPSLOCK_FLAG 0x0400
#define KB_INALTSEQ_FLAG 0x0800
#define KB_ACCENT1_FLAG 0x1000
#define KB_ACCENT2_FLAG 0x2000
#define KB_ACCENT3_FLAG 0x4000
#define KB_ACCENT4_FLAG 0x8000
#define KEY_A 1
#define KEY_B 2
#define KEY_C 3
#define KEY_D 4
#define KEY_E 5
#define KEY_F 6
#define KEY_G 7
#define KEY_H 8
#define KEY_I 9
#define KEY_J 10
#define KEY_K 11
#define KEY_L 12
#define KEY_M 13
#define KEY_N 14
#define KEY_O 15
#define KEY_P 16
#define KEY_Q 17
#define KEY_R 18
#define KEY_S 19
#define KEY_T 20
#define KEY_U 21
#define KEY_V 22
#define KEY_W 23
#define KEY_X 24
#define KEY_Y 25
#define KEY_Z 26
#define KEY_0 27
#define KEY_1 28
#define KEY_2 29
#define KEY_3 30
#define KEY_4 31
#define KEY_5 32
#define KEY_6 33
#define KEY_7 34
#define KEY_8 35
#define KEY_9 36
#define KEY_0_PAD 37
#define KEY_1_PAD 38
#define KEY_2_PAD 39
#define KEY_3_PAD 40
#define KEY_4_PAD 41
#define KEY_5_PAD 42
#define KEY_6_PAD 43
#define KEY_7_PAD 44
#define KEY_8_PAD 45
#define KEY_9_PAD 46
#define KEY_F1 47
#define KEY_F2 48
#define KEY_F3 49
#define KEY_F4 50
#define KEY_F5 51
#define KEY_F6 52
#define KEY_F7 53
#define KEY_F8 54
#define KEY_F9 55
#define KEY_F10 56
#define KEY_F11 57
#define KEY_F12 58
#define KEY_ESC 59
#define KEY_TILDE 60
#define KEY_MINUS 61
#define KEY_EQUALS 62
#define KEY_BACKSPACE 63
#define KEY_TAB 64
#define KEY_OPENBRACE 65
#define KEY_CLOSEBRACE 66
#define KEY_ENTER 67
#define KEY_COLON 68
#define KEY_QUOTE 69
#define KEY_BACKSLASH 70
#define KEY_BACKSLASH2 71
#define KEY_COMMA 72
#define KEY_STOP 73
#define KEY_SLASH 74
#define KEY_SPACE 75
#define KEY_INSERT 76
#define KEY_DEL 77
#define KEY_HOME 78
#define KEY_END 79
#define KEY_PGUP 80
#define KEY_PGDN 81
#define KEY_LEFT 82
#define KEY_RIGHT 83
#define KEY_UP 84
#define KEY_DOWN 85
#define KEY_SLASH_PAD 86
#define KEY_ASTERISK 87
#define KEY_MINUS_PAD 88
#define KEY_PLUS_PAD 89
#define KEY_DEL_PAD 90
#define KEY_ENTER_PAD 91
#define KEY_PRTSCR 92
#define KEY_PAUSE 93
#define KEY_ABNT_C1 94
#define KEY_YEN 95
#define KEY_KANA 96
#define KEY_CONVERT 97
#define KEY_NOCONVERT 98
#define KEY_AT 99
#define KEY_CIRCUMFLEX 100
#define KEY_COLON2 101
#define KEY_KANJI 102
#define KEY_MODIFIERS 103
#define KEY_LSHIFT 103
#define KEY_RSHIFT 104
#define KEY_LCONTROL 105
#define KEY_RCONTROL 106
#define KEY_ALT 107
#define KEY_ALTGR 108
#define KEY_LWIN 109
#define KEY_RWIN 110
#define KEY_MENU 111
#define KEY_SCRLOCK 112
#define KEY_NUMLOCK 113
#define KEY_CAPSLOCK 114
#define KEY_MAX 115
int pc_install_keyb (void);
void pc_remove_keyb (void);
int pc_keypressed (void);
int pc_readkey (void);
int pc_keydown (int code);
/*
* timer
*/
int pc_install_int (PFUNC func, void *parm, unsigned int freq);
void pc_remove_timer (void);
/*
* mouse
*/
int pc_install_mouse (void);
void pc_remove_mouse (void);
MFUNC pc_install_mouse_handler (MFUNC handler);
void pc_mouse_area (int x1, int y1, int x2, int y2);
void pc_mouse_speed (int xspeed, int yspeed);
int pc_query_mouse (int *x, int *y);
void pc_show_mouse (void);
void pc_scare_mouse (void);
void pc_unscare_mouse (void);
/*
* standard redirection
*/
void pc_open_stdout (void);
void pc_open_stderr (void);
void pc_close_stdout (void);
void pc_close_stderr (void);
#endif

180
src/glut/dos/PC_HW/pc_irq.S Normal file
View File

@@ -0,0 +1,180 @@
/*
* PC/HW routine collection v1.0 for DOS/DJGPP
*
* Copyright (C) 2002 - Borca Daniel
* Email : dborca@yahoo.com
* Web : http://www.geocities.com/dborca
*/
.file "pc_irq.S"
.text
#define IRQ_STACK_SIZE 16384
#define IRQ_WRAPPER_LEN (__irq_wrapper_1-__irq_wrapper_0)
#define IRQ_OLD (__irq_old_0-__irq_wrapper_0)
#define IRQ_HOOK (__irq_hook_0-__irq_wrapper_0)
#define IRQ_STACK (__irq_stack_0-__irq_wrapper_0)
.balign 4
common:
movw $0x0400, %ax
int $0x31
movl %ss:8(%ebp), %ebx
cmpl $15, %ebx
jbe 0f
fail:
orl $-1, %eax
popl %edi
popl %ebx
leave
ret
0:
movl %ebx, %edi
imull $IRQ_WRAPPER_LEN, %edi
addl $__irq_wrapper_0, %edi
cmpb $7, %bl
jbe 1f
movb %dl, %dh
subb $8, %dh
1:
addb %dh, %bl
ret
.balign 4
.global _pc_install_irq
_pc_install_irq:
pushl %ebp
movl %esp, %ebp
pushl %ebx
pushl %edi
call common
cmpl $0, IRQ_HOOK(%edi)
jne fail
pushl $IRQ_WRAPPER_LEN
pushl %edi
call __go32_dpmi_lock_code
addl $8, %esp
testl %eax, %eax
jnz fail
pushl $IRQ_STACK_SIZE
call _pc_malloc
popl %edx
testl %eax, %eax
jz fail
addl %edx, %eax
movl %eax, IRQ_STACK(%edi)
movl %ss:12(%ebp), %eax
movl %eax, IRQ_HOOK(%edi)
movw $0x0204, %ax
int $0x31
movl %edx, IRQ_OLD(%edi)
movw %cx, IRQ_OLD+4(%edi)
movw $0x0205, %ax
movl %edi, %edx
movl %cs, %ecx
int $0x31
done:
xorl %eax, %eax
popl %edi
popl %ebx
leave
ret
.balign 4
.global _pc_remove_irq
_pc_remove_irq:
pushl %ebp
movl %esp, %ebp
pushl %ebx
pushl %edi
call common
cmpl $0, IRQ_HOOK(%edi)
je fail
movl $0, IRQ_HOOK(%edi)
movw $0x0205, %ax
movl IRQ_OLD(%edi), %edx
movl IRQ_OLD+4(%edi), %ecx
int $0x31
movl IRQ_STACK(%edi), %eax
subl $IRQ_STACK_SIZE, %eax
pushl %eax
call _free
popl %eax
jmp done
#define WRAPPER(x) ; \
.balign 4 ; \
__irq_wrapper_##x: ; \
pushal ; \
pushl %ds ; \
pushl %es ; \
pushl %fs ; \
pushl %gs ; \
movl %ss, %ebx ; \
movl %esp, %esi ; \
movl %cs:___djgpp_ds_alias, %ss ; \
movl %cs:__irq_stack_##x, %esp ; \
pushl %ss ; \
pushl %ss ; \
popl %es ; \
popl %ds ; \
movl ___djgpp_dos_sel, %fs ; \
pushl %fs ; \
popl %gs ; \
call *__irq_hook_##x ; \
movl %ebx, %ss ; \
movl %esi, %esp ; \
testl %eax, %eax ; \
popl %gs ; \
popl %fs ; \
popl %es ; \
popl %ds ; \
popal ; \
jz __irq_ignore_##x ; \
__irq_bypass_##x: ; \
ljmp *%cs:__irq_old_##x ; \
__irq_ignore_##x: ; \
iret ; \
.balign 4 ; \
__irq_old_##x: ; \
.long 0, 0 ; \
__irq_hook_##x: ; \
.long 0 ; \
__irq_stack_##x: ; \
.long 0
WRAPPER(0);
WRAPPER(1);
WRAPPER(2);
WRAPPER(3);
WRAPPER(4);
WRAPPER(5);
WRAPPER(6);
WRAPPER(7);
WRAPPER(8);
WRAPPER(9);
WRAPPER(10);
WRAPPER(11);
WRAPPER(12);
WRAPPER(13);
WRAPPER(14);
WRAPPER(15);

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